Home | History | Annotate | Download | only in search
      1 /*
      2  * Copyright (C) 2014 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.settings.search;
     18 
     19 import android.provider.SearchIndexableResource;
     20 import com.android.settings.DateTimeSettings;
     21 import com.android.settings.DevelopmentSettings;
     22 import com.android.settings.DeviceInfoSettings;
     23 import com.android.settings.DisplaySettings;
     24 import com.android.settings.LegalSettings;
     25 import com.android.settings.PrivacySettings;
     26 import com.android.settings.R;
     27 import com.android.settings.ScreenPinningSettings;
     28 import com.android.settings.SecuritySettings;
     29 import com.android.settings.WallpaperTypeSettings;
     30 import com.android.settings.WirelessSettings;
     31 import com.android.settings.accessibility.AccessibilitySettings;
     32 import com.android.settings.accounts.AccountSettings;
     33 import com.android.settings.applications.AdvancedAppSettings;
     34 import com.android.settings.applications.SpecialAccessSettings;
     35 import com.android.settings.bluetooth.BluetoothSettings;
     36 import com.android.settings.datausage.DataUsageMeteredSettings;
     37 import com.android.settings.datausage.DataUsageSummary;
     38 import com.android.settings.deviceinfo.StorageSettings;
     39 import com.android.settings.display.ScreenZoomSettings;
     40 import com.android.settings.fuelgauge.BatterySaverSettings;
     41 import com.android.settings.fuelgauge.PowerUsageSummary;
     42 import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
     43 import com.android.settings.location.LocationSettings;
     44 import com.android.settings.location.ScanningSettings;
     45 import com.android.settings.notification.ConfigureNotificationSettings;
     46 import com.android.settings.notification.OtherSoundSettings;
     47 import com.android.settings.notification.SoundSettings;
     48 import com.android.settings.notification.ZenModePrioritySettings;
     49 import com.android.settings.notification.ZenModeSettings;
     50 import com.android.settings.notification.ZenModeVisualInterruptionSettings;
     51 import com.android.settings.print.PrintSettingsFragment;
     52 import com.android.settings.sim.SimSettings;
     53 import com.android.settings.users.UserSettings;
     54 import com.android.settings.wifi.AdvancedWifiSettings;
     55 import com.android.settings.wifi.SavedAccessPointsWifiSettings;
     56 import com.android.settings.wifi.WifiSettings;
     57 
     58 import java.util.Collection;
     59 import java.util.HashMap;
     60 
     61 public final class SearchIndexableResources {
     62 
     63     public static int NO_DATA_RES_ID = 0;
     64 
     65     private static HashMap<String, SearchIndexableResource> sResMap =
     66             new HashMap<String, SearchIndexableResource>();
     67 
     68     static {
     69         sResMap.put(WifiSettings.class.getName(),
     70                 new SearchIndexableResource(
     71                         Ranking.getRankForClassName(WifiSettings.class.getName()),
     72                         NO_DATA_RES_ID,
     73                         WifiSettings.class.getName(),
     74                         R.drawable.ic_settings_wireless));
     75 
     76         sResMap.put(AdvancedWifiSettings.class.getName(),
     77                 new SearchIndexableResource(
     78                         Ranking.getRankForClassName(AdvancedWifiSettings.class.getName()),
     79                         R.xml.wifi_advanced_settings,
     80                         AdvancedWifiSettings.class.getName(),
     81                         R.drawable.ic_settings_wireless));
     82 
     83         sResMap.put(SavedAccessPointsWifiSettings.class.getName(),
     84                 new SearchIndexableResource(
     85                         Ranking.getRankForClassName(SavedAccessPointsWifiSettings.class.getName()),
     86                         R.xml.wifi_display_saved_access_points,
     87                         SavedAccessPointsWifiSettings.class.getName(),
     88                         R.drawable.ic_settings_wireless));
     89 
     90         sResMap.put(BluetoothSettings.class.getName(),
     91                 new SearchIndexableResource(
     92                         Ranking.getRankForClassName(BluetoothSettings.class.getName()),
     93                         NO_DATA_RES_ID,
     94                         BluetoothSettings.class.getName(),
     95                         R.drawable.ic_settings_bluetooth));
     96 
     97         sResMap.put(SimSettings.class.getName(),
     98                 new SearchIndexableResource(
     99                         Ranking.getRankForClassName(SimSettings.class.getName()),
    100                         NO_DATA_RES_ID,
    101                         SimSettings.class.getName(),
    102                         R.drawable.ic_sim_sd));
    103 
    104         sResMap.put(DataUsageSummary.class.getName(),
    105                 new SearchIndexableResource(
    106                         Ranking.getRankForClassName(DataUsageSummary.class.getName()),
    107                         NO_DATA_RES_ID,
    108                         DataUsageSummary.class.getName(),
    109                         R.drawable.ic_settings_data_usage));
    110 
    111         sResMap.put(DataUsageMeteredSettings.class.getName(),
    112                 new SearchIndexableResource(
    113                         Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()),
    114                         NO_DATA_RES_ID,
    115                         DataUsageMeteredSettings.class.getName(),
    116                         R.drawable.ic_settings_data_usage));
    117 
    118         sResMap.put(WirelessSettings.class.getName(),
    119                 new SearchIndexableResource(
    120                         Ranking.getRankForClassName(WirelessSettings.class.getName()),
    121                         NO_DATA_RES_ID,
    122                         WirelessSettings.class.getName(),
    123                         R.drawable.ic_settings_more));
    124 
    125         sResMap.put(ScreenZoomSettings.class.getName(),
    126                 new SearchIndexableResource(
    127                         Ranking.getRankForClassName(ScreenZoomSettings.class.getName()),
    128                         NO_DATA_RES_ID,
    129                         ScreenZoomSettings.class.getName(),
    130                         R.drawable.ic_settings_display));
    131 
    132         sResMap.put(DisplaySettings.class.getName(),
    133                 new SearchIndexableResource(
    134                         Ranking.getRankForClassName(DisplaySettings.class.getName()),
    135                         NO_DATA_RES_ID,
    136                         DisplaySettings.class.getName(),
    137                         R.drawable.ic_settings_display));
    138 
    139         sResMap.put(WallpaperTypeSettings.class.getName(),
    140                 new SearchIndexableResource(
    141                         Ranking.getRankForClassName(WallpaperTypeSettings.class.getName()),
    142                         NO_DATA_RES_ID,
    143                         WallpaperTypeSettings.class.getName(),
    144                         R.drawable.ic_settings_display));
    145 
    146         sResMap.put(ConfigureNotificationSettings.class.getName(),
    147                 new SearchIndexableResource(
    148                         Ranking.getRankForClassName(ConfigureNotificationSettings.class.getName()),
    149                         R.xml.configure_notification_settings,
    150                         ConfigureNotificationSettings.class.getName(),
    151                         R.drawable.ic_settings_notifications));
    152 
    153         sResMap.put(SoundSettings.class.getName(),
    154                 new SearchIndexableResource(
    155                         Ranking.getRankForClassName(SoundSettings.class.getName()),
    156                         NO_DATA_RES_ID,
    157                         SoundSettings.class.getName(),
    158                         R.drawable.ic_settings_sound));
    159 
    160         sResMap.put(OtherSoundSettings.class.getName(),
    161                 new SearchIndexableResource(
    162                         Ranking.getRankForClassName(OtherSoundSettings.class.getName()),
    163                         NO_DATA_RES_ID,
    164                         OtherSoundSettings.class.getName(),
    165                         R.drawable.ic_settings_sound));
    166 
    167         sResMap.put(ZenModeSettings.class.getName(),
    168                 new SearchIndexableResource(
    169                         Ranking.getRankForClassName(ZenModeSettings.class.getName()),
    170                         R.xml.zen_mode_settings,
    171                         ZenModeSettings.class.getName(),
    172                         R.drawable.ic_settings_notifications));
    173 
    174         sResMap.put(ZenModePrioritySettings.class.getName(),
    175                 new SearchIndexableResource(
    176                         Ranking.getRankForClassName(ZenModePrioritySettings.class.getName()),
    177                         R.xml.zen_mode_priority_settings,
    178                         ZenModePrioritySettings.class.getName(),
    179                         R.drawable.ic_settings_notifications));
    180 
    181         sResMap.put(StorageSettings.class.getName(),
    182                 new SearchIndexableResource(
    183                         Ranking.getRankForClassName(StorageSettings.class.getName()),
    184                         NO_DATA_RES_ID,
    185                         StorageSettings.class.getName(),
    186                         R.drawable.ic_settings_storage));
    187 
    188         sResMap.put(PowerUsageSummary.class.getName(),
    189                 new SearchIndexableResource(
    190                         Ranking.getRankForClassName(PowerUsageSummary.class.getName()),
    191                         R.xml.power_usage_summary,
    192                         PowerUsageSummary.class.getName(),
    193                         R.drawable.ic_settings_battery));
    194 
    195         sResMap.put(BatterySaverSettings.class.getName(),
    196                 new SearchIndexableResource(
    197                         Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
    198                         R.xml.battery_saver_settings,
    199                         BatterySaverSettings.class.getName(),
    200                         R.drawable.ic_settings_battery));
    201 
    202         sResMap.put(AdvancedAppSettings.class.getName(),
    203                 new SearchIndexableResource(
    204                         Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
    205                         NO_DATA_RES_ID,
    206                         AdvancedAppSettings.class.getName(),
    207                         R.drawable.ic_settings_applications));
    208 
    209         sResMap.put(SpecialAccessSettings.class.getName(),
    210                 new SearchIndexableResource(
    211                         Ranking.getRankForClassName(SpecialAccessSettings.class.getName()),
    212                         R.xml.special_access,
    213                         SpecialAccessSettings.class.getName(),
    214                         R.drawable.ic_settings_applications));
    215 
    216         sResMap.put(UserSettings.class.getName(),
    217                 new SearchIndexableResource(
    218                         Ranking.getRankForClassName(UserSettings.class.getName()),
    219                         NO_DATA_RES_ID,
    220                         UserSettings.class.getName(),
    221                         R.drawable.ic_settings_multiuser));
    222 
    223         sResMap.put(LocationSettings.class.getName(),
    224                 new SearchIndexableResource(
    225                         Ranking.getRankForClassName(LocationSettings.class.getName()),
    226                         R.xml.location_settings,
    227                         LocationSettings.class.getName(),
    228                         R.drawable.ic_settings_location));
    229 
    230         sResMap.put(ScanningSettings.class.getName(),
    231                 new SearchIndexableResource(
    232                         Ranking.getRankForClassName(ScanningSettings.class.getName()),
    233                         R.xml.location_scanning,
    234                         ScanningSettings.class.getName(),
    235                         R.drawable.ic_settings_location));
    236 
    237         sResMap.put(SecuritySettings.class.getName(),
    238                 new SearchIndexableResource(
    239                         Ranking.getRankForClassName(SecuritySettings.class.getName()),
    240                         NO_DATA_RES_ID,
    241                         SecuritySettings.class.getName(),
    242                         R.drawable.ic_settings_security));
    243 
    244         sResMap.put(ScreenPinningSettings.class.getName(),
    245                 new SearchIndexableResource(
    246                         Ranking.getRankForClassName(ScreenPinningSettings.class.getName()),
    247                         NO_DATA_RES_ID,
    248                         ScreenPinningSettings.class.getName(),
    249                         R.drawable.ic_settings_security));
    250 
    251         sResMap.put(AccountSettings.class.getName(),
    252                 new SearchIndexableResource(
    253                         Ranking.getRankForClassName(AccountSettings.class.getName()),
    254                         NO_DATA_RES_ID,
    255                         AccountSettings.class.getName(),
    256                         R.drawable.ic_settings_accounts));
    257 
    258         sResMap.put(InputMethodAndLanguageSettings.class.getName(),
    259                 new SearchIndexableResource(
    260                         Ranking.getRankForClassName(InputMethodAndLanguageSettings.class.getName()),
    261                         NO_DATA_RES_ID,
    262                         InputMethodAndLanguageSettings.class.getName(),
    263                         R.drawable.ic_settings_language));
    264 
    265         sResMap.put(PrivacySettings.class.getName(),
    266                 new SearchIndexableResource(
    267                         Ranking.getRankForClassName(PrivacySettings.class.getName()),
    268                         NO_DATA_RES_ID,
    269                         PrivacySettings.class.getName(),
    270                         R.drawable.ic_settings_backup));
    271 
    272         sResMap.put(DateTimeSettings.class.getName(),
    273                 new SearchIndexableResource(
    274                         Ranking.getRankForClassName(DateTimeSettings.class.getName()),
    275                         R.xml.date_time_prefs,
    276                         DateTimeSettings.class.getName(),
    277                         R.drawable.ic_settings_date_time));
    278 
    279         sResMap.put(AccessibilitySettings.class.getName(),
    280                 new SearchIndexableResource(
    281                         Ranking.getRankForClassName(AccessibilitySettings.class.getName()),
    282                         NO_DATA_RES_ID,
    283                         AccessibilitySettings.class.getName(),
    284                         R.drawable.ic_settings_accessibility));
    285 
    286         sResMap.put(PrintSettingsFragment.class.getName(),
    287                 new SearchIndexableResource(
    288                         Ranking.getRankForClassName(PrintSettingsFragment.class.getName()),
    289                         NO_DATA_RES_ID,
    290                         PrintSettingsFragment.class.getName(),
    291                         R.drawable.ic_settings_print));
    292 
    293         sResMap.put(DevelopmentSettings.class.getName(),
    294                 new SearchIndexableResource(
    295                         Ranking.getRankForClassName(DevelopmentSettings.class.getName()),
    296                         NO_DATA_RES_ID,
    297                         DevelopmentSettings.class.getName(),
    298                         R.drawable.ic_settings_development));
    299 
    300         sResMap.put(DeviceInfoSettings.class.getName(),
    301                 new SearchIndexableResource(
    302                         Ranking.getRankForClassName(DeviceInfoSettings.class.getName()),
    303                         NO_DATA_RES_ID,
    304                         DeviceInfoSettings.class.getName(),
    305                         R.drawable.ic_settings_about));
    306 
    307         sResMap.put(LegalSettings.class.getName(),
    308                 new SearchIndexableResource(
    309                         Ranking.getRankForClassName(LegalSettings.class.getName()),
    310                         NO_DATA_RES_ID,
    311                         LegalSettings.class.getName(),
    312                         R.drawable.ic_settings_about));
    313 
    314         sResMap.put(ZenModeVisualInterruptionSettings.class.getName(),
    315                 new SearchIndexableResource(
    316                         Ranking.getRankForClassName(
    317                                 ZenModeVisualInterruptionSettings.class.getName()),
    318                         R.xml.zen_mode_visual_interruptions_settings,
    319                         ZenModeVisualInterruptionSettings.class.getName(),
    320                         R.drawable.ic_settings_notifications));
    321     }
    322 
    323     private SearchIndexableResources() {
    324     }
    325 
    326     public static int size() {
    327         return sResMap.size();
    328     }
    329 
    330     public static SearchIndexableResource getResourceByName(String className) {
    331         return sResMap.get(className);
    332     }
    333 
    334     public static Collection<SearchIndexableResource> values() {
    335         return sResMap.values();
    336     }
    337 }
    338