diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 6a906719d3fa2..19c666459723d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -865,6 +865,10 @@ public class ApplicationsState { void handleRebuildList() { AppFilter filter; Comparator comparator; + + if (!mResumed) { + return; + } synchronized (mRebuildSync) { if (!mRebuildRequested) { return; @@ -1069,8 +1073,8 @@ public class ApplicationsState { } } if (rebuildingSessions != null) { - for (int i = 0; i < rebuildingSessions.size(); i++) { - rebuildingSessions.get(i).handleRebuildList(); + for (Session session : rebuildingSessions) { + session.handleRebuildList(); } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java index f8697a19c7abe..95a4f69b287ca 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java @@ -269,7 +269,7 @@ public class ApplicationsStateRoboTest { } @Test - public void testDefaultSessionLoadsAll() { + public void testDefaultSession_isResumed_LoadsAll() { mSession.onResume(); addApp(HOME_PACKAGE_NAME, 1); @@ -295,6 +295,19 @@ public class ApplicationsStateRoboTest { assertThat(launchableEntry.launcherEntryEnabled).isTrue(); } + @Test + public void testDefaultSession_isPaused_NotLoadsAll() { + mSession.onResume(); + + addApp(HOME_PACKAGE_NAME, 1); + addApp(LAUNCHABLE_PACKAGE_NAME, 2); + mSession.mResumed = false; + mSession.rebuild(ApplicationsState.FILTER_EVERYTHING, ApplicationsState.SIZE_COMPARATOR); + processAllMessages(); + + verify(mCallbacks, never()).onRebuildComplete(mAppEntriesCaptor.capture()); + } + @Test public void testCustomSessionLoadsIconsOnly() { mSession.setSessionFlags(ApplicationsState.FLAG_SESSION_REQUEST_ICONS);