summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorMingguang Xu <mingguangxu@google.com>2020-09-03 15:50:12 -0700
committerMingguang Xu <mingguangxu@google.com>2020-09-09 10:25:24 -0700
commitc8623f0fe9ba447c890063bc74850a06b9022bf5 (patch)
tree22b54a23b69f62ef073ce502abd6d239332b74d7 /service
parentd83dbd96b83de60f26209d23f8129ccbdefe6bdf (diff)
Add metrics for Adaptive Connectivity toggle
Add a new UserActionEvent to track the state change of Adaptive Connectivity and attach its state to StaEvent. Bug: 166644305 Test: atest com.android.server.wifi Updated-PDD: TRUE Signed-off-by: Mingguang Xu <mingguangxu@google.com> Change-Id: If33df01ec4292afae29eae61f129923ec82bd0ae Merged-In: I72762fc129c9f026ca9323b11e4e159ed2706cb7
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiMetrics.java21
-rw-r--r--service/java/com/android/server/wifi/WifiScoreReport.java5
-rw-r--r--service/proto/src/metrics.proto7
3 files changed, 33 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java
index 1ac361ef3..75d53fc95 100644
--- a/service/java/com/android/server/wifi/WifiMetrics.java
+++ b/service/java/com/android/server/wifi/WifiMetrics.java
@@ -242,6 +242,7 @@ public class WifiMetrics {
private int mLastPollRxLinkSpeed = -1;
private int mLastPollFreq = -1;
private int mLastScore = -1;
+ private boolean mAdaptiveConnectivityEnabled = true;
/**
* Metrics are stored within an instance of the WifiLog proto during runtime,
@@ -4908,6 +4909,7 @@ public class WifiMetrics {
if (mWifiDataStall != null) {
staEvent.isCellularDataAvailable = mWifiDataStall.isCellularDataAvailable();
}
+ staEvent.isAdaptiveConnectivityEnabled = mAdaptiveConnectivityEnabled;
mSupplicantStateChangeBitmask = 0;
mLastPollRssi = -127;
mLastPollFreq = -1;
@@ -5124,6 +5126,7 @@ public class WifiMetrics {
if (event.totalRxBytes > 0) sb.append(" totalRxBytes=").append(event.totalRxBytes);
sb.append(" screenOn=").append(event.screenOn);
sb.append(" cellularData=").append(event.isCellularDataAvailable);
+ sb.append(" adaptiveConnectivity=").append(event.isAdaptiveConnectivityEnabled);
if (event.supplicantStateChangesBitmask != 0) {
sb.append(", ").append(supplicantStateChangesBitmaskToString(
event.supplicantStateChangesBitmask));
@@ -5343,6 +5346,15 @@ public class WifiMetrics {
return result;
}
+ /**
+ * Converts Adaptive Connectivity state to UserActionEvent type.
+ * @param value
+ */
+ public static int convertAdaptiveConnectivityStateToUserActionEventType(boolean value) {
+ return value ? UserActionEvent.EVENT_CONFIGURE_ADAPTIVE_CONNECTIVITY_ON
+ : UserActionEvent.EVENT_CONFIGURE_ADAPTIVE_CONNECTIVITY_OFF;
+ }
+
static class MeteredNetworkStatsBuilder {
// A map from network identifier to MeteredDetail
Map<String, MeteredDetail> mNetworkMap = new ArrayMap<>();
@@ -6713,4 +6725,13 @@ public class WifiMetrics {
mCarrierWifiMetrics.numConnectionNonAuthFailure++;
}
}
+
+ /**
+ * Set Adaptive Connectivity state (On/Off)
+ */
+ public void setAdaptiveConnectivityState(boolean adaptiveConnectivityEnabled) {
+ synchronized (mLock) {
+ mAdaptiveConnectivityEnabled = adaptiveConnectivityEnabled;
+ }
+ }
}
diff --git a/service/java/com/android/server/wifi/WifiScoreReport.java b/service/java/com/android/server/wifi/WifiScoreReport.java
index 381be7f2b..f6eed70ee 100644
--- a/service/java/com/android/server/wifi/WifiScoreReport.java
+++ b/service/java/com/android/server/wifi/WifiScoreReport.java
@@ -322,6 +322,10 @@ public class WifiScoreReport {
super.onChange(selfChange);
mAdaptiveConnectivityEnabled = getValue();
Log.d(TAG, "Adaptive connectivity status changed: " + mAdaptiveConnectivityEnabled);
+ mWifiMetrics.setAdaptiveConnectivityState(mAdaptiveConnectivityEnabled);
+ mWifiMetrics.logUserActionEvent(
+ mWifiMetrics.convertAdaptiveConnectivityStateToUserActionEventType(
+ mAdaptiveConnectivityEnabled));
}
/**
@@ -335,6 +339,7 @@ public class WifiScoreReport {
}
mFrameworkFacade.registerContentObserver(mContext, uri, true, this);
mAdaptiveConnectivityEnabled = mAdaptiveConnectivityEnabledSettingObserver.getValue();
+ mWifiMetrics.setAdaptiveConnectivityState(mAdaptiveConnectivityEnabled);
}
public boolean getValue() {
diff --git a/service/proto/src/metrics.proto b/service/proto/src/metrics.proto
index a7f706fb8..1c3b27872 100644
--- a/service/proto/src/metrics.proto
+++ b/service/proto/src/metrics.proto
@@ -1471,6 +1471,9 @@ message StaEvent {
// Whether cellular data network is available
optional bool is_cellular_data_available = 25;
+
+ //Whether Adaptive Connectivity is enabled
+ optional bool is_adaptive_connectivity_enabled = 26;
}
// Wi-Fi Aware metrics
@@ -3158,6 +3161,10 @@ message UserActionEvent {
EVENT_CONFIGURE_METERED_STATUS_AUTO = 12;
// User adds a new network or updates configurations for an existing network.
EVENT_ADD_OR_UPDATE_NETWORK = 13;
+ // User sets the adaptive connectivity to on
+ EVENT_CONFIGURE_ADAPTIVE_CONNECTIVITY_ON = 14;
+ // User sets the adaptive connectivity to off
+ EVENT_CONFIGURE_ADAPTIVE_CONNECTIVITY_OFF = 15;
}
// The type of user action