From 93be46ce5e1ccc1855d580b5077c1cf0f6b4225f Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Wed, 26 Apr 2017 16:30:47 -0700 Subject: [PATCH] Refresh the App Info option menu after unintalling app updates. When we are done uninstalling app updates, invalidate the options menu so that it will be rebuilt and the correct available menu items will be shown. Change-Id: I485fe9ff129ac0b2d75094c3b899bf6553e54c74 Fix: 36407258 Test: make RunSettingsRoboTests --- .../settings/applications/InstalledAppDetails.java | 3 +++ .../settings/applications/InstalledAppDetailsTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+) 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(); + } }