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

Commit e6c4964d authored by Jack Yu's avatar Jack Yu Committed by Automerger Merge Worker
Browse files

Moved UICC application enabled callback am: c893ec6c

parents 50f3178d c893ec6c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -347,7 +347,7 @@ public class GsmCdmaPhone extends Phone {
            mSubscriptionManagerService.registerCallback(new SubscriptionManagerServiceCallback(
                    this::post) {
                @Override
                public void onUiccApplicationsEnabled(int subId) {
                public void onUiccApplicationsEnabledChanged(int subId) {
                    reapplyUiccAppsEnablementIfNeeded(ENABLE_UICC_APPS_MAX_RETRIES);
                }
            });
@@ -4254,6 +4254,7 @@ public class GsmCdmaPhone extends Phone {
                " mTelecomVoiceServiceStateOverride=" + mTelecomVoiceServiceStateOverride + "("
                        + ServiceState.rilServiceStateToString(mTelecomVoiceServiceStateOverride)
                        + ")");
        pw.println(" mUiccApplicationsEnabled=" + mUiccApplicationsEnabled);
        pw.flush();
    }

@@ -4639,6 +4640,8 @@ public class GsmCdmaPhone extends Phone {
        // If no card is present or we don't have mUiccApplicationsEnabled yet, do nothing.
        if (slot == null || slot.getCardState() != IccCardStatus.CardState.CARDSTATE_PRESENT
                || mUiccApplicationsEnabled == null) {
            loge("reapplyUiccAppsEnablementIfNeeded: slot state="
                    + (slot != null ? slot.getCardState() : null));
            return;
        }

+0 −16
Original line number Diff line number Diff line
@@ -553,14 +553,6 @@ public class SubscriptionDatabaseManager extends Handler {
         * @param subId The subscription id.
         */
        public abstract void onSubscriptionChanged(int subId);

        /**
         * Called when {@link SubscriptionInfoInternal#areUiccApplicationsEnabled()}
         * changed.
         *
         * @param subId The subscription id.
         */
        public abstract void onUiccApplicationsEnabled(int subId);
    }

    /**
@@ -918,10 +910,6 @@ public class SubscriptionDatabaseManager extends Handler {
                            mAllSubscriptionInfoInternalCache.put(id, builder.build());
                            mCallback.invokeFromExecutor(()
                                    -> mCallback.onSubscriptionChanged(subId));
                            if (columnName.equals(SimInfo.COLUMN_UICC_APPLICATIONS_ENABLED)) {
                                mCallback.invokeFromExecutor(()
                                        -> mCallback.onUiccApplicationsEnabled(subId));
                            }
                        }
                    }
                }
@@ -956,10 +944,6 @@ public class SubscriptionDatabaseManager extends Handler {
            if (updateDatabase(subId, createDeltaContentValues(oldSubInfo, newSubInfo)) > 0) {
                mAllSubscriptionInfoInternalCache.put(subId, newSubInfo);
                mCallback.invokeFromExecutor(() -> mCallback.onSubscriptionChanged(subId));
                if (oldSubInfo.areUiccApplicationsEnabled()
                        != newSubInfo.areUiccApplicationsEnabled()) {
                    mCallback.invokeFromExecutor(() -> mCallback.onUiccApplicationsEnabled(subId));
                }
            }
        } finally {
            mReadWriteLock.writeLock().unlock();
+15 −19
Original line number Diff line number Diff line
@@ -379,7 +379,7 @@ public class SubscriptionManagerService extends ISub.Stub {
         *
         * @param subId The subscription id.
         */
        public void onUiccApplicationsEnabled(int subId) {}
        public void onUiccApplicationsEnabledChanged(int subId) {}
    }

    /**
@@ -501,23 +501,6 @@ public class SubscriptionManagerService extends ISub.Stub {
                                && telephonyRegistryManager != null) {
                            telephonyRegistryManager.notifyOpportunisticSubscriptionInfoChanged();
                        }

                        // TODO: Call TelephonyMetrics.updateActiveSubscriptionInfoList when active
                        //  subscription changes.
                    }

                    /**
                     * Called when {@link SubscriptionInfoInternal#areUiccApplicationsEnabled()}
                     * changed.
                     *
                     * @param subId The subscription id.
                     */
                    @Override
                    public void onUiccApplicationsEnabled(int subId) {
                        log("onUiccApplicationsEnabled: subId=" + subId);
                        mSubscriptionManagerServiceCallbacks.forEach(
                                callback -> callback.invokeFromExecutor(
                                        () -> callback.onUiccApplicationsEnabled(subId)));
                    }
                });

@@ -3193,7 +3176,20 @@ public class SubscriptionManagerService extends ISub.Stub {

        final long identity = Binder.clearCallingIdentity();
        try {

            SubscriptionInfoInternal subInfo = mSubscriptionDatabaseManager
                    .getSubscriptionInfoInternal(subId);
            if (subInfo == null) {
                throw new IllegalArgumentException("setUiccApplicationsEnabled: Subscription "
                        + "doesn't exist. subId=" + subId);
            }

            if (subInfo.areUiccApplicationsEnabled() != enabled) {
                mSubscriptionDatabaseManager.setUiccApplicationsEnabled(subId, enabled);
                mSubscriptionManagerServiceCallbacks.forEach(
                        callback -> callback.invokeFromExecutor(
                                () -> callback.onUiccApplicationsEnabledChanged(subId)));
            }
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
+12 −2
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

@@ -1268,11 +1269,20 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
        mSubscriptionManagerServiceUT.setUiccApplicationsEnabled(false, 1);
        processAllMessages();
        verify(mMockedSubscriptionManagerServiceCallback).onSubscriptionChanged(eq(1));
        verify(mMockedSubscriptionManagerServiceCallback).onUiccApplicationsEnabledChanged(eq(1));

        SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT
                .getSubscriptionInfoInternal(1);
        assertThat(subInfo).isNotNull();
        assertThat(subInfo.areUiccApplicationsEnabled()).isFalse();

        Mockito.clearInvocations(mMockedSubscriptionManagerServiceCallback);
        mSubscriptionManagerServiceUT.setUiccApplicationsEnabled(false, 1);
        processAllMessages();

        verify(mMockedSubscriptionManagerServiceCallback, never()).onSubscriptionChanged(eq(1));
        verify(mMockedSubscriptionManagerServiceCallback, never())
                .onUiccApplicationsEnabledChanged(eq(1));
    }

    @Test
@@ -2029,9 +2039,9 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
        SubscriptionManagerServiceCallback callback =
                new SubscriptionManagerServiceCallback(Runnable::run) {
                    @Override
                    public void onUiccApplicationsEnabled(int subId) {
                    public void onUiccApplicationsEnabledChanged(int subId) {
                        latch.countDown();
                        logd("testOnSubscriptionChanged: onUiccApplicationsEnabled");
                        logd("testOnSubscriptionChanged: onUiccApplicationsEnabledChanged");
                    }
                };
        mSubscriptionManagerServiceUT.registerCallback(callback);