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

Commit a0346e5d authored by SongFerngWang's avatar SongFerngWang Committed by Automerger Merge Worker
Browse files

5G icon timer did't work after physcial channel changed. am: 0b70ede2 am:...

5G icon timer did't work after physcial channel changed. am: 0b70ede2 am: b6137bb6 am: fbea3ec7

Change-Id: Ifdcdfffcf7fadf37dd3a7c70087877cc4dcd3437
parents c3f97c37 fbea3ec7
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -689,10 +689,16 @@ public class NetworkTypeController extends StateMachine {
                    }
                    }
                    break;
                    break;
                case EVENT_NR_FREQUENCY_CHANGED:
                case EVENT_NR_FREQUENCY_CHANGED:
                    if (!isNrConnected()) {
                        log("The nr state was changed. To update the state.");
                        sendMessage(EVENT_NR_STATE_CHANGED);
                    }
                    if (!isNrMmwave()) {
                    if (!isNrMmwave()) {
                        // STATE_CONNECTED_MMWAVE -> STATE_CONNECTED
                        transitionWithTimerTo(mNrConnectedState);
                        transitionWithTimerTo(mNrConnectedState);
                    } else {
                    } else {
                        updateOverrideNetworkType();
                        // STATE_CONNECTED -> STATE_CONNECTED_MMWAVE
                        transitionTo(mNrConnectedState);
                    }
                    }
                    break;
                    break;
                case EVENT_DATA_ACTIVITY_CHANGED:
                case EVENT_DATA_ACTIVITY_CHANGED:
+4 −4
Original line number Original line Diff line number Diff line
@@ -1619,14 +1619,14 @@ public class ServiceStateTracker extends Handler {
                    mPhone.notifyPhysicalChannelConfiguration(list);
                    mPhone.notifyPhysicalChannelConfiguration(list);
                    mLastPhysicalChannelConfigList = list;
                    mLastPhysicalChannelConfigList = list;
                    boolean hasChanged = false;
                    boolean hasChanged = false;
                    if (updateNrFrequencyRangeFromPhysicalChannelConfigs(list, mSS)) {
                        mNrFrequencyChangedRegistrants.notifyRegistrants();
                        hasChanged = true;
                    }
                    if (updateNrStateFromPhysicalChannelConfigs(list, mSS)) {
                    if (updateNrStateFromPhysicalChannelConfigs(list, mSS)) {
                        mNrStateChangedRegistrants.notifyRegistrants();
                        mNrStateChangedRegistrants.notifyRegistrants();
                        hasChanged = true;
                        hasChanged = true;
                    }
                    }
                    if (updateNrFrequencyRangeFromPhysicalChannelConfigs(list, mSS)) {
                        mNrFrequencyChangedRegistrants.notifyRegistrants();
                        hasChanged = true;
                    }
                    hasChanged |= RatRatcheter
                    hasChanged |= RatRatcheter
                            .updateBandwidths(getBandwidthsFromConfigs(list), mSS);
                            .updateBandwidths(getBandwidthsFromConfigs(list), mSS);


+30 −1
Original line number Original line Diff line number Diff line
@@ -251,15 +251,44 @@ public class NetworkTypeControllerTest extends TelephonyTest {
    }
    }


    @Test
    @Test
    public void testEventNrFrequencyRangeChanged() throws Exception {
    public void testEventNrFrequencyRangeChangedFromNrConnectedMmwaveToNrConnected()
            throws Exception {
        testTransitionToCurrentStateNrConnectedMmwave();
        testTransitionToCurrentStateNrConnectedMmwave();
        doReturn(ServiceState.FREQUENCY_RANGE_LOW).when(mServiceState).getNrFrequencyRange();
        doReturn(ServiceState.FREQUENCY_RANGE_LOW).when(mServiceState).getNrFrequencyRange();


        mNetworkTypeController.sendMessage(EVENT_NR_FREQUENCY_CHANGED);
        mNetworkTypeController.sendMessage(EVENT_NR_FREQUENCY_CHANGED);
        processAllMessages();
        processAllMessages();

        assertEquals("connected", getCurrentState().getName());
        assertEquals("connected", getCurrentState().getName());
    }
    }


    @Test
    public void testEventNrFrequencyRangeChangedFromNrConnectedToNrConnectedMmwave()
            throws Exception {
        testTransitionToCurrentStateNrConnected();
        doReturn(ServiceState.FREQUENCY_RANGE_MMWAVE).when(mServiceState).getNrFrequencyRange();

        mNetworkTypeController.sendMessage(EVENT_NR_FREQUENCY_CHANGED);
        processAllMessages();

        assertEquals("connected_mmwave", getCurrentState().getName());
    }

    @Test
    public void testNrPhysicalChannelChangeFromNrConnectedMmwaveToLteConnected() throws Exception {
        testTransitionToCurrentStateNrConnectedMmwave();
        doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mServiceState).getDataNetworkType();
        doReturn(NetworkRegistrationInfo.NR_STATE_NOT_RESTRICTED).when(mServiceState).getNrState();
        doReturn(PhoneInternalInterface.DataActivityState.DATAINANDOUT)
                .when(mPhone).getDataActivityState();

        mNetworkTypeController.sendMessage(EVENT_NR_FREQUENCY_CHANGED);
        mNetworkTypeController.sendMessage(EVENT_NR_STATE_CHANGED);
        processAllMessages();

        assertEquals("not_restricted_rrc_con", getCurrentState().getName());
    }

    @Test
    @Test
    public void testEventDataActivityChanged() throws Exception {
    public void testEventDataActivityChanged() throws Exception {
        testTransitionToCurrentStateLteConnected();
        testTransitionToCurrentStateLteConnected();