diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 766fa50acc5..8274634a01f 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -112,7 +112,8 @@ public class AppInfoDashboardFragment extends DashboardFragment private UserManager mUserManager; private PackageManager mPm; - private boolean mFinishing; + @VisibleForTesting + boolean mFinishing; private boolean mListeningToPackageRemove; @@ -544,7 +545,7 @@ public class AppInfoDashboardFragment extends DashboardFragment @VisibleForTesting void retrieveAppEntry() { final Activity activity = getActivity(); - if (activity == null) { + if (activity == null || mFinishing) { return; } if (mState == null) { @@ -650,7 +651,7 @@ public class AppInfoDashboardFragment extends DashboardFragment || TextUtils.equals(mAppEntry.info.packageName, packageName)) { onPackageRemoved(); } else if (mAppEntry.info.isResourceOverlay() - && TextUtils.equals(mPackageInfo.overlayTarget, packageName)) { + && TextUtils.equals(mPackageInfo.overlayTarget, packageName)) { refreshUi(); } } diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java index 56e59f7bd0e..e46cd06afe6 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java @@ -281,6 +281,13 @@ public final class AppInfoDashboardFragmentTest { assertThat(mFragment.createPreferenceControllers(mShadowContext)).isNull(); } + @Test + public void getPreferenceControllers_exiting_shouldReturnNull() { + mFragment.mFinishing = true; + + assertThat(mFragment.createPreferenceControllers(mShadowContext)).isNull(); + } + @Test public void getNumberOfUserWithPackageInstalled_twoUsersInstalled_shouldReturnTwo() throws PackageManager.NameNotFoundException {