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

Commit 606113a4 authored by Sarah Chin's avatar Sarah Chin Committed by Gerrit Code Review
Browse files

Merge "Add NrState and NrFrequency to telephony metrics"

parents b0dcb980 7de6953b
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -262,6 +262,44 @@ message TelephonyServiceState {
    ROAMING_TYPE_INTERNATIONAL = 3;
  }

  enum FrequencyRange {
    // Unknown. The default value.
    FREQUENCY_RANGE_UNKNOWN = -1;

    // Frequency range is below 1GHz.
    FREQUENCY_RANGE_LOW = 1;

    // Frequency range is between 1GHz and 3GHz.
    FREQUENCY_RANGE_MID = 2;

    // Frequency range is between 3GHz and 6GHz.
    FREQUENCY_RANGE_HIGH = 3;

    // Frequency range is above 6GHz (millimeter wave frequency).
    FREQUENCY_RANGE_MMWAVE = 4;
  }

  enum NrState {
    // The device isn't camped on an LTE cell
    // or the LTE cell doesn't support EN-DC.
    NR_STATE_NONE = -1;

    // The device is camped on an LTE cell that supports EN-DC
    // but either DCNR is restricted
    // or NR is not supported by the selected PLMN.
    NR_STATE_RESTRICTED = 1;

    // The device is camped on an LTE cell that supports EN-DC
    // and both DCNR is not restricted and NR is supported
    // by the selected PLMN.
    NR_STATE_NOT_RESTRICTED = 2;

    // The device is camped on an LTE cell that supports EN-DC
    // and connected to at least one 5G cell
    // as a secondary serving cell.
    NR_STATE_CONNECTED = 3;
  }

  // Current registered operator
  optional TelephonyOperator voice_operator = 1;

@@ -282,6 +320,12 @@ message TelephonyServiceState {

  // Current Channel Number
  optional int32 channel_number = 7;

  // Current NR frequency range
  optional FrequencyRange nr_frequency_range = 8;

  // Current NR state
  optional NrState nr_state = 9;
}

// Radio access families
+13 −2
Original line number Diff line number Diff line
@@ -1579,6 +1579,8 @@ public class ServiceStateTracker extends Handler {
                    // Notify NR frequency, NR connection status or bandwidths changed.
                    if (hasChanged) {
                        mPhone.notifyServiceStateChanged(mSS);
                        TelephonyMetrics.getInstance().writeServiceStateChanged(
                                mPhone.getPhoneId(), mSS);
                    }
                }
                break;
@@ -2153,6 +2155,7 @@ public class ServiceStateTracker extends Handler {
                int serviceState = regCodeToServiceState(registrationState);
                int newDataRat = ServiceState.networkTypeToRilRadioTechnology(
                        networkRegState.getAccessNetworkTechnology());
                boolean nrHasChanged = false;

                if (DBG) {
                    log("handlePollStateResultMessage: PS cellular. " + networkRegState);
@@ -2163,11 +2166,17 @@ public class ServiceStateTracker extends Handler {
                // (2 or more cells) to a new cell if they camp for emergency service only.
                if (serviceState == ServiceState.STATE_OUT_OF_SERVICE) {
                    mLastPhysicalChannelConfigList = null;
                    updateNrFrequencyRangeFromPhysicalChannelConfigs(null, mNewSS);
                    nrHasChanged |= updateNrFrequencyRangeFromPhysicalChannelConfigs(null, mNewSS);
                }
                updateNrStateFromPhysicalChannelConfigs(mLastPhysicalChannelConfigList, mNewSS);
                nrHasChanged |= updateNrStateFromPhysicalChannelConfigs(
                        mLastPhysicalChannelConfigList, mNewSS);
                setPhyCellInfoFromCellIdentity(mNewSS, networkRegState.getCellIdentity());

                if (nrHasChanged) {
                    TelephonyMetrics.getInstance().writeServiceStateChanged(
                            mPhone.getPhoneId(), mSS);
                }

                if (mPhone.isPhoneTypeGsm()) {

                    mNewReasonDataDenied = networkRegState.getRejectCause();
@@ -3405,7 +3414,9 @@ public class ServiceStateTracker extends Handler {
            mPhone.getContext().getContentResolver()
                    .insert(getUriForSubscriptionId(mPhone.getSubId()),
                            getContentValuesForServiceState(mSS));
        }

        if (hasChanged || hasNrStateChanged) {
            TelephonyMetrics.getInstance().writeServiceStateChanged(mPhone.getPhoneId(), mSS);
        }

+7 −1
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.RIL;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.SmsResponse;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.telephony.UUSInfo;
import com.android.internal.telephony.imsphone.ImsPhoneCall;
import com.android.internal.telephony.nano.TelephonyProto;
@@ -105,6 +104,7 @@ import com.android.internal.telephony.nano.TelephonyProto.TelephonyServiceState;
import com.android.internal.telephony.nano.TelephonyProto.TelephonySettings;
import com.android.internal.telephony.nano.TelephonyProto.TimeInterval;
import com.android.internal.telephony.protobuf.nano.MessageNano;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.util.IndentingPrintWriter;

import java.io.FileDescriptor;
@@ -434,6 +434,8 @@ public class TelephonyMetrics {
                        + "(" + "Data RAT " + event.serviceState.dataRat
                        + " Voice RAT " + event.serviceState.voiceRat
                        + " Channel Number " + event.serviceState.channelNumber
                        + " NR Frequency Range " + event.serviceState.nrFrequencyRange
                        + " NR State " + event.serviceState.nrState
                        + ")");
            } else {
                pw.print(telephonyEventToString(event.type));
@@ -463,6 +465,8 @@ public class TelephonyMetrics {
                            + "(" + "Data RAT " + event.serviceState.dataRat
                            + " Voice RAT " + event.serviceState.voiceRat
                            + " Channel Number " + event.serviceState.channelNumber
                            + " NR Frequency Range " + event.serviceState.nrFrequencyRange
                            + " NR State " + event.serviceState.nrState
                            + ")");
                } else if (event.type == TelephonyCallSession.Event.Type.RIL_CALL_LIST_CHANGED) {
                    pw.println(callSessionEventToString(event.type));
@@ -912,6 +916,8 @@ public class TelephonyMetrics {
        ssProto.voiceRat = serviceState.getRilVoiceRadioTechnology();
        ssProto.dataRat = serviceState.getRilDataRadioTechnology();
        ssProto.channelNumber = serviceState.getChannelNumber();
        ssProto.nrFrequencyRange = serviceState.getNrFrequencyRange();
        ssProto.nrState = serviceState.getNrState();
        return ssProto;
    }