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

Commit 7deacc78 authored by Rambo Wang's avatar Rambo Wang
Browse files

Move signal strength logic from ServiceStateTracker to

SignalStrengthController

This is a clean-up CL following introduction of SSC(aosp/1545049).
All changes are logic movement only with no additional function.
Further functional optimization will be in separate CLs.

Bug: 178429976
Test: atest ServiceStateTrackerTest SignalStrengthControllerTest
Change-Id: I53880f03e8f6aa3ddcb43bd9934f0a5f67e62c17
parent a8209d33
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2198,11 +2198,11 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return Current signal strength as SignalStrength
     */
    public SignalStrength getSignalStrength() {
        ServiceStateTracker sst = getServiceStateTracker();
        if (sst == null) {
        SignalStrengthController ssc = getSignalStrengthController();
        if (ssc == null) {
            return new SignalStrength();
        } 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 Diff line number Diff line
@@ -25,7 +25,7 @@ import android.telephony.SignalStrength;
import android.util.Pair;

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.util.TelephonyUtils;
import com.android.telephony.Rlog;
@@ -215,13 +215,13 @@ public class CallQualityMetrics {

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

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

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

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

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

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

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

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

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

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

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

    private void sendCarrierConfigUpdate() {
@@ -793,7 +792,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        // 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 = {
                -130, // SIGNAL_STRENGTH_POOR
@@ -808,7 +807,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        mSimulatedCommands.setSignalStrength(ss);
        mSimulatedCommands.notifySignalStrength();
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
        assertEquals(sst.getSignalStrength().getLevel(),
        assertEquals(mSsc.getSignalStrength().getLevel(),
                CellSignalStrength.SIGNAL_STRENGTH_MODERATE);
    }

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

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

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

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

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

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

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

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