mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 21:43:29 +01:00 
			
		
		
		
	Make page transition animation optional (#683)
This commit is contained in:
		| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "App entfernen?", |         "one": "App entfernen?", | ||||||
|         "other": "Apps entfernen?" |         "other": "Apps entfernen?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Remove App?", |         "one": "Remove App?", | ||||||
|         "other": "Remove Apps?" |         "other": "Remove Apps?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "¿Eliminar Aplicación?", |         "one": "¿Eliminar Aplicación?", | ||||||
|         "other": "¿Eliminar Aplicaciones?" |         "other": "¿Eliminar Aplicaciones?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "برنامه حذف شود؟", |         "one": "برنامه حذف شود؟", | ||||||
|         "other": "برنامه ها حذف شوند؟" |         "other": "برنامه ها حذف شوند؟" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Supprimer l'application ?", |         "one": "Supprimer l'application ?", | ||||||
|         "other": "Supprimer les applications ?" |         "other": "Supprimer les applications ?" | ||||||
|   | |||||||
| @@ -236,6 +236,7 @@ | |||||||
|     "removeOnExternalUninstall": "A külsőleg eltávolított appok auto. eltávolítása", |     "removeOnExternalUninstall": "A külsőleg eltávolított appok auto. eltávolítása", | ||||||
|     "pickHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása", |     "pickHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása", | ||||||
|     "checkUpdateOnDetailPage": "Frissítések keresése az app részleteit tartalmazó oldal megnyitásakor", |     "checkUpdateOnDetailPage": "Frissítések keresése az app részleteit tartalmazó oldal megnyitásakor", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Eltávolítja az alkalmazást?", |         "one": "Eltávolítja az alkalmazást?", | ||||||
|         "other": "Eltávolítja az alkalmazást?" |         "other": "Eltávolítja az alkalmazást?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Rimuovere l'app?", |         "one": "Rimuovere l'app?", | ||||||
|         "other": "Rimuovere le app?" |         "other": "Rimuovere le app?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "外部でアンインストールされたアプリを自動的に削除する", |     "removeOnExternalUninstall": "外部でアンインストールされたアプリを自動的に削除する", | ||||||
|     "pickHighestVersionCode": "最も高いバージョンコードのAPKを自動的に選択する", |     "pickHighestVersionCode": "最も高いバージョンコードのAPKを自動的に選択する", | ||||||
|     "checkUpdateOnDetailPage": "アプリの詳細ページを開く際にアップデートを確認する", |     "checkUpdateOnDetailPage": "アプリの詳細ページを開く際にアップデートを確認する", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "アプリを削除しますか?", |         "one": "アプリを削除しますか?", | ||||||
|         "other": "アプリを削除しますか?" |         "other": "アプリを削除しますか?" | ||||||
|   | |||||||
| @@ -241,6 +241,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatyczne usuń odinstalowane zewnętrznie aplikacje", |     "removeOnExternalUninstall": "Automatyczne usuń odinstalowane zewnętrznie aplikacje", | ||||||
|     "pickHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK", |     "pickHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK", | ||||||
|     "checkUpdateOnDetailPage": "Sprawdzaj aktualizacje podczas otwierania strony szczegółów aplikacji", |     "checkUpdateOnDetailPage": "Sprawdzaj aktualizacje podczas otwierania strony szczegółów aplikacji", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Usunąć aplikację?", |         "one": "Usunąć aplikację?", | ||||||
|         "other": "Usunąć aplikacje?" |         "other": "Usunąć aplikacje?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Автоматически убирать из списка удаленные извне приложения", |     "removeOnExternalUninstall": "Автоматически убирать из списка удаленные извне приложения", | ||||||
|     "pickHighestVersionCode": "Автовыбор кода наивысшей версии APK", |     "pickHighestVersionCode": "Автовыбор кода наивысшей версии APK", | ||||||
|     "checkUpdateOnDetailPage": "Проверять наличие обновлений при открытии страницы представления приложения", |     "checkUpdateOnDetailPage": "Проверять наличие обновлений при открытии страницы представления приложения", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Удалить приложение?", |         "one": "Удалить приложение?", | ||||||
|         "other": "Удалить приложения?" |         "other": "Удалить приложения?" | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ | |||||||
|     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", |     "removeOnExternalUninstall": "Automatically remove externally uninstalled Apps", | ||||||
|     "pickHighestVersionCode": "Auto-select highest version code APK", |     "pickHighestVersionCode": "Auto-select highest version code APK", | ||||||
|     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", |     "checkUpdateOnDetailPage": "Check for updates on opening an App detail page", | ||||||
|  |     "disablePageTransitions": "Disable page transition animations", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "是否删除应用?", |         "one": "是否删除应用?", | ||||||
|         "other": "是否删除应用?" |         "other": "是否删除应用?" | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart'; | |||||||
| // ignore: implementation_imports | // ignore: implementation_imports | ||||||
| import 'package:easy_localization/src/localization.dart'; | import 'package:easy_localization/src/localization.dart'; | ||||||
|  |  | ||||||
| const String currentVersion = '0.13.17'; | const String currentVersion = '0.13.18'; | ||||||
| const String currentReleaseTag = | const String currentReleaseTag = | ||||||
|     'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES |     'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ import 'package:obtainium/pages/apps.dart'; | |||||||
| import 'package:obtainium/pages/import_export.dart'; | import 'package:obtainium/pages/import_export.dart'; | ||||||
| import 'package:obtainium/pages/settings.dart'; | import 'package:obtainium/pages/settings.dart'; | ||||||
| import 'package:obtainium/providers/apps_provider.dart'; | import 'package:obtainium/providers/apps_provider.dart'; | ||||||
|  | import 'package:obtainium/providers/settings_provider.dart'; | ||||||
| import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||||
|  |  | ||||||
| class HomePage extends StatefulWidget { | class HomePage extends StatefulWidget { | ||||||
| @@ -42,6 +43,7 @@ class _HomePageState extends State<HomePage> { | |||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     AppsProvider appsProvider = context.watch<AppsProvider>(); |     AppsProvider appsProvider = context.watch<AppsProvider>(); | ||||||
|  |     SettingsProvider settingsProvider = context.watch<SettingsProvider>(); | ||||||
|  |  | ||||||
|     setIsReversing(int targetIndex) { |     setIsReversing(int targetIndex) { | ||||||
|       bool reversing = selectedIndexHistory.isNotEmpty && |       bool reversing = selectedIndexHistory.isNotEmpty && | ||||||
| @@ -89,6 +91,9 @@ class _HomePageState extends State<HomePage> { | |||||||
|         child: Scaffold( |         child: Scaffold( | ||||||
|           backgroundColor: Theme.of(context).colorScheme.surface, |           backgroundColor: Theme.of(context).colorScheme.surface, | ||||||
|           body: PageTransitionSwitcher( |           body: PageTransitionSwitcher( | ||||||
|  |             duration: Duration( | ||||||
|  |                 milliseconds: | ||||||
|  |                     settingsProvider.disablePageTransitions ? 0 : 300), | ||||||
|             reverse: isReversing, |             reverse: isReversing, | ||||||
|             transitionBuilder: ( |             transitionBuilder: ( | ||||||
|               Widget child, |               Widget child, | ||||||
|   | |||||||
| @@ -396,6 +396,21 @@ class _SettingsPageState extends State<SettingsPage> { | |||||||
|                                     }) |                                     }) | ||||||
|                               ], |                               ], | ||||||
|                             ), |                             ), | ||||||
|  |                             height16, | ||||||
|  |                             Row( | ||||||
|  |                               mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||||
|  |                               children: [ | ||||||
|  |                                 Flexible( | ||||||
|  |                                     child: Text(tr('disablePageTransitions'))), | ||||||
|  |                                 Switch( | ||||||
|  |                                     value: | ||||||
|  |                                         settingsProvider.disablePageTransitions, | ||||||
|  |                                     onChanged: (value) { | ||||||
|  |                                       settingsProvider.disablePageTransitions = | ||||||
|  |                                           value; | ||||||
|  |                                     }) | ||||||
|  |                               ], | ||||||
|  |                             ), | ||||||
|                             height32, |                             height32, | ||||||
|                             Text( |                             Text( | ||||||
|                               tr('categories'), |                               tr('categories'), | ||||||
|   | |||||||
| @@ -291,4 +291,13 @@ class SettingsProvider with ChangeNotifier { | |||||||
|     prefs?.setBool('checkUpdateOnDetailPage', show); |     prefs?.setBool('checkUpdateOnDetailPage', show); | ||||||
|     notifyListeners(); |     notifyListeners(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   bool get disablePageTransitions { | ||||||
|  |     return prefs?.getBool('disablePageTransitions') ?? false; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   set disablePageTransitions(bool show) { | ||||||
|  |     prefs?.setBool('disablePageTransitions', show); | ||||||
|  |     notifyListeners(); | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev | |||||||
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | ||||||
| # In Windows, build-name is used as the major, minor, and patch parts | # In Windows, build-name is used as the major, minor, and patch parts | ||||||
| # of the product and file versions while build-number is used as the build suffix. | # of the product and file versions while build-number is used as the build suffix. | ||||||
| version: 0.13.17+181 # When changing this, update the tag in main() accordingly | version: 0.13.18+182 # When changing this, update the tag in main() accordingly | ||||||
|  |  | ||||||
| environment: | environment: | ||||||
|   sdk: '>=2.18.2 <3.0.0' |   sdk: '>=2.18.2 <3.0.0' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user