diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/db/entity/App.java b/app/src/main/java/io/github/muntashirakon/AppManager/db/entity/App.java index db814d2b40f..636f168b5c7 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/db/entity/App.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/db/entity/App.java @@ -117,6 +117,9 @@ public class App implements Serializable { @ColumnInfo(name = "last_action_time", defaultValue = "0") public long lastActionTime; + @ColumnInfo(name = "installer_app", defaultValue = "") + public String installerApp; + public boolean isSystemApp() { return (flags & ApplicationInfo.FLAG_SYSTEM) != 0; } @@ -150,6 +153,7 @@ public static App fromPackageInfo(@NonNull Context context, @NonNull PackageInfo app.rulesCount = 0; app.trackerCount = ComponentUtils.getTrackerComponentsForPackage(packageInfo).size(); app.lastActionTime = System.currentTimeMillis(); + app.installerApp = applicationInfo.installerApp; return app; } diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/main/MainListOptions.java b/app/src/main/java/io/github/muntashirakon/AppManager/main/MainListOptions.java index 6ff0f66b6fa..8608e4bd4ed 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/main/MainListOptions.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/main/MainListOptions.java @@ -52,6 +52,7 @@ public class MainListOptions extends ListOptions { SORT_BY_OPEN_COUNT, SORT_BY_SCREEN_TIME, SORT_BY_LAST_USAGE_TIME, + SORT_BY_INSTALLER_APP }) @Retention(RetentionPolicy.SOURCE) public @interface SortOrder { @@ -75,6 +76,7 @@ public class MainListOptions extends ListOptions { public static final int SORT_BY_OPEN_COUNT = 15; public static final int SORT_BY_SCREEN_TIME = 16; public static final int SORT_BY_LAST_USAGE_TIME = 17; + public static final int SORT_BY_INSTALLER_APP = 18; @IntDef(flag = true, value = { FILTER_NO_FILTER, @@ -226,6 +228,7 @@ public LinkedHashMap getSortIdLocaleMap() { put(SORT_BY_TRACKERS, R.string.trackers); put(SORT_BY_LAST_ACTION, R.string.last_actions); put(SORT_BY_INSTALLATION_DATE, R.string.sort_by_installation_date); + put(SORT_BY_INSTALLER_APP, R.string.sort_by_installer_app); if (FeatureController.isUsageAccessEnabled()) { put(SORT_BY_TOTAL_SIZE, R.string.sort_by_total_size); put(SORT_BY_DATA_USAGE, R.string.sort_by_data_usage); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/main/MainViewModel.java b/app/src/main/java/io/github/muntashirakon/AppManager/main/MainViewModel.java index 602bd989ba8..aef27b728e7 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/main/MainViewModel.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/main/MainViewModel.java @@ -581,6 +581,8 @@ private void sortApplicationList(@MainListOptions.SortOrder int sortBy, boolean return -mode * o1.lastActionTime.compareTo(o2.lastActionTime); case MainListOptions.SORT_BY_TRACKERS: return -mode * o1.trackerCount.compareTo(o2.trackerCount); + case MainListOptions.SORT_BY_INSTALLER_APP: + return mode * o1.installerApp.compareTo(o2.installerApp); } return 0; }); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 858efeeed05..0d94e10701f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1193,6 +1193,7 @@ Are you sure? All the third-party apps have to be reconfigured with the new authorization key. Shortcut Icon Installation date + Installer app The selected backup volume is not currently available. If it is located in an external storage, please insert it, or change the backup volume. Change volume External