diff options
author | Vineeta Srivastava <vsrivastava@google.com> | 2013-08-28 17:17:57 -0700 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2013-09-03 13:05:04 -0700 |
commit | c26807f20b604b73c913cca74f2c07e119f96bb9 (patch) | |
tree | bc75f4dd9a3ccd6d1ab74ac267b632c29ae78c5e /src/com/android/settings | |
parent | ec3c7762129429e0666f77f812849181f3be461a (diff) | |
download | packages_apps_Settings-c26807f20b604b73c913cca74f2c07e119f96bb9.tar.gz packages_apps_Settings-c26807f20b604b73c913cca74f2c07e119f96bb9.tar.bz2 packages_apps_Settings-c26807f20b604b73c913cca74f2c07e119f96bb9.zip |
Show regulatory info based on hardware sku in Settings app.
Use ro.boot.hardware.sku to read hardware sku property. When this property is
set use regulatory_info_<sku>.img. By default use regulatory_info.png
Updated layout to set ImageView.
Bug: 9378140
Change-Id: I8e3622a89742333818297759585227c6290ccf31
Diffstat (limited to 'src/com/android/settings')
-rw-r--r-- | src/com/android/settings/RegulatoryInfoDisplayActivity.java | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/src/com/android/settings/RegulatoryInfoDisplayActivity.java b/src/com/android/settings/RegulatoryInfoDisplayActivity.java index 8adecf10b..171059c29 100644 --- a/src/com/android/settings/RegulatoryInfoDisplayActivity.java +++ b/src/com/android/settings/RegulatoryInfoDisplayActivity.java @@ -22,7 +22,11 @@ import android.content.DialogInterface; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.os.SystemProperties; +import android.text.TextUtils; import android.view.Gravity; +import android.view.View; +import android.widget.ImageView; import android.widget.TextView; /** @@ -30,11 +34,14 @@ import android.widget.TextView; * preference item, and when "*#07#" is dialed on the Phone keypad. To enable this feature, * set the "config_show_regulatory_info" boolean to true in a device overlay resource, and in the * same overlay, either add a drawable named "regulatory_info.png" containing a graphical version - * of the required regulatory info, or add a string resource named "regulatory_info_text" with - * an HTML version of the required information (text will be centered in the dialog). + * of the required regulatory info (If ro.bootloader.hardware.sku property is set use + * "regulatory_info_<sku>.png where sku is ro.bootloader.hardware.sku property value in lowercase"), + * or add a string resource named "regulatory_info_text" with an HTML version of the required + * information (text will be centered in the dialog). */ public class RegulatoryInfoDisplayActivity extends Activity implements DialogInterface.OnDismissListener { + private final String REGULATORY_INFO_RESOURCE = "regulatory_info"; /** * Display the regulatory info graphic in a dialog window. @@ -52,21 +59,27 @@ public class RegulatoryInfoDisplayActivity extends Activity implements .setTitle(R.string.regulatory_information) .setOnDismissListener(this); - boolean regulatoryInfoDrawableExists; - try { - Drawable d = resources.getDrawable(R.drawable.regulatory_info); - // set to false if the width or height is <= 2 - // (missing PNG can return an empty 2x2 pixel Drawable) - regulatoryInfoDrawableExists = (d.getIntrinsicWidth() > 2 - && d.getIntrinsicHeight() > 2); - } catch (Resources.NotFoundException ignored) { - regulatoryInfoDrawableExists = false; + boolean regulatoryInfoDrawableExists = false; + int resId = getResourceId(); + if (resId != 0) { + try { + Drawable d = resources.getDrawable(resId); + // set to false if the width or height is <= 2 + // (missing PNG can return an empty 2x2 pixel Drawable) + regulatoryInfoDrawableExists = (d.getIntrinsicWidth() > 2 + && d.getIntrinsicHeight() > 2); + } catch (Resources.NotFoundException ignored) { + regulatoryInfoDrawableExists = false; + } } CharSequence regulatoryText = resources.getText(R.string.regulatory_info_text); if (regulatoryInfoDrawableExists) { - builder.setView(getLayoutInflater().inflate(R.layout.regulatory_info, null)); + View view = getLayoutInflater().inflate(R.layout.regulatory_info, null); + ImageView image = (ImageView) view.findViewById(R.id.regulatoryInfo); + image.setImageResource(resId); + builder.setView(view); builder.show(); } else if (regulatoryText.length() > 0) { builder.setMessage(regulatoryText); @@ -80,6 +93,24 @@ public class RegulatoryInfoDisplayActivity extends Activity implements } } + private int getResourceId() { + // Use regulatory_info by default. + int resId = getResources().getIdentifier( + REGULATORY_INFO_RESOURCE, "drawable", getPackageName()); + + // When hardware sku property exists, use regulatory_info_<sku> resource if valid. + String sku = SystemProperties.get("ro.boot.hardware.sku", ""); + if (!TextUtils.isEmpty(sku)) { + String regulatory_info_res = REGULATORY_INFO_RESOURCE + "_" + sku.toLowerCase(); + int id = getResources().getIdentifier( + regulatory_info_res, "drawable", getPackageName()); + if (id != 0) { + resId = id; + } + } + return resId; + } + @Override public void onDismiss(DialogInterface dialog) { finish(); // close the activity |