From 0d509c90b1162a625422a4ad19a5881e0c328872 Mon Sep 17 00:00:00 2001 From: Kima Date: Fri, 21 Jun 2024 22:30:17 +0200 Subject: [PATCH] finished everything shake --- refilc/lib/main.dart | 18 ++++++++++++++++ refilc/lib/theme/observer.dart | 13 +++++++++++- .../lib/screens/settings/settings_screen.dart | 21 ++++++++++++++++++- .../settings/settings_screen.i18n.dart | 3 +++ refilc_mobile_ui/pubspec.yaml | 1 + 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/refilc/lib/main.dart b/refilc/lib/main.dart index 2d939bc..5b0a3f4 100644 --- a/refilc/lib/main.dart +++ b/refilc/lib/main.dart @@ -40,6 +40,24 @@ void main() async { BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask); + // setting up things for shakebugs + // List pickerItems = [ + // ShakePickerItem('Bug', 'Hiba', tag: 'bug'), + // ShakePickerItem('Suggestion', 'Fejlesztési javaslat', tag: 'suggestion'), + // ShakePickerItem('Question', 'Kérdés', tag: 'question') + // ]; + // ShakePicker picker = + // ShakePicker('Feedback type', 'Visszajelzés típusa', pickerItems); + // ShakeTitle title = ShakeTitle('Title', 'Leírás', required: true); + + // ShakeInspectButton inspect = ShakeInspectButton(); + // ShakeAttachments attachments = ShakeAttachments(); + + // List components = [picker, title, inspect, attachments]; + // ShakeForm form = ShakeForm(components); + + // Shake.setShakeForm(form); + // shakebugs initialization // Shake.setInvokeShakeOnScreenshot(true); Shake.start('Y44AwzfY6091xO2Nr0w59RHSpNxJhhiSFGs4enmoJwelN82ZRzTLE5X'); diff --git a/refilc/lib/theme/observer.dart b/refilc/lib/theme/observer.dart index c8824a6..08c075e 100644 --- a/refilc/lib/theme/observer.dart +++ b/refilc/lib/theme/observer.dart @@ -4,6 +4,8 @@ import 'package:flutter/material.dart'; import 'package:home_widget/home_widget.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; +import 'package:shake_flutter/models/shake_theme.dart'; +import 'package:shake_flutter/shake_flutter.dart'; Future updateWidget() async { try { @@ -22,7 +24,9 @@ class ThemeModeObserver extends ChangeNotifier { ThemeMode get themeMode => _themeMode; bool get updateNavbarColor => _updateNavbarColor; - ThemeModeObserver({ThemeMode initialTheme = ThemeMode.system, bool updateNavbarColor = true}) + ThemeModeObserver( + {ThemeMode initialTheme = ThemeMode.system, + bool updateNavbarColor = true}) : _themeMode = initialTheme, _updateNavbarColor = updateNavbarColor; @@ -31,5 +35,12 @@ class ThemeModeObserver extends ChangeNotifier { _updateNavbarColor = updateNavbarColor; if (Platform.isAndroid) updateWidget(); notifyListeners(); + + // change shake theme as well + ShakeTheme darkTheme = ShakeTheme(); + darkTheme.accentColor = "#FFFFFF"; + ShakeTheme lightTheme = ShakeTheme(); + lightTheme.accentColor = "#000000"; + Shake.setShakeTheme(mode == ThemeMode.dark ? darkTheme : lightTheme); } } diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart index fc7b19a..b2c8f6e 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart @@ -54,6 +54,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_custom_tabs/flutter_custom_tabs.dart' as tabs; import 'package:flutter_feather_icons/flutter_feather_icons.dart'; import 'package:provider/provider.dart'; +import 'package:shake_flutter/enums/shake_screen.dart'; +import 'package:shake_flutter/shake_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; import 'debug/subject_icon_gallery.dart'; import 'settings_screen.i18n.dart'; @@ -1010,7 +1012,7 @@ class SettingsScreenState extends State shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical( top: Radius.circular(4.0), - bottom: Radius.circular(12.0), + bottom: Radius.circular(4.0), ), ), secondary: Icon( @@ -1052,6 +1054,23 @@ class SettingsScreenState extends State ), ), ), + PanelButton( + leading: Icon( + Icons.feedback_outlined, + size: 22.0, + color: AppColors.of(context).text.withOpacity(0.95), + ), + title: Text("feedback".i18n), + onPressed: () => { + Shake.setScreenshotIncluded(false), + Shake.show(ShakeScreen.newTicket), + Shake.setScreenshotIncluded(true), + }, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(4.0), + bottom: Radius.circular(12.0), + ), + ), ], ), diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart index 3351848..855cc43 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart @@ -128,6 +128,7 @@ extension SettingsLocalization on String { "export_method": "Export Method", "grade_exporting": "Grade Exporting", "custom": "Custom", + "feedback": "Feedback", }, "hu_hu": { "heads_up": "Figyelem!", @@ -254,6 +255,7 @@ extension SettingsLocalization on String { "export_method": "Exportálási mód", "grade_exporting": "Jegy exportálás", "custom": "Egyedi", + "feedback": "Visszajelzés", }, "de_de": { "heads_up": "Achtung!", @@ -380,6 +382,7 @@ extension SettingsLocalization on String { "export_method": "Exportmethode", "grade_exporting": "Noten exportieren", "custom": "Benutzerdefiniert", + "feedback": "Feedback", }, }; diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 6a74085..53f2629 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -76,6 +76,7 @@ dependencies: flutter_portal: ^1.1.4 webview_flutter: ^4.8.0 file_picker: ^8.0.5 + shake_flutter: ^17.0.0 dev_dependencies: flutter_lints: ^4.0.0