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