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();
         }
     }