Ensure loading all apps once in ManageApplications

Some pages that extend ManageApplications always display a loading
spinner when entering them. This is caused by that it takes over
100 ms to load all apps and to sort the apps. In addition, the task of
loading all apps might be invoked twice, which caused loading time
increasing.

This CL is to make sure the task of loading all apps execute only once
in those pages that extend ManageApplications.

Bug: 222985623
Test: manual test
Change-Id: I3b15bf2eee2a4c220f42da39a29f0014cc620898
This commit is contained in:
Mill Chen
2022-05-04 17:51:10 +08:00
parent 261936eccf
commit fdbf748dc0
6 changed files with 19 additions and 8 deletions

View File

@@ -36,6 +36,8 @@ public abstract class AppStateBaseBridge implements ApplicationsState.Callbacks
protected final BackgroundHandler mHandler;
protected final MainHandler mMainHandler;
private boolean mForceLoadAllApps;
public AppStateBaseBridge(ApplicationsState appState, Callback callback) {
mAppState = appState;
mAppSession = mAppState != null ? mAppState.newSession(this) : null;
@@ -48,13 +50,22 @@ public abstract class AppStateBaseBridge implements ApplicationsState.Callbacks
mMainHandler = new MainHandler(Looper.getMainLooper());
}
public void resume() {
public void resume(boolean forceLoadAllApps) {
mForceLoadAllApps = forceLoadAllApps;
mHandler.sendEmptyMessage(BackgroundHandler.MSG_LOAD_ALL);
if (mForceLoadAllApps) {
mAppSession.onResume();
} else {
mAppSession.activateSession();
}
}
public void pause() {
if (mForceLoadAllApps) {
mAppSession.onPause();
} else {
mAppSession.deactivateSession();
}
}
public void release() {

View File

@@ -74,7 +74,7 @@ public class SpecialAppAccessPreferenceController extends BasePreferenceControll
@Override
public void onStart() {
mDataUsageBridge.resume();
mDataUsageBridge.resume(true /* forceLoadAllApps */);
}
@Override

View File

@@ -1176,7 +1176,7 @@ public class ManageApplications extends InstrumentedFragment
mSession.onResume();
mLastSortMode = sort;
if (mExtraInfoBridge != null) {
mExtraInfoBridge.resume();
mExtraInfoBridge.resume(false /* forceLoadAllApps */);
}
rebuild();
} else {

View File

@@ -74,7 +74,7 @@ public class PremiumSmsAccess extends EmptyTextSettings
@Override
public void onResume() {
super.onResume();
mSmsBackend.resume();
mSmsBackend.resume(true /* forceLoadAllApps */);
}
@Override

View File

@@ -83,7 +83,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
mDataSaverBackend.refreshAllowlist();
mDataSaverBackend.refreshDenylist();
mDataSaverBackend.addListener(this);
mDataUsageBridge.resume();
mDataUsageBridge.resume(true /* forceLoadAllApps */);
}
@Override

View File

@@ -91,7 +91,7 @@ public class UnrestrictedDataAccessPreferenceController extends BasePreferenceCo
@Override
public void onStart() {
mDataUsageBridge.resume();
mDataUsageBridge.resume(true /* forceLoadAllApps */);
}
@Override