aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-12-22 00:19:00 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-12-22 00:19:00 +0000
commit88cdba70eeddac06f95c8252db7950c6d66ed34c (patch)
tree52abe95858bfaf5e22d2f3b8afcca7e07d46e180
parentbeea1c50ede89e03e393bebd263beb63315b2584 (diff)
parent1a06b993f39a9e888a26bc85c7ea5dc4489a7eb0 (diff)
downloadtelephony-android10-qpr2-s2-release.tar.gz
Change-Id: I9580d4cc9ff2885e429da3a0d2b2e3c9202ceb3c
-rw-r--r--proto/src/telephony.proto6
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/DcTracker.java3
-rw-r--r--src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java6
-rw-r--r--src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java11
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java5
5 files changed, 31 insertions, 0 deletions
diff --git a/proto/src/telephony.proto b/proto/src/telephony.proto
index cf0f9ab6a9..e4ce7210d9 100644
--- a/proto/src/telephony.proto
+++ b/proto/src/telephony.proto
@@ -786,6 +786,9 @@ message TelephonyEvent {
// Emergency Number update event (Device HAL >= 1.4).
EMERGENCY_NUMBER_REPORT = 21;
+
+ // Signal strength
+ SIGNAL_STRENGTH = 23;
}
enum ApnType {
@@ -1760,6 +1763,9 @@ message TelephonyEvent {
// Updated Emergency Call info.
optional EmergencyNumberInfo updated_emergency_number = 25;
+
+ // Signal strength
+ optional int32 signal_strength = 27;
}
message ActiveSubscriptionInfo {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 43476871ff..31c48465b2 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -4507,6 +4507,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);
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java b/src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java
index 73439c34e0..22fc56278d 100644
--- a/src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyEventBuilder.java
@@ -93,6 +93,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;
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
index ec1aa9c280..044fb08bc4 100644
--- a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
@@ -1165,6 +1165,17 @@ public class TelephonyMetrics {
}
/**
+ * 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
*
* @param phoneId Phone id
diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
index 101c7190fd..a6eacc96e2 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
@@ -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;
@@ -1620,6 +1621,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});
@@ -1662,6 +1664,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});
@@ -1702,6 +1705,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});
@@ -1739,6 +1743,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});