diff --git a/res/xml/data_usage_metered_prefs.xml b/res/xml/data_usage_metered_prefs.xml index a0c6df4633d..5026a356f72 100644 --- a/res/xml/data_usage_metered_prefs.xml +++ b/res/xml/data_usage_metered_prefs.xml @@ -14,7 +14,8 @@ limitations under the License. --> - + getRawDataToIndex(Context context, boolean enabled) { + final List result = new ArrayList(); + final Resources res = context.getResources(); + + // Add fragment title + SearchIndexableRaw data = new SearchIndexableRaw(context); + data.title = res.getString(R.string.data_usage_menu_metered); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + + // Body + data = new SearchIndexableRaw(context); + data.title = res.getString(R.string.data_usage_metered_body); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + + if (SHOW_MOBILE_CATEGORY && hasReadyMobileRadio(context)) { + // Mobile networks category + data = new SearchIndexableRaw(context); + data.title = res.getString(R.string.data_usage_metered_mobile); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + + final TelephonyManager tele = TelephonyManager.from(context); + + data = new SearchIndexableRaw(context); + data.title = tele.getNetworkOperatorName(); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + } + + // Wi-Fi networks category + data = new SearchIndexableRaw(context); + data.title = res.getString(R.string.data_usage_metered_wifi); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + + final WifiManager wifiManager = + (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + if (hasWifiRadio(context) && wifiManager.isWifiEnabled()) { + for (WifiConfiguration config : wifiManager.getConfiguredNetworks()) { + if (config.SSID != null) { + final String networkId = config.SSID; + + data = new SearchIndexableRaw(context); + data.title = removeDoubleQuotes(networkId); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + } + } + } else { + data = new SearchIndexableRaw(context); + data.title = res.getString(R.string.data_usage_metered_wifi_disabled); + data.screenTitle = res.getString(R.string.data_usage_menu_metered); + result.add(data); + } + + return result; + } + + @Override + public List getNonIndexableKeys(Context context) { + final ArrayList result = new ArrayList(); + if (!SHOW_MOBILE_CATEGORY || !hasReadyMobileRadio(context)) { + result.add("mobile"); + } + + return result; + } + }; + } diff --git a/src/com/android/settings/search/Ranking.java b/src/com/android/settings/search/Ranking.java index 80ea83ae6a2..b3d90dd977b 100644 --- a/src/com/android/settings/search/Ranking.java +++ b/src/com/android/settings/search/Ranking.java @@ -34,6 +34,7 @@ import com.android.settings.fuelgauge.BatterySaverSettings; import com.android.settings.fuelgauge.PowerUsageSummary; import com.android.settings.inputmethod.InputMethodAndLanguageSettings; import com.android.settings.location.LocationSettings; +import com.android.settings.net.DataUsageMeteredSettings; import com.android.settings.notification.NotificationDisplaySettings; import com.android.settings.notification.NotificationSettings; import com.android.settings.notification.OtherSoundSettings; @@ -81,50 +82,71 @@ public final class Ranking { private static HashMap sBaseRankMap = new HashMap(); static { + // Wi-Fi sRankMap.put(WifiSettings.class.getName(), RANK_WIFI); sRankMap.put(AdvancedWifiSettings.class.getName(), RANK_WIFI); + // BT sRankMap.put(BluetoothSettings.class.getName(), RANK_BT); + // DataUsage sRankMap.put(DataUsageSummary.class.getName(), RANK_DATA_USAGE); + sRankMap.put(DataUsageMeteredSettings.class.getName(), RANK_DATA_USAGE); + // Other wireless settinfs sRankMap.put(WirelessSettings.class.getName(), RANK_WIRELESS); + // Home sRankMap.put(HomeSettings.class.getName(), RANK_HOME); + // Display sRankMap.put(DisplaySettings.class.getName(), RANK_DISPLAY); + // Wallpapers sRankMap.put(WallpaperTypeSettings.class.getName(), RANK_WALLPAPER); + // Notifications sRankMap.put(NotificationSettings.class.getName(), RANK_NOTIFICATIONS); sRankMap.put(NotificationDisplaySettings.class.getName(), RANK_NOTIFICATIONS); sRankMap.put(OtherSoundSettings.class.getName(), RANK_NOTIFICATIONS); sRankMap.put(ZenModeSettings.class.getName(), RANK_NOTIFICATIONS); + // Memory sRankMap.put(Memory.class.getName(), RANK_MEMORY); + // Battery sRankMap.put(PowerUsageSummary.class.getName(), RANK_POWER_USAGE); sRankMap.put(BatterySaverSettings.class.getName(), RANK_POWER_USAGE); + // Users sRankMap.put(UserSettings.class.getName(), RANK_USERS); + // Location sRankMap.put(LocationSettings.class.getName(), RANK_LOCATION); + // Security sRankMap.put(SecuritySettings.class.getName(), RANK_SECURITY); sRankMap.put(ChooseLockGeneric.ChooseLockGenericFragment.class.getName(), RANK_SECURITY); + // IMEs sRankMap.put(InputMethodAndLanguageSettings.class.getName(), RANK_IME); + // Privacy sRankMap.put(PrivacySettings.class.getName(), RANK_PRIVACY); + // Date / Time sRankMap.put(DateTimeSettings.class.getName(), RANK_DATE_TIME); + // Accessibility sRankMap.put(AccessibilitySettings.class.getName(), RANK_ACCESSIBILITY); + // Print sRankMap.put(PrintSettingsFragment.class.getName(), RANK_PRINTING); + // Development sRankMap.put(DevelopmentSettings.class.getName(), RANK_DEVELOPEMENT); + // Device infos sRankMap.put(DeviceInfoSettings.class.getName(), RANK_DEVICE_INFO); sBaseRankMap.put("com.android.settings", 0); diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java index 086ebfc709f..5f380ebdb2f 100644 --- a/src/com/android/settings/search/SearchIndexableResources.java +++ b/src/com/android/settings/search/SearchIndexableResources.java @@ -37,6 +37,7 @@ import com.android.settings.fuelgauge.BatterySaverSettings; import com.android.settings.fuelgauge.PowerUsageSummary; import com.android.settings.inputmethod.InputMethodAndLanguageSettings; import com.android.settings.location.LocationSettings; +import com.android.settings.net.DataUsageMeteredSettings; import com.android.settings.notification.NotificationDisplaySettings; import com.android.settings.notification.NotificationSettings; import com.android.settings.notification.OtherSoundSettings; @@ -85,6 +86,13 @@ public final class SearchIndexableResources { DataUsageSummary.class.getName(), R.drawable.ic_settings_data_usage)); + sResMap.put(DataUsageMeteredSettings.class.getName(), + new SearchIndexableResource( + Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()), + NO_DATA_RES_ID, + DataUsageMeteredSettings.class.getName(), + R.drawable.ic_settings_data_usage)); + sResMap.put(WirelessSettings.class.getName(), new SearchIndexableResource( Ranking.getRankForClassName(WirelessSettings.class.getName()),