Disable regulatory info directly, not priority.
Instead of using priority, offer to launch anyone handling the
action, and use the boolean to control if Settings offers the UI.
Bug: 13340779
Change-Id: Idb3f85c434414911f8911b7511b3a7a8029a8e06
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index df7d7ad..faa20b4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1727,8 +1727,9 @@
<activity android:name="RegulatoryInfoDisplayActivity"
android:label="@string/regulatory_information"
android:taskAffinity=""
- android:excludeFromRecents="true">
- <intent-filter android:priority="50">
+ android:excludeFromRecents="true"
+ android:enabled="@bool/config_show_regulatory_info">
+ <intent-filter>
<action android:name="android.settings.SHOW_REGULATORY_INFO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 7e94741..1e3b9a8 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -28,6 +28,7 @@
import android.preference.Preference;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
+import android.provider.Settings;
import android.util.Log;
import android.widget.Toast;
@@ -152,9 +153,14 @@
removePreferenceIfBoolFalse(KEY_UPDATE_SETTING,
R.bool.config_additional_system_update_setting_enable);
- // Remove regulatory information if not enabled.
- removePreferenceIfBoolFalse(KEY_REGULATORY_INFO,
- R.bool.config_show_regulatory_info);
+ // Remove regulatory information if none present.
+ final Intent intent = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO);
+ if (getPackageManager().queryIntentActivities(intent, 0).isEmpty()) {
+ Preference pref = findPreference(KEY_REGULATORY_INFO);
+ if (pref != null) {
+ getPreferenceScreen().removePreference(pref);
+ }
+ }
}
@Override