From 30c89fe3850db494263cc1f251f1b7b92140d668 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Fri, 5 May 2023 23:08:34 -0400 Subject: [PATCH] Option to move non-installed apps to bottom (#264) --- assets/translations/de.json | 1 + assets/translations/en.json | 1 + assets/translations/es.json | 1 + assets/translations/fa.json | 1 + assets/translations/fr.json | 1 + assets/translations/hu.json | 1 + assets/translations/it.json | 1 + assets/translations/ja.json | 1 + assets/translations/zh.json | 1 + lib/pages/apps.dart | 12 +++++++++++ lib/pages/settings.dart | 30 ++++++++++++++++++++++------ lib/providers/settings_provider.dart | 9 +++++++++ 12 files changed, 54 insertions(+), 6 deletions(-) diff --git a/assets/translations/de.json b/assets/translations/de.json index 1406cf1..6510dd8 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -228,6 +228,7 @@ "dontShowAgain": "Nicht noch einmal zeigen", "dontShowTrackOnlyWarnings": "Warnung für 'Nur Nachverfolgen' nicht anzeigen", "dontShowAPKOriginWarnings": "Warnung für APK-Herkunft nicht anzeigen", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "App entfernen?", "other": "Apps entfernen?" diff --git a/assets/translations/en.json b/assets/translations/en.json index 58878ff..606f66f 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -228,6 +228,7 @@ "dontShowAgain": "Don't show this again", "dontShowTrackOnlyWarnings": "Don't Show 'Track-Only' Warnings", "dontShowAPKOriginWarnings": "Don't Show APK Origin Warnings", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "Remove App?", "other": "Remove Apps?" diff --git a/assets/translations/es.json b/assets/translations/es.json index 1f80bac..3d8f1ad 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -228,6 +228,7 @@ "dontShowAgain": "No mostrar de nuevo", "dontShowTrackOnlyWarnings": "No mostrar avisos de 'Solo Seguimiento'", "dontShowAPKOriginWarnings": "No mostrar avisos de las fuentes de las APks", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "¿Eliminar Aplicación?", "other": "¿Eliminar Aplicaciones?" diff --git a/assets/translations/fa.json b/assets/translations/fa.json index d0ba5c5..33da610 100644 --- a/assets/translations/fa.json +++ b/assets/translations/fa.json @@ -228,6 +228,7 @@ "dontShowAgain": "دوباره این را نشان نده", "dontShowTrackOnlyWarnings": "هشدار 'فقط ردیابی' را نشان ندهید", "dontShowAPKOriginWarnings": "هشدارهای منبع APK را نشان ندهید", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "برنامه حذف شود؟", "other": "برنامه ها حذف شوند؟" diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 27dbd45..1840c8a 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -228,6 +228,7 @@ "dontShowAgain": "Don't show this again", "dontShowTrackOnlyWarnings": "Don't Show the 'Track-Only' Warning", "dontShowAPKOriginWarnings": "Don't Show APK Origin Warnings", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "Supprimer l'application ?", "other": "Supprimer les applications ?" diff --git a/assets/translations/hu.json b/assets/translations/hu.json index f1ed8d2..26de38e 100644 --- a/assets/translations/hu.json +++ b/assets/translations/hu.json @@ -227,6 +227,7 @@ "dontShowAgain": "Ne mutassa ezt újra", "dontShowTrackOnlyWarnings": "Ne jelenítsen meg 'Csak nyomon követés' figyelmeztetést", "dontShowAPKOriginWarnings": "Ne jelenítsen meg az APK eredetére vonatkozó figyelmeztetéseket", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "Eltávolítja az alkalmazást?", "other": "Eltávolítja az alkalmazást?" diff --git a/assets/translations/it.json b/assets/translations/it.json index 1b122d5..0e49191 100644 --- a/assets/translations/it.json +++ b/assets/translations/it.json @@ -228,6 +228,7 @@ "dontShowAgain": "Don't show this again", "dontShowTrackOnlyWarnings": "Don't Show the 'Track-Only' Warning", "dontShowAPKOriginWarnings": "Don't Show APK Origin Warnings", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "Rimuovere l'App?", "other": "Rimuovere le App?" diff --git a/assets/translations/ja.json b/assets/translations/ja.json index f7cbab3..7f5bf32 100644 --- a/assets/translations/ja.json +++ b/assets/translations/ja.json @@ -228,6 +228,7 @@ "dontShowAgain": "二度と表示しない", "dontShowTrackOnlyWarnings": "「追跡のみ」の警告を表示しない", "dontShowAPKOriginWarnings": "APK Originの警告を表示しない", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "アプリを削除しますか?", "other": "アプリを削除しますか?" diff --git a/assets/translations/zh.json b/assets/translations/zh.json index a430229..91ca57d 100644 --- a/assets/translations/zh.json +++ b/assets/translations/zh.json @@ -228,6 +228,7 @@ "dontShowAgain": "Don't show this again", "dontShowTrackOnlyWarnings": "Don't Show the 'Track-Only' Warning", "dontShowAPKOriginWarnings": "Don't Show APK Origin Warnings", + "moveNonInstalledAppsToBottom": "Move Non-Installed Apps to Bottom of Apps View", "removeAppQuestion": { "one": "是否删除应用?", "other": "是否删除应用?" diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index c240676..6a0a947 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -185,6 +185,18 @@ class AppsPageState extends State { listedApps = [...temp, ...listedApps]; } + if (settingsProvider.buryNonInstalled) { + var temp = []; + listedApps = listedApps.where((sa) { + if (sa.app.installedVersion == null) { + temp.add(sa); + return false; + } + return true; + }).toList(); + listedApps = [...listedApps, ...temp]; + } + var tempPinned = []; var tempNotPinned = []; for (var a in listedApps) { diff --git a/lib/pages/settings.dart b/lib/pages/settings.dart index 988fe85..224a076 100644 --- a/lib/pages/settings.dart +++ b/lib/pages/settings.dart @@ -227,7 +227,7 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('useBlackTheme')), + Flexible(child: Text(tr('useBlackTheme'))), Switch( value: settingsProvider.useBlackTheme, onChanged: (value) { @@ -254,7 +254,7 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('showWebInAppView')), + Flexible(child: Text(tr('showWebInAppView'))), Switch( value: settingsProvider.showAppWebpage, onChanged: (value) { @@ -266,7 +266,7 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('pinUpdates')), + Flexible(child: Text(tr('pinUpdates'))), Switch( value: settingsProvider.pinUpdates, onChanged: (value) { @@ -278,7 +278,21 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('groupByCategory')), + Flexible( + child: Text( + tr('moveNonInstalledAppsToBottom'))), + Switch( + value: settingsProvider.buryNonInstalled, + onChanged: (value) { + settingsProvider.buryNonInstalled = value; + }) + ], + ), + height16, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible(child: Text(tr('groupByCategory'))), Switch( value: settingsProvider.groupByCategory, onChanged: (value) { @@ -290,7 +304,9 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('dontShowTrackOnlyWarnings')), + Flexible( + child: + Text(tr('dontShowTrackOnlyWarnings'))), Switch( value: settingsProvider.hideTrackOnlyWarning, @@ -304,7 +320,9 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(tr('dontShowAPKOriginWarnings')), + Flexible( + child: + Text(tr('dontShowAPKOriginWarnings'))), Switch( value: settingsProvider.hideAPKOriginWarning, diff --git a/lib/providers/settings_provider.dart b/lib/providers/settings_provider.dart index 2f03dfb..162d7f9 100644 --- a/lib/providers/settings_provider.dart +++ b/lib/providers/settings_provider.dart @@ -154,6 +154,15 @@ class SettingsProvider with ChangeNotifier { notifyListeners(); } + bool get buryNonInstalled { + return prefs?.getBool('buryNonInstalled') ?? false; + } + + set buryNonInstalled(bool show) { + prefs?.setBool('buryNonInstalled', show); + notifyListeners(); + } + bool get groupByCategory { return prefs?.getBool('groupByCategory') ?? false; }