claude refactorings, flutter best practices, platform dependent changes, general cleanup

This commit is contained in:
2026-05-06 11:58:50 +02:00
parent 4b1d4379a0
commit 4e1272aba9
281 changed files with 1948 additions and 1041 deletions
@@ -1,16 +1,17 @@
import 'dart:async';
import 'dart:convert';
import 'dart:typed_data';
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:image_picker/image_picker.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:badges/badges.dart' as badges;
import '../../../../api/mhsl/server/feedback/addFeedback.dart';
import '../../../../api/mhsl/server/feedback/addFeedbackParams.dart';
import '../../../../api/mhsl/server/feedback/add_feedback.dart';
import '../../../../api/mhsl/server/feedback/add_feedback_params.dart';
import '../../../../model/account_data.dart';
import '../../../../state/app/modules/settings/bloc/settings_cubit.dart';
import '../../../../widget/file_pick.dart';
@@ -129,7 +130,8 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
child: IconButton(
onPressed: () async {
context.loaderOverlay.show();
var imageData = await (await FilePick.galleryPick())?.readAsBytes();
final picked = await FilePick.multipleGalleryPick();
final imageData = await picked?.first.readAsBytes();
if(context.mounted) context.loaderOverlay.hide();
setState(() {
_image = imageData;
@@ -148,26 +150,26 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
return;
}
context.loaderOverlay.show();
AddFeedback(
unawaited(AddFeedback(
AddFeedbackParams(
user: AccountData().getUserSecret(),
feedback: _feedbackInput.text,
screenshot: _image != null ? base64Encode(_image!) : null,
appVersion: int.parse((await PackageInfo.fromPlatform()).buildNumber),
)
),
).run().then((value) {
if (!context.mounted) return;
Navigator.of(context).pop();
InfoDialog.show(context, 'Danke für dein Feedback!');
context.loaderOverlay.hide();
}).catchError((error, trace) {
}).catchError((Object error, StackTrace trace) {
if (!mounted) return;
setState(() {
_error = error.toString();
});
if (!context.mounted) return;
context.loaderOverlay.hide();
});
}));
},
child: const Text('Senden'),
)