diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java index e4efae2f1a36d..7e8ce2b5b29dc 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java @@ -23,12 +23,15 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.res.TypedArray; +import android.os.Build; import android.os.UserHandle; import android.text.TextUtils; import android.util.AttributeSet; import android.util.TypedValue; import android.widget.TextView; +import androidx.annotation.RequiresApi; +import androidx.core.os.BuildCompat; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; @@ -102,11 +105,9 @@ public class RestrictedPreferenceHelper { if (mDisabledSummary) { final TextView summaryView = (TextView) holder.findViewById(android.R.id.summary); if (summaryView != null) { - final CharSequence disabledText = mContext - .getSystemService(DevicePolicyManager.class) - .getString(CONTROLLED_BY_ADMIN_SUMMARY, - () -> summaryView.getContext().getString( - R.string.disabled_by_admin_summary_text)); + final CharSequence disabledText = BuildCompat.isAtLeastT() + ? getDisabledByAdminUpdatableString() + : mContext.getString(R.string.disabled_by_admin_summary_text); if (mDisabledByAdmin) { summaryView.setText(disabledText); } else if (mDisabledByAppOps) { @@ -119,6 +120,13 @@ public class RestrictedPreferenceHelper { } } + @RequiresApi(Build.VERSION_CODES.TIRAMISU) + private String getDisabledByAdminUpdatableString() { + return mContext.getSystemService(DevicePolicyManager.class).getString( + CONTROLLED_BY_ADMIN_SUMMARY, + () -> mContext.getString(R.string.disabled_by_admin_summary_text)); + } + public void useAdminDisabledSummary(boolean useSummary) { mDisabledSummary = useSummary; } diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 19114cf147e4b..38fad9d99aa41 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -30,6 +30,7 @@ import android.net.TetheringManager; import android.net.vcn.VcnTransportInfo; import android.net.wifi.WifiInfo; import android.os.BatteryManager; +import android.os.Build; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; @@ -41,8 +42,10 @@ import android.telephony.ServiceState; import android.telephony.TelephonyManager; import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; import androidx.core.graphics.drawable.RoundedBitmapDrawable; import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; +import androidx.core.os.BuildCompat; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.UserIcons; @@ -127,8 +130,9 @@ public class Utils { String name = info != null ? info.name : null; if (info.isManagedProfile()) { // We use predefined values for managed profiles - return context.getSystemService(DevicePolicyManager.class).getString( - WORK_PROFILE_USER_LABEL, () -> context.getString(R.string.managed_user_title)); + return BuildCompat.isAtLeastT() + ? getUpdatableManagedUserTitle(context) + : context.getString(R.string.managed_user_title); } else if (info.isGuest()) { name = context.getString(R.string.user_guest); } @@ -140,6 +144,13 @@ public class Utils { return context.getResources().getString(R.string.running_process_item_user_label, name); } + @RequiresApi(Build.VERSION_CODES.TIRAMISU) + private static String getUpdatableManagedUserTitle(Context context) { + return context.getSystemService(DevicePolicyManager.class).getString( + WORK_PROFILE_USER_LABEL, + () -> context.getString(R.string.managed_user_title)); + } + /** * Returns a circular icon for a user. */