diff options
| author | 2024-02-15 12:12:09 -0800 | |
|---|---|---|
| committer | 2024-02-15 12:17:50 -0800 | |
| commit | 26cac82098c112cfadc0cb5548f4214ad18a90c7 (patch) | |
| tree | 9266945119980b32bb0100e71b36aacd7af9e1ac | |
| parent | 7e6717a31d784ea8dff31c3106196bb60863b54d (diff) | |
Don't expect EuiccManager to be always present
Bug: 310710841
Flag: NONE
Test: build & boot aosp_cf_x86_phone-eng
Change-Id: I9ca910b54d7419645a2e56e2cdfe754528e30b92
4 files changed, 19 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java index fc4e122d235b..4c3f623595bf 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java @@ -103,7 +103,7 @@ class KeyguardEsimArea extends Button implements View.OnClickListener { public static boolean isEsimLocked(Context context, int subId) { EuiccManager euiccManager = (EuiccManager) context.getSystemService(Context.EUICC_SERVICE); - if (!euiccManager.isEnabled()) { + if (euiccManager == null || !euiccManager.isEnabled()) { return false; } SubscriptionInfo sub = SubscriptionManager.from(context).getActiveSubscriptionInfo(subId); @@ -118,6 +118,10 @@ class KeyguardEsimArea extends Button implements View.OnClickListener { @Override public void onClick(View v) { + if (mEuiccManager == null) { + Log.e(TAG, "EuiccManager not present"); + return; + } SubscriptionInfo sub = SubscriptionManager.from(mContext) .getActiveSubscriptionInfo(mSubscriptionId); if (sub == null) { diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/SimBouncerRepository.kt b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/SimBouncerRepository.kt index 269878b43dab..b9e1c55fbade 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/SimBouncerRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/SimBouncerRepository.kt @@ -92,7 +92,7 @@ constructor( keyguardUpdateMonitor: KeyguardUpdateMonitor, private val subscriptionManager: SubscriptionManagerProxy, broadcastDispatcher: BroadcastDispatcher, - euiccManager: EuiccManager, + euiccManager: EuiccManager?, ) : SimBouncerRepository { private val isPukScreenAvailable: Boolean = resources.getBoolean(com.android.internal.R.bool.config_enable_puk_unlock_screen) @@ -163,7 +163,9 @@ constructor( @SuppressLint("MissingPermission") override val isLockedEsim: StateFlow<Boolean?> = activeSubscriptionInfo - .map { info -> info?.let { euiccManager.isEnabled && info.isEmbedded } } + .map { info -> + info?.let { euiccManager != null && euiccManager.isEnabled && info.isEmbedded } + } .stateIn( scope = applicationScope, started = SharingStarted.Eagerly, diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt index efa77926a423..0f61eef7cb96 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt @@ -50,7 +50,7 @@ object BouncerInteractorModule { } @Provides - fun provideEuiccManager(@Application applicationContext: Context): EuiccManager { - return applicationContext.getSystemService(Context.EUICC_SERVICE) as EuiccManager + fun provideEuiccManager(@Application applicationContext: Context): EuiccManager? { + return applicationContext.getSystemService(Context.EUICC_SERVICE) as EuiccManager? } } diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/SimBouncerInteractor.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/SimBouncerInteractor.kt index 99d1f1370f4f..c3d4cb30e700 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/SimBouncerInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/SimBouncerInteractor.kt @@ -61,7 +61,7 @@ constructor( private val telephonyManager: TelephonyManager, @Main private val resources: Resources, private val keyguardUpdateMonitor: KeyguardUpdateMonitor, - private val euiccManager: EuiccManager, + private val euiccManager: EuiccManager?, // TODO(b/307977401): Replace this with `MobileConnectionsInteractor` when available. mobileConnectionsRepository: MobileConnectionsRepository, ) { @@ -141,11 +141,13 @@ constructor( UserHandle.SYSTEM ) applicationScope.launch(backgroundDispatcher) { - euiccManager.switchToSubscription( - INVALID_SUBSCRIPTION_ID, - activeSubscription.portIndex, - callbackIntent, - ) + if (euiccManager != null) { + euiccManager.switchToSubscription( + INVALID_SUBSCRIPTION_ID, + activeSubscription.portIndex, + callbackIntent, + ) + } } } |