Loading src/java/com/android/internal/telephony/DeviceStateMonitor.java +33 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); } /** Loading @@ -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(); } /** Loading @@ -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(); } /** Loading @@ -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. * Loading src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +3 −3 Original line number Diff line number Diff line Loading @@ -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); } Loading src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading tests/telephonytests/src/com/android/internal/telephony/metrics/TelephonyMetricsTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading
src/java/com/android/internal/telephony/DeviceStateMonitor.java +33 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); } /** Loading @@ -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(); } /** Loading @@ -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(); } /** Loading @@ -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. * Loading
src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +3 −3 Original line number Diff line number Diff line Loading @@ -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); } Loading
src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading
tests/telephonytests/src/com/android/internal/telephony/metrics/TelephonyMetricsTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading