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

Commit 6a540493 authored by Willy Hu's avatar Willy Hu Committed by Jayachandran C
Browse files

Add Signal Strength to TelephonyMetrics when Data Stall

Bug: 144804770
Test: 1. Build pass.
      2. We can see the SignalStrength when calling doRecovery().
      3. atest DcTrackerTest

      Test Log:
      12-18 16:00:23.398  3661  3661 D DCT-C   : trigger data stall recovery
      12-18 16:00:23.477  3661  3661 D DCT-C   : doRecovery() signalStrength:4
      12-18 16:00:23.478  3661  3661 D DCT-C   : doRecovery() get data call list
      12-18 16:00:33.737  3661  3661 D DCT-C   : trigger data stall recovery
      12-18 16:00:33.748  3661  3661 D DCT-C   : doRecovery() signalStrength:4
      12-18 16:00:33.749  3661  3661 D DCT-C   : doRecovery() get data call list

Change-Id: I5b13d62aa8e9375e1db6aff8f639d0827aca8b9a
parent 0450cee4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -798,6 +798,9 @@ message TelephonyEvent {

    // Network capabilities change event.
    NETWORK_CAPABILITIES_CHANGED = 22;

    // Signal strength
    SIGNAL_STRENGTH = 23;
  }

  enum ApnType {
@@ -1780,6 +1783,9 @@ message TelephonyEvent {

  // NetworkCapabilities changed info.
  optional NetworkCapabilitiesInfo network_capabilities = 26;

  // Signal strength
  optional int32 signal_strength = 27;
}

message ActiveSubscriptionInfo {
+3 −0
Original line number Diff line number Diff line
@@ -4435,6 +4435,9 @@ public class DcTracker extends Handler {
            if (getOverallState() == DctConstants.State.CONNECTED) {
                // Go through a series of recovery steps, each action transitions to the next action
                @RecoveryAction final int recoveryAction = getRecoveryAction();
                final int signalStrength = mPhone.getSignalStrength().getLevel();
                TelephonyMetrics.getInstance().writeSignalStrengthEvent(
                        mPhone.getPhoneId(), signalStrength);
                TelephonyMetrics.getInstance().writeDataStallEvent(
                        mPhone.getPhoneId(), recoveryAction);
                broadcastDataStallDetected(recoveryAction);
+6 −0
Original line number Diff line number Diff line
@@ -94,6 +94,12 @@ public class TelephonyEventBuilder {
        return this;
    }

    public TelephonyEventBuilder setSignalStrength(int signalstrength) {
        mEvent.type = TelephonyEvent.Type.SIGNAL_STRENGTH;
        mEvent.signalStrength = signalstrength;
        return this;
    }

    public TelephonyEventBuilder setSetupDataCall(RilSetupDataCall request) {
        mEvent.type = TelephonyEvent.Type.DATA_CALL_SETUP;
        mEvent.setupDataCall = request;
+11 −0
Original line number Diff line number Diff line
@@ -1150,6 +1150,17 @@ public class TelephonyMetrics {
                .setDataStallRecoveryAction(recoveryAction).build());
    }

    /**
     * Write SignalStrength event
     *
     * @param phoneId Phone id
     * @param signalStrength Signal strength at the time of data stall recovery
     */
    public void writeSignalStrengthEvent(int phoneId, int signalStrength) {
        addTelephonyEvent(new TelephonyEventBuilder(phoneId)
                .setSignalStrength(signalStrength).build());
    }

    /**
     * Write IMS feature settings changed event
     *
+5 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CarrierConfigManager;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -1629,6 +1630,7 @@ public class DcTrackerTest extends TelephonyTest {
        ContentResolver resolver = mContext.getContentResolver();
        Settings.Global.putInt(resolver, Settings.Global.DATA_STALL_RECOVERY_ON_BAD_NETWORK, 1);
        Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 0);
        doReturn(new SignalStrength()).when(mPhone).getSignalStrength();

        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS});
@@ -1672,6 +1674,7 @@ public class DcTrackerTest extends TelephonyTest {
        Settings.Global.putLong(resolver,
                Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100);
        Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 1);
        doReturn(new SignalStrength()).when(mPhone).getSignalStrength();

        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS});
@@ -1713,6 +1716,7 @@ public class DcTrackerTest extends TelephonyTest {
        Settings.Global.putLong(resolver,
                Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100);
        Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 2);
        doReturn(new SignalStrength()).when(mPhone).getSignalStrength();

        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS});
@@ -1750,6 +1754,7 @@ public class DcTrackerTest extends TelephonyTest {
        Settings.Global.putLong(resolver,
                Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100);
        Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 3);
        doReturn(new SignalStrength()).when(mPhone).getSignalStrength();

        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS});