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