From 544d7697a9e22255d2a81666e5f1f329ddf4367e Mon Sep 17 00:00:00 2001 From: Jayachandran C Date: Tue, 26 Sep 2023 01:23:56 +0000 Subject: [PATCH] [Settings] Hide satellite eSIM from users Bug: 302044287 Test: Manually verified by forcing the eSIM profile to be NTN Change-Id: Iba4e42778bdf072ceaecc35a2245ea737e552e5c --- .../settings/network/MobileNetworkRepository.java | 6 ++++-- .../settings/sim/CallsSimListDialogFragment.java | 5 ++++- .../settings/sim/PreferredSimDialogFragment.java | 4 +++- .../sim/SelectSpecificDataSimDialogFragment.java | 12 ++++++++---- .../android/settings/sim/SimListDialogFragment.java | 6 ++++-- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java index 5d6ad33d8c4..80c5464bb5f 100644 --- a/src/com/android/settings/network/MobileNetworkRepository.java +++ b/src/com/android/settings/network/MobileNetworkRepository.java @@ -40,6 +40,7 @@ import android.util.Log; import androidx.annotation.GuardedBy; import androidx.lifecycle.LifecycleOwner; +import com.android.internal.telephony.flags.Flags; import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -703,9 +704,10 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo); } if (subInfo.isEmbedded() - && subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) { + && (subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && subInfo.isNtn()))) { if (DEBUG) { - Log.d(TAG, "Do not insert the provision eSIM"); + Log.d(TAG, "Do not insert the provisioning or satellite eSIM"); } continue; } diff --git a/src/com/android/settings/sim/CallsSimListDialogFragment.java b/src/com/android/settings/sim/CallsSimListDialogFragment.java index cbee634cb7e..bc0ab0855b0 100644 --- a/src/com/android/settings/sim/CallsSimListDialogFragment.java +++ b/src/com/android/settings/sim/CallsSimListDialogFragment.java @@ -26,6 +26,8 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import com.android.internal.telephony.flags.Flags; + import java.util.ArrayList; import java.util.List; @@ -56,7 +58,8 @@ public class CallsSimListDialogFragment extends SimListDialogFragment { SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId); if (info == null || (info.isEmbedded() - && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { + && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && info.isNtn())))) { continue; } result.add(subscriptionManager.getActiveSubscriptionInfo(subId)); diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index 50eb993ab27..c1e98f008a2 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -32,6 +32,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; +import com.android.internal.telephony.flags.Flags; import com.android.settings.R; import com.android.settings.network.SubscriptionUtil; @@ -98,7 +99,8 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements final SubscriptionInfo info = getPreferredSubscription(); if (info == null || (info.isEmbedded() - && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { + && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && info.isNtn())))) { dismiss(); return; } diff --git a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java index 6ac0067d382..218efc0d7fa 100644 --- a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java +++ b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java @@ -35,6 +35,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; +import com.android.internal.telephony.flags.Flags; import com.android.settings.R; import com.android.settings.network.SubscriptionUtil; @@ -133,10 +134,13 @@ public class SelectSpecificDataSimDialogFragment extends SimDialogFragment imple return; } - if ((newSubInfo.isEmbedded() && newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) - || (currentDataSubInfo.isEmbedded() - && currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { - Log.d(TAG, "do not set the provision eSIM"); + if ((newSubInfo.isEmbedded() + && (newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && newSubInfo.isNtn()))) + || (currentDataSubInfo.isEmbedded() + && (currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && currentDataSubInfo.isNtn())))) { + Log.d(TAG, "do not set the provisioning or satellite eSIM"); dismiss(); return; } diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java index 276321120f5..4a478e9ee88 100644 --- a/src/com/android/settings/sim/SimListDialogFragment.java +++ b/src/com/android/settings/sim/SimListDialogFragment.java @@ -39,6 +39,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; +import com.android.internal.telephony.flags.Flags; import com.android.settings.R; import com.android.settings.network.SubscriptionUtil; @@ -141,9 +142,10 @@ public class SimListDialogFragment extends SimDialogFragment { return; } - // Remove the provision eSIM from the subscription list. + // Remove the provisioning or satellite eSIM from the subscription list. currentSubscriptions.removeIf(info -> info.isEmbedded() - && info.getProfileClass() == PROFILE_CLASS_PROVISIONING); + && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING + || (Flags.oemEnabledSatelliteFlag() && info.isNtn()))); boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME); boolean isCancelItemShowed = getArguments().getBoolean(KEY_SHOW_CANCEL_ITEM);