Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64693e31 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "fingerprint-settings-after-enrollment" into qt-dev

* changes:
  Show fingerprint preferences after enrolling from settings
  Run postEnroll() after enrolling from SUW
parents 7c802e55 8979f848
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -436,6 +436,17 @@
                android:value="com.android.settings.biometrics.face.FaceSettings" />
        </activity>

        <activity android:name="Settings$FingerprintSettingsActivity"
                  android:label="@string/security_settings_fingerprint_preference_title"
                  android:icon="@drawable/ic_fingerprint_header">
            <intent-filter>
                <action android:name="android.settings.FINGERPRINT_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.biometrics.fingerprint.FingerprintSettings$FingerprintSettingsFragment" />
        </activity>

        <activity android:name=".bluetooth.DevicePickerActivity"
                android:label="@string/device_picker"
                android:configChanges="orientation|keyboardHidden|screenSize"
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ public class Settings extends SettingsActivity {
    public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
    public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
    public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
    public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
    public static class SimSettingsActivity extends SettingsActivity { /* empty */ }
    public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
    public static class WifiTetherSettingsActivity extends SettingsActivity { /* empty */ }
+27 −0
Original line number Diff line number Diff line
@@ -30,9 +30,11 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.password.ChooseLockSettingsHelper;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupcompat.util.WizardManagerHelper;

/**
 * Activity which concludes fingerprint enrollment.
@@ -40,6 +42,8 @@ import com.google.android.setupcompat.template.FooterButton;
public class FingerprintEnrollFinish extends BiometricEnrollBase {

    private static final String TAG = "FingerprintEnrollFinish";
    private static final String ACTION_FINGERPRINT_SETTINGS =
            "android.settings.FINGERPRINT_SETTINGS";
    @VisibleForTesting
    static final int REQUEST_ADD_ANOTHER = 1;
    @VisibleForTesting
@@ -104,6 +108,11 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
    protected void onNextButtonClick(View view) {
        updateFingerprintSuggestionEnableState();
        setResult(RESULT_FINISHED);
        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
            postEnroll();
        } else {
            launchFingerprintSettings();
        }
        finish();
    }

@@ -127,6 +136,24 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
        }
    }

    private void postEnroll() {
        final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
        if (fpm != null) {
            int result = fpm.postEnroll();
            if (result < 0) {
                Log.w(TAG, "postEnroll failed: result = " + result);
            }
        }
    }

    private void launchFingerprintSettings() {
        final Intent intent = new Intent(ACTION_FINGERPRINT_SETTINGS);
        intent.setPackage(Utils.SETTINGS_PACKAGE_NAME);
        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }

    private void onAddAnotherButtonClick(View view) {
        startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
    }
+3 −0
Original line number Diff line number Diff line
@@ -276,6 +276,9 @@ public class FingerprintSettings extends SubSettings {
            Activity activity = getActivity();
            mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);

            mToken = getIntent().getByteArrayExtra(
                    ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);

            mAuthenticateSidecar = (FingerprintAuthenticateSidecar)
                    getFragmentManager().findFragmentByTag(TAG_AUTHENTICATE_SIDECAR);
            if (mAuthenticateSidecar == null) {
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.settings.backup.PrivacySettings;
import com.android.settings.backup.ToggleBackupSettingFragment;
import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.biometrics.face.FaceSettings;
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
@@ -203,6 +204,7 @@ public class SettingsGateway {
            AccountSyncSettings.class.getName(),
            AssistGestureSettings.class.getName(),
            FaceSettings.class.getName(),
            FingerprintSettings.FingerprintSettingsFragment.class.getName(),
            SwipeToNotificationSettings.class.getName(),
            DoubleTapPowerSettings.class.getName(),
            DoubleTapScreenSettings.class.getName(),