Log when build number preference is clicked.

Optionally also log whether user is in development mode.

Change-Id: I1f5dc2891b2c4fc74f940e3118fb09ee18cc9688
Fix: 34774945
Test: make RunSettingsRoboTests
This commit is contained in:
Fan Zhang
2017-02-24 15:37:14 -08:00
parent efb8d625a2
commit f42377a18e
6 changed files with 45 additions and 8 deletions

View File

@@ -39,8 +39,8 @@ public class EventLogWriter implements LogWriter {
MetricsLogger.hidden(context, category);
}
public void action(Context context, int category) {
MetricsLogger.action(context, category, "");
public void action(Context context, int category, Pair<Integer, Object>... taggedData) {
action(context, category, "", taggedData);
}
public void actionWithSource(Context context, int source, int category) {

View File

@@ -36,7 +36,7 @@ public interface LogWriter {
/**
* Logs an user action.
*/
void action(Context context, int category);
void action(Context context, int category, Pair<Integer, Object>... taggedData);
/**
* Logs an user action.

View File

@@ -60,9 +60,9 @@ public class MetricsFeatureProvider {
}
}
public void action(Context context, int category) {
public void action(Context context, int category, Pair<Integer, Object>... taggedData) {
for (LogWriter writer : mLoggerWriters) {
writer.action(context, category);
writer.action(context, category, taggedData);
}
}

View File

@@ -40,7 +40,7 @@ public class SettingSuggestionsLogWriter implements LogWriter {
}
@Override
public void action(Context context, int category) {
public void action(Context context, int category, Pair<Integer, Object>... taggedData) {
}
@Override

View File

@@ -26,15 +26,19 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Pair;
import android.widget.Toast;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.DevelopmentSettings;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnResume;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.Index;
import com.android.settingslib.RestrictedLockUtils;
@@ -49,6 +53,7 @@ public class BuildNumberPreferenceController extends PreferenceController
private final Activity mActivity;
private final Fragment mFragment;
private final UserManager mUm;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private Toast mDevHitToast;
private RestrictedLockUtils.EnforcedAdmin mDebuggingFeaturesDisallowedAdmin;
@@ -61,6 +66,7 @@ public class BuildNumberPreferenceController extends PreferenceController
mActivity = activity;
mFragment = fragment;
mUm = UserManager.get(activity);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -106,11 +112,15 @@ public class BuildNumberPreferenceController extends PreferenceController
}
// Don't enable developer options for secondary users.
if (!mUm.isAdminUser()) {
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF);
return false;
}
// Don't enable developer options until device has been provisioned
if (!Utils.isDeviceProvisioned(mContext)) {
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF);
return false;
}
@@ -120,6 +130,8 @@ public class BuildNumberPreferenceController extends PreferenceController
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
mDebuggingFeaturesDisallowedAdmin);
}
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF);
return false;
}
@@ -136,6 +148,10 @@ public class BuildNumberPreferenceController extends PreferenceController
if (!mProcessingLastDevHit) {
enableDevelopmentSettings();
}
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
mProcessingLastDevHit ? 0 : 1));
} else if (mDevHitCountdown > 0
&& mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER - 2)) {
if (mDevHitToast != null) {
@@ -148,6 +164,10 @@ public class BuildNumberPreferenceController extends PreferenceController
Toast.LENGTH_SHORT);
mDevHitToast.show();
}
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
0));
} else if (mDevHitCountdown < 0) {
if (mDevHitToast != null) {
mDevHitToast.cancel();
@@ -155,6 +175,10 @@ public class BuildNumberPreferenceController extends PreferenceController
mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already,
Toast.LENGTH_LONG);
mDevHitToast.show();
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
1));
}
return true;
}