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
This commit is contained in:
Chris Wren
2015-08-14 15:42:02 -04:00
parent c73287b9db
commit 1b8d5ffb47
14 changed files with 129 additions and 3 deletions

View File

@@ -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());
}
}

View File

@@ -28,6 +28,7 @@ import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.InstrumentedActivity;
import com.android.settings.R; import com.android.settings.R;
import com.android.setupwizardlib.SetupWizardLayout; import com.android.setupwizardlib.SetupWizardLayout;
import com.android.setupwizardlib.view.NavigationBar; import com.android.setupwizardlib.view.NavigationBar;
@@ -35,7 +36,8 @@ import com.android.setupwizardlib.view.NavigationBar;
/** /**
* Base activity for all fingerprint enrollment steps. * 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 * Used by the choose fingerprint wizard to indicate the wizard is

View File

@@ -38,6 +38,7 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R; 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 { public static class IconTouchDialog extends DialogFragment {
@Override @Override

View File

@@ -21,6 +21,7 @@ import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle; import android.os.Bundle;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R; import com.android.settings.R;
@@ -105,4 +106,9 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
finish(); finish();
} }
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_FIND_SENSOR;
}
} }

View File

@@ -25,6 +25,7 @@ import android.preference.Preference;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.fingerprint.FingerprintSettings.FingerprintPreference; import com.android.settings.fingerprint.FingerprintSettings.FingerprintPreference;
@@ -70,4 +71,9 @@ public class FingerprintEnrollFinish extends FingerprintEnrollBase {
} }
super.onClick(v); super.onClick(v);
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_FINISH;
}
} }

View File

@@ -22,6 +22,7 @@ import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.view.View; import android.view.View;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.HelpUtils; import com.android.settings.HelpUtils;
import com.android.settings.R; import com.android.settings.R;
@@ -92,4 +93,9 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase {
getString(R.string.help_url_fingerprint), getClass().getName()); getString(R.string.help_url_fingerprint), getClass().getName());
startActivity(helpIntent); startActivity(helpIntent);
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_INTRO;
}
} }

View File

@@ -21,6 +21,7 @@ import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle; import android.os.Bundle;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockGeneric; import com.android.settings.ChooseLockGeneric;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R; import com.android.settings.R;
@@ -82,4 +83,9 @@ public class FingerprintEnrollOnboard extends FingerprintEnrollBase {
protected Intent getFindSensorIntent() { protected Intent getFindSensorIntent() {
return new Intent(this, FingerprintEnrollFindSensor.class); return new Intent(this, FingerprintEnrollFindSensor.class);
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_ONBOARD;
}
} }

View File

@@ -24,12 +24,14 @@ import android.os.Bundle;
import android.os.CancellationSignal; import android.os.CancellationSignal;
import android.os.Handler; import android.os.Handler;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.InstrumentedFragment;
/** /**
* Sidecar fragment to handle the state around fingerprint enrollment. * 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 mEnrollmentSteps = -1;
private int mEnrollmentRemaining = 0; 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 { public interface Listener {
void onEnrollmentHelp(CharSequence helpString); void onEnrollmentHelp(CharSequence helpString);
void onEnrollmentError(CharSequence errString); void onEnrollmentError(CharSequence errString);

View File

@@ -403,7 +403,7 @@ public class FingerprintSettings extends SubSettings {
} }
private void showRenameDeleteDialog(final Fingerprint fp) { private void showRenameDeleteDialog(final Fingerprint fp) {
RenameDeleteDialog renameDeleteDialog = new RenameDeleteDialog(); RenameDeleteDialog renameDeleteDialog = new RenameDeleteDialog(getContext());
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putParcelable("fingerprint", fp); args.putParcelable("fingerprint", fp);
renameDeleteDialog.setArguments(args); renameDeleteDialog.setArguments(args);
@@ -527,6 +527,7 @@ public class FingerprintSettings extends SubSettings {
public static class RenameDeleteDialog extends DialogFragment { public static class RenameDeleteDialog extends DialogFragment {
private final Context mContext;
private Fingerprint mFp; private Fingerprint mFp;
private EditText mDialogTextField; private EditText mDialogTextField;
private String mFingerName; private String mFingerName;
@@ -534,6 +535,10 @@ public class FingerprintSettings extends SubSettings {
private int mTextSelectionStart; private int mTextSelectionStart;
private int mTextSelectionEnd; private int mTextSelectionEnd;
public RenameDeleteDialog(Context context) {
mContext = context;
}
@Override @Override
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
mFp = getArguments().getParcelable("fingerprint"); mFp = getArguments().getParcelable("fingerprint");
@@ -556,6 +561,9 @@ public class FingerprintSettings extends SubSettings {
if (DEBUG) { if (DEBUG) {
Log.v(TAG, "rename " + name + " to " + newName); Log.v(TAG, "rename " + name + " to " + newName);
} }
MetricsLogger.action(mContext,
MetricsLogger.ACTION_FINGERPRINT_RENAME,
mFp.getFingerId());
FingerprintSettingsFragment parent FingerprintSettingsFragment parent
= (FingerprintSettingsFragment) = (FingerprintSettingsFragment)
getTargetFragment(); getTargetFragment();
@@ -598,6 +606,8 @@ public class FingerprintSettings extends SubSettings {
private void onDeleteClick(DialogInterface dialog) { private void onDeleteClick(DialogInterface dialog) {
if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId()); if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId());
MetricsLogger.action(mContext, MetricsLogger.ACTION_FINGERPRINT_DELETE,
mFp.getFingerId());
FingerprintSettingsFragment parent FingerprintSettingsFragment parent
= (FingerprintSettingsFragment) getTargetFragment(); = (FingerprintSettingsFragment) getTargetFragment();
if (parent.mFingerprintManager.getEnrolledFingerprints().size() > 1) { if (parent.mFingerprintManager.getEnrolledFingerprints().size() > 1) {

View File

@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SetupWizardUtils; import com.android.settings.SetupWizardUtils;
import com.android.setupwizardlib.view.NavigationBar; import com.android.setupwizardlib.view.NavigationBar;
@@ -71,4 +72,9 @@ public class SetupFingerprintEnrollEnrolling extends FingerprintEnrollEnrolling
setResult(RESULT_SKIP); setResult(RESULT_SKIP);
finish(); finish();
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLLING_SETUP;
}
} }

View File

@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SetupWizardUtils; import com.android.settings.SetupWizardUtils;
@@ -70,4 +71,9 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso
public void onNavigateNext() { public void onNavigateNext() {
onNextButtonClick(); onNextButtonClick();
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_FIND_SENSOR_SETUP;
}
} }

View File

@@ -22,6 +22,7 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SetupWizardUtils; import com.android.settings.SetupWizardUtils;
@@ -78,4 +79,9 @@ public class SetupFingerprintEnrollFinish extends FingerprintEnrollFinish
public void onNavigateNext() { public void onNavigateNext() {
onNextButtonClick(); onNextButtonClick();
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_FINISH_SETUP;
}
} }

View File

@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SetupWizardUtils; import com.android.settings.SetupWizardUtils;
import com.android.setupwizardlib.view.NavigationBar; import com.android.setupwizardlib.view.NavigationBar;
@@ -74,4 +75,9 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu
public void onNavigateNext() { public void onNavigateNext() {
onNextButtonClick(); onNextButtonClick();
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_INTRO_SETUP;
}
} }

View File

@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SetupChooseLockGeneric; import com.android.settings.SetupChooseLockGeneric;
import com.android.settings.SetupWizardUtils; import com.android.settings.SetupWizardUtils;
@@ -75,4 +76,9 @@ public class SetupFingerprintEnrollOnboard extends FingerprintEnrollOnboard
public void onNavigateNext() { public void onNavigateNext() {
onNextButtonClick(); onNextButtonClick();
} }
@Override
protected int getMetricsCategory() {
return MetricsLogger.FINGERPRINT_ENROLL_ONBOARD_SETUP;
}
} }