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

Commit 34243494 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

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

Change-Id: I503b3a540d07529c165343a203770026f455c0fa
parents 2200c2bf 01891be8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2199,11 +2199,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