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

Commit 433a4c5d authored by Rambo Wang's avatar Rambo Wang Committed by Automerger Merge Worker
Browse files

Merge "Move signal strength logic from ServiceStateTracker to...

Merge "Move signal strength logic from ServiceStateTracker to SignalStrengthController" am: e8b41f10 am: 4b8f9e2b am: 1cf899c5 am: 01891be8 am: 34243494

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/1573541

Change-Id: I2765b595e88070c200c0c62476b737c75360572c
parents fc12d009 34243494
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -2210,11 +2210,11 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return Current signal strength as SignalStrength
     * @return Current signal strength as SignalStrength
     */
     */
    public SignalStrength getSignalStrength() {
    public SignalStrength getSignalStrength() {
        ServiceStateTracker sst = getServiceStateTracker();
        SignalStrengthController ssc = getSignalStrengthController();
        if (sst == null) {
        if (ssc == null) {
            return new SignalStrength();
            return new SignalStrength();
        } else {
        } else {
            return sst.getSignalStrength();
            return ssc.getSignalStrength();
        }
        }
    }
    }


+18 −358

File changed.

Preview size limit exceeded, changes collapsed.

+508 −135

File changed.

Preview size limit exceeded, changes collapsed.

+5 −5
Original line number Original line Diff line number Diff line
@@ -25,7 +25,7 @@ import android.telephony.SignalStrength;
import android.util.Pair;
import android.util.Pair;


import com.android.internal.telephony.Phone;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.SignalStrengthController;
import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession;
import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.telephony.Rlog;
import com.android.telephony.Rlog;
@@ -215,13 +215,13 @@ public class CallQualityMetrics {


    // Returns the LTE signal to noise ratio, or 0 if unavailable
    // Returns the LTE signal to noise ratio, or 0 if unavailable
    private Integer getLteSnr() {
    private Integer getLteSnr() {
        ServiceStateTracker sst = mPhone.getDefaultPhone().getServiceStateTracker();
        SignalStrengthController ssc = mPhone.getDefaultPhone().getSignalStrengthController();
        if (sst == null) {
        if (ssc == null) {
            Rlog.e(TAG, "getLteSnr: unable to get SST for phone " + mPhone.getPhoneId());
            Rlog.e(TAG, "getLteSnr: unable to get SSC for phone " + mPhone.getPhoneId());
            return CellInfo.UNAVAILABLE;
            return CellInfo.UNAVAILABLE;
        }
        }


        SignalStrength ss = sst.getSignalStrength();
        SignalStrength ss = ssc.getSignalStrength();
        if (ss == null) {
        if (ss == null) {
            Rlog.e(TAG, "getLteSnr: unable to get SignalStrength for phone " + mPhone.getPhoneId());
            Rlog.e(TAG, "getLteSnr: unable to get SignalStrength for phone " + mPhone.getPhoneId());
            return CellInfo.UNAVAILABLE;
            return CellInfo.UNAVAILABLE;
+18 −18
Original line number Original line Diff line number Diff line
@@ -141,8 +141,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {


    // SST now delegates all signal strength operations to SSC
    // SST now delegates all signal strength operations to SSC
    // Add Mock SSC as the dependency to avoid NPE
    // Add Mock SSC as the dependency to avoid NPE
    @Mock
    private SignalStrengthController mSsc;
    private SignalStrengthController mSignalStrengthController;


    private ServiceStateTracker sst;
    private ServiceStateTracker sst;
    private ServiceStateTrackerTestHandler mSSTTestHandler;
    private ServiceStateTrackerTestHandler mSSTTestHandler;
@@ -193,8 +192,8 @@ public class ServiceStateTrackerTest extends TelephonyTest {


        @Override
        @Override
        public void onLooperPrepared() {
        public void onLooperPrepared() {
            mSignalStrengthController = new SignalStrengthController(mPhone);
            mSsc = new SignalStrengthController(mPhone);
            doReturn(mSignalStrengthController).when(mPhone).getSignalStrengthController();
            doReturn(mSsc).when(mPhone).getSignalStrengthController();


            sst = new ServiceStateTracker(mPhone, mSimulatedCommands);
            sst = new ServiceStateTracker(mPhone, mSimulatedCommands);
            sst.setServiceStateStats(mServiceStateStats);
            sst.setServiceStateStats(mServiceStateStats);
@@ -723,8 +722,8 @@ public class ServiceStateTrackerTest extends TelephonyTest {
                new CellSignalStrengthNr());
                new CellSignalStrengthNr());


        sendSignalStrength(ss);
        sendSignalStrength(ss);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(mSsc.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), true);
        assertEquals(mSsc.getSignalStrength().isGsm(), true);


        // Send in CDMA+LTE Signal Strength Info and expect isGsm == true
        // Send in CDMA+LTE Signal Strength Info and expect isGsm == true
        ss = new SignalStrength(
        ss = new SignalStrength(
@@ -738,8 +737,8 @@ public class ServiceStateTrackerTest extends TelephonyTest {
                new CellSignalStrengthNr());
                new CellSignalStrengthNr());


        sendSignalStrength(ss);
        sendSignalStrength(ss);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(mSsc.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), true);
        assertEquals(mSsc.getSignalStrength().isGsm(), true);


        // Send in CDMA-only Signal Strength Info and expect isGsm == false
        // Send in CDMA-only Signal Strength Info and expect isGsm == false
        ss = new SignalStrength(
        ss = new SignalStrength(
@@ -752,8 +751,8 @@ public class ServiceStateTrackerTest extends TelephonyTest {
                new CellSignalStrengthNr());
                new CellSignalStrengthNr());


        sendSignalStrength(ss);
        sendSignalStrength(ss);
        assertEquals(sst.getSignalStrength(), ss);
        assertEquals(mSsc.getSignalStrength(), ss);
        assertEquals(sst.getSignalStrength().isGsm(), false);
        assertEquals(mSsc.getSignalStrength().isGsm(), false);
    }
    }


    private void sendCarrierConfigUpdate() {
    private void sendCarrierConfigUpdate() {
@@ -793,7 +792,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        // Default thresholds are POOR=-115 MODERATE=-105 GOOD=-95 GREAT=-85
        // Default thresholds are POOR=-115 MODERATE=-105 GOOD=-95 GREAT=-85
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_POOR, sst.getSignalStrength().getLevel());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_POOR, mSsc.getSignalStrength().getLevel());


        int[] lteThresholds = {
        int[] lteThresholds = {
                -130, // SIGNAL_STRENGTH_POOR
                -130, // SIGNAL_STRENGTH_POOR
@@ -808,7 +807,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(sst.getSignalStrength().getLevel(),
        assertEquals(mSsc.getSignalStrength().getLevel(),
                CellSignalStrength.SIGNAL_STRENGTH_MODERATE);
                CellSignalStrength.SIGNAL_STRENGTH_MODERATE);
    }
    }


@@ -836,7 +835,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_GREAT, sst.getSignalStrength().getLevel());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_GREAT, mSsc.getSignalStrength().getLevel());
    }
    }


    @Test
    @Test
@@ -864,7 +863,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN,
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN,
                sst.getSignalStrength().getLevel());
                mSsc.getSignalStrength().getLevel());
    }
    }


    @Test
    @Test
@@ -891,7 +890,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_GREAT, sst.getSignalStrength().getLevel());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_GREAT, mSsc.getSignalStrength().getLevel());


        int[] nrSsRsrpThresholds = {
        int[] nrSsRsrpThresholds = {
                -45, // SIGNAL_STRENGTH_POOR
                -45, // SIGNAL_STRENGTH_POOR
@@ -908,7 +907,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_POOR,
        assertEquals(CellSignalStrength.SIGNAL_STRENGTH_POOR,
                sst.getSignalStrength().getLevel());
                mSsc.getSignalStrength().getLevel());
    }
    }


    @Test
    @Test
@@ -924,7 +923,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(sst.getSignalStrength().getLevel(), CellSignalStrength.SIGNAL_STRENGTH_GOOD);
        assertEquals(mSsc.getSignalStrength().getLevel(), CellSignalStrength.SIGNAL_STRENGTH_GOOD);


        int[] wcdmaThresholds = {
        int[] wcdmaThresholds = {
                -110, // SIGNAL_STRENGTH_POOR
                -110, // SIGNAL_STRENGTH_POOR
@@ -941,7 +940,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(sst.getSignalStrength().getLevel(), CellSignalStrength.SIGNAL_STRENGTH_GOOD);
        assertEquals(mSsc.getSignalStrength().getLevel(), CellSignalStrength.SIGNAL_STRENGTH_GOOD);
    }
    }


    @Test
    @Test
@@ -2559,6 +2558,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        doReturn(true).when(mPhone).isPhoneTypeCdmaLte();
        doReturn(true).when(mPhone).isPhoneTypeCdmaLte();
        doReturn(CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM).when(mCdmaSSM)
        doReturn(CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM).when(mCdmaSSM)
                .getCdmaSubscriptionSource();
                .getCdmaSubscriptionSource();
        doReturn(PHONE_ID).when(mPhone).getPhoneId();


        logd("Calling updatePhoneType");
        logd("Calling updatePhoneType");
        // switch to CDMA
        // switch to CDMA
Loading