diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index bb5ac00281a..bf0d9a10b28 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -1042,7 +1042,7 @@ public class SettingsActivity extends Activity } // Show the SIM Cards setting if there are more than 2 SIMs installed. - if(tile.id != R.id.sim_settings || SimSettings.showSimCardScreen(this)){ + if(tile.id != R.id.sim_settings || Utils.showSimCardTile(this)){ category.addTile(tile); } diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 255ab580b81..e88c0fccec8 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -820,4 +820,16 @@ public final class Utils { if (icon == null) return null; return CircleFramedDrawable.getInstance(context, icon); } + + /** + * Return whether or not the user should have a SIM Cards option in Settings. + * TODO: Change back to returning true if count is greater than one after testing. + * TODO: See bug 16533525. + */ + public static boolean showSimCardTile(Context context) { + final TelephonyManager tm = + (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + + return tm.getSimCount() > 0; + } } diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java index a3d2b8d713f..e0e09a84780 100644 --- a/src/com/android/settings/search/SearchIndexableResources.java +++ b/src/com/android/settings/search/SearchIndexableResources.java @@ -92,7 +92,7 @@ public final class SearchIndexableResources { sResMap.put(SimSettings.class.getName(), new SearchIndexableResource( Ranking.getRankForClassName(SimSettings.class.getName()), - R.xml.sim_settings, + NO_DATA_RES_ID, SimSettings.class.getName(), R.drawable.ic_sim_sd)); diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java index 15c5548f09f..9762c514d4a 100644 --- a/src/com/android/settings/sim/SimSettings.java +++ b/src/com/android/settings/sim/SimSettings.java @@ -16,6 +16,7 @@ package com.android.settings.sim; +import android.provider.SearchIndexableResource; import com.android.settings.R; import android.app.AlertDialog; @@ -55,6 +56,7 @@ import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; import com.android.settings.notification.DropDownPreference; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -86,18 +88,6 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private SubInfoRecord mCalls = null; private SubInfoRecord mSMS = null; - /** - * Return whether or not the user should have a SIM Cards option in Settings. - * TODO: Change back to returning true if count is greater than one after testing. - * TODO: See bug 16533525. - */ - public static boolean showSimCardScreen(Context context) { - final TelephonyManager tm = - (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - - return tm.getSimCount() > 0; - } - public SimSettings() { super(DISALLOW_CONFIG_SIM); } @@ -369,4 +359,26 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable builder.create().show(); } } + + /** + * For search + */ + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider() { + @Override + public List getXmlResourcesToIndex(Context context, + boolean enabled) { + ArrayList result = + new ArrayList(); + + if (Utils.showSimCardTile(context)) { + SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = R.xml.sim_settings; + result.add(sir); + } + + return result; + } + }; + }