OSDN Git Service

Refresh the App Info option menu after unintalling app updates.
authorDoris Ling <dling@google.com>
Wed, 26 Apr 2017 23:30:47 +0000 (16:30 -0700)
committerDoris Ling <dling@google.com>
Wed, 26 Apr 2017 23:35:38 +0000 (16:35 -0700)
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

src/com/android/settings/applications/InstalledAppDetails.java
tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java

index c0d2dd8..e9b7481 100755 (executable)
@@ -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,
index 6cf4a59..17910bf 100644 (file)
@@ -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();
+    }
 }