Merge changes I54a3f033,I2e894501

* changes:
  Fix [a11y] Wi-Fi Easy Connect Talkback issues
  Support to share Wi-Fi hotspot via QR code
This commit is contained in:
TreeHugger Robot
2019-03-12 00:42:40 +00:00
committed by Android (Google) Code Review
22 changed files with 465 additions and 135 deletions

View File

@@ -21,16 +21,12 @@ import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.KeyguardManager;
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
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;
@@ -619,48 +615,16 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
* Share the wifi network with QR code.
*/
private void shareNetwork() {
final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(
Context.KEYGUARD_SERVICE);
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 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 BiometricPrompt.Builder builder = new BiometricPrompt.Builder(mContext)
.setTitle(title)
.setDescription(description);
if (keyguardManager.isDeviceSecure()) {
builder.setDeviceCredentialAllowed(true);
}
final BiometricPrompt bp = builder.build();
final Handler handler = new Handler(Looper.getMainLooper());
bp.authenticate(new CancellationSignal(),
runnable -> handler.post(runnable),
mAuthenticationCallback);
} else {
launchWifiDppConfiguratorActivity();
}
WifiDppUtils.showLockScreen(mContext, title, description,
() -> 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.
*/