Merge "Check for any valid SIM card before showing Cellular Security Settings" into main

This commit is contained in:
Yomna N
2025-01-21 07:41:41 -08:00
committed by Android (Google) Code Review
4 changed files with 42 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.safetycenter.SafetyCenterManager;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
@@ -38,6 +39,8 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.telephony.CellularSecuritySettingsFragment;
import java.util.List;
/**
* {@link BasePreferenceController} for accessing Cellular Security settings from Network &
* Internet Settings menu.
@@ -78,6 +81,13 @@ public class CellularSecurityPreferenceController extends BasePreferenceControll
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
}
// Check there are valid SIM cards which can be displayed to the user, otherwise this
// settings should not be shown.
List<SubscriptionInfo> availableSubs = SubscriptionUtil.getAvailableSubscriptions(mContext);
if (availableSubs.isEmpty()) {
return CONDITIONALLY_UNAVAILABLE;
}
boolean isNullCipherDisablementAvailable = false;
boolean areCellSecNotificationsAvailable = false;
try {

View File

@@ -17,6 +17,7 @@
package com.android.settings.network.telephony;
import android.content.Context;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -25,6 +26,9 @@ import androidx.annotation.NonNull;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.flags.FeatureFlagsImpl;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.SubscriptionUtil;
import java.util.List;
/**
* {@link BasePreferenceController} for visibility of Encryption divider on Cellular Security
@@ -58,6 +62,13 @@ public class CellularSecurityEncryptionDividerController extends
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
}
// Check there are valid SIM cards which can be displayed to the user, otherwise this
// settings should not be shown.
List<SubscriptionInfo> availableSubs = SubscriptionUtil.getAvailableSubscriptions(mContext);
if (availableSubs.isEmpty()) {
return CONDITIONALLY_UNAVAILABLE;
}
try {
mTelephonyManager.isNullCipherAndIntegrityPreferenceEnabled();
} catch (UnsupportedOperationException e) {

View File

@@ -19,6 +19,7 @@ package com.android.settings.network.telephony;
import android.content.Context;
import android.os.Build;
import android.safetycenter.SafetyCenterManager;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -27,6 +28,9 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.telephony.flags.Flags;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.SubscriptionUtil;
import java.util.List;
/**
* {@link BasePreferenceController} for visibility of Notifications divider on Cellular Security
@@ -69,6 +73,12 @@ public class CellularSecurityNotificationsDividerController extends
Log.w(LOG_TAG, "Telephony manager not yet initialized");
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
}
// Check there are valid SIM cards which can be displayed to the user, otherwise this
// settings should not be shown.
List<SubscriptionInfo> availableSubs = SubscriptionUtil.getAvailableSubscriptions(mContext);
if (availableSubs.isEmpty()) {
return CONDITIONALLY_UNAVAILABLE;
}
// Checking for hardware support, i.e. IRadio AIDL version must be >= 2.2
try {
// Must call both APIs, as we can't use the combined toggle if both aren't available

View File

@@ -19,6 +19,7 @@ package com.android.settings.network.telephony;
import android.content.Context;
import android.os.Build;
import android.safetycenter.SafetyCenterManager;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -26,6 +27,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import com.android.internal.telephony.flags.Flags;
import com.android.settings.network.SubscriptionUtil;
import java.util.List;
/**
* {@link TelephonyTogglePreferenceController} for accessing Cellular Security settings through
@@ -75,6 +79,13 @@ public class CellularSecurityNotificationsPreferenceController extends
return UNSUPPORTED_ON_DEVICE;
}
// Check there are valid SIM cards which can be displayed to the user, otherwise this
// setting should not be shown.
List<SubscriptionInfo> availableSubs = SubscriptionUtil.getAvailableSubscriptions(mContext);
if (availableSubs.isEmpty()) {
return CONDITIONALLY_UNAVAILABLE;
}
// Checking for hardware support, i.e. IRadio AIDL version must be >= 2.2
try {
areNotificationsEnabled();