diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 16621f49302..c0d2dd88c4e 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -454,6 +454,10 @@ public class InstalledAppDetails extends AppInfoBase @Override public void onPackageSizeChanged(String packageName) { + if (!TextUtils.equals(packageName, mPackageName)) { + Log.d(LOG_TAG, "Package change irrelevant, skipping"); + return; + } refreshUi(); } diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java index 9c91ccfcb05..6cf4a599f7c 100644 --- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java +++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java @@ -18,7 +18,6 @@ package com.android.settings.applications; import static com.google.common.truth.Truth.assertThat; - import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doReturn; @@ -69,6 +68,9 @@ import org.robolectric.util.ReflectionHelpers; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public final class InstalledAppDetailsTest { + + private static final String PACKAGE_NAME = "test_package_name"; + @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext; @Mock @@ -181,6 +183,24 @@ public final class InstalledAppDetailsTest { verify(mActivity, never()).finishAndRemoveTask(); } + @Test + public void packageSizeChange_isOtherPackage_shouldNotRefreshUi() { + ReflectionHelpers.setField(mAppDetail, "mPackageName", PACKAGE_NAME); + mAppDetail.onPackageSizeChanged("Not_" + PACKAGE_NAME); + + verify(mAppDetail, never()).refreshUi(); + } + + @Test + public void packageSizeChange_isOwnPackage_shouldRefreshUi() { + doReturn(Boolean.TRUE).when(mAppDetail).refreshUi(); + ReflectionHelpers.setField(mAppDetail, "mPackageName", PACKAGE_NAME); + + mAppDetail.onPackageSizeChanged(PACKAGE_NAME); + + verify(mAppDetail).refreshUi(); + } + @Test public void launchPowerUsageDetailFragment_shouldNotCrash() { mAppDetail.mBatteryPreference = mBatteryPreference;