Merge "Allow search index provider use local permission."
diff --git a/src/com/android/phone/PhoneSearchIndexablesProvider.java b/src/com/android/phone/PhoneSearchIndexablesProvider.java
index c066acd..22786a3 100644
--- a/src/com/android/phone/PhoneSearchIndexablesProvider.java
+++ b/src/com/android/phone/PhoneSearchIndexablesProvider.java
@@ -31,6 +31,7 @@
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
+import android.os.Binder;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexablesContract.RawData;
@@ -97,28 +98,34 @@
@Override
public Cursor queryNonIndexableKeys(String[] projection) {
- MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
+ final long uidToken = Binder.clearCallingIdentity();
+ try {
+ MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
- if (!mUserManager.isAdminUser()) {
- final String[] values = new String[]{"preferred_network_mode_key", "button_roaming_key",
- "cdma_lte_data_service_key", "enabled_networks_key", "enhanced_4g_lte",
- "button_apn_key", "button_carrier_sel_key", "carrier_settings_key",
- "cdma_system_select_key", "esim_list_profile", "mobile_data_enable",
- "data_usage_summary", "wifi_calling_key", "video_calling_key"};
- for (String nik : values) {
- cursor.addRow(createNonIndexableRow(nik));
+ if (!mUserManager.isAdminUser()) {
+ final String[] values = new String[]{"preferred_network_mode_key",
+ "button_roaming_key",
+ "cdma_lte_data_service_key", "enabled_networks_key", "enhanced_4g_lte",
+ "button_apn_key", "button_carrier_sel_key", "carrier_settings_key",
+ "cdma_system_select_key", "esim_list_profile", "mobile_data_enable",
+ "data_usage_summary", "wifi_calling_key", "video_calling_key"};
+ for (String nik : values) {
+ cursor.addRow(createNonIndexableRow(nik));
+ }
+ } else {
+ if (isEuiccSettingsHidden()) {
+ cursor.addRow(createNonIndexableRow("esim_list_profile" /* key */));
+ }
+ if (isEnhanced4gLteHidden()) {
+ cursor.addRow(createNonIndexableRow("enhanced_4g_lte" /* key */));
+ }
}
- } else {
- if (isEuiccSettingsHidden()) {
- cursor.addRow(createNonIndexableRow("esim_list_profile" /* key */));
- }
- if (isEnhanced4gLteHidden()) {
- cursor.addRow(createNonIndexableRow("enhanced_4g_lte" /* key */));
- }
+ cursor.addRow(createNonIndexableRow("carrier_settings_euicc_key" /* key */));
+ cursor.addRow(createNonIndexableRow("advanced_options" /* key */));
+ return cursor;
+ } finally {
+ Binder.restoreCallingIdentity(uidToken);
}
- cursor.addRow(createNonIndexableRow("carrier_settings_euicc_key" /* key */));
- cursor.addRow(createNonIndexableRow("advanced_options" /* key */));
- return cursor;
}
@VisibleForTesting boolean isEuiccSettingsHidden() {