[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"; public static final String SETTINGS_CATEGORY = "de.robv.android.xposed.category.MODULE_SETTINGS";
private static List<PackageInfo> appList; 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); Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
intentToResolve.addCategory(SETTINGS_CATEGORY); intentToResolve.addCategory(SETTINGS_CATEGORY);
intentToResolve.setPackage(packageName); intentToResolve.setPackage(packageName);
@ -82,23 +82,6 @@ public class AppHelper {
return intent; 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) { public static boolean onOptionsItemSelected(MenuItem item, SharedPreferences preferences) {
int itemId = item.getItemId(); int itemId = item.getItemId();
if (itemId == R.id.item_sort_by_name) { 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()); item.setChecked(!item.isChecked());
preferences.edit().putBoolean("filter_modules", item.isChecked()).apply(); preferences.edit().putBoolean("filter_modules", item.isChecked()).apply();
} else if (itemId == R.id.menu_launch) { } 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) { if (launchIntent != null) {
ConfigManager.startActivityAsUserWithFeature(launchIntent, module.userId); ConfigManager.startActivityAsUserWithFeature(launchIntent, module.userId);
} else { } else {
@ -288,7 +288,7 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
} }
int itemId = item.getItemId(); int itemId = item.getItemId();
if (itemId == R.id.menu_launch) { if (itemId == R.id.menu_launch) {
Intent launchIntent = pm.getLaunchIntentForPackage(info.packageName); Intent launchIntent = AppHelper.getLaunchIntentForPackage(info.packageName, info.uid / 100000);
if (launchIntent != null) { if (launchIntent != null) {
ConfigManager.startActivityAsUserWithFeature(launchIntent, module.userId); 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) { public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.menu_app_list, menu); 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) { if (intent == null) {
menu.removeItem(R.id.menu_launch); menu.removeItem(R.id.menu_launch);
} }

View File

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