summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/res/values/attrs.xml3
-rw-r--r--packages/SettingsLib/res/values/strings.xml3
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedPreference.java4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java25
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedSwitchPreference.java4
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();