Fix reboot system menu packageName (#2711)

This commit is contained in:
Howard Wu 2023-08-26 02:43:28 +08:00 committed by GitHub
parent 4a98189f9f
commit 4d5588778d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 47 deletions

View File

@ -54,7 +54,7 @@ public class AppHelper {
List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId); List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
if (ris.size() <= 0) { if (ris.size() == 0) {
return getLaunchIntentForPackage(packageName, userId); return getLaunchIntentForPackage(packageName, userId);
} }
@ -73,14 +73,14 @@ public class AppHelper {
intentToResolve.setPackage(packageName); intentToResolve.setPackage(packageName);
List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId); List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
if (ris.size() <= 0) { if (ris.size() == 0) {
intentToResolve.removeCategory(Intent.CATEGORY_INFO); intentToResolve.removeCategory(Intent.CATEGORY_INFO);
intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER); intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
intentToResolve.setPackage(packageName); intentToResolve.setPackage(packageName);
ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId); ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
} }
if (ris.size() <= 0) { if (ris.size() == 0) {
return null; return null;
} }
@ -117,25 +117,20 @@ public class AppHelper {
public static Comparator<PackageInfo> getAppListComparator(int sort, PackageManager pm) { public static Comparator<PackageInfo> getAppListComparator(int sort, PackageManager pm) {
ApplicationInfo.DisplayNameComparator displayNameComparator = new ApplicationInfo.DisplayNameComparator(pm); ApplicationInfo.DisplayNameComparator displayNameComparator = new ApplicationInfo.DisplayNameComparator(pm);
switch (sort) { return switch (sort) {
case 7: case 7 ->
return Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime)); Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime));
case 6: case 6 -> Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime);
return Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime); case 5 ->
case 5: Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime));
return Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime)); case 4 -> Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime);
case 4: case 3 -> Collections.reverseOrder(Comparator.comparing(a -> a.packageName));
return Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime); case 2 -> Comparator.comparing(a -> a.packageName);
case 3: case 1 ->
return Collections.reverseOrder(Comparator.comparing(a -> a.packageName)); Collections.reverseOrder((PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo));
case 2: default ->
return Comparator.comparing(a -> a.packageName); (PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo);
case 1: };
return Collections.reverseOrder((PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo));
case 0:
default:
return (PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo);
}
} }
synchronized public static List<PackageInfo> getAppList(boolean force) { synchronized public static List<PackageInfo> getAppList(boolean force) {
@ -149,6 +144,7 @@ public class AppHelper {
p.setDataPosition(0); p.setDataPosition(0);
system = PackageInfo.CREATOR.createFromParcel(p); system = PackageInfo.CREATOR.createFromParcel(p);
system.packageName = "system"; system.packageName = "system";
system.applicationInfo.packageName = system.packageName;
break; break;
} }
} }

View File

@ -144,7 +144,7 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
} }
}; };
private ApplicationInfo selectedInfo; private ApplicationInfo selectedApplicationInfo;
private boolean isLoaded = false; private boolean isLoaded = false;
private boolean enabled = true; private boolean enabled = true;
@ -300,7 +300,7 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
} }
public boolean onContextItemSelected(@NonNull MenuItem item) { public boolean onContextItemSelected(@NonNull MenuItem item) {
ApplicationInfo info = selectedInfo; var info = selectedApplicationInfo;
if (info == null) { if (info == null) {
return false; return false;
} }
@ -321,7 +321,11 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
ConfigManager.startActivityAsUserWithFeature(new Intent(ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", info.packageName, null)), module.userId); ConfigManager.startActivityAsUserWithFeature(new Intent(ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", info.packageName, null)), module.userId);
} else if (itemId == R.id.menu_force_stop) { } else if (itemId == R.id.menu_force_stop) {
if (info.packageName.equals("system")) { if (info.packageName.equals("system")) {
ConfigManager.reboot(); new BlurBehindDialogBuilder(activity, R.style.ThemeOverlay_MaterialAlertDialog_Centered_FullWidthButtons)
.setTitle(R.string.reboot)
.setPositiveButton(android.R.string.ok, (dialog, which) -> ConfigManager.reboot())
.setNegativeButton(android.R.string.cancel, null)
.show();
} else { } else {
new BlurBehindDialogBuilder(activity, R.style.ThemeOverlay_MaterialAlertDialog_Centered_FullWidthButtons) new BlurBehindDialogBuilder(activity, R.style.ThemeOverlay_MaterialAlertDialog_Centered_FullWidthButtons)
.setTitle(R.string.force_stop_dlg_title) .setTitle(R.string.force_stop_dlg_title)
@ -346,34 +350,26 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
menu.findItem(R.id.item_filter_modules).setChecked(preferences.getBoolean("filter_modules", true)); menu.findItem(R.id.item_filter_modules).setChecked(preferences.getBoolean("filter_modules", true));
menu.findItem(R.id.item_filter_denylist).setChecked(preferences.getBoolean("filter_denylist", false)); menu.findItem(R.id.item_filter_denylist).setChecked(preferences.getBoolean("filter_denylist", false));
switch (preferences.getInt("list_sort", 0)) { switch (preferences.getInt("list_sort", 0)) {
case 7: case 7 -> {
menu.findItem(R.id.item_sort_by_update_time).setChecked(true); menu.findItem(R.id.item_sort_by_update_time).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true); menu.findItem(R.id.reverse).setChecked(true);
break; }
case 6: case 6 -> menu.findItem(R.id.item_sort_by_update_time).setChecked(true);
menu.findItem(R.id.item_sort_by_update_time).setChecked(true); case 5 -> {
break;
case 5:
menu.findItem(R.id.item_sort_by_install_time).setChecked(true); menu.findItem(R.id.item_sort_by_install_time).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true); menu.findItem(R.id.reverse).setChecked(true);
break; }
case 4: case 4 -> menu.findItem(R.id.item_sort_by_install_time).setChecked(true);
menu.findItem(R.id.item_sort_by_install_time).setChecked(true); case 3 -> {
break;
case 3:
menu.findItem(R.id.item_sort_by_package_name).setChecked(true); menu.findItem(R.id.item_sort_by_package_name).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true); menu.findItem(R.id.reverse).setChecked(true);
break; }
case 2: case 2 -> menu.findItem(R.id.item_sort_by_package_name).setChecked(true);
menu.findItem(R.id.item_sort_by_package_name).setChecked(true); case 1 -> {
break;
case 1:
menu.findItem(R.id.item_sort_by_name).setChecked(true); menu.findItem(R.id.item_sort_by_name).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true); menu.findItem(R.id.reverse).setChecked(true);
break; }
case 0: case 0 -> menu.findItem(R.id.item_sort_by_name).setChecked(true);
menu.findItem(R.id.item_sort_by_name).setChecked(true);
break;
} }
} }
@ -418,7 +414,6 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
} else { } else {
holder.appVersionName.setVisibility(View.VISIBLE); holder.appVersionName.setVisibility(View.VISIBLE);
holder.appPackageName.setText(appInfo.packageName); holder.appPackageName.setText(appInfo.packageName);
} }
holder.appPackageName.setVisibility(View.VISIBLE); holder.appPackageName.setVisibility(View.VISIBLE);
holder.appVersionName.setText(activity.getString(R.string.app_version, appInfo.packageInfo.versionName)); holder.appVersionName.setText(activity.getString(R.string.app_version, appInfo.packageInfo.versionName));
@ -481,7 +476,7 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
}); });
holder.itemView.setOnLongClickListener(v -> { holder.itemView.setOnLongClickListener(v -> {
fragment.searchView.clearFocus(); fragment.searchView.clearFocus();
selectedInfo = appInfo.applicationInfo; selectedApplicationInfo = appInfo.applicationInfo;
return false; return false;
}); });
} }