[app] Fix get launch intent
This commit is contained in:
parent
e2bb7d42f2
commit
c0b556f2d8
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue