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

Commit 29c69054 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6529526 from 79d9be2b to rvc-release

Change-Id: I923ded20a69a83c127d15bd130b8ea6ea4656908
parents 48af6040 79d9be2b
Loading
Loading
Loading
Loading
+33 −3
Original line number Diff line number Diff line
@@ -37,8 +37,10 @@ import android.os.Message;
import android.os.PowerManager;
import android.os.Registrant;
import android.os.RegistrantList;
import android.provider.Settings;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CarrierConfigManager;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.SignalThresholdInfo;
import android.util.LocalLog;
import android.view.Display;
@@ -81,6 +83,10 @@ public class DeviceStateMonitor extends Handler {
    private static final int WIFI_UNAVAILABLE = 0;
    private static final int WIFI_AVAILABLE = 1;

    private static final int NR_NSA_TRACKING_INDICATIONS_OFF = 0;
    private static final int NR_NSA_TRACKING_INDICATIONS_EXTENDED = 1;
    private static final int NR_NSA_TRACKING_INDICATIONS_ALWAYS_ON = 2;

    private final Phone mPhone;

    private final LocalLog mLocalLog = new LocalLog(100);
@@ -329,7 +335,7 @@ public class DeviceStateMonitor extends Handler {
     *         android.hardware.radio@1.2::IndicationFilter::FULL_NETWORK_STATE.
     */
    private boolean shouldEnableFullNetworkStateReports() {
        return shouldEnableHighPowerConsumptionIndications();
        return shouldEnableNrTrackingIndications();
    }

    /**
@@ -337,7 +343,7 @@ public class DeviceStateMonitor extends Handler {
     *         android.hardware.radio@1.2::IndicationFilter::DATA_CALL_DORMANCY_CHANGED.
     */
    private boolean shouldEnableDataCallDormancyChangedReports() {
        return shouldEnableHighPowerConsumptionIndications();
        return shouldEnableNrTrackingIndications();
    }

    /**
@@ -353,7 +359,7 @@ public class DeviceStateMonitor extends Handler {
     *         android.hardware.radio@1.2::IndicationFilter::PHYSICAL_CHANNEL_CONFIG.
     */
    private boolean shouldEnablePhysicalChannelConfigReports() {
        return shouldEnableHighPowerConsumptionIndications();
        return shouldEnableNrTrackingIndications();
    }

    /**
@@ -378,6 +384,30 @@ public class DeviceStateMonitor extends Handler {
        return mIsCharging || mIsScreenOn || mIsTetheringOn;
    }

    /**
     * For 5G NSA devices, a policy to determine if we should enable NR tracking indications.
     *
     * @return True if the response update should be enabled.
     */
    private boolean shouldEnableNrTrackingIndications() {
        int trackingMode = Settings.Global.getInt(mPhone.getContext().getContentResolver(),
                Settings.Global.NR_NSA_TRACKING_SCREEN_OFF_MODE, NR_NSA_TRACKING_INDICATIONS_OFF);
        switch (trackingMode) {
            case NR_NSA_TRACKING_INDICATIONS_ALWAYS_ON:
                return true;
            case NR_NSA_TRACKING_INDICATIONS_EXTENDED:
                if (mPhone.getServiceState().getNrState()
                        == NetworkRegistrationInfo.NR_STATE_CONNECTED) {
                    return true;
                }
                // fallthrough
            case NR_NSA_TRACKING_INDICATIONS_OFF:
                return shouldEnableHighPowerConsumptionIndications();
            default:
                return shouldEnableHighPowerConsumptionIndications();
        }
    }

    /**
     * Set if Telephony need always report signal strength.
     *
+3 −3
Original line number Diff line number Diff line
@@ -234,9 +234,9 @@ public class DcNetworkAgent extends NetworkAgent {
                // only log metrics for DataConnection with NET_CAPABILITY_INTERNET
                if (mNetworkCapabilities == null
                        || networkCapabilities.hasCapability(
                                NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
                                NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)
                        != mNetworkCapabilities.hasCapability(
                                                NetworkCapabilities.NET_CAPABILITY_NOT_METERED)) {
                                NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)) {
                    TelephonyMetrics.getInstance().writeNetworkCapabilitiesChangedEvent(
                            mPhone.getPhoneId(), networkCapabilities);
                }
+1 −1
Original line number Diff line number Diff line
@@ -2617,7 +2617,7 @@ public class TelephonyMetrics {
            NetworkCapabilities networkCapabilities) {
        final NetworkCapabilitiesInfo caps = new NetworkCapabilitiesInfo();
        caps.isNetworkUnmetered = networkCapabilities.hasCapability(
                NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
                NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED);

        TelephonyEvent event = new TelephonyEventBuilder(phoneId)
                .setNetworkCapabilities(caps).build();
+2 −2
Original line number Diff line number Diff line
@@ -313,10 +313,10 @@ public class TelephonyMetricsTest extends TelephonyTest {
    @SmallTest
    public void testWriteNetworkCapabilitiesChangedEvent() throws Exception {
        NetworkCapabilities caps = new NetworkCapabilities();
        caps.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
        caps.addCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED);
        mMetrics.writeNetworkCapabilitiesChangedEvent(mPhone.getPhoneId(), caps);

        caps.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
        caps.removeCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED);
        mMetrics.writeNetworkCapabilitiesChangedEvent(mPhone.getPhoneId(), caps);

        TelephonyLog log = buildProto();