Add metrics for settings conditionals
Bug: 27851236
Change-Id: I400716457d3f628419410a02c2a457d41d19a067
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 2226bc2..58990d3 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -28,6 +28,8 @@
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.util.ArrayUtils;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -343,18 +345,26 @@
@Override
public void onClick(View v) {
if (v.getTag() == mExpandedCondition) {
+ MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
+ mExpandedCondition.getMetricsConstant());
mExpandedCondition.onPrimaryClick();
} else {
mExpandedCondition = (Condition) v.getTag();
+ MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
+ mExpandedCondition.getMetricsConstant());
notifyDataSetChanged();
}
}
public void onExpandClick(View v) {
if (v.getTag() == mExpandedCondition) {
+ MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_COLLAPSE,
+ mExpandedCondition.getMetricsConstant());
mExpandedCondition = null;
} else {
mExpandedCondition = (Condition) v.getTag();
+ MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
+ mExpandedCondition.getMetricsConstant());
}
notifyDataSetChanged();
}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index c111992..4595629 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -25,12 +25,14 @@
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.HelpUtils;
import com.android.settings.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.SettingsActivity;
+import com.android.settings.dashboard.conditional.Condition;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.dashboard.conditional.FocusRecyclerView;
@@ -109,7 +111,9 @@
((SettingsDrawerActivity) getActivity()).addCategoryListener(this);
mSummaryLoader.setListening(true);
- Log.d(TAG, "onResume");
+ for (Condition c : mConditionManager.getVisibleConditions()) {
+ MetricsLogger.visible(getContext(), c.getMetricsConstant());
+ }
}
@Override
@@ -118,6 +122,9 @@
((SettingsDrawerActivity) getActivity()).remCategoryListener(this);
mSummaryLoader.setListening(false);
+ for (Condition c : mConditionManager.getVisibleConditions()) {
+ MetricsLogger.hidden(getContext(), c.getMetricsConstant());
+ }
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
index 5b9bb40..221b64c 100644
--- a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
@@ -20,6 +20,7 @@
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.net.ConnectivityManager;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settingslib.WirelessUtils;
@@ -76,6 +77,11 @@
}
}
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_AIRPLANE_MODE;
+ }
+
public static class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/dashboard/conditional/BackgroundDataCondition.java b/src/com/android/settings/dashboard/conditional/BackgroundDataCondition.java
index 6bfc538..8287abd 100644
--- a/src/com/android/settings/dashboard/conditional/BackgroundDataCondition.java
+++ b/src/com/android/settings/dashboard/conditional/BackgroundDataCondition.java
@@ -18,6 +18,7 @@
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.net.NetworkPolicyManager;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
@@ -59,6 +60,11 @@
}
@Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_BACKGROUND_DATA;
+ }
+
+ @Override
public void onActionClick(int index) {
if (index == 0) {
NetworkPolicyManager.from(mManager.getContext()).setRestrictBackground(false);
diff --git a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
index d902b04..8644117 100644
--- a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
+++ b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
@@ -17,6 +17,7 @@
import android.graphics.drawable.Icon;
import android.os.PowerManager;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.fuelgauge.BatterySaverSettings;
@@ -67,4 +68,9 @@
throw new IllegalArgumentException("Unexpected index " + index);
}
}
+
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER;
+ }
}
diff --git a/src/com/android/settings/dashboard/conditional/CellularDataCondition.java b/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
index edf5b21..c28d9fa 100644
--- a/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
+++ b/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
@@ -16,6 +16,7 @@
import android.graphics.drawable.Icon;
import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.R;
import com.android.settings.Settings;
@@ -82,6 +83,11 @@
}
}
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_CELLULAR_DATA;
+ }
+
public static class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/dashboard/conditional/Condition.java b/src/com/android/settings/dashboard/conditional/Condition.java
index f5040e5..4352f2d 100644
--- a/src/com/android/settings/dashboard/conditional/Condition.java
+++ b/src/com/android/settings/dashboard/conditional/Condition.java
@@ -20,6 +20,8 @@
import android.content.pm.PackageManager;
import android.graphics.drawable.Icon;
import android.os.PersistableBundle;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
public abstract class Condition {
@@ -77,6 +79,8 @@
public void silence() {
if (!mIsSilenced) {
mIsSilenced = true;
+ MetricsLogger.action(mManager.getContext(),
+ MetricsEvent.ACTION_SETTINGS_CONDITION_DISMISS, getMetricsConstant());
onSilenceChanged(mIsSilenced);
notifyChanged();
}
@@ -110,6 +114,8 @@
// State.
public abstract void refreshState();
+ public abstract int getMetricsConstant();
+
// UI.
public abstract Icon getIcon();
public abstract CharSequence getTitle();
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
index b64a595..a87b0d0 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
@@ -25,6 +25,8 @@
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardAdapter;
@@ -89,6 +91,9 @@
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ MetricsLogger.action(v.getContext(),
+ MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
+ condition.getMetricsConstant());
condition.onActionClick(index);
}
});
diff --git a/src/com/android/settings/dashboard/conditional/DndCondition.java b/src/com/android/settings/dashboard/conditional/DndCondition.java
index 38f5ef1..a816b33 100644
--- a/src/com/android/settings/dashboard/conditional/DndCondition.java
+++ b/src/com/android/settings/dashboard/conditional/DndCondition.java
@@ -24,6 +24,7 @@
import android.graphics.drawable.Icon;
import android.provider.Settings;
import android.service.notification.ZenModeConfig;
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
public class DndCondition extends Condition {
@@ -112,6 +113,11 @@
}
}
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_DND;
+ }
+
public static class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/dashboard/conditional/HotspotCondition.java b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
index e04eed2..be74c9e 100644
--- a/src/com/android/settings/dashboard/conditional/HotspotCondition.java
+++ b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
@@ -21,7 +21,7 @@
import android.graphics.drawable.Icon;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
-
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.TetherSettings;
import com.android.settings.Utils;
@@ -93,6 +93,11 @@
}
}
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_HOTSPOT;
+ }
+
public static class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
index be333ea..f46b495 100644
--- a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
@@ -22,7 +22,7 @@
import android.graphics.drawable.Icon;
import android.os.UserHandle;
import android.os.UserManager;
-
+import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
@@ -96,4 +96,9 @@
throw new IllegalArgumentException("Unexpected index " + index);
}
}
+
+ @Override
+ public int getMetricsConstant() {
+ return MetricsEvent.SETTINGS_CONDITION_WORK_MODE;
+ }
}