From dfbb4e19a598abb87633b87b5bcdc11780a9b608 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Fri, 7 Oct 2022 21:15:19 -0400 Subject: [PATCH] Added more Mass App Actions --- lib/main.dart | 2 +- lib/pages/apps.dart | 141 +++++++++++++++++++++++++++++++++++++++++--- pubspec.yaml | 2 +- 3 files changed, 134 insertions(+), 11 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index ed12d46..8b1e6cc 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,7 +14,7 @@ import 'package:dynamic_color/dynamic_color.dart'; import 'package:device_info_plus/device_info_plus.dart'; const String currentReleaseTag = - 'v0.5.5-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES + 'v0.5.6-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES const String bgUpdateCheckTaskName = 'bg-update-check'; diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index c6a65f4..1e815b8 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -340,16 +340,139 @@ class AppsPageState extends State { : IconButton( visualDensity: VisualDensity.compact, onPressed: () { - String urls = ''; - for (var id in selectedIds) { - urls += '${appsProvider.apps[id]!.app.url}\n'; - } - urls = urls.substring(0, urls.length - 1); - Share.share(urls, - subject: 'Selected App URLs from Obtainium'); + showDialog( + context: context, + builder: (BuildContext ctx) { + return AlertDialog( + scrollable: true, + content: Padding( + padding: const EdgeInsets.only(top: 6), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + IconButton( + onPressed: + appsProvider + .areDownloadsRunning() + ? null + : () { + showDialog( + context: context, + builder: + (BuildContext + ctx) { + return AlertDialog( + title: Text( + 'Mark ${selectedIds.length} Selected Apps as Not Installed?'), + actions: [ + TextButton( + onPressed: + () { + Navigator.of(context) + .pop(); + }, + child: const Text( + 'No')), + TextButton( + onPressed: + () { + HapticFeedback + .selectionClick(); + appsProvider + .saveApps(selectedIds.map((e) { + var a = + appsProvider.apps[e]!.app; + a.installedVersion = + null; + return a; + }).toList()); + + Navigator.of(context) + .pop(); + }, + child: const Text( + 'Yes')) + ], + ); + }); + }, + tooltip: + 'Mark Selected Apps as Not Installed', + icon: const Icon( + Icons.no_cell_outlined)), + IconButton( + onPressed: + appsProvider + .areDownloadsRunning() + ? null + : () { + showDialog( + context: context, + builder: + (BuildContext + ctx) { + return AlertDialog( + title: Text( + 'Mark ${selectedIds.length} Selected Apps as Installed/Updated?'), + actions: [ + TextButton( + onPressed: + () { + Navigator.of(context) + .pop(); + }, + child: const Text( + 'No')), + TextButton( + onPressed: + () { + HapticFeedback + .selectionClick(); + appsProvider + .saveApps(selectedIds.map((e) { + var a = + appsProvider.apps[e]!.app; + a.installedVersion = + a.latestVersion; + return a; + }).toList()); + + Navigator.of(context) + .pop(); + }, + child: const Text( + 'Yes')) + ], + ); + }); + }, + tooltip: + 'Mark Selected Apps as Installed/Updated', + icon: const Icon(Icons.done)), + IconButton( + onPressed: () { + String urls = ''; + for (var id in selectedIds) { + urls += + '${appsProvider.apps[id]!.app.url}\n'; + } + urls = urls.substring( + 0, urls.length - 1); + Share.share(urls, + subject: + '${selectedIds.length} Selected App URLs from Obtainium'); + }, + tooltip: 'Share Selected App URLs', + icon: const Icon(Icons.share), + ), + ]), + ), + ); + }); }, - tooltip: 'Share Selected App URLs', - icon: const Icon(Icons.share), + tooltip: 'More', + icon: const Icon(Icons.more_horiz), ), ], )), diff --git a/pubspec.yaml b/pubspec.yaml index d292dbd..ffa3210 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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. -version: 0.5.5+26 # When changing this, update the tag in main() accordingly +version: 0.5.6+27 # When changing this, update the tag in main() accordingly environment: sdk: '>=2.19.0-79.0.dev <3.0.0'