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

Commit d7bc4d44 authored by SongFerngWang's avatar SongFerngWang
Browse files

The secondary timer rule checked by wrong state.

Here is a logic error. It should be the 'current state'.

Bug: 157389780
Test: atest NetworkTypeControllerTest
Change-Id: I71f0a898262c9736781ea36828a2a3fb408afb0f
parent 09114346
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -810,19 +810,18 @@ public class NetworkTypeController extends StateMachine {
    }

    private void transitionWithSecondaryTimerTo(IState destState) {
        String destName = destState.getName();
        OverrideTimerRule rule = mOverrideTimerRules.get(mPrimaryTimerState);
        if (rule != null && rule.getSecondaryTimer(destName) > 0) {
        String currentName = getCurrentState().getName();
        OverrideTimerRule rule = mOverrideTimerRules.get(mPrimaryTimerState);
        if (rule != null && rule.getSecondaryTimer(currentName) > 0) {
            if (DBG) log("Secondary timer started for state: " + currentName);
            mSecondaryTimerState = currentName;
            mPreviousState = currentName;
            mIsSecondaryTimerActive = true;
            sendMessageDelayed(EVENT_SECONDARY_TIMER_EXPIRED, destState,
                    rule.getSecondaryTimer(destName) * 1000);
                    rule.getSecondaryTimer(currentName) * 1000);
        }
        mIsPrimaryTimerActive = false;
        transitionTo(destState);
        transitionTo(getCurrentState());
    }

    private void transitionToCurrentState() {