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

Commit b2305ed9 authored by Peter Wang's avatar Peter Wang Committed by android-build-merger
Browse files

Merge "Refresh embedded subscriptions on package change"

am: 53f301e6

Change-Id: Ie5cd018a0d7ab984c8c0f9d62f07d3442297da4e
parents 60332277 53f301e6
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -318,6 +318,8 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {

    private Context mContext;
    private PackageManager mPm;
    private TelephonyManager mTm;
    private SubscriptionManager mSm;

    private final PackageMonitor mPackageMonitor = new EuiccPackageMonitor();
    private final BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() {
@@ -361,6 +363,9 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
    private void init(Context context) {
        mContext = context;
        mPm = context.getPackageManager();
        mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        mSm = (SubscriptionManager)
                context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);

        // Unavailable/Available both monitor for package changes and update mSelectedComponent but
        // do not need to adjust the binding.
@@ -523,6 +528,7 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
                } else if (getCurrentState() != mUnavailableState) {
                    transitionTo(mUnavailableState);
                }
                updateSubscriptionInfoListForAllAccessibleEuiccs();
                return HANDLED;
            } else if (isEuiccCommand(message.what)) {
                BaseEuiccCommandCallback callback = getCallback(message);
@@ -631,6 +637,7 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
                        transitionTo(mBindingState);
                    }
                }
                updateSubscriptionInfoListForAllAccessibleEuiccs();
                return HANDLED;
            } else if (message.what == CMD_CONNECT_TIMEOUT) {
                transitionTo(mAvailableState);
@@ -1136,4 +1143,17 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
        pw.println("mEuiccService=" + mEuiccService);
        pw.println("mActiveCommandCount=" + mActiveCommandCallbacks.size());
    }

    private void updateSubscriptionInfoListForAllAccessibleEuiccs() {
        if (mTm.getCardIdForDefaultEuicc() == TelephonyManager.UNSUPPORTED_CARD_ID) {
            // Device does not support card ID
            mSm.requestEmbeddedSubscriptionInfoListRefresh();
        } else {
            for (UiccCardInfo cardInfo : mTm.getUiccCardsInfo()) {
                if (cardInfo.isEuicc()) {
                    mSm.requestEmbeddedSubscriptionInfoListRefresh(cardInfo.getCardId());
                }
            }
        }
    }
}