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