Merge "Add support for adding preference summary when disabled by admin."
diff --git a/packages/SettingsLib/res/values/attrs.xml b/packages/SettingsLib/res/values/attrs.xml
index 15b2a97..3e1fc4a 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 6dfa9ad..d3c8416 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 13a46d0..810f6eb 100644
--- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java
@@ -65,6 +65,10 @@
}
}
+ 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 06aba96..9bd4eb1 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.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 @@
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 @@
}
}
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 @@
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 84e2bff..6cae8aa 100644
--- a/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java
@@ -65,6 +65,10 @@
}
}
+ public void useAdminDisabledSummary(boolean useSummary) {
+ mHelper.useAdminDisabledSummary(useSummary);
+ }
+
@Override
protected void onAttachedToHierarchy(PreferenceManager preferenceManager) {
mHelper.onAttachedToHierarchy();