Merge changes from topic 'SettingsMetrics' into nyc-dev
* changes: Add metrics for suggestions Add metrics for settings conditionals
This commit is contained in:
@@ -28,6 +28,8 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
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.internal.util.ArrayUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
@@ -223,6 +225,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_SUGGESTION,
|
||||||
|
DashboardAdapter.getSuggestionIdentifier(mContext, suggestion));
|
||||||
((SettingsActivity) mContext).startSuggestion(suggestion.intent);
|
((SettingsActivity) mContext).startSuggestion(suggestion.intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -257,6 +261,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
new MenuItem.OnMenuItemClickListener() {
|
new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_DISMISS_SUGGESTION,
|
||||||
|
DashboardAdapter.getSuggestionIdentifier(mContext, suggestion));
|
||||||
disableSuggestion(suggestion);
|
disableSuggestion(suggestion);
|
||||||
mSuggestions.remove(suggestion);
|
mSuggestions.remove(suggestion);
|
||||||
recountItems();
|
recountItems();
|
||||||
@@ -343,18 +349,26 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (v.getTag() == mExpandedCondition) {
|
if (v.getTag() == mExpandedCondition) {
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
|
||||||
|
mExpandedCondition.getMetricsConstant());
|
||||||
mExpandedCondition.onPrimaryClick();
|
mExpandedCondition.onPrimaryClick();
|
||||||
} else {
|
} else {
|
||||||
mExpandedCondition = (Condition) v.getTag();
|
mExpandedCondition = (Condition) v.getTag();
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
|
||||||
|
mExpandedCondition.getMetricsConstant());
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onExpandClick(View v) {
|
public void onExpandClick(View v) {
|
||||||
if (v.getTag() == mExpandedCondition) {
|
if (v.getTag() == mExpandedCondition) {
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_COLLAPSE,
|
||||||
|
mExpandedCondition.getMetricsConstant());
|
||||||
mExpandedCondition = null;
|
mExpandedCondition = null;
|
||||||
} else {
|
} else {
|
||||||
mExpandedCondition = (Condition) v.getTag();
|
mExpandedCondition = (Condition) v.getTag();
|
||||||
|
MetricsLogger.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
|
||||||
|
mExpandedCondition.getMetricsConstant());
|
||||||
}
|
}
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
@@ -368,6 +382,16 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getSuggestionIdentifier(Context context, Tile suggestion) {
|
||||||
|
String packageName = suggestion.intent.getComponent().getPackageName();
|
||||||
|
if (packageName.equals(context.getPackageName())) {
|
||||||
|
// Since Settings provides several suggestions, fill in the class instead of the
|
||||||
|
// package for these.
|
||||||
|
packageName = suggestion.intent.getComponent().getClassName();
|
||||||
|
}
|
||||||
|
return packageName;
|
||||||
|
}
|
||||||
|
|
||||||
public static class DashboardItemHolder extends RecyclerView.ViewHolder {
|
public static class DashboardItemHolder extends RecyclerView.ViewHolder {
|
||||||
public final ImageView icon;
|
public final ImageView icon;
|
||||||
public final TextView title;
|
public final TextView title;
|
||||||
|
@@ -25,18 +25,21 @@ import android.view.Menu;
|
|||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import com.android.internal.logging.MetricsLogger;
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.HelpUtils;
|
import com.android.settings.HelpUtils;
|
||||||
import com.android.settings.InstrumentedFragment;
|
import com.android.settings.InstrumentedFragment;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
import com.android.settings.SettingsActivity;
|
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.ConditionAdapterUtils;
|
||||||
import com.android.settings.dashboard.conditional.ConditionManager;
|
import com.android.settings.dashboard.conditional.ConditionManager;
|
||||||
import com.android.settings.dashboard.conditional.FocusRecyclerView;
|
import com.android.settings.dashboard.conditional.FocusRecyclerView;
|
||||||
import com.android.settingslib.SuggestionParser;
|
import com.android.settingslib.SuggestionParser;
|
||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||||
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -109,7 +112,13 @@ public class DashboardSummary extends InstrumentedFragment
|
|||||||
|
|
||||||
((SettingsDrawerActivity) getActivity()).addCategoryListener(this);
|
((SettingsDrawerActivity) getActivity()).addCategoryListener(this);
|
||||||
mSummaryLoader.setListening(true);
|
mSummaryLoader.setListening(true);
|
||||||
Log.d(TAG, "onResume");
|
for (Condition c : mConditionManager.getVisibleConditions()) {
|
||||||
|
MetricsLogger.visible(getContext(), c.getMetricsConstant());
|
||||||
|
}
|
||||||
|
for (Tile suggestion : mSuggestionParser.getSuggestions()) {
|
||||||
|
MetricsLogger.action(getContext(), MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
|
||||||
|
DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -118,6 +127,13 @@ public class DashboardSummary extends InstrumentedFragment
|
|||||||
|
|
||||||
((SettingsDrawerActivity) getActivity()).remCategoryListener(this);
|
((SettingsDrawerActivity) getActivity()).remCategoryListener(this);
|
||||||
mSummaryLoader.setListening(false);
|
mSummaryLoader.setListening(false);
|
||||||
|
for (Condition c : mConditionManager.getVisibleConditions()) {
|
||||||
|
MetricsLogger.hidden(getContext(), c.getMetricsConstant());
|
||||||
|
}
|
||||||
|
for (Tile suggestion : mSuggestionParser.getSuggestions()) {
|
||||||
|
MetricsLogger.action(getContext(), MetricsEvent.ACTION_HIDE_SETTINGS_SUGGESTION,
|
||||||
|
DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -20,6 +20,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
import com.android.settingslib.WirelessUtils;
|
import com.android.settingslib.WirelessUtils;
|
||||||
@@ -76,6 +77,11 @@ public class AirplaneModeCondition extends Condition {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_AIRPLANE_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Receiver extends BroadcastReceiver {
|
public static class Receiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.dashboard.conditional;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.NetworkPolicyManager;
|
import android.net.NetworkPolicyManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
|
|
||||||
@@ -58,6 +59,11 @@ public class BackgroundDataCondition extends Condition {
|
|||||||
Settings.DataUsageSummaryActivity.class));
|
Settings.DataUsageSummaryActivity.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_BACKGROUND_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActionClick(int index) {
|
public void onActionClick(int index) {
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
|
@@ -17,6 +17,7 @@ package com.android.settings.dashboard.conditional;
|
|||||||
|
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.fuelgauge.BatterySaverSettings;
|
import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||||
@@ -67,4 +68,9 @@ public class BatterySaverCondition extends Condition {
|
|||||||
throw new IllegalArgumentException("Unexpected index " + index);
|
throw new IllegalArgumentException("Unexpected index " + index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,7 @@ import android.content.Intent;
|
|||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.telephony.TelephonyIntents;
|
import com.android.internal.telephony.TelephonyIntents;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
@@ -82,6 +83,11 @@ public class CellularDataCondition extends Condition {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_CELLULAR_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Receiver extends BroadcastReceiver {
|
public static class Receiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
@@ -20,6 +20,8 @@ import android.content.ComponentName;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
|
import com.android.internal.logging.MetricsLogger;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
|
|
||||||
public abstract class Condition {
|
public abstract class Condition {
|
||||||
|
|
||||||
@@ -77,6 +79,8 @@ public abstract class Condition {
|
|||||||
public void silence() {
|
public void silence() {
|
||||||
if (!mIsSilenced) {
|
if (!mIsSilenced) {
|
||||||
mIsSilenced = true;
|
mIsSilenced = true;
|
||||||
|
MetricsLogger.action(mManager.getContext(),
|
||||||
|
MetricsEvent.ACTION_SETTINGS_CONDITION_DISMISS, getMetricsConstant());
|
||||||
onSilenceChanged(mIsSilenced);
|
onSilenceChanged(mIsSilenced);
|
||||||
notifyChanged();
|
notifyChanged();
|
||||||
}
|
}
|
||||||
@@ -110,6 +114,8 @@ public abstract class Condition {
|
|||||||
// State.
|
// State.
|
||||||
public abstract void refreshState();
|
public abstract void refreshState();
|
||||||
|
|
||||||
|
public abstract int getMetricsConstant();
|
||||||
|
|
||||||
// UI.
|
// UI.
|
||||||
public abstract Icon getIcon();
|
public abstract Icon getIcon();
|
||||||
public abstract CharSequence getTitle();
|
public abstract CharSequence getTitle();
|
||||||
|
@@ -25,6 +25,8 @@ import android.view.View.OnLayoutChangeListener;
|
|||||||
import android.view.ViewGroup.LayoutParams;
|
import android.view.ViewGroup.LayoutParams;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageView;
|
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.R;
|
||||||
import com.android.settings.dashboard.DashboardAdapter;
|
import com.android.settings.dashboard.DashboardAdapter;
|
||||||
|
|
||||||
@@ -89,6 +91,9 @@ public class ConditionAdapterUtils {
|
|||||||
button.setOnClickListener(new View.OnClickListener() {
|
button.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
MetricsLogger.action(v.getContext(),
|
||||||
|
MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
|
||||||
|
condition.getMetricsConstant());
|
||||||
condition.onActionClick(index);
|
condition.onActionClick(index);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -24,6 +24,7 @@ import android.content.Intent;
|
|||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.service.notification.ZenModeConfig;
|
import android.service.notification.ZenModeConfig;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
public class DndCondition extends Condition {
|
public class DndCondition extends Condition {
|
||||||
@@ -112,6 +113,11 @@ public class DndCondition extends Condition {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_DND;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Receiver extends BroadcastReceiver {
|
public static class Receiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
@@ -21,7 +21,7 @@ import android.content.Intent;
|
|||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.TetherSettings;
|
import com.android.settings.TetherSettings;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
@@ -93,6 +93,11 @@ public class HotspotCondition extends Condition {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_HOTSPOT;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Receiver extends BroadcastReceiver {
|
public static class Receiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
@@ -22,7 +22,7 @@ import android.content.pm.UserInfo;
|
|||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
|
|
||||||
@@ -96,4 +96,9 @@ public class WorkModeCondition extends Condition {
|
|||||||
throw new IllegalArgumentException("Unexpected index " + index);
|
throw new IllegalArgumentException("Unexpected index " + index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsConstant() {
|
||||||
|
return MetricsEvent.SETTINGS_CONDITION_WORK_MODE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user