Check for any valid SIM card before showing Cellular Security Settings

Bug: 377358721
Test: m
Flag: EXEMPT bugfix
Change-Id: I5bbc0c95ff420639c274534b9086a3479ca47fb2
This commit is contained in:
yomna
2024-12-07 04:57:28 +00:00
parent 9e17ca61f4
commit 378de71cb4
4 changed files with 42 additions and 0 deletions

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();