Move category refresh call into a separeate method.
By default we no longer refresh category with each setTileEnabled.
Instead app will call update after all setTileEnabled are called.
This saves a lot of async task execution when Settings app starts
Bug: 34103984
Test: RunSettingsRoboTest (no regresssion)
Change-Id: I71ddcdb3e1fc0df6cacb53583a4f7e8ae8d675f1
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
index 37f2fe9..6010621 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
@@ -377,11 +377,17 @@
? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
- if (isDashboardFeatureEnabled()) {
- new CategoriesUpdateTask().execute();
- } else {
- new CategoriesUpdater().execute();
- }
+ }
+ }
+
+ /**
+ * Updates dashboard categories. Only necessary to call this after setTileEnabled
+ */
+ public void updateCategories() {
+ if (isDashboardFeatureEnabled()) {
+ new CategoriesUpdateTask().execute();
+ } else {
+ new CategoriesUpdater().execute();
}
}