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

Commit dc7026d4 authored by SongFerngWang's avatar SongFerngWang
Browse files

Add two conditions for NR icon primary timer disabled

1. condition#1:  the current icon equals previous icon.
2. condition#2:  current state is mmWaveState.
3. add log for multi sim cards case.

Bug: 157388635
Test: atest NetworkTypeControllerTest
Change-Id: Ib636d2cca7dd334eb38881ad496c39453d12f1ca
Merged-In: Ib636d2cca7dd334eb38881ad496c39453d12f1ca
parent a8dba349
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -61,8 +61,8 @@ public class DisplayInfoController extends Handler {
                mPhone.getServiceState().getDataNetworkType(),
                mNetworkTypeController.getOverrideNetworkType());
        if (!newDisplayInfo.equals(mTelephonyDisplayInfo)) {
            Rlog.d(TAG, "TelephonyDisplayInfo changed from " + mTelephonyDisplayInfo + " to "
                    + newDisplayInfo);
            Rlog.d(TAG, "TelephonyDisplayInfo[" + mPhone.getPhoneId() + "] changed from "
                    + mTelephonyDisplayInfo + " to " + newDisplayInfo);
            mTelephonyDisplayInfo = newDisplayInfo;
            mTelephonyDisplayInfoChangedRegistrants.notifyRegistrants();
            mPhone.notifyDisplayInfoChanged(mTelephonyDisplayInfo);
+17 −7
Original line number Diff line number Diff line
@@ -336,6 +336,11 @@ public class NetworkTypeController extends StateMachine {
            if (DBG) log("Skip updating override network type since timer is active.");
            return;
        }
        mOverrideNetworkType = getCurrentOverrideNetworkType();
        mDisplayInfoController.updateTelephonyDisplayInfo();
    }

    private @Annotation.OverrideNetworkType int getCurrentOverrideNetworkType() {
        int displayNetworkType = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE;
        int dataNetworkType = mPhone.getServiceState().getDataNetworkType();
        // NR display is not accurate when physical channel config notifications are off
@@ -352,8 +357,7 @@ public class NetworkTypeController extends StateMachine {
            // Process LTE display network type
            displayNetworkType = getLteDisplayType();
        }
        mOverrideNetworkType = displayNetworkType;
        mDisplayInfoController.updateTelephonyDisplayInfo();
        return displayNetworkType;
    }

    private @Annotation.OverrideNetworkType int getNrDisplayType() {
@@ -796,10 +800,11 @@ public class NetworkTypeController extends StateMachine {

    private void updateTimers() {
        String currentState = getCurrentState().getName();
        if (mIsPrimaryTimerActive && mPrimaryTimerState.equals(currentState)) {
            // remove primary timer if device goes back to the original state

        if (mIsPrimaryTimerActive && getOverrideNetworkType() == getCurrentOverrideNetworkType()) {
            // remove primary timer if device goes back to the original icon
            if (DBG) {
                log("Remove primary timer since primary state and current state equal: "
                log("Remove primary timer since icon of primary state and current icon equal: "
                        + mPrimaryTimerState);
            }
            removeMessages(EVENT_PRIMARY_TIMER_EXPIRED);
@@ -817,6 +822,10 @@ public class NetworkTypeController extends StateMachine {
            mIsSecondaryTimerActive = false;
            mSecondaryTimerState = "";
        }

        if (currentState.equals(STATE_CONNECTED_MMWAVE)) {
            resetAllTimers();
        }
    }

    private void resetAllTimers() {
@@ -949,11 +958,11 @@ public class NetworkTypeController extends StateMachine {
    }

    protected void log(String s) {
        Rlog.d(TAG, s);
        Rlog.d(TAG, "[" + mPhone.getPhoneId() + "] " + s);
    }

    protected void loge(String s) {
        Rlog.e(TAG, s);
        Rlog.e(TAG, "[" + mPhone.getPhoneId() + "] " + s);
    }

    @Override
@@ -975,6 +984,7 @@ public class NetworkTypeController extends StateMachine {
        super.dump(fd, pw, args);
        pw.flush();
        pw.increaseIndent();
        pw.println("mSubId=" + mPhone.getSubId());
        pw.println("mOverrideTimerRules=" + mOverrideTimerRules.toString());
        pw.println("mLteEnhancedPattern=" + mLteEnhancedPattern);
        pw.println("mIsPhysicalChannelConfigOn=" + mIsPhysicalChannelConfigOn);