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

Commit 2b6237a2 authored by Sarah Chin's avatar Sarah Chin Committed by Automerger Merge Worker
Browse files

Merge "Update 5G DeviceStateMonitor indications based on settings" into...

Merge "Update 5G DeviceStateMonitor indications based on settings" into rvc-dev am: 79d9be2b am: 811d57d4

Change-Id: I6bef04b027876b3407585228b5148303674d9efd
parents 266fd2f5 811d57d4
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.
     *