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

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

Merge "Replace deprecated KeyguardManager API with new BiometricPrompt one"

parents e011c2a3 79a3ae86
Loading
Loading
Loading
Loading
+31 −6
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
import android.hardware.biometrics.BiometricPrompt;
import android.os.CancellationSignal;
import android.os.Looper;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.LinkAddress;
@@ -578,21 +581,43 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
        if (keyguardManager.isKeyguardSecure()) {
            // Show authentication screen to confirm credentials (pin, pattern or password) for
            // the current user of the device.
            final String title = mContext.getString(
                    R.string.lockpassword_confirm_your_pattern_header);
            final String description = String.format(
                    mContext.getString(R.string.wifi_sharing_message),
                    mAccessPoint.getSsidStr());
            final Intent intent = keyguardManager.createConfirmDeviceCredentialIntent(
                    mContext.getString(R.string.lockpassword_confirm_your_pattern_header),
                    description);
            if (intent != null) {
                mFragment.startActivityForResult(intent,
                        WifiNetworkDetailsFragment.REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS);

            final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(mContext)
                    .setTitle(title)
                    .setDescription(description);

            if (keyguardManager.isDeviceSecure()) {
                builder.setAllowDeviceCredential(true);
            }

            final BiometricPrompt bp = builder.build();
            final Handler handler = new Handler(Looper.getMainLooper());
            bp.authenticate(new CancellationSignal(),
                    runnable -> handler.post(runnable),
                    mAuthenticationCallback);
        } else {
            launchWifiDppConfiguratorActivity();
        }
    }

    private BiometricPrompt.AuthenticationCallback mAuthenticationCallback =
            new BiometricPrompt.AuthenticationCallback() {
        @Override
        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
            launchWifiDppConfiguratorActivity();
        }

        @Override
        public void onAuthenticationError(int errorCode, CharSequence errString) {
            //Do nothing
        }
    };

    /**
     * Sign in to the captive portal found on this wifi network associated with this preference.
     */
+0 −14
Original line number Diff line number Diff line
@@ -17,11 +17,9 @@ package com.android.settings.wifi.details;

import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;

import android.app.Activity;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
@@ -53,8 +51,6 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {

    private static final String TAG = "WifiNetworkDetailsFrg";

    public static final int REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS = 1;

    private AccessPoint mAccessPoint;
    private WifiDetailPreferenceController mWifiDetailPreferenceController;

@@ -146,14 +142,4 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {

        return controllers;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS
                && resultCode == Activity.RESULT_OK) {
            mWifiDetailPreferenceController.launchWifiDppConfiguratorActivity();
        }
    }
}