summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tomasz Wasilczyk <twasilczyk@google.com> 2024-02-15 12:12:09 -0800
committer Tomasz Wasilczyk <twasilczyk@google.com> 2024-02-15 12:17:50 -0800
commit26cac82098c112cfadc0cb5548f4214ad18a90c7 (patch)
tree9266945119980b32bb0100e71b36aacd7af9e1ac
parent7e6717a31d784ea8dff31c3106196bb60863b54d (diff)
Don't expect EuiccManager to be always present
Bug: 310710841 Flag: NONE Test: build & boot aosp_cf_x86_phone-eng Change-Id: I9ca910b54d7419645a2e56e2cdfe754528e30b92
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/bouncer/data/repository/SimBouncerRepository.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/SimBouncerInteractor.kt14
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,
+ )
+ }
}
}