Add initialize helper method to improve readability

This CL also reduces SearchIndexableResources class about 1kB.

Test: Added Robolectric test. "make RunSettingsRoboTests" passed.
Change-Id: Id7f7676e175db4aba0be23c0c1a3fc12dd6acc2e
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 7888c0f..7acac97 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -17,6 +17,9 @@
 package com.android.settings.search;
 
 import android.provider.SearchIndexableResource;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.VisibleForTesting;
+import android.support.annotation.XmlRes;
 import com.android.settings.DateTimeSettings;
 import com.android.settings.DevelopmentSettings;
 import com.android.settings.DeviceInfoSettings;
@@ -64,292 +67,71 @@
 
 public final class SearchIndexableResources {
 
-    public static int NO_DATA_RES_ID = 0;
+    @XmlRes
+    public static final int NO_DATA_RES_ID = 0;
 
-    private static HashMap<String, SearchIndexableResource> sResMap =
-            new HashMap<String, SearchIndexableResource>();
+    private static final HashMap<String, SearchIndexableResource> sResMap = new HashMap<>();
+
+    @VisibleForTesting
+    static void addIndex(Class<?> indexClass, @XmlRes int xmlResId,
+            @DrawableRes int iconResId) {
+        String className = indexClass.getName();
+        int rank = Ranking.getRankForClassName(className);
+        sResMap.put(className, new SearchIndexableResource(rank, xmlResId, className, iconResId));
+    }
 
     static {
-        sResMap.put(WifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WifiSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(AdvancedWifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AdvancedWifiSettings.class.getName()),
-                        R.xml.wifi_advanced_settings,
-                        AdvancedWifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(SavedAccessPointsWifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SavedAccessPointsWifiSettings.class.getName()),
-                        R.xml.wifi_display_saved_access_points,
-                        SavedAccessPointsWifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(BluetoothSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(BluetoothSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        BluetoothSettings.class.getName(),
-                        R.drawable.ic_settings_bluetooth));
-
-        sResMap.put(SimSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SimSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SimSettings.class.getName(),
-                        R.drawable.ic_sim_sd));
-
-        sResMap.put(DataUsageSummary.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DataUsageSummary.class.getName()),
-                        NO_DATA_RES_ID,
-                        DataUsageSummary.class.getName(),
-                        R.drawable.ic_settings_data_usage));
-
-        sResMap.put(DataUsageMeteredSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DataUsageMeteredSettings.class.getName(),
-                        R.drawable.ic_settings_data_usage));
-
-        sResMap.put(WirelessSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WirelessSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WirelessSettings.class.getName(),
-                        R.drawable.ic_settings_more));
-
-        sResMap.put(ScreenZoomSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScreenZoomSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        ScreenZoomSettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(DisplaySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DisplaySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DisplaySettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(WallpaperTypeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WallpaperTypeSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WallpaperTypeSettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(ConfigureNotificationSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ConfigureNotificationSettings.class.getName()),
-                        R.xml.configure_notification_settings,
-                        ConfigureNotificationSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(SoundSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SoundSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SoundSettings.class.getName(),
-                        R.drawable.ic_settings_sound));
-
-        sResMap.put(OtherSoundSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(OtherSoundSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        OtherSoundSettings.class.getName(),
-                        R.drawable.ic_settings_sound));
-
-        sResMap.put(ZenModeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ZenModeSettings.class.getName()),
-                        R.xml.zen_mode_settings,
-                        ZenModeSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(ZenModePrioritySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ZenModePrioritySettings.class.getName()),
-                        R.xml.zen_mode_priority_settings,
-                        ZenModePrioritySettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(StorageSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(StorageSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        StorageSettings.class.getName(),
-                        R.drawable.ic_settings_storage));
-
-        sResMap.put(PowerUsageSummary.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PowerUsageSummary.class.getName()),
-                        R.xml.power_usage_summary,
-                        PowerUsageSummary.class.getName(),
-                        R.drawable.ic_settings_battery));
-
-        sResMap.put(BatterySaverSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
-                        R.xml.battery_saver_settings,
-                        BatterySaverSettings.class.getName(),
-                        R.drawable.ic_settings_battery));
-
-        sResMap.put(AdvancedAppSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AdvancedAppSettings.class.getName(),
-                        R.drawable.ic_settings_applications));
-
-        sResMap.put(SpecialAccessSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SpecialAccessSettings.class.getName()),
-                        R.xml.special_access,
-                        SpecialAccessSettings.class.getName(),
-                        R.drawable.ic_settings_applications));
-
-        sResMap.put(UserSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(UserSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        UserSettings.class.getName(),
-                        R.drawable.ic_settings_multiuser));
-
-        sResMap.put(GestureSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(GestureSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        GestureSettings.class.getName(),
-                        R.drawable.ic_settings_gestures));
-
-        sResMap.put(LocationSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(LocationSettings.class.getName()),
-                        R.xml.location_settings,
-                        LocationSettings.class.getName(),
-                        R.drawable.ic_settings_location));
-
-        sResMap.put(ScanningSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScanningSettings.class.getName()),
-                        R.xml.location_scanning,
-                        ScanningSettings.class.getName(),
-                        R.drawable.ic_settings_location));
-
-        sResMap.put(SecuritySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SecuritySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SecuritySettings.class.getName(),
-                        R.drawable.ic_settings_security));
-
-        sResMap.put(ScreenPinningSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScreenPinningSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        ScreenPinningSettings.class.getName(),
-                        R.drawable.ic_settings_security));
-
-        sResMap.put(AccountSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AccountSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AccountSettings.class.getName(),
-                        R.drawable.ic_settings_accounts));
-
-        sResMap.put(InputMethodAndLanguageSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(InputMethodAndLanguageSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        InputMethodAndLanguageSettings.class.getName(),
-                        R.drawable.ic_settings_language));
-
-        sResMap.put(PrivacySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PrivacySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        PrivacySettings.class.getName(),
-                        R.drawable.ic_settings_backup));
-
-        sResMap.put(DateTimeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DateTimeSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DateTimeSettings.class.getName(),
-                        R.drawable.ic_settings_date_time));
-
-        sResMap.put(AccessibilitySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AccessibilitySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AccessibilitySettings.class.getName(),
-                        R.drawable.ic_settings_accessibility));
-
-        sResMap.put(PrintSettingsFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PrintSettingsFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        PrintSettingsFragment.class.getName(),
-                        R.drawable.ic_settings_print));
-
-        sResMap.put(DevelopmentSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DevelopmentSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DevelopmentSettings.class.getName(),
-                        R.drawable.ic_settings_development));
-
-        sResMap.put(DeviceInfoSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DeviceInfoSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DeviceInfoSettings.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(LegalSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(LegalSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        LegalSettings.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(ZenModeVisualInterruptionSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(
-                                ZenModeVisualInterruptionSettings.class.getName()),
-                        R.xml.zen_mode_visual_interruptions_settings,
-                        ZenModeVisualInterruptionSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(SystemDashboardFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SystemDashboardFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        SystemDashboardFragment.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(StorageDashboardFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(StorageDashboardFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        StorageDashboardFragment.class.getName(),
-                        R.drawable.ic_settings_storage));
-
-        sResMap.put(EnterprisePrivacySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(EnterprisePrivacySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        EnterprisePrivacySettings.class.getName(),
-                        R.drawable.ic_settings_about));
+        addIndex(WifiSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_wireless);
+        addIndex(AdvancedWifiSettings.class,
+                 R.xml.wifi_advanced_settings, R.drawable.ic_settings_wireless);
+        addIndex(SavedAccessPointsWifiSettings.class,
+                 R.xml.wifi_display_saved_access_points, R.drawable.ic_settings_wireless);
+        addIndex(BluetoothSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_bluetooth);
+        addIndex(SimSettings.class, NO_DATA_RES_ID, R.drawable.ic_sim_sd);
+        addIndex(DataUsageSummary.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+        addIndex(DataUsageMeteredSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+        addIndex(WirelessSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_more);
+        addIndex(ScreenZoomSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(DisplaySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(WallpaperTypeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(ConfigureNotificationSettings.class,
+                 R.xml.configure_notification_settings, R.drawable.ic_settings_notifications);
+        addIndex(SoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+        addIndex(OtherSoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+        addIndex(ZenModeSettings.class,
+                 R.xml.zen_mode_settings, R.drawable.ic_settings_notifications);
+        addIndex(ZenModePrioritySettings.class,
+                 R.xml.zen_mode_priority_settings, R.drawable.ic_settings_notifications);
+        addIndex(StorageSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+        addIndex(PowerUsageSummary.class,
+                 R.xml.power_usage_summary, R.drawable.ic_settings_battery);
+        addIndex(BatterySaverSettings.class,
+                 R.xml.battery_saver_settings, R.drawable.ic_settings_battery);
+        addIndex(AdvancedAppSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
+        addIndex(SpecialAccessSettings.class,
+                 R.xml.special_access, R.drawable.ic_settings_applications);
+        addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
+        addIndex(GestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(LocationSettings.class, R.xml.location_settings, R.drawable.ic_settings_location);
+        addIndex(ScanningSettings.class, R.xml.location_scanning, R.drawable.ic_settings_location);
+        addIndex(SecuritySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+        addIndex(ScreenPinningSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+        addIndex(AccountSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accounts);
+        addIndex(InputMethodAndLanguageSettings.class,
+                 NO_DATA_RES_ID, R.drawable.ic_settings_language);
+        addIndex(PrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_backup);
+        addIndex(DateTimeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_date_time);
+        addIndex(AccessibilitySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accessibility);
+        addIndex(PrintSettingsFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_print);
+        addIndex(DevelopmentSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_development);
+        addIndex(DeviceInfoSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(LegalSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(ZenModeVisualInterruptionSettings.class,
+                 R.xml.zen_mode_visual_interruptions_settings,
+                 R.drawable.ic_settings_notifications);
+        addIndex(SystemDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(StorageDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+        addIndex(EnterprisePrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
     }
 
     private SearchIndexableResources() {