summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nate Myren <ntmyren@google.com> 2025-01-30 11:12:18 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-01-30 11:12:18 -0800
commit8d635b861a5fe20e9ded0cc27fbd16d989b3c4d7 (patch)
treea5c39a8715df0398ffd43ec62034bb3495face0b
parent5dab69435d003be3ff9b435f3154f89a4fc9c1ec (diff)
parentd1c5d1ad9330baa78e9ac9bc9d5b1bb158806c12 (diff)
Merge "Update subtext for Restricted Preferences when blocked by ECM" into main
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt6
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/preference/RestrictedSwitchPreferenceModel.kt6
-rw-r--r--packages/SettingsLib/res/values/strings.xml2
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java15
4 files changed, 25 insertions, 4 deletions
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
index a140eb8424a8..a8483308556d 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/enterprise/RestrictedMode.kt
@@ -35,6 +35,7 @@ interface BlockedByAdmin : RestrictedMode {
interface BlockedByEcm : RestrictedMode {
fun showRestrictedSettingsDetails()
+ fun isBlockedByPhoneCall() = false
}
internal data class BlockedByAdminImpl(
@@ -72,8 +73,13 @@ internal data class BlockedByEcmImpl(
private val context: Context,
private val intent: Intent,
) : BlockedByEcm {
+ private val reasonPhoneState = "phone_state"
override fun showRestrictedSettingsDetails() {
context.startActivity(intent)
}
+
+ override fun isBlockedByPhoneCall(): Boolean {
+ return intent.getStringExtra(Intent.EXTRA_REASON) == reasonPhoneState
+ }
}
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/preference/RestrictedSwitchPreferenceModel.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/preference/RestrictedSwitchPreferenceModel.kt
index 0bb92ce72595..fb4880f10d3e 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/preference/RestrictedSwitchPreferenceModel.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/preference/RestrictedSwitchPreferenceModel.kt
@@ -163,9 +163,11 @@ internal class RestrictedSwitchPreferenceModel(
is BlockedByAdmin ->
restrictedMode.getSummary(checkedIfBlockedByAdmin ?: checkedIfNoRestricted())
- is BlockedByEcm ->
+ is BlockedByEcm -> if (restrictedMode.isBlockedByPhoneCall()) {
+ context.getString(com.android.settingslib.R.string.disabled_in_phone_call_text)
+ } else {
context.getString(com.android.settingslib.R.string.disabled)
-
+ }
null -> context.getPlaceholder()
}
}
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index 3da2271431f8..a3e42f1d1e51 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -1228,6 +1228,8 @@
<!-- Summary for settings preference disabled by app ops [CHAR LIMIT=50] -->
<string name="disabled_by_app_ops_text">Controlled by Restricted Setting</string>
+ <!-- Summary for settings preference disabled while the device is in a phone call [CHAR LIMIT=50] -->
+ <string name="disabled_in_phone_call_text">Unavailable during calls</string>
<!-- [CHAR LIMIT=25] Manage applications, text telling using an application is disabled. -->
<string name="disabled">Disabled</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
index 212e43aa4044..1044750bae25 100644
--- a/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedPreferenceHelper.java
@@ -44,6 +44,8 @@ import androidx.preference.PreferenceViewHolder;
public class RestrictedPreferenceHelper {
private static final String TAG = "RestrictedPreferenceHelper";
+ private static final String REASON_PHONE_STATE = "phone_state";
+
private final Context mContext;
private final Preference mPreference;
String packageName;
@@ -121,7 +123,7 @@ public class RestrictedPreferenceHelper {
if (mDisabledByAdmin) {
summaryView.setText(disabledText);
} else if (mDisabledByEcm) {
- summaryView.setText(R.string.disabled_by_app_ops_text);
+ summaryView.setText(getEcmTextResId());
} else if (TextUtils.equals(disabledText, summaryView.getText())) {
// It's previously set to disabled text, clear it.
summaryView.setText(null);
@@ -323,7 +325,16 @@ public class RestrictedPreferenceHelper {
}
if (!isEnabled && mDisabledByEcm) {
- mPreference.setSummary(R.string.disabled_by_app_ops_text);
+ mPreference.setSummary(getEcmTextResId());
+ }
+ }
+
+ private int getEcmTextResId() {
+ if (mDisabledByEcmIntent != null && REASON_PHONE_STATE.equals(
+ mDisabledByEcmIntent.getStringExtra(Intent.EXTRA_REASON))) {
+ return R.string.disabled_in_phone_call_text;
+ } else {
+ return R.string.disabled_by_app_ops_text;
}
}