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);
if (ris.size() <= 0) {
if (ris.size() == 0) {
return getLaunchIntentForPackage(packageName, userId);
}
@ -73,14 +73,14 @@ public class AppHelper {
intentToResolve.setPackage(packageName);
List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
if (ris.size() <= 0) {
if (ris.size() == 0) {
intentToResolve.removeCategory(Intent.CATEGORY_INFO);
intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
intentToResolve.setPackage(packageName);
ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
}
if (ris.size() <= 0) {
if (ris.size() == 0) {
return null;
}
@ -117,25 +117,20 @@ public class AppHelper {
public static Comparator<PackageInfo> getAppListComparator(int sort, PackageManager pm) {
ApplicationInfo.DisplayNameComparator displayNameComparator = new ApplicationInfo.DisplayNameComparator(pm);
switch (sort) {
case 7:
return Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime));
case 6:
return Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime);
case 5:
return Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime));
case 4:
return Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime);
case 3:
return Collections.reverseOrder(Comparator.comparing(a -> a.packageName));
case 2:
return Comparator.comparing(a -> a.packageName);
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);
}
return switch (sort) {
case 7 ->
Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime));
case 6 -> Comparator.comparingLong((PackageInfo a) -> a.lastUpdateTime);
case 5 ->
Collections.reverseOrder(Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime));
case 4 -> Comparator.comparingLong((PackageInfo a) -> a.firstInstallTime);
case 3 -> Collections.reverseOrder(Comparator.comparing(a -> a.packageName));
case 2 -> Comparator.comparing(a -> a.packageName);
case 1 ->
Collections.reverseOrder((PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo));
default ->
(PackageInfo a, PackageInfo b) -> displayNameComparator.compare(a.applicationInfo, b.applicationInfo);
};
}
synchronized public static List<PackageInfo> getAppList(boolean force) {
@ -149,6 +144,7 @@ public class AppHelper {
p.setDataPosition(0);
system = PackageInfo.CREATOR.createFromParcel(p);
system.packageName = "system";
system.applicationInfo.packageName = system.packageName;
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 enabled = true;
@ -300,7 +300,7 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
}
public boolean onContextItemSelected(@NonNull MenuItem item) {
ApplicationInfo info = selectedInfo;
var info = selectedApplicationInfo;
if (info == null) {
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);
} else if (itemId == R.id.menu_force_stop) {
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 {
new BlurBehindDialogBuilder(activity, R.style.ThemeOverlay_MaterialAlertDialog_Centered_FullWidthButtons)
.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_denylist).setChecked(preferences.getBoolean("filter_denylist", false));
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.reverse).setChecked(true);
break;
case 6:
menu.findItem(R.id.item_sort_by_update_time).setChecked(true);
break;
case 5:
}
case 6 -> menu.findItem(R.id.item_sort_by_update_time).setChecked(true);
case 5 -> {
menu.findItem(R.id.item_sort_by_install_time).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true);
break;
case 4:
menu.findItem(R.id.item_sort_by_install_time).setChecked(true);
break;
case 3:
}
case 4 -> menu.findItem(R.id.item_sort_by_install_time).setChecked(true);
case 3 -> {
menu.findItem(R.id.item_sort_by_package_name).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true);
break;
case 2:
menu.findItem(R.id.item_sort_by_package_name).setChecked(true);
break;
case 1:
}
case 2 -> menu.findItem(R.id.item_sort_by_package_name).setChecked(true);
case 1 -> {
menu.findItem(R.id.item_sort_by_name).setChecked(true);
menu.findItem(R.id.reverse).setChecked(true);
break;
case 0:
menu.findItem(R.id.item_sort_by_name).setChecked(true);
break;
}
case 0 -> menu.findItem(R.id.item_sort_by_name).setChecked(true);
}
}
@ -418,7 +414,6 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<Scope
} else {
holder.appVersionName.setVisibility(View.VISIBLE);
holder.appPackageName.setText(appInfo.packageName);
}
holder.appPackageName.setVisibility(View.VISIBLE);
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 -> {
fragment.searchView.clearFocus();
selectedInfo = appInfo.applicationInfo;
selectedApplicationInfo = appInfo.applicationInfo;
return false;
});
}