Add safety & regulatory info to "about device".

Renamed "Regulatory information" to "Regulatory labels"
and added a new option called "Safety & regulatory information".

The new option only shows if an activity exists that can
accept android.settings.SHOW_SAFETY_AND_REGULATORY_INFO intents.

BUG: 27876015
Change-Id: Iaf9588658eb7919b330ac8b3d673b8e81a4f76dc
This commit is contained in:
Andrew Sapperstein
2016-05-31 10:34:01 -07:00
parent c687e9bfbd
commit 1fad9af3c7
5 changed files with 29 additions and 13 deletions

View File

@@ -175,14 +175,12 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
// Remove manual entry if none present.
removePreferenceIfBoolFalse(KEY_MANUAL, R.bool.config_show_manual);
// 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);
}
}
// Remove regulatory labels if no activity present to handle intent.
removePreferenceIfActivityMissing(
KEY_REGULATORY_INFO, Settings.ACTION_SHOW_REGULATORY_INFO);
removePreferenceIfActivityMissing(
"safety_info", "android.settings.SHOW_SAFETY_AND_REGULATORY_INFO");
}
@Override
@@ -327,6 +325,16 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
}
}
private void removePreferenceIfActivityMissing(String preferenceKey, String action) {
final Intent intent = new Intent(action);
if (getPackageManager().queryIntentActivities(intent, 0).isEmpty()) {
Preference pref = findPreference(preferenceKey);
if (pref != null) {
getPreferenceScreen().removePreference(pref);
}
}
}
private void removePreferenceIfBoolFalse(String preference, int resId) {
if (!getResources().getBoolean(resId)) {
Preference pref = findPreference(preference);

View File

@@ -56,7 +56,7 @@ public class RegulatoryInfoDisplayActivity extends Activity implements
}
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle(R.string.regulatory_information)
.setTitle(R.string.regulatory_labels)
.setOnDismissListener(this);
boolean regulatoryInfoDrawableExists = false;