Merge "Improve UX of Wi-Fi QR code scanner enrollee flow"
This commit is contained in:
committed by
Android (Google) Code Review
commit
9d741c4f47
@@ -19,12 +19,14 @@ package com.android.settings.wifi;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
@@ -40,7 +42,10 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
|
|||||||
final static int SUBMIT_BUTTON_ID = android.R.id.button1;
|
final static int SUBMIT_BUTTON_ID = android.R.id.button1;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final static int CANCEL_BUTTON_ID = android.R.id.button2;
|
final static int CANCEL_BUTTON_ID = android.R.id.button2;
|
||||||
final static int SCANNER_BUTTON_ID = R.id.ssid_scanner_button;
|
final static int SSID_SCANNER_BUTTON_ID = R.id.ssid_scanner_button;
|
||||||
|
final static int PASSWORD_SCANNER_BUTTON_ID = R.id.password_scanner_button;
|
||||||
|
|
||||||
|
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
|
||||||
|
|
||||||
private WifiConfigController mUIController;
|
private WifiConfigController mUIController;
|
||||||
private Button mSubmitBtn;
|
private Button mSubmitBtn;
|
||||||
@@ -68,10 +73,12 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
|
|||||||
|
|
||||||
mSubmitBtn = rootView.findViewById(SUBMIT_BUTTON_ID);
|
mSubmitBtn = rootView.findViewById(SUBMIT_BUTTON_ID);
|
||||||
mCancelBtn = rootView.findViewById(CANCEL_BUTTON_ID);
|
mCancelBtn = rootView.findViewById(CANCEL_BUTTON_ID);
|
||||||
final ImageButton scannerButton = rootView.findViewById(SCANNER_BUTTON_ID);
|
final ImageButton ssidScannerButton = rootView.findViewById(SSID_SCANNER_BUTTON_ID);
|
||||||
|
final ImageButton passwordScannerButton = rootView.findViewById(PASSWORD_SCANNER_BUTTON_ID);
|
||||||
mSubmitBtn.setOnClickListener(this);
|
mSubmitBtn.setOnClickListener(this);
|
||||||
mCancelBtn.setOnClickListener(this);
|
mCancelBtn.setOnClickListener(this);
|
||||||
scannerButton.setOnClickListener(this);
|
ssidScannerButton.setOnClickListener(this);
|
||||||
|
passwordScannerButton.setOnClickListener(this);
|
||||||
mUIController = new WifiConfigController(this, rootView, null, getMode());
|
mUIController = new WifiConfigController(this, rootView, null, getMode());
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
@@ -85,6 +92,8 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
|
String ssid = null;
|
||||||
|
|
||||||
switch (view.getId()) {
|
switch (view.getId()) {
|
||||||
case SUBMIT_BUTTON_ID:
|
case SUBMIT_BUTTON_ID:
|
||||||
handleSubmitAction();
|
handleSubmitAction();
|
||||||
@@ -92,14 +101,33 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
|
|||||||
case CANCEL_BUTTON_ID:
|
case CANCEL_BUTTON_ID:
|
||||||
handleCancelAction();
|
handleCancelAction();
|
||||||
break;
|
break;
|
||||||
case SCANNER_BUTTON_ID:
|
case SSID_SCANNER_BUTTON_ID:
|
||||||
|
final TextView ssidEditText = getView().findViewById(R.id.ssid);
|
||||||
|
ssid = ssidEditText.getText().toString();
|
||||||
|
// No break and flows to case PASSWORD_SCANNER_BUTTON_ID
|
||||||
|
case PASSWORD_SCANNER_BUTTON_ID:
|
||||||
// Launch QR code scanner to join a network.
|
// Launch QR code scanner to join a network.
|
||||||
getContext().startActivity(
|
startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
|
||||||
WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
|
REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
if (requestCode == REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER) {
|
||||||
|
if (resultCode != Activity.RESULT_OK) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final WifiConfiguration config = data.getParcelableExtra(
|
||||||
|
WifiDialogActivity.KEY_WIFI_CONFIGURATION);
|
||||||
|
successfullyFinish(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMode() {
|
public int getMode() {
|
||||||
return WifiConfigUiBase.MODE_CONNECT;
|
return WifiConfigUiBase.MODE_CONNECT;
|
||||||
@@ -158,9 +186,13 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void handleSubmitAction() {
|
void handleSubmitAction() {
|
||||||
|
successfullyFinish(mUIController.getConfig());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void successfullyFinish(WifiConfiguration config) {
|
||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
intent.putExtra(WIFI_CONFIG_KEY, mUIController.getConfig());
|
intent.putExtra(WIFI_CONFIG_KEY, config);
|
||||||
activity.setResult(Activity.RESULT_OK, intent);
|
activity.setResult(Activity.RESULT_OK, intent);
|
||||||
activity.finish();
|
activity.finish();
|
||||||
}
|
}
|
||||||
|
@@ -18,15 +18,16 @@ package com.android.settings.wifi;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
@@ -40,6 +41,9 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase,
|
|||||||
|
|
||||||
default void onSubmit(WifiDialog dialog) {
|
default void onSubmit(WifiDialog dialog) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default void onScan(WifiDialog dialog, String ssid) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
|
private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
|
||||||
@@ -80,18 +84,6 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase,
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
mView = getLayoutInflater().inflate(R.layout.wifi_dialog, /* root */ null);
|
mView = getLayoutInflater().inflate(R.layout.wifi_dialog, /* root */ null);
|
||||||
final ImageButton scannerButton = mView.findViewById(R.id.password_scanner_button);
|
|
||||||
if (scannerButton != null) {
|
|
||||||
scannerButton.setOnClickListener((View v) -> {
|
|
||||||
String ssid = null;
|
|
||||||
if (mAccessPoint != null) {
|
|
||||||
ssid = mAccessPoint.getSsidStr();
|
|
||||||
}
|
|
||||||
// Launch QR code scanner to join a network.
|
|
||||||
getContext().startActivity(
|
|
||||||
WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setView(mView);
|
setView(mView);
|
||||||
mController = new WifiConfigController(this, mView, mAccessPoint, mMode);
|
mController = new WifiConfigController(this, mView, mAccessPoint, mMode);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -109,6 +101,35 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStart() {
|
||||||
|
View.OnClickListener onClickScannerButtonListener = v -> {
|
||||||
|
if (mListener == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String ssid = null;
|
||||||
|
if (mAccessPoint == null) {
|
||||||
|
final TextView ssidEditText = findViewById(R.id.ssid);
|
||||||
|
ssid = ssidEditText.getText().toString();
|
||||||
|
} else {
|
||||||
|
ssid = mAccessPoint.getSsidStr();
|
||||||
|
}
|
||||||
|
mListener.onScan(/* WifiDialog */ this, ssid);
|
||||||
|
};
|
||||||
|
|
||||||
|
final ImageButton ssidScannerButton = findViewById(R.id.ssid_scanner_button);
|
||||||
|
ssidScannerButton.setOnClickListener(onClickScannerButtonListener);
|
||||||
|
|
||||||
|
final ImageButton passwordScannerButton = findViewById(R.id.password_scanner_button);
|
||||||
|
passwordScannerButton.setOnClickListener(onClickScannerButtonListener);
|
||||||
|
|
||||||
|
if (mHideSubmitButton) {
|
||||||
|
ssidScannerButton.setVisibility(View.GONE);
|
||||||
|
passwordScannerButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onRestoreInstanceState(Bundle savedInstanceState) {
|
public void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||||
super.onRestoreInstanceState(savedInstanceState);
|
super.onRestoreInstanceState(savedInstanceState);
|
||||||
mController.updatePassword();
|
mController.updatePassword();
|
||||||
|
@@ -29,6 +29,7 @@ import android.util.Log;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.SetupWizardUtils;
|
import com.android.settings.SetupWizardUtils;
|
||||||
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
|
|
||||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
@@ -49,10 +50,13 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String KEY_CONNECT_FOR_CALLER = "connect_for_caller";
|
static final String KEY_CONNECT_FOR_CALLER = "connect_for_caller";
|
||||||
|
|
||||||
private static final String KEY_WIFI_CONFIGURATION = "wifi_configuration";
|
public static final String KEY_WIFI_CONFIGURATION = "wifi_configuration";
|
||||||
|
|
||||||
private static final int RESULT_CONNECTED = RESULT_FIRST_USER;
|
private static final int RESULT_CONNECTED = RESULT_FIRST_USER;
|
||||||
private static final int RESULT_FORGET = RESULT_FIRST_USER + 1;
|
private static final int RESULT_FORGET = RESULT_FIRST_USER + 1;
|
||||||
|
|
||||||
|
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
|
||||||
|
|
||||||
private WifiDialog mDialog;
|
private WifiDialog mDialog;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -162,4 +166,25 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo
|
|||||||
mDialog = null;
|
mDialog = null;
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onScan(WifiDialog dialog, String ssid) {
|
||||||
|
// Launch QR code scanner to join a network.
|
||||||
|
startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
|
||||||
|
REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
if (requestCode == REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER) {
|
||||||
|
if (resultCode != RESULT_OK) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setResult(RESULT_CONNECTED, data);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -117,6 +117,8 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
||||||
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
||||||
|
|
||||||
|
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
|
||||||
|
|
||||||
private static boolean isVerboseLoggingEnabled() {
|
private static boolean isVerboseLoggingEnabled() {
|
||||||
return WifiTracker.sVerboseLogging || Log.isLoggable(TAG, Log.VERBOSE);
|
return WifiTracker.sVerboseLogging || Log.isLoggable(TAG, Log.VERBOSE);
|
||||||
}
|
}
|
||||||
@@ -427,10 +429,17 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
// Only handle request comes from AddNetworkFragment
|
|
||||||
if (requestCode == ADD_NETWORK_REQUEST) {
|
if (requestCode == ADD_NETWORK_REQUEST) {
|
||||||
handleAddNetworkRequest(resultCode, data);
|
handleAddNetworkRequest(resultCode, data);
|
||||||
return;
|
return;
|
||||||
|
} else if (requestCode == REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER) {
|
||||||
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
|
if (mDialog != null) {
|
||||||
|
mDialog.dismiss();
|
||||||
|
}
|
||||||
|
mWifiTracker.resumeScanning();
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean formerlyRestricted = mIsRestricted;
|
final boolean formerlyRestricted = mIsRestricted;
|
||||||
@@ -1065,6 +1074,13 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onScan(WifiDialog dialog, String ssid) {
|
||||||
|
// Launch QR code scanner to join a network.
|
||||||
|
startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
|
||||||
|
REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
|
||||||
|
}
|
||||||
|
|
||||||
/* package */ void submit(WifiConfigController configController) {
|
/* package */ void submit(WifiConfigController configController) {
|
||||||
|
|
||||||
final WifiConfiguration config = configController.getConfig();
|
final WifiConfiguration config = configController.getConfig();
|
||||||
|
@@ -31,7 +31,6 @@ import android.net.wifi.WifiManager;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
@@ -48,6 +47,7 @@ import android.widget.TextView;
|
|||||||
import androidx.lifecycle.ViewModelProviders;
|
import androidx.lifecycle.ViewModelProviders;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.wifi.WifiDialogActivity;
|
||||||
import com.android.settings.wifi.qrcode.QrCamera;
|
import com.android.settings.wifi.qrcode.QrCamera;
|
||||||
import com.android.settings.wifi.qrcode.QrDecorateView;
|
import com.android.settings.wifi.qrcode.QrDecorateView;
|
||||||
|
|
||||||
@@ -77,6 +77,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
// Key for Bundle usage
|
// Key for Bundle usage
|
||||||
private static final String KEY_IS_CONFIGURATOR_MODE = "key_is_configurator_mode";
|
private static final String KEY_IS_CONFIGURATOR_MODE = "key_is_configurator_mode";
|
||||||
private static final String KEY_LATEST_ERROR_CODE = "key_latest_error_code";
|
private static final String KEY_LATEST_ERROR_CODE = "key_latest_error_code";
|
||||||
|
private static final String KEY_WIFI_CONFIGURATION = "key_wifi_configuration";
|
||||||
|
|
||||||
private ProgressBar mProgressBar;
|
private ProgressBar mProgressBar;
|
||||||
private QrCamera mCamera;
|
private QrCamera mCamera;
|
||||||
@@ -93,6 +94,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
/** QR code data scanned by camera */
|
/** QR code data scanned by camera */
|
||||||
private WifiQrCode mWifiQrCode;
|
private WifiQrCode mWifiQrCode;
|
||||||
|
|
||||||
|
/** The WifiConfiguration connecting for enrollee usage */
|
||||||
|
private WifiConfiguration mWifiConfiguration;
|
||||||
|
|
||||||
private int mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_FAILURE_NONE;
|
private int mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_FAILURE_NONE;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -102,6 +106,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
mIsConfiguratorMode = savedInstanceState.getBoolean(KEY_IS_CONFIGURATOR_MODE);
|
mIsConfiguratorMode = savedInstanceState.getBoolean(KEY_IS_CONFIGURATOR_MODE);
|
||||||
mLatestStatusCode = savedInstanceState.getInt(KEY_LATEST_ERROR_CODE);
|
mLatestStatusCode = savedInstanceState.getInt(KEY_LATEST_ERROR_CODE);
|
||||||
|
mWifiConfiguration = savedInstanceState.getParcelable(KEY_WIFI_CONFIGURATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
final WifiDppInitiatorViewModel model =
|
final WifiDppInitiatorViewModel model =
|
||||||
@@ -417,6 +422,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
mErrorMessage.setVisibility(View.INVISIBLE);
|
mErrorMessage.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
final WifiNetworkConfig wifiNetworkConfig = (WifiNetworkConfig)msg.obj;
|
final WifiNetworkConfig wifiNetworkConfig = (WifiNetworkConfig)msg.obj;
|
||||||
|
mWifiConfiguration = wifiNetworkConfig.getWifiConfigurationOrNull();
|
||||||
wifiNetworkConfig.connect(getContext(),
|
wifiNetworkConfig.connect(getContext(),
|
||||||
/* listener */ WifiDppQrCodeScannerFragment.this);
|
/* listener */ WifiDppQrCodeScannerFragment.this);
|
||||||
break;
|
break;
|
||||||
@@ -431,6 +437,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
outState.putBoolean(KEY_IS_CONFIGURATOR_MODE, mIsConfiguratorMode);
|
outState.putBoolean(KEY_IS_CONFIGURATOR_MODE, mIsConfiguratorMode);
|
||||||
outState.putInt(KEY_LATEST_ERROR_CODE, mLatestStatusCode);
|
outState.putInt(KEY_LATEST_ERROR_CODE, mLatestStatusCode);
|
||||||
|
outState.putParcelable(KEY_WIFI_CONFIGURATION, mWifiConfiguration);
|
||||||
|
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
}
|
}
|
||||||
@@ -446,6 +453,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
for (WifiConfiguration wifiConfig : wifiConfigs) {
|
for (WifiConfiguration wifiConfig : wifiConfigs) {
|
||||||
if (wifiConfig.networkId == newNetworkId) {
|
if (wifiConfig.networkId == newNetworkId) {
|
||||||
mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS;
|
mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS;
|
||||||
|
mWifiConfiguration = wifiConfig;
|
||||||
wifiManager.connect(wifiConfig, WifiDppQrCodeScannerFragment.this);
|
wifiManager.connect(wifiConfig, WifiDppQrCodeScannerFragment.this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -539,9 +547,11 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
|
final Intent resultIntent = new Intent();
|
||||||
|
resultIntent.putExtra(WifiDialogActivity.KEY_WIFI_CONFIGURATION, mWifiConfiguration);
|
||||||
|
|
||||||
final Activity hostActivity = getActivity();
|
final Activity hostActivity = getActivity();
|
||||||
hostActivity.setResult(Activity.RESULT_OK);
|
hostActivity.setResult(Activity.RESULT_OK, resultIntent);
|
||||||
hostActivity.finish();
|
hostActivity.finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -95,6 +95,11 @@ public class WifiDppUtils {
|
|||||||
/**
|
/**
|
||||||
* Returns an intent to launch QR code scanner for Wi-Fi DPP enrollee.
|
* Returns an intent to launch QR code scanner for Wi-Fi DPP enrollee.
|
||||||
*
|
*
|
||||||
|
* After enrollee success, the callee activity will return connecting WifiConfiguration by
|
||||||
|
* putExtra {@code WifiDialogActivity.KEY_WIFI_CONFIGURATION} for
|
||||||
|
* {@code Activity#setResult(int resultCode, Intent data)}. The calling object should check
|
||||||
|
* if it's available before using it.
|
||||||
|
*
|
||||||
* @param ssid The data corresponding to {@code WifiConfiguration} SSID
|
* @param ssid The data corresponding to {@code WifiConfiguration} SSID
|
||||||
* @return Intent for launching QR code scanner
|
* @return Intent for launching QR code scanner
|
||||||
*/
|
*/
|
||||||
|
@@ -228,7 +228,7 @@ public class WifiNetworkConfig {
|
|||||||
/**
|
/**
|
||||||
* This is a simplified method from {@code WifiConfigController.getConfig()}
|
* This is a simplified method from {@code WifiConfigController.getConfig()}
|
||||||
*/
|
*/
|
||||||
private WifiConfiguration getWifiConfigurationOrNull() {
|
WifiConfiguration getWifiConfigurationOrNull() {
|
||||||
if (!isValidConfig(this)) {
|
if (!isValidConfig(this)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user