Loading proto/src/telephony.proto +6 −0 Original line number Diff line number Diff line Loading @@ -835,6 +835,9 @@ message TelephonyEvent { // Network capabilities change event. NETWORK_CAPABILITIES_CHANGED = 22; // Signal strength SIGNAL_STRENGTH = 23; } enum ApnType { Loading Loading @@ -1817,6 +1820,9 @@ message TelephonyEvent { // NetworkCapabilities changed info. optional NetworkCapabilitiesInfo network_capabilities = 26; // Signal strength optional int32 signal_strength = 27; } message ActiveSubscriptionInfo { Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +3 −0 Original line number Diff line number Diff line Loading @@ -4433,6 +4433,9 @@ public class DcTracker extends Handler { if (getOverallState() == DctConstants.State.CONNECTED) { // Go through a series of recovery steps, each action transitions to the next action @RecoveryAction final int recoveryAction = getRecoveryAction(); final int signalStrength = mPhone.getSignalStrength().getLevel(); TelephonyMetrics.getInstance().writeSignalStrengthEvent( mPhone.getPhoneId(), signalStrength); TelephonyMetrics.getInstance().writeDataStallEvent( mPhone.getPhoneId(), recoveryAction); broadcastDataStallDetected(recoveryAction); Loading src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java +6 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,12 @@ public class TelephonyEventBuilder { return this; } public TelephonyEventBuilder setSignalStrength(int signalstrength) { mEvent.type = TelephonyEvent.Type.SIGNAL_STRENGTH; mEvent.signalStrength = signalstrength; return this; } public TelephonyEventBuilder setSetupDataCall(RilSetupDataCall request) { mEvent.type = TelephonyEvent.Type.DATA_CALL_SETUP; mEvent.setupDataCall = request; Loading src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +11 −0 Original line number Diff line number Diff line Loading @@ -1177,6 +1177,17 @@ public class TelephonyMetrics { .setDataStallRecoveryAction(recoveryAction).build()); } /** * Write SignalStrength event * * @param phoneId Phone id * @param signalStrength Signal strength at the time of data stall recovery */ public void writeSignalStrengthEvent(int phoneId, int signalStrength) { addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setSignalStrength(signalStrength).build()); } /** * Write IMS feature settings changed event * Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.CarrierConfigManager; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -1629,6 +1630,7 @@ public class DcTrackerTest extends TelephonyTest { ContentResolver resolver = mContext.getContentResolver(); Settings.Global.putInt(resolver, Settings.Global.DATA_STALL_RECOVERY_ON_BAD_NETWORK, 1); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 0); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1672,6 +1674,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 1); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1713,6 +1716,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 2); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1750,6 +1754,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 3); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading
proto/src/telephony.proto +6 −0 Original line number Diff line number Diff line Loading @@ -835,6 +835,9 @@ message TelephonyEvent { // Network capabilities change event. NETWORK_CAPABILITIES_CHANGED = 22; // Signal strength SIGNAL_STRENGTH = 23; } enum ApnType { Loading Loading @@ -1817,6 +1820,9 @@ message TelephonyEvent { // NetworkCapabilities changed info. optional NetworkCapabilitiesInfo network_capabilities = 26; // Signal strength optional int32 signal_strength = 27; } message ActiveSubscriptionInfo { Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +3 −0 Original line number Diff line number Diff line Loading @@ -4433,6 +4433,9 @@ public class DcTracker extends Handler { if (getOverallState() == DctConstants.State.CONNECTED) { // Go through a series of recovery steps, each action transitions to the next action @RecoveryAction final int recoveryAction = getRecoveryAction(); final int signalStrength = mPhone.getSignalStrength().getLevel(); TelephonyMetrics.getInstance().writeSignalStrengthEvent( mPhone.getPhoneId(), signalStrength); TelephonyMetrics.getInstance().writeDataStallEvent( mPhone.getPhoneId(), recoveryAction); broadcastDataStallDetected(recoveryAction); Loading
src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java +6 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,12 @@ public class TelephonyEventBuilder { return this; } public TelephonyEventBuilder setSignalStrength(int signalstrength) { mEvent.type = TelephonyEvent.Type.SIGNAL_STRENGTH; mEvent.signalStrength = signalstrength; return this; } public TelephonyEventBuilder setSetupDataCall(RilSetupDataCall request) { mEvent.type = TelephonyEvent.Type.DATA_CALL_SETUP; mEvent.setupDataCall = request; Loading
src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +11 −0 Original line number Diff line number Diff line Loading @@ -1177,6 +1177,17 @@ public class TelephonyMetrics { .setDataStallRecoveryAction(recoveryAction).build()); } /** * Write SignalStrength event * * @param phoneId Phone id * @param signalStrength Signal strength at the time of data stall recovery */ public void writeSignalStrengthEvent(int phoneId, int signalStrength) { addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setSignalStrength(signalStrength).build()); } /** * Write IMS feature settings changed event * Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.CarrierConfigManager; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -1629,6 +1630,7 @@ public class DcTrackerTest extends TelephonyTest { ContentResolver resolver = mContext.getContentResolver(); Settings.Global.putInt(resolver, Settings.Global.DATA_STALL_RECOVERY_ON_BAD_NETWORK, 1); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 0); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1672,6 +1674,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 1); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1713,6 +1716,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 2); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading Loading @@ -1750,6 +1754,7 @@ public class DcTrackerTest extends TelephonyTest { Settings.Global.putLong(resolver, Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS, 100); Settings.System.putInt(resolver, "radio.data.stall.recovery.action", 3); doReturn(new SignalStrength()).when(mPhone).getSignalStrength(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS}); Loading