Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26cac820 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk
Browse files

Don't expect EuiccManager to be always present

Bug: 310710841
Flag: NONE
Test: build & boot aosp_cf_x86_phone-eng
Change-Id: I9ca910b54d7419645a2e56e2cdfe754528e30b92
parent 7e6717a3
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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) {
+4 −2
Original line number Diff line number Diff line
@@ -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,
+2 −2
Original line number Diff line number Diff line
@@ -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?
    }
}
+8 −6
Original line number Diff line number Diff line
@@ -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,6 +141,7 @@ constructor(
                UserHandle.SYSTEM
            )
        applicationScope.launch(backgroundDispatcher) {
            if (euiccManager != null) {
                euiccManager.switchToSubscription(
                    INVALID_SUBSCRIPTION_ID,
                    activeSubscription.portIndex,
@@ -148,6 +149,7 @@ constructor(
                )
            }
        }
    }

    /** Update state when error dialog is dismissed by the user. */
    fun onErrorDialogDismissed() {