diff options
Diffstat (limited to 'packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java')
-rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java index b178e4870bed..1ad710a6d731 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java @@ -37,6 +37,7 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; public class RestrictedSwitchPreference extends SwitchPreference { RestrictedPreferenceHelper mHelper; boolean mUseAdditionalSummary = false; + String mRestrictedSwitchSummary = null; public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { @@ -45,14 +46,30 @@ public class RestrictedSwitchPreference extends SwitchPreference { mHelper = new RestrictedPreferenceHelper(context, this, attrs); if (attrs != null) { final TypedArray attributes = context.obtainStyledAttributes(attrs, - R.styleable.RestrictedPreference); - final TypedValue useAdditionalSummary = - attributes.peekValue(R.styleable.RestrictedPreference_useAdditionalSummary); + R.styleable.RestrictedSwitchPreference); + final TypedValue useAdditionalSummary = attributes.peekValue( + R.styleable.RestrictedSwitchPreference_useAdditionalSummary); if (useAdditionalSummary != null) { mUseAdditionalSummary = (useAdditionalSummary.type == TypedValue.TYPE_INT_BOOLEAN && useAdditionalSummary.data != 0); } + + final TypedValue restrictedSwitchSummary = attributes.peekValue( + R.styleable.RestrictedSwitchPreference_restrictedSwitchSummary); + CharSequence data = null; + if (restrictedSwitchSummary != null + && restrictedSwitchSummary.type == TypedValue.TYPE_STRING) { + if (restrictedSwitchSummary.resourceId != 0) { + data = context.getString(restrictedSwitchSummary.resourceId); + } else { + data = restrictedSwitchSummary.string; + } + } + mRestrictedSwitchSummary = data == null ? null : data.toString(); + } + if (mRestrictedSwitchSummary == null) { + mRestrictedSwitchSummary = context.getString(R.string.disabled_by_admin); } if (mUseAdditionalSummary) { setLayoutResource(R.layout.restricted_switch_preference); @@ -91,8 +108,7 @@ public class RestrictedSwitchPreference extends SwitchPreference { R.id.additional_summary); if (additionalSummaryView != null) { if (isDisabledByAdmin()) { - additionalSummaryView.setText( - isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin); + additionalSummaryView.setText(mRestrictedSwitchSummary); additionalSummaryView.setVisibility(View.VISIBLE); } else { additionalSummaryView.setVisibility(View.GONE); @@ -102,8 +118,7 @@ public class RestrictedSwitchPreference extends SwitchPreference { final TextView summaryView = (TextView) holder.findViewById(android.R.id.summary); if (summaryView != null) { if (isDisabledByAdmin()) { - summaryView.setText( - isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin); + summaryView.setText(mRestrictedSwitchSummary); summaryView.setVisibility(View.VISIBLE); } // No need to change the visibility to GONE in the else case here since Preference |