Guard call setting security fix with flag.
This change ensures that the call options security fixes made in CdmaCallOptions and GsmUmtsCallOptions are guarded with the relevant flag.
Test: manual
Bug: 309655251
Change-Id: I6cba56bc3b947c7d1aa74c1a61c09b7f0392d4f7
diff --git a/src/com/android/phone/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
index e468c00..4f94b58 100644
--- a/src/com/android/phone/CdmaCallOptions.java
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -32,6 +32,7 @@
import android.view.MenuItem;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.flags.Flags;
public class CdmaCallOptions extends TimeConsumingPreferenceActivity {
private static final String LOG_TAG = "CdmaCallOptions";
@@ -85,7 +86,7 @@
UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
boolean mobileNetworkConfigsRestricted =
userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
- if (mobileNetworkConfigsRestricted) {
+ if (Flags.ensureAccessToCallSettingsIsRestricted() && mobileNetworkConfigsRestricted) {
Log.i(LOG_TAG, "Mobile network configs are restricted, hiding CDMA call forwarding "
+ "and CDMA call waiting options.");
}
@@ -93,7 +94,8 @@
mCallForwardingPref = getPreferenceScreen().findPreference(CALL_FORWARDING_KEY);
if (carrierConfig != null && carrierConfig.getBoolean(
CarrierConfigManager.KEY_CALL_FORWARDING_VISIBILITY_BOOL) &&
- !mobileNetworkConfigsRestricted) {
+ (!mobileNetworkConfigsRestricted ||
+ !Flags.ensureAccessToCallSettingsIsRestricted())) {
mCallForwardingPref.setIntent(
subInfoHelper.getIntent(CdmaCallForwardOptions.class));
} else {
@@ -105,7 +107,8 @@
.findPreference(CALL_WAITING_KEY);
if (carrierConfig == null || !carrierConfig.getBoolean(
CarrierConfigManager.KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL) ||
- mobileNetworkConfigsRestricted) {
+ (Flags.ensureAccessToCallSettingsIsRestricted() &&
+ mobileNetworkConfigsRestricted)) {
getPreferenceScreen().removePreference(mCallWaitingPref);
mCallWaitingPref = null;
}
diff --git a/src/com/android/phone/GsmUmtsCallOptions.java b/src/com/android/phone/GsmUmtsCallOptions.java
index 8ff7ecc..be5295d 100644
--- a/src/com/android/phone/GsmUmtsCallOptions.java
+++ b/src/com/android/phone/GsmUmtsCallOptions.java
@@ -29,6 +29,7 @@
import android.view.MenuItem;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.flags.Flags;
public class GsmUmtsCallOptions extends PreferenceActivity {
private static final String LOG_TAG = "GsmUmtsCallOptions";
@@ -88,7 +89,7 @@
.getSystemService(Context.USER_SERVICE);
boolean mobileNetworkConfigsRestricted =
userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
- if (mobileNetworkConfigsRestricted) {
+ if (Flags.ensureAccessToCallSettingsIsRestricted() && mobileNetworkConfigsRestricted) {
Log.i(LOG_TAG, "Mobile network configs are restricted, hiding GSM call "
+ "forwarding, additional call settings, and call options.");
}
@@ -97,7 +98,8 @@
if (callForwardingPref != null) {
if (b != null && b.getBoolean(
CarrierConfigManager.KEY_CALL_FORWARDING_VISIBILITY_BOOL) &&
- !mobileNetworkConfigsRestricted) {
+ (!Flags.ensureAccessToCallSettingsIsRestricted() ||
+ !mobileNetworkConfigsRestricted)) {
callForwardingPref.setIntent(
subInfoHelper.getIntent(GsmUmtsCallForwardOptions.class));
callForwardingPref.setEnabled(isAirplaneModeOff);
@@ -113,7 +115,8 @@
CarrierConfigManager.KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL)
|| b.getBoolean(
CarrierConfigManager.KEY_ADDITIONAL_SETTINGS_CALLER_ID_VISIBILITY_BOOL)) &&
- !mobileNetworkConfigsRestricted) {
+ (!Flags.ensureAccessToCallSettingsIsRestricted() ||
+ !mobileNetworkConfigsRestricted)) {
additionalGsmSettingsPref.setIntent(
subInfoHelper.getIntent(GsmUmtsAdditionalCallOptions.class));
additionalGsmSettingsPref.setEnabled(isAirplaneModeOff);
@@ -125,7 +128,8 @@
Preference callBarringPref = prefScreen.findPreference(CALL_BARRING_KEY);
if (callBarringPref != null) {
if (b != null && b.getBoolean(CarrierConfigManager.KEY_CALL_BARRING_VISIBILITY_BOOL) &&
- !mobileNetworkConfigsRestricted) {
+ (!Flags.ensureAccessToCallSettingsIsRestricted() ||
+ !mobileNetworkConfigsRestricted)) {
callBarringPref.setIntent(subInfoHelper.getIntent(GsmUmtsCallBarringOptions.class));
callBarringPref.setEnabled(isAirplaneModeOff);
} else {