From 1b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024 Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Fri, 14 Aug 2015 15:42:02 -0400 Subject: instrument fingerprint settings instrument visibility on all fingerprint views rename and delete action add fingerprint action is implicit in flow Bug: 22951001 Change-Id: I53f048f479e24754972b801598d5da393ba9d716 --- src/com/android/settings/InstrumentedActivity.java | 47 ++++++++++++++++++++++ .../fingerprint/FingerprintEnrollBase.java | 4 +- .../fingerprint/FingerprintEnrollEnrolling.java | 6 +++ .../fingerprint/FingerprintEnrollFindSensor.java | 6 +++ .../fingerprint/FingerprintEnrollFinish.java | 6 +++ .../fingerprint/FingerprintEnrollIntroduction.java | 6 +++ .../fingerprint/FingerprintEnrollOnboard.java | 6 +++ .../fingerprint/FingerprintEnrollSidecar.java | 9 ++++- .../settings/fingerprint/FingerprintSettings.java | 12 +++++- .../SetupFingerprintEnrollEnrolling.java | 6 +++ .../SetupFingerprintEnrollFindSensor.java | 6 +++ .../fingerprint/SetupFingerprintEnrollFinish.java | 6 +++ .../SetupFingerprintEnrollIntroduction.java | 6 +++ .../fingerprint/SetupFingerprintEnrollOnboard.java | 6 +++ 14 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 src/com/android/settings/InstrumentedActivity.java (limited to 'src/com/android/settings') diff --git a/src/com/android/settings/InstrumentedActivity.java b/src/com/android/settings/InstrumentedActivity.java new file mode 100644 index 0000000..4a0e03a --- /dev/null +++ b/src/com/android/settings/InstrumentedActivity.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings; + +import com.android.internal.logging.MetricsLogger; + +import android.app.Activity; + +/** + * Instrumented activity that logs visibility state. + */ +public abstract class InstrumentedActivity extends Activity { + /** + * Declare the view of this category. + * + * Categories are defined in {@link com.android.internal.logging.MetricsLogger} + * or if there is no relevant existing category you may define one in + * {@link com.android.settings.InstrumentedFragment}. + */ + protected abstract int getMetricsCategory(); + + @Override + public void onResume() { + super.onResume(); + MetricsLogger.visible(this, getMetricsCategory()); + } + + @Override + public void onPause() { + super.onPause(); + MetricsLogger.hidden(this, getMetricsCategory()); + } +} diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java index 430f220..781efa3 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java @@ -28,6 +28,7 @@ import android.widget.Button; import android.widget.TextView; import com.android.settings.ChooseLockSettingsHelper; +import com.android.settings.InstrumentedActivity; import com.android.settings.R; import com.android.setupwizardlib.SetupWizardLayout; import com.android.setupwizardlib.view.NavigationBar; @@ -35,7 +36,8 @@ import com.android.setupwizardlib.view.NavigationBar; /** * Base activity for all fingerprint enrollment steps. */ -public class FingerprintEnrollBase extends Activity implements View.OnClickListener { +public abstract class FingerprintEnrollBase extends InstrumentedActivity + implements View.OnClickListener { /** * Used by the choose fingerprint wizard to indicate the wizard is diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java index 5d4edbd..3d2ce4d 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java @@ -38,6 +38,7 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; @@ -380,6 +381,11 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase } }; + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLLING; + } + public static class IconTouchDialog extends DialogFragment { @Override diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java index bbed42c..8864822 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.hardware.fingerprint.FingerprintManager; import android.os.Bundle; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; @@ -105,4 +106,9 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { finish(); } } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_FIND_SENSOR; + } } diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java index 29f14d7..6691e20 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java @@ -25,6 +25,7 @@ import android.preference.Preference; import android.view.View; import android.widget.Button; +import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.fingerprint.FingerprintSettings.FingerprintPreference; @@ -70,4 +71,9 @@ public class FingerprintEnrollFinish extends FingerprintEnrollBase { } super.onClick(v); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_FINISH; + } } diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java index de5bf24..beb1a8f 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.os.UserHandle; import android.view.View; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.HelpUtils; import com.android.settings.R; @@ -92,4 +93,9 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase { getString(R.string.help_url_fingerprint), getClass().getName()); startActivity(helpIntent); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_INTRO; + } } diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollOnboard.java b/src/com/android/settings/fingerprint/FingerprintEnrollOnboard.java index e81b0ff..0990459 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollOnboard.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollOnboard.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.hardware.fingerprint.FingerprintManager; import android.os.Bundle; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockGeneric; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; @@ -82,4 +83,9 @@ public class FingerprintEnrollOnboard extends FingerprintEnrollBase { protected Intent getFindSensorIntent() { return new Intent(this, FingerprintEnrollFindSensor.class); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_ONBOARD; + } } diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java index 6a47dc4..5b677f8 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java @@ -24,12 +24,14 @@ import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; +import com.android.settings.InstrumentedFragment; /** * Sidecar fragment to handle the state around fingerprint enrollment. */ -public class FingerprintEnrollSidecar extends Fragment { +public class FingerprintEnrollSidecar extends InstrumentedFragment { private int mEnrollmentSteps = -1; private int mEnrollmentRemaining = 0; @@ -140,6 +142,11 @@ public class FingerprintEnrollSidecar extends Fragment { } }; + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_SIDECAR; + } + public interface Listener { void onEnrollmentHelp(CharSequence helpString); void onEnrollmentError(CharSequence errString); diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java index a5c9963..1a6da2f 100644 --- a/src/com/android/settings/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/fingerprint/FingerprintSettings.java @@ -403,7 +403,7 @@ public class FingerprintSettings extends SubSettings { } private void showRenameDeleteDialog(final Fingerprint fp) { - RenameDeleteDialog renameDeleteDialog = new RenameDeleteDialog(); + RenameDeleteDialog renameDeleteDialog = new RenameDeleteDialog(getContext()); Bundle args = new Bundle(); args.putParcelable("fingerprint", fp); renameDeleteDialog.setArguments(args); @@ -527,6 +527,7 @@ public class FingerprintSettings extends SubSettings { public static class RenameDeleteDialog extends DialogFragment { + private final Context mContext; private Fingerprint mFp; private EditText mDialogTextField; private String mFingerName; @@ -534,6 +535,10 @@ public class FingerprintSettings extends SubSettings { private int mTextSelectionStart; private int mTextSelectionEnd; + public RenameDeleteDialog(Context context) { + mContext = context; + } + @Override public Dialog onCreateDialog(Bundle savedInstanceState) { mFp = getArguments().getParcelable("fingerprint"); @@ -556,6 +561,9 @@ public class FingerprintSettings extends SubSettings { if (DEBUG) { Log.v(TAG, "rename " + name + " to " + newName); } + MetricsLogger.action(mContext, + MetricsLogger.ACTION_FINGERPRINT_RENAME, + mFp.getFingerId()); FingerprintSettingsFragment parent = (FingerprintSettingsFragment) getTargetFragment(); @@ -598,6 +606,8 @@ public class FingerprintSettings extends SubSettings { private void onDeleteClick(DialogInterface dialog) { if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId()); + MetricsLogger.action(mContext, MetricsLogger.ACTION_FINGERPRINT_DELETE, + mFp.getFingerId()); FingerprintSettingsFragment parent = (FingerprintSettingsFragment) getTargetFragment(); if (parent.mFingerprintManager.getEnrolledFingerprints().size() > 1) { diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java index fc7b803..0a3073c 100644 --- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java +++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.view.View; import android.widget.Button; +import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.setupwizardlib.view.NavigationBar; @@ -71,4 +72,9 @@ public class SetupFingerprintEnrollEnrolling extends FingerprintEnrollEnrolling setResult(RESULT_SKIP); finish(); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLLING_SETUP; + } } diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java index 17c0671..1483c83 100644 --- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java +++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.view.View; import android.widget.Button; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; import com.android.settings.SetupWizardUtils; @@ -70,4 +71,9 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso public void onNavigateNext() { onNextButtonClick(); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_FIND_SENSOR_SETUP; + } } diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java index 351cd57..8f37a11 100644 --- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java +++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java @@ -22,6 +22,7 @@ import android.view.View; import android.widget.Button; import android.widget.TextView; +import com.android.internal.logging.MetricsLogger; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; import com.android.settings.SetupWizardUtils; @@ -78,4 +79,9 @@ public class SetupFingerprintEnrollFinish extends FingerprintEnrollFinish public void onNavigateNext() { onNextButtonClick(); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_FINISH_SETUP; + } } diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java index 416d53f..c7e39e5 100644 --- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java +++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.view.View; import android.widget.Button; +import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.setupwizardlib.view.NavigationBar; @@ -74,4 +75,9 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu public void onNavigateNext() { onNextButtonClick(); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_INTRO_SETUP; + } } diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollOnboard.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollOnboard.java index bee0cde..7fca35a 100644 --- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollOnboard.java +++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollOnboard.java @@ -21,6 +21,7 @@ import android.content.res.Resources; import android.view.View; import android.widget.Button; +import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.SetupChooseLockGeneric; import com.android.settings.SetupWizardUtils; @@ -75,4 +76,9 @@ public class SetupFingerprintEnrollOnboard extends FingerprintEnrollOnboard public void onNavigateNext() { onNextButtonClick(); } + + @Override + protected int getMetricsCategory() { + return MetricsLogger.FINGERPRINT_ENROLL_ONBOARD_SETUP; + } } -- cgit v1.1