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

Commit 967c9441 authored by Blake Kragten's avatar Blake Kragten
Browse files

Report NSA NR As NR Cell Dwell Rate Metric

TelephonyManager reports NSA connection as LTE. Thus, cell dwell rate
metric will never report that the device is in a 5G state. Changing to
specify the network type as NR when NSA connection mode detected.

Bug: 154877022
Test: On device on live network
Cellular Radio Access Technology:
       oos 30s 811ms (1.3%)
       lte 25m 42s 352ms (64.3%)
       nr 13m 46s 268ms (34.4%)

Change-Id: Iacbc5800160cd2a4dd42f6a5520dacc6f47be9a5
parent c211ed53
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ public class DataConnectionStats extends BroadcastReceiver {
    private SignalStrength mSignalStrength;
    private ServiceState mServiceState;
    private int mDataState = TelephonyManager.DATA_DISCONNECTED;
    private int mNrState = NetworkRegistrationInfo.NR_STATE_NONE;

    public DataConnectionStats(Context context, Handler listenerHandler) {
        mContext = context;
@@ -99,6 +100,11 @@ public class DataConnectionStats extends BroadcastReceiver {
                mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN);
        int networkType = regInfo == null ? TelephonyManager.NETWORK_TYPE_UNKNOWN
                : regInfo.getAccessNetworkTechnology();
        // If the device is in NSA NR connection the networkType will report as LTE.
        // For cell dwell rate metrics, this should report NR instead.
        if (mNrState == NetworkRegistrationInfo.NR_STATE_CONNECTED) {
            networkType = TelephonyManager.NETWORK_TYPE_NR;
        }
        if (DEBUG) Log.d(TAG, String.format("Noting data connection for network type %s: %svisible",
                networkType, visible ? "" : "not "));
        try {
@@ -153,6 +159,7 @@ public class DataConnectionStats extends BroadcastReceiver {
        @Override
        public void onServiceStateChanged(ServiceState state) {
            mServiceState = state;
            mNrState = state.getNrState();
            notePhoneDataConnectionState();
        }