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