Merge "Enable/disable fingerprint for SUW suggestion activity" into qt-dev

This commit is contained in:
Cn Chen
2019-04-11 01:32:43 +00:00
committed by Android (Google) Code Review
3 changed files with 191 additions and 5 deletions

View File

@@ -17,11 +17,15 @@
package com.android.settings.biometrics.fingerprint;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
@@ -34,7 +38,11 @@ import com.google.android.setupcompat.template.FooterButton;
*/
public class FingerprintEnrollFinish extends BiometricEnrollBase {
private static final int REQUEST_ADD_ANOTHER = 1;
@VisibleForTesting
static final int REQUEST_ADD_ANOTHER = 1;
@VisibleForTesting
static final String FINGERPRINT_SUGGESTION_ACTIVITY =
"com.android.settings.SetupFingerprintSuggestionActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -85,16 +93,37 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
@Override
protected void onNextButtonClick(View view) {
setFingerprintSuggestionEnabled();
setResult(RESULT_FINISHED);
finish();
}
private void setFingerprintSuggestionEnabled() {
final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
if (fpm != null) {
int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
// Only show "Add another fingerprint" if the user already enrolled one.
// "Add fingerprint" will be shown in the main flow if the user hasn't enrolled any
// fingerprints. If the user already added more than one fingerprint, they already know
// to add multiple fingerprints so we don't show the suggestion.
int flag = (enrolled == 1) ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
ComponentName componentName = new ComponentName(getApplicationContext(),
FINGERPRINT_SUGGESTION_ACTIVITY);
getPackageManager().setComponentEnabledSetting(
componentName, flag, PackageManager.DONT_KILL_APP);
}
}
private void onAddAnotherButtonClick(View view) {
startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
setFingerprintSuggestionEnabled();
if (requestCode == REQUEST_ADD_ANOTHER && resultCode != RESULT_CANCELED) {
setResult(resultCode, data);
finish();