diff options
5 files changed, 38 insertions, 1 deletions
diff --git a/packages/SettingsLib/res/values/attrs.xml b/packages/SettingsLib/res/values/attrs.xml index 15b2a978a04a..3e1fc4a4e343 100644 --- a/packages/SettingsLib/res/values/attrs.xml +++ b/packages/SettingsLib/res/values/attrs.xml @@ -16,7 +16,8 @@ <resources> <declare-styleable name="RestrictedPreference"> - <attr name="userRestriction" format="string"/> + <attr name="userRestriction" format="string" /> + <attr name="useAdminDisabledSummary" format="boolean" /> </declare-styleable> <declare-styleable name="WifiEncryptionState"> <attr name="state_encrypted" format="boolean" /> diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 6dfa9ad2d26e..d3c8416a4abb 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -765,4 +765,7 @@ <!-- Battery Info screen. Value for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="battery_info_status_full">Full</string> + <!-- Summary for settings preference disabled by administrator [CHAR LIMIT=50] --> + <string name="disabled_by_admin_summary_text">Disabled by administrator</string> + </resources> diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java index 13a46d093549..810f6eb28a56 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java @@ -65,6 +65,10 @@ public class RestrictedPreference extends Preference { } } + public void useAdminDisabledSummary(boolean useSummary) { + mHelper.useAdminDisabledSummary(useSummary); + } + @Override protected void onAttachedToHierarchy(PreferenceManager preferenceManager) { mHelper.onAttachedToHierarchy(); diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java index 06aba968ea9e..9bd4eb185bee 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java @@ -27,6 +27,7 @@ import android.text.SpannableStringBuilder; import android.text.style.ImageSpan; import android.util.AttributeSet; import android.util.TypedValue; +import android.view.View; import android.widget.TextView; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; @@ -44,6 +45,7 @@ public class RestrictedPreferenceHelper { private boolean mDisabledByAdmin; private EnforcedAdmin mEnforcedAdmin; private String mAttrUserRestriction = null; + private boolean mUseAdminDisabledSummary = false; public RestrictedPreferenceHelper(Context context, Preference preference, AttributeSet attrs) { @@ -68,6 +70,14 @@ public class RestrictedPreferenceHelper { } } mAttrUserRestriction = data == null ? null : data.toString(); + + final TypedValue useAdminDisabledSummary = + attributes.peekValue(R.styleable.RestrictedPreference_useAdminDisabledSummary); + if (useAdminDisabledSummary != null) { + mUseAdminDisabledSummary = + (useAdminDisabledSummary.type == TypedValue.TYPE_INT_BOOLEAN + && useAdminDisabledSummary.data != 0); + } } } @@ -82,6 +92,21 @@ public class RestrictedPreferenceHelper { holder.itemView.setEnabled(true); } } + if (mUseAdminDisabledSummary) { + final TextView summaryView = (TextView) holder.findViewById(android.R.id.summary); + if (summaryView != null) { + if (mDisabledByAdmin) { + summaryView.setText(R.string.disabled_by_admin_summary_text); + summaryView.setVisibility(View.VISIBLE); + } else { + summaryView.setVisibility(View.GONE); + } + } + } + } + + public void useAdminDisabledSummary(boolean useSummary) { + mUseAdminDisabledSummary = useSummary; } /** diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java index 84e2bff4fc40..6cae8aa70847 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java @@ -65,6 +65,10 @@ public class RestrictedSwitchPreference extends SwitchPreference { } } + public void useAdminDisabledSummary(boolean useSummary) { + mHelper.useAdminDisabledSummary(useSummary); + } + @Override protected void onAttachedToHierarchy(PreferenceManager preferenceManager) { mHelper.onAttachedToHierarchy(); |