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

Commit 0e39b43f authored by Nathan Harold's avatar Nathan Harold Committed by Android (Google) Code Review
Browse files

Merge "Update Usage Setting After Success Rsp from Modem" into main

parents 1dfd2ed1 3a01ea46
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -898,6 +898,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
                        Rlog.e(mLogTag, "Invalid Exception for usage setting " + ar.exception);
                        break; // technically extraneous, but good hygiene
                    }
                } else {
                    mUsageSettingFromModem = msg.arg1;
                }
                break;
            default:
@@ -4484,7 +4486,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
            mCi.getUsageSetting(obtainMessage(EVENT_GET_USAGE_SETTING_DONE));
            // If the modem value is already known, and the value has changed, proceed to update.
        } else if (mPreferredUsageSetting != mUsageSettingFromModem) {
            mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE),
            mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE,
                        mPreferredUsageSetting, 0 /* unused */),
                    mPreferredUsageSetting);
        }
        return true;
+36 −0
Original line number Diff line number Diff line
@@ -2016,6 +2016,42 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
                new AsyncResult(null, null, null)));
    }

    @Test
    @SmallTest
    public void testUsageSettingUpdate_ResetToDefault() {
        setupUsageSettingResources();
        mPhoneUT.mCi = mMockCi;

        SubscriptionInfoInternal si = makeSubscriptionInfoInternal(
                false, SubscriptionManager.USAGE_SETTING_DATA_CENTRIC);
        doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt());

        mPhoneUT.updateUsageSetting();
        processAllMessages();

        verify(mMockCi).getUsageSetting(any());
        mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_GET_USAGE_SETTING_DONE,
                new AsyncResult(null,
                        new int[]{SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC}, null)));
        processAllMessages();

        // Grab the message to ensure it returns the preferred value for updating the cache
        ArgumentCaptor<Message> messageCaptor = ArgumentCaptor.forClass(Message.class);
        verify(mMockCi).setUsageSetting(
                messageCaptor.capture(), eq(SubscriptionManager.USAGE_SETTING_DATA_CENTRIC));
        AsyncResult.forMessage(messageCaptor.getValue());
        messageCaptor.getValue().sendToTarget();
        processAllMessages();

        si = makeSubscriptionInfoInternal(false, SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC);
        doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt());

        mPhoneUT.updateUsageSetting();
        processAllMessages();

        verify(mMockCi).setUsageSetting(any(), eq(SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC));
    }

    @Test
    @SmallTest
    public void testUsageSettingUpdate_DefaultOpportunistic() {