[app] Fix get launch intent

This commit is contained in:
tehcneko 2021-05-21 14:42:18 +08:00 committed by LoveSy
parent e2bb7d42f2
commit c0b556f2d8
3 changed files with 6 additions and 23 deletions

View File

@ -40,7 +40,7 @@ public class AppHelper {
public static final String SETTINGS_CATEGORY = "de.robv.android.xposed.category.MODULE_SETTINGS";
private static List<PackageInfo> appList;
public static Intent getSettingsIntent(String packageName, int userId, PackageManager packageManager) {
public static Intent getSettingsIntent(String packageName, int userId) {
Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
intentToResolve.addCategory(SETTINGS_CATEGORY);
intentToResolve.setPackage(packageName);
@ -82,23 +82,6 @@ public class AppHelper {
return intent;
}
public static Intent getIntentForCategory(String packageName, int userId, PackageManager packageManager, String category) {
Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
intentToResolve.addCategory(category);
intentToResolve.setPackage(packageName);
List<ResolveInfo> ris = ConfigManager.queryIntentActivitiesAsUser(intentToResolve, 0, userId);
if (ris.size() <= 0) {
return null;
}
Intent intent = new Intent(intentToResolve);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName(ris.get(0).activityInfo.packageName, ris.get(0).activityInfo.name);
return intent;
}
public static boolean onOptionsItemSelected(MenuItem item, SharedPreferences preferences) {
int itemId = item.getItemId();
if (itemId == R.id.item_sort_by_name) {

View File

@ -255,7 +255,7 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
item.setChecked(!item.isChecked());
preferences.edit().putBoolean("filter_modules", item.isChecked()).apply();
} else if (itemId == R.id.menu_launch) {
Intent launchIntent = AppHelper.getSettingsIntent(module.packageName, module.userId, pm);
Intent launchIntent = AppHelper.getSettingsIntent(module.packageName, module.userId);
if (launchIntent != null) {
ConfigManager.startActivityAsUserWithFeature(launchIntent, module.userId);
} else {
@ -288,7 +288,7 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
}
int itemId = item.getItemId();
if (itemId == R.id.menu_launch) {
Intent launchIntent = pm.getLaunchIntentForPackage(info.packageName);
Intent launchIntent = AppHelper.getLaunchIntentForPackage(info.packageName, info.uid / 100000);
if (launchIntent != null) {
ConfigManager.startActivityAsUserWithFeature(launchIntent, module.userId);
}
@ -324,7 +324,7 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.menu_app_list, menu);
Intent intent = AppHelper.getSettingsIntent(module.packageName, module.userId, pm);
Intent intent = AppHelper.getSettingsIntent(module.packageName, module.userId);
if (intent == null) {
menu.removeItem(R.id.menu_launch);
}

View File

@ -301,7 +301,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi
if (packageName == null) {
return false;
}
Intent intent = AppHelper.getSettingsIntent(packageName, module.userId, pm);
Intent intent = AppHelper.getSettingsIntent(packageName, module.userId);
if (intent != null) {
ConfigManager.startActivityAsUserWithFeature(intent, module.userId);
} else {
@ -491,7 +491,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi
holder.itemView.setOnCreateContextMenuListener((menu, v, menuInfo) -> {
getMenuInflater().inflate(R.menu.context_menu_modules, menu);
menu.setHeaderTitle(item.getAppName());
Intent intent = AppHelper.getSettingsIntent(item.packageName, item.userId, pm);
Intent intent = AppHelper.getSettingsIntent(item.packageName, item.userId);
if (intent == null) {
menu.removeItem(R.id.menu_launch);
}