Loading src/com/android/settings/wifi/AddNetworkFragment.java +39 −7 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.wifi; import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Intent; import android.net.wifi.WifiConfiguration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import androidx.annotation.VisibleForTesting; Loading @@ -40,7 +42,10 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf final static int SUBMIT_BUTTON_ID = android.R.id.button1; @VisibleForTesting 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 Button mSubmitBtn; Loading Loading @@ -68,10 +73,12 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf mSubmitBtn = rootView.findViewById(SUBMIT_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); mCancelBtn.setOnClickListener(this); scannerButton.setOnClickListener(this); ssidScannerButton.setOnClickListener(this); passwordScannerButton.setOnClickListener(this); mUIController = new WifiConfigController(this, rootView, null, getMode()); return rootView; Loading @@ -85,6 +92,8 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf @Override public void onClick(View view) { String ssid = null; switch (view.getId()) { case SUBMIT_BUTTON_ID: handleSubmitAction(); Loading @@ -92,14 +101,33 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf case CANCEL_BUTTON_ID: handleCancelAction(); 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. getContext().startActivity( WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null)); startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid), REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER); 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 public int getMode() { return WifiConfigUiBase.MODE_CONNECT; Loading Loading @@ -158,9 +186,13 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf @VisibleForTesting void handleSubmitAction() { successfullyFinish(mUIController.getConfig()); } private void successfullyFinish(WifiConfiguration config) { final Intent intent = new Intent(); final Activity activity = getActivity(); intent.putExtra(WIFI_CONFIG_KEY, mUIController.getConfig()); intent.putExtra(WIFI_CONFIG_KEY, config); activity.setResult(Activity.RESULT_OK, intent); activity.finish(); } Loading src/com/android/settings/wifi/WifiDialog.java +34 −13 Original line number Diff line number Diff line Loading @@ -18,15 +18,16 @@ package com.android.settings.wifi; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.wifi.AccessPoint; Loading @@ -40,6 +41,9 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase, default void onSubmit(WifiDialog dialog) { } default void onScan(WifiDialog dialog, String ssid) { } } private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE; Loading Loading @@ -80,18 +84,6 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase, @Override protected void onCreate(Bundle savedInstanceState) { 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); mController = new WifiConfigController(this, mView, mAccessPoint, mMode); super.onCreate(savedInstanceState); Loading @@ -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) { super.onRestoreInstanceState(savedInstanceState); mController.updatePassword(); Loading src/com/android/settings/wifi/WifiDialogActivity.java +26 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.settings.SetupWizardUtils; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.wifi.AccessPoint; import com.google.android.setupcompat.util.WizardManagerHelper; Loading @@ -49,10 +50,13 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo @VisibleForTesting 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_FORGET = RESULT_FIRST_USER + 1; private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private WifiDialog mDialog; @Override Loading Loading @@ -162,4 +166,25 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo mDialog = null; 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(); } } } src/com/android/settings/wifi/WifiSettings.java +17 −1 Original line number Diff line number Diff line Loading @@ -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_STATUS_MESSAGE = "wifi_status_message"; private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private static boolean isVerboseLoggingEnabled() { return WifiTracker.sVerboseLogging || Log.isLoggable(TAG, Log.VERBOSE); } Loading Loading @@ -427,10 +429,17 @@ public class WifiSettings extends RestrictedSettingsFragment public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Only handle request comes from AddNetworkFragment if (requestCode == ADD_NETWORK_REQUEST) { handleAddNetworkRequest(resultCode, data); 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; Loading Loading @@ -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) { final WifiConfiguration config = configController.getConfig(); Loading src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +13 −3 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.util.Size; Loading @@ -48,6 +47,7 @@ import android.widget.TextView; import androidx.lifecycle.ViewModelProviders; import com.android.settings.R; import com.android.settings.wifi.WifiDialogActivity; import com.android.settings.wifi.qrcode.QrCamera; import com.android.settings.wifi.qrcode.QrDecorateView; Loading Loading @@ -77,6 +77,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl // Key for Bundle usage 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_WIFI_CONFIGURATION = "key_wifi_configuration"; private ProgressBar mProgressBar; private QrCamera mCamera; Loading @@ -93,6 +94,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl /** QR code data scanned by camera */ private WifiQrCode mWifiQrCode; /** The WifiConfiguration connecting for enrollee usage */ private WifiConfiguration mWifiConfiguration; private int mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_FAILURE_NONE; @Override Loading @@ -102,6 +106,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl if (savedInstanceState != null) { mIsConfiguratorMode = savedInstanceState.getBoolean(KEY_IS_CONFIGURATOR_MODE); mLatestStatusCode = savedInstanceState.getInt(KEY_LATEST_ERROR_CODE); mWifiConfiguration = savedInstanceState.getParcelable(KEY_WIFI_CONFIGURATION); } final WifiDppInitiatorViewModel model = Loading Loading @@ -417,6 +422,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl mErrorMessage.setVisibility(View.INVISIBLE); final WifiNetworkConfig wifiNetworkConfig = (WifiNetworkConfig)msg.obj; mWifiConfiguration = wifiNetworkConfig.getWifiConfigurationOrNull(); wifiNetworkConfig.connect(getContext(), /* listener */ WifiDppQrCodeScannerFragment.this); break; Loading @@ -431,6 +437,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void onSaveInstanceState(Bundle outState) { outState.putBoolean(KEY_IS_CONFIGURATOR_MODE, mIsConfiguratorMode); outState.putInt(KEY_LATEST_ERROR_CODE, mLatestStatusCode); outState.putParcelable(KEY_WIFI_CONFIGURATION, mWifiConfiguration); super.onSaveInstanceState(outState); } Loading @@ -446,6 +453,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl for (WifiConfiguration wifiConfig : wifiConfigs) { if (wifiConfig.networkId == newNetworkId) { mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS; mWifiConfiguration = wifiConfig; wifiManager.connect(wifiConfig, WifiDppQrCodeScannerFragment.this); return; } Loading Loading @@ -539,9 +547,11 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl @Override 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(); hostActivity.setResult(Activity.RESULT_OK); hostActivity.setResult(Activity.RESULT_OK, resultIntent); hostActivity.finish(); } Loading Loading
src/com/android/settings/wifi/AddNetworkFragment.java +39 −7 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.wifi; import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Intent; import android.net.wifi.WifiConfiguration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import androidx.annotation.VisibleForTesting; Loading @@ -40,7 +42,10 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf final static int SUBMIT_BUTTON_ID = android.R.id.button1; @VisibleForTesting 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 Button mSubmitBtn; Loading Loading @@ -68,10 +73,12 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf mSubmitBtn = rootView.findViewById(SUBMIT_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); mCancelBtn.setOnClickListener(this); scannerButton.setOnClickListener(this); ssidScannerButton.setOnClickListener(this); passwordScannerButton.setOnClickListener(this); mUIController = new WifiConfigController(this, rootView, null, getMode()); return rootView; Loading @@ -85,6 +92,8 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf @Override public void onClick(View view) { String ssid = null; switch (view.getId()) { case SUBMIT_BUTTON_ID: handleSubmitAction(); Loading @@ -92,14 +101,33 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf case CANCEL_BUTTON_ID: handleCancelAction(); 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. getContext().startActivity( WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null)); startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid), REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER); 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 public int getMode() { return WifiConfigUiBase.MODE_CONNECT; Loading Loading @@ -158,9 +186,13 @@ public class AddNetworkFragment extends InstrumentedFragment implements WifiConf @VisibleForTesting void handleSubmitAction() { successfullyFinish(mUIController.getConfig()); } private void successfullyFinish(WifiConfiguration config) { final Intent intent = new Intent(); final Activity activity = getActivity(); intent.putExtra(WIFI_CONFIG_KEY, mUIController.getConfig()); intent.putExtra(WIFI_CONFIG_KEY, config); activity.setResult(Activity.RESULT_OK, intent); activity.finish(); } Loading
src/com/android/settings/wifi/WifiDialog.java +34 −13 Original line number Diff line number Diff line Loading @@ -18,15 +18,16 @@ package com.android.settings.wifi; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.wifi.AccessPoint; Loading @@ -40,6 +41,9 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase, default void onSubmit(WifiDialog dialog) { } default void onScan(WifiDialog dialog, String ssid) { } } private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE; Loading Loading @@ -80,18 +84,6 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase, @Override protected void onCreate(Bundle savedInstanceState) { 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); mController = new WifiConfigController(this, mView, mAccessPoint, mMode); super.onCreate(savedInstanceState); Loading @@ -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) { super.onRestoreInstanceState(savedInstanceState); mController.updatePassword(); Loading
src/com/android/settings/wifi/WifiDialogActivity.java +26 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.settings.SetupWizardUtils; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.wifi.AccessPoint; import com.google.android.setupcompat.util.WizardManagerHelper; Loading @@ -49,10 +50,13 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo @VisibleForTesting 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_FORGET = RESULT_FIRST_USER + 1; private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private WifiDialog mDialog; @Override Loading Loading @@ -162,4 +166,25 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo mDialog = null; 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(); } } }
src/com/android/settings/wifi/WifiSettings.java +17 −1 Original line number Diff line number Diff line Loading @@ -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_STATUS_MESSAGE = "wifi_status_message"; private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private static boolean isVerboseLoggingEnabled() { return WifiTracker.sVerboseLogging || Log.isLoggable(TAG, Log.VERBOSE); } Loading Loading @@ -427,10 +429,17 @@ public class WifiSettings extends RestrictedSettingsFragment public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Only handle request comes from AddNetworkFragment if (requestCode == ADD_NETWORK_REQUEST) { handleAddNetworkRequest(resultCode, data); 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; Loading Loading @@ -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) { final WifiConfiguration config = configController.getConfig(); Loading
src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +13 −3 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.util.Size; Loading @@ -48,6 +47,7 @@ import android.widget.TextView; import androidx.lifecycle.ViewModelProviders; import com.android.settings.R; import com.android.settings.wifi.WifiDialogActivity; import com.android.settings.wifi.qrcode.QrCamera; import com.android.settings.wifi.qrcode.QrDecorateView; Loading Loading @@ -77,6 +77,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl // Key for Bundle usage 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_WIFI_CONFIGURATION = "key_wifi_configuration"; private ProgressBar mProgressBar; private QrCamera mCamera; Loading @@ -93,6 +94,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl /** QR code data scanned by camera */ private WifiQrCode mWifiQrCode; /** The WifiConfiguration connecting for enrollee usage */ private WifiConfiguration mWifiConfiguration; private int mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_FAILURE_NONE; @Override Loading @@ -102,6 +106,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl if (savedInstanceState != null) { mIsConfiguratorMode = savedInstanceState.getBoolean(KEY_IS_CONFIGURATOR_MODE); mLatestStatusCode = savedInstanceState.getInt(KEY_LATEST_ERROR_CODE); mWifiConfiguration = savedInstanceState.getParcelable(KEY_WIFI_CONFIGURATION); } final WifiDppInitiatorViewModel model = Loading Loading @@ -417,6 +422,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl mErrorMessage.setVisibility(View.INVISIBLE); final WifiNetworkConfig wifiNetworkConfig = (WifiNetworkConfig)msg.obj; mWifiConfiguration = wifiNetworkConfig.getWifiConfigurationOrNull(); wifiNetworkConfig.connect(getContext(), /* listener */ WifiDppQrCodeScannerFragment.this); break; Loading @@ -431,6 +437,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void onSaveInstanceState(Bundle outState) { outState.putBoolean(KEY_IS_CONFIGURATOR_MODE, mIsConfiguratorMode); outState.putInt(KEY_LATEST_ERROR_CODE, mLatestStatusCode); outState.putParcelable(KEY_WIFI_CONFIGURATION, mWifiConfiguration); super.onSaveInstanceState(outState); } Loading @@ -446,6 +453,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl for (WifiConfiguration wifiConfig : wifiConfigs) { if (wifiConfig.networkId == newNetworkId) { mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS; mWifiConfiguration = wifiConfig; wifiManager.connect(wifiConfig, WifiDppQrCodeScannerFragment.this); return; } Loading Loading @@ -539,9 +547,11 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl @Override 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(); hostActivity.setResult(Activity.RESULT_OK); hostActivity.setResult(Activity.RESULT_OK, resultIntent); hostActivity.finish(); } Loading