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

Commit 706fbc17 authored by cnchen's avatar cnchen
Browse files

Update fingerprint suggestion enable state when back pressed

Test: manual test && atest SetupFingerprintEnrollFinishTest
Bug: b/130666973
Change-Id: Ie6be2f6ce77f29c9f25743f92597b5f7297048a9
parent 2ec2c633
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import androidx.annotation.VisibleForTesting;
@@ -38,6 +39,7 @@ import com.google.android.setupcompat.template.FooterButton;
 */
public class FingerprintEnrollFinish extends BiometricEnrollBase {

    private static final String TAG = "FingerprintEnrollFinish";
    @VisibleForTesting
    static final int REQUEST_ADD_ANOTHER = 1;
    @VisibleForTesting
@@ -69,6 +71,13 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
        );
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();

        updateFingerprintSuggestionEnableState();
    }

    @Override
    protected void onResume() {
        super.onResume();
@@ -93,12 +102,12 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {

    @Override
    protected void onNextButtonClick(View view) {
        setFingerprintSuggestionEnabled();
        updateFingerprintSuggestionEnableState();
        setResult(RESULT_FINISHED);
        finish();
    }

    private void setFingerprintSuggestionEnabled() {
    private void updateFingerprintSuggestionEnableState() {
        final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
        if (fpm != null) {
            int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
@@ -114,6 +123,7 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
                    FINGERPRINT_SUGGESTION_ACTIVITY);
            getPackageManager().setComponentEnabledSetting(
                    componentName, flag, PackageManager.DONT_KILL_APP);
            Log.d(TAG, FINGERPRINT_SUGGESTION_ACTIVITY + " enabled state = " + (enrolled == 1));
        }
    }

@@ -123,7 +133,7 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        setFingerprintSuggestionEnabled();
        updateFingerprintSuggestionEnableState();
        if (requestCode == REQUEST_ADD_ANOTHER && resultCode != RESULT_CANCELED) {
            setResult(resultCode, data);
            finish();
+20 −0
Original line number Diff line number Diff line
@@ -142,4 +142,24 @@ public class SetupFingerprintEnrollFinishTest {
        assertThat(application.getPackageManager().getComponentEnabledSetting(
                mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
    }

    @Test
    public void onBackPressed_fingerprintCountIsNotOne_fingerprintSuggestionActivityDisabled() {
        Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(2);

        mActivity.onBackPressed();

        assertThat(application.getPackageManager().getComponentEnabledSetting(
                mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
    }

    @Test
    public void onBackPressed_fingerprintCountIsOne_fngerprintSuggestionActivityEnabled() {
        Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(1);

        mActivity.onBackPressed();

        assertThat(application.getPackageManager().getComponentEnabledSetting(
                mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
    }
}
 No newline at end of file