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

Commit 45b07080 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Android (Google) Code Review
Browse files

Merge "Don't expect EuiccManager to be always present" into main

parents 7314b141 26cac820
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() {