diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 597884b1c232d35547ce7cd5a15aea049cbedf34..d9140f55d0316aa7dccde75f453928ef65a14d61 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -24,7 +24,9 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.admin.DevicePolicyManager; +import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -33,6 +35,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.AsyncTask; @@ -378,6 +381,15 @@ public class AppInfoDashboardFragment extends DashboardFragment switch (requestCode) { case 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 (mDisableAfterUninstall) { @@ -402,6 +414,29 @@ public class AppInfoDashboardFragment extends DashboardFragment } } + private void sendImplicitBroadcast(Context ctxt, Intent intent,String application) { + try { + PackageManager pm = ctxt.getPackageManager(); + List 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(); + } + } + + @VisibleForTesting boolean shouldShowUninstallForAll(AppEntry appEntry) { boolean showIt = true;