Loading src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +33 −0 Original line number Diff line number Diff line Loading @@ -21,7 +21,9 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.Activity; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; Loading @@ -29,6 +31,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.net.Uri; import android.os.Bundle; Loading Loading @@ -388,6 +391,13 @@ public class AppInfoDashboardFragment extends DashboardFragment super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_UNINSTALL) { // Refresh option menu if (mAppEntry.info.packageName.equals("com.google.android.gms")){ Intent broadcastIntent = new Intent(); broadcastIntent.setAction("foundation.e.apps"); broadcastIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); sendImplicitBroadcast(getActivity(),broadcastIntent,"foundation.e.apps"); } getActivity().invalidateOptionsMenu(); } if (mAppButtonsPreferenceController != null) { Loading @@ -395,6 +405,28 @@ public class AppInfoDashboardFragment extends DashboardFragment } } private void sendImplicitBroadcast(Context ctxt, Intent intent,String application) { try { PackageManager pm = ctxt.getPackageManager(); List<ResolveInfo> matches = pm.queryBroadcastReceivers(intent, 0); for (ResolveInfo resolveInfo : matches) { Intent explicit = new Intent(intent); if (resolveInfo.activityInfo.packageName.equals(application)) { ComponentName cn = new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name); explicit.setComponent(cn); ctxt.sendBroadcast(explicit); break; } } }catch (ActivityNotFoundException e){ e.printStackTrace(); } } @Override public void handleDialogClick(int id) { if (mAppButtonsPreferenceController != null) { Loading Loading @@ -479,6 +511,7 @@ public class AppInfoDashboardFragment extends DashboardFragment final Uri packageURI = Uri.parse("package:" + packageName); final Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI); uninstallIntent.putExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, allUsers); uninstallIntent.putExtra("packageName", packageName); mMetricsFeatureProvider.action( getContext(), SettingsEnums.ACTION_SETTINGS_UNINSTALL_APP); startActivityForResult(uninstallIntent, REQUEST_UNINSTALL); Loading Loading
src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +33 −0 Original line number Diff line number Diff line Loading @@ -21,7 +21,9 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.Activity; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; Loading @@ -29,6 +31,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.net.Uri; import android.os.Bundle; Loading Loading @@ -388,6 +391,13 @@ public class AppInfoDashboardFragment extends DashboardFragment super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_UNINSTALL) { // Refresh option menu if (mAppEntry.info.packageName.equals("com.google.android.gms")){ Intent broadcastIntent = new Intent(); broadcastIntent.setAction("foundation.e.apps"); broadcastIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); sendImplicitBroadcast(getActivity(),broadcastIntent,"foundation.e.apps"); } getActivity().invalidateOptionsMenu(); } if (mAppButtonsPreferenceController != null) { Loading @@ -395,6 +405,28 @@ public class AppInfoDashboardFragment extends DashboardFragment } } private void sendImplicitBroadcast(Context ctxt, Intent intent,String application) { try { PackageManager pm = ctxt.getPackageManager(); List<ResolveInfo> matches = pm.queryBroadcastReceivers(intent, 0); for (ResolveInfo resolveInfo : matches) { Intent explicit = new Intent(intent); if (resolveInfo.activityInfo.packageName.equals(application)) { ComponentName cn = new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name); explicit.setComponent(cn); ctxt.sendBroadcast(explicit); break; } } }catch (ActivityNotFoundException e){ e.printStackTrace(); } } @Override public void handleDialogClick(int id) { if (mAppButtonsPreferenceController != null) { Loading Loading @@ -479,6 +511,7 @@ public class AppInfoDashboardFragment extends DashboardFragment final Uri packageURI = Uri.parse("package:" + packageName); final Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI); uninstallIntent.putExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, allUsers); uninstallIntent.putExtra("packageName", packageName); mMetricsFeatureProvider.action( getContext(), SettingsEnums.ACTION_SETTINGS_UNINSTALL_APP); startActivityForResult(uninstallIntent, REQUEST_UNINSTALL); Loading