diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index c0d2dd88c4e..e9b7481d0e4 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -526,6 +526,9 @@ public class InstalledAppDetails extends AppInfoBase super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_UNINSTALL: + // Refresh option menu + getActivity().invalidateOptionsMenu(); + if (mDisableAfterUninstall) { mDisableAfterUninstall = false; new DisableChanger(this, mAppEntry.info, diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java index 6cf4a599f7c..17910bf37c5 100644 --- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java +++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java @@ -31,6 +31,7 @@ import static org.mockito.Mockito.when; import android.app.AlertDialog; import android.app.admin.DevicePolicyManager; import android.content.Context; +import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -378,4 +379,13 @@ public final class InstalledAppDetailsTest { verify(mockPreferenceScreen, times(1)) .removePreference(mockAppDomainsPref); } + + @Test + public void onActivityResult_uninstalledUpdates_shouldInvalidateOptionsMenu() { + doReturn(true).when(mAppDetail).refreshUi(); + + mAppDetail.onActivityResult(InstalledAppDetails.REQUEST_UNINSTALL, 0, mock(Intent.class)); + + verify(mActivity).invalidateOptionsMenu(); + } }