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 
     21 import com.android.settings.DataUsageSummary;
     22 import com.android.settings.DateTimeSettings;
     23 import com.android.settings.DevelopmentSettings;
     24 import com.android.settings.DeviceInfoSettings;
     25 import com.android.settings.DisplaySettings;
     26 import com.android.settings.HomeSettings;
     27 import com.android.settings.LegalSettings;
     28 import com.android.settings.PrivacySettings;
     29 import com.android.settings.R;
     30 import com.android.settings.ScreenPinningSettings;
     31 import com.android.settings.SecuritySettings;
     32 import com.android.settings.WallpaperTypeSettings;
     33 import com.android.settings.WifiCallingSettings;
     34 import com.android.settings.WirelessSettings;
     35 import com.android.settings.accessibility.AccessibilitySettings;
     36 import com.android.settings.applications.AdvancedAppSettings;
     37 import com.android.settings.applications.ManageDefaultApps;
     38 import com.android.settings.bluetooth.BluetoothSettings;
     39 import com.android.settings.deviceinfo.StorageSettings;
     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.net.DataUsageMeteredSettings;
     46 import com.android.settings.notification.NotificationSettings;
     47 import com.android.settings.notification.OtherSoundSettings;
     48 import com.android.settings.notification.ZenModePrioritySettings;
     49 import com.android.settings.notification.ZenModeSettings;
     50 import com.android.settings.print.PrintSettingsFragment;
     51 import com.android.settings.sim.SimSettings;
     52 import com.android.settings.users.UserSettings;
     53 import com.android.settings.wifi.AdvancedWifiSettings;
     54 import com.android.settings.wifi.SavedAccessPointsWifiSettings;
     55 import com.android.settings.wifi.WifiSettings;
     56 
     57 import java.util.Collection;
     58 import java.util.HashMap;
     59 
     60 public final class SearchIndexableResources {
     61 
     62     public static int NO_DATA_RES_ID = 0;
     63 
     64     private static HashMap<String, SearchIndexableResource> sResMap =
     65             new HashMap<String, SearchIndexableResource>();
     66 
     67     static {
     68         sResMap.put(WifiSettings.class.getName(),
     69                 new SearchIndexableResource(
     70                         Ranking.getRankForClassName(WifiSettings.class.getName()),
     71                         NO_DATA_RES_ID,
     72                         WifiSettings.class.getName(),
     73                         R.drawable.ic_settings_wireless));
     74 
     75         sResMap.put(AdvancedWifiSettings.class.getName(),
     76                 new SearchIndexableResource(
     77                         Ranking.getRankForClassName(AdvancedWifiSettings.class.getName()),
     78                         R.xml.wifi_advanced_settings,
     79                         AdvancedWifiSettings.class.getName(),
     80                         R.drawable.ic_settings_wireless));
     81 
     82         sResMap.put(SavedAccessPointsWifiSettings.class.getName(),
     83                 new SearchIndexableResource(
     84                         Ranking.getRankForClassName(SavedAccessPointsWifiSettings.class.getName()),
     85                         R.xml.wifi_display_saved_access_points,
     86                         SavedAccessPointsWifiSettings.class.getName(),
     87                         R.drawable.ic_settings_wireless));
     88 
     89         sResMap.put(BluetoothSettings.class.getName(),
     90                 new SearchIndexableResource(
     91                         Ranking.getRankForClassName(BluetoothSettings.class.getName()),
     92                         NO_DATA_RES_ID,
     93                         BluetoothSettings.class.getName(),
     94                         R.drawable.ic_settings_bluetooth));
     95 
     96         sResMap.put(SimSettings.class.getName(),
     97                 new SearchIndexableResource(
     98                         Ranking.getRankForClassName(SimSettings.class.getName()),
     99                         NO_DATA_RES_ID,
    100                         SimSettings.class.getName(),
    101                         R.drawable.ic_sim_sd));
    102 
    103         sResMap.put(DataUsageSummary.class.getName(),
    104                 new SearchIndexableResource(
    105                         Ranking.getRankForClassName(DataUsageSummary.class.getName()),
    106                         NO_DATA_RES_ID,
    107                         DataUsageSummary.class.getName(),
    108                         R.drawable.ic_settings_data_usage));
    109 
    110         sResMap.put(DataUsageMeteredSettings.class.getName(),
    111                 new SearchIndexableResource(
    112                         Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()),
    113                         NO_DATA_RES_ID,
    114                         DataUsageMeteredSettings.class.getName(),
    115                         R.drawable.ic_settings_data_usage));
    116 
    117         sResMap.put(WirelessSettings.class.getName(),
    118                 new SearchIndexableResource(
    119                         Ranking.getRankForClassName(WirelessSettings.class.getName()),
    120                         NO_DATA_RES_ID,
    121                         WirelessSettings.class.getName(),
    122                         R.drawable.ic_settings_more));
    123 
    124         sResMap.put(HomeSettings.class.getName(),
    125                 new SearchIndexableResource(
    126                         Ranking.getRankForClassName(HomeSettings.class.getName()),
    127                         NO_DATA_RES_ID,
    128                         HomeSettings.class.getName(),
    129                         R.drawable.ic_settings_home));
    130 
    131         sResMap.put(DisplaySettings.class.getName(),
    132                 new SearchIndexableResource(
    133                         Ranking.getRankForClassName(DisplaySettings.class.getName()),
    134                         NO_DATA_RES_ID,
    135                         DisplaySettings.class.getName(),
    136                         R.drawable.ic_settings_display));
    137 
    138         sResMap.put(WallpaperTypeSettings.class.getName(),
    139                 new SearchIndexableResource(
    140                         Ranking.getRankForClassName(WallpaperTypeSettings.class.getName()),
    141                         NO_DATA_RES_ID,
    142                         WallpaperTypeSettings.class.getName(),
    143                         R.drawable.ic_settings_display));
    144 
    145         sResMap.put(NotificationSettings.class.getName(),
    146                 new SearchIndexableResource(
    147                         Ranking.getRankForClassName(NotificationSettings.class.getName()),
    148                         NO_DATA_RES_ID,
    149                         NotificationSettings.class.getName(),
    150                         R.drawable.ic_settings_notifications));
    151 
    152         sResMap.put(OtherSoundSettings.class.getName(),
    153                 new SearchIndexableResource(
    154                         Ranking.getRankForClassName(OtherSoundSettings.class.getName()),
    155                         NO_DATA_RES_ID,
    156                         OtherSoundSettings.class.getName(),
    157                         R.drawable.ic_settings_notifications));
    158 
    159         sResMap.put(ZenModeSettings.class.getName(),
    160                 new SearchIndexableResource(
    161                         Ranking.getRankForClassName(ZenModeSettings.class.getName()),
    162                         NO_DATA_RES_ID,
    163                         ZenModeSettings.class.getName(),
    164                         R.drawable.ic_settings_notifications));
    165 
    166         sResMap.put(ZenModePrioritySettings.class.getName(),
    167                 new SearchIndexableResource(
    168                         Ranking.getRankForClassName(ZenModePrioritySettings.class.getName()),
    169                         R.xml.zen_mode_priority_settings,
    170                         ZenModePrioritySettings.class.getName(),
    171                         R.drawable.ic_settings_notifications));
    172 
    173         sResMap.put(StorageSettings.class.getName(),
    174                 new SearchIndexableResource(
    175                         Ranking.getRankForClassName(StorageSettings.class.getName()),
    176                         NO_DATA_RES_ID,
    177                         StorageSettings.class.getName(),
    178                         R.drawable.ic_settings_storage));
    179 
    180         sResMap.put(PowerUsageSummary.class.getName(),
    181                 new SearchIndexableResource(
    182                         Ranking.getRankForClassName(PowerUsageSummary.class.getName()),
    183                         R.xml.power_usage_summary,
    184                         PowerUsageSummary.class.getName(),
    185                         R.drawable.ic_settings_battery));
    186 
    187         sResMap.put(BatterySaverSettings.class.getName(),
    188                 new SearchIndexableResource(
    189                         Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
    190                         R.xml.battery_saver_settings,
    191                         BatterySaverSettings.class.getName(),
    192                         R.drawable.ic_settings_battery));
    193 
    194         sResMap.put(AdvancedAppSettings.class.getName(),
    195                 new SearchIndexableResource(
    196                         Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
    197                         R.xml.advanced_apps,
    198                         AdvancedAppSettings.class.getName(),
    199                         R.drawable.ic_settings_applications));
    200 
    201         sResMap.put(ManageDefaultApps.class.getName(),
    202                 new SearchIndexableResource(
    203                         Ranking.getRankForClassName(ManageDefaultApps.class.getName()),
    204                         NO_DATA_RES_ID,
    205                         ManageDefaultApps.class.getName(),
    206                         R.drawable.ic_settings_applications));
    207 
    208         sResMap.put(UserSettings.class.getName(),
    209                 new SearchIndexableResource(
    210                         Ranking.getRankForClassName(UserSettings.class.getName()),
    211                         NO_DATA_RES_ID,
    212                         UserSettings.class.getName(),
    213                         R.drawable.ic_settings_multiuser));
    214 
    215         sResMap.put(LocationSettings.class.getName(),
    216                 new SearchIndexableResource(
    217                         Ranking.getRankForClassName(LocationSettings.class.getName()),
    218                         R.xml.location_settings,
    219                         LocationSettings.class.getName(),
    220                         R.drawable.ic_settings_location));
    221 
    222         sResMap.put(ScanningSettings.class.getName(),
    223                 new SearchIndexableResource(
    224                         Ranking.getRankForClassName(ScanningSettings.class.getName()),
    225                         R.xml.location_scanning,
    226                         ScanningSettings.class.getName(),
    227                         R.drawable.ic_settings_location));
    228 
    229         sResMap.put(SecuritySettings.class.getName(),
    230                 new SearchIndexableResource(
    231                         Ranking.getRankForClassName(SecuritySettings.class.getName()),
    232                         NO_DATA_RES_ID,
    233                         SecuritySettings.class.getName(),
    234                         R.drawable.ic_settings_security));
    235 
    236         sResMap.put(ScreenPinningSettings.class.getName(),
    237                 new SearchIndexableResource(
    238                         Ranking.getRankForClassName(ScreenPinningSettings.class.getName()),
    239                         NO_DATA_RES_ID,
    240                         ScreenPinningSettings.class.getName(),
    241                         R.drawable.ic_settings_security));
    242 
    243         sResMap.put(InputMethodAndLanguageSettings.class.getName(),
    244                 new SearchIndexableResource(
    245                         Ranking.getRankForClassName(InputMethodAndLanguageSettings.class.getName()),
    246                         NO_DATA_RES_ID,
    247                         InputMethodAndLanguageSettings.class.getName(),
    248                         R.drawable.ic_settings_language));
    249 
    250         sResMap.put(PrivacySettings.class.getName(),
    251                 new SearchIndexableResource(
    252                         Ranking.getRankForClassName(PrivacySettings.class.getName()),
    253                         NO_DATA_RES_ID,
    254                         PrivacySettings.class.getName(),
    255                         R.drawable.ic_settings_backup));
    256 
    257         sResMap.put(DateTimeSettings.class.getName(),
    258                 new SearchIndexableResource(
    259                         Ranking.getRankForClassName(DateTimeSettings.class.getName()),
    260                         R.xml.date_time_prefs,
    261                         DateTimeSettings.class.getName(),
    262                         R.drawable.ic_settings_date_time));
    263 
    264         sResMap.put(AccessibilitySettings.class.getName(),
    265                 new SearchIndexableResource(
    266                         Ranking.getRankForClassName(AccessibilitySettings.class.getName()),
    267                         NO_DATA_RES_ID,
    268                         AccessibilitySettings.class.getName(),
    269                         R.drawable.ic_settings_accessibility));
    270 
    271         sResMap.put(PrintSettingsFragment.class.getName(),
    272                 new SearchIndexableResource(
    273                         Ranking.getRankForClassName(PrintSettingsFragment.class.getName()),
    274                         NO_DATA_RES_ID,
    275                         PrintSettingsFragment.class.getName(),
    276                         R.drawable.ic_settings_print));
    277 
    278         sResMap.put(DevelopmentSettings.class.getName(),
    279                 new SearchIndexableResource(
    280                         Ranking.getRankForClassName(DevelopmentSettings.class.getName()),
    281                         NO_DATA_RES_ID,
    282                         DevelopmentSettings.class.getName(),
    283                         R.drawable.ic_settings_development));
    284 
    285         sResMap.put(DeviceInfoSettings.class.getName(),
    286                 new SearchIndexableResource(
    287                         Ranking.getRankForClassName(DeviceInfoSettings.class.getName()),
    288                         NO_DATA_RES_ID,
    289                         DeviceInfoSettings.class.getName(),
    290                         R.drawable.ic_settings_about));
    291 
    292         sResMap.put(LegalSettings.class.getName(),
    293                 new SearchIndexableResource(
    294                         Ranking.getRankForClassName(LegalSettings.class.getName()),
    295                         NO_DATA_RES_ID,
    296                         LegalSettings.class.getName(),
    297                         R.drawable.ic_settings_about));
    298 
    299         sResMap.put(WifiCallingSettings.class.getName(),
    300                 new SearchIndexableResource(
    301                         Ranking.getRankForClassName(WifiCallingSettings.class.getName()),
    302                         R.xml.wifi_calling_settings,
    303                         WifiCallingSettings.class.getName(),
    304                         R.drawable.ic_settings_wireless));
    305     }
    306 
    307     private SearchIndexableResources() {
    308     }
    309 
    310     public static int size() {
    311         return sResMap.size();
    312     }
    313 
    314     public static SearchIndexableResource getResourceByName(String className) {
    315         return sResMap.get(className);
    316     }
    317 
    318     public static Collection<SearchIndexableResource> values() {
    319         return sResMap.values();
    320     }
    321 }
    322