diff options
| author | 2024-01-31 00:18:51 +0000 | |
|---|---|---|
| committer | 2024-01-31 00:18:51 +0000 | |
| commit | 984306a8e6d0cd8faafffe57dca58552f9cdcd29 (patch) | |
| tree | 2545a742931d828e05b50c39fb898dfc7f9b4a45 | |
| parent | 6a52bfc2b5014f44717ba9fc125f6c513f92b917 (diff) | |
| parent | 1dde67042b2742a5a954d6e2d97308c0fa6cb920 (diff) | |
Merge "Change Euicc card Id to use default value when the device does not have android.hardware.telephony.euicc feature" into main
| -rw-r--r-- | telephony/java/android/telephony/euicc/EuiccManager.java | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java index 09d21083afb1..9b8e62f2e5af 100644 --- a/telephony/java/android/telephony/euicc/EuiccManager.java +++ b/telephony/java/android/telephony/euicc/EuiccManager.java @@ -43,6 +43,7 @@ import android.telephony.euicc.EuiccCardManager.ResetOption; import android.util.Log; import com.android.internal.telephony.euicc.IEuiccController; +import com.android.internal.telephony.flags.Flags; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -897,9 +898,7 @@ public class EuiccManager { /** @hide */ public EuiccManager(Context context) { mContext = context; - TelephonyManager tm = (TelephonyManager) - context.getSystemService(Context.TELEPHONY_SERVICE); - mCardId = tm.getCardIdForDefaultEuicc(); + mCardId = getCardIdForDefaultEuicc(); } /** @hide */ @@ -1646,14 +1645,9 @@ public class EuiccManager { private boolean refreshCardIdIfUninitialized() { // Refresh mCardId if its UNINITIALIZED_CARD_ID if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { - TelephonyManager tm = (TelephonyManager) - mContext.getSystemService(Context.TELEPHONY_SERVICE); - mCardId = tm.getCardIdForDefaultEuicc(); + mCardId = getCardIdForDefaultEuicc(); } - if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { - return false; - } - return true; + return mCardId != TelephonyManager.UNINITIALIZED_CARD_ID; } private static void sendUnavailableError(PendingIntent callbackIntent) { @@ -1672,6 +1666,23 @@ public class EuiccManager { .get()); } + private int getCardIdForDefaultEuicc() { + int cardId = TelephonyManager.UNINITIALIZED_CARD_ID; + + if (Flags.enforceTelephonyFeatureMappingForPublicApis()) { + PackageManager pm = mContext.getPackageManager(); + if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC)) { + TelephonyManager tm = mContext.getSystemService(TelephonyManager.class); + cardId = tm.getCardIdForDefaultEuicc(); + } + } else { + TelephonyManager tm = mContext.getSystemService(TelephonyManager.class); + cardId = tm.getCardIdForDefaultEuicc(); + } + + return cardId; + } + /** * Returns whether the passing portIndex is available. * A port is available if it is active without enabled profile on it or |