Loading src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java +40 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ package com.android.settings.wifi.dpp; import android.app.ActionBar; import android.app.Activity; import android.content.Context; import android.net.wifi.WifiManager; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -35,11 +38,42 @@ import com.android.settings.R; * to the Wi-Fi network. */ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { private static final String TAG = "WifiDppAddDeviceFragment"; private ImageView mWifiApPictureView; private TextView mChooseDifferentNetwork; private Button mButtonLeft; private Button mButtonRight; private class DppStatusCallback extends android.net.wifi.DppStatusCallback { @Override public void onEnrolleeSuccess(int newNetworkId) { // Do nothing } @Override public void onConfiguratorSuccess(int code) { // Update success UI. mTitle.setText(R.string.wifi_dpp_wifi_shared_with_device); mSummary.setVisibility(View.INVISIBLE); mButtonLeft.setText(R.string.wifi_dpp_add_another_device); mButtonLeft.setOnClickListener(v -> getFragmentManager().popBackStack()); mButtonRight.setText(R.string.done); mButtonRight.setOnClickListener(v -> getActivity().finish()); } @Override public void onFailure(int code) { //TODO(b/122429170): Show DPP configuration error state UI Log.d(TAG, "DppStatusCallback.onFailure " + code); } @Override public void onProgress(int code) { // Do nothing } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR; Loading Loading @@ -86,6 +120,11 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { } private void startWifiDppInitiator() { //TODO(b/122331217): starts Wi-Fi DPP initiator handshake here final String enrolleeUri = ((WifiDppConfiguratorActivity) getActivity()).getDppUri(); final int networkId = ((WifiDppConfiguratorActivity) getActivity()).getWifiNetworkConfig().getNetworkId(); final WifiManager wifiManager = getContext().getSystemService(WifiManager.class); wifiManager.startDppAsConfiguratorInitiator(enrolleeUri, networkId, WifiManager.DPP_NETWORK_ROLE_STA, /* handler */ null, new DppStatusCallback()); } } src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +7 −16 Original line number Diff line number Diff line Loading @@ -66,11 +66,8 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements /** The Wi-Fi network which will be configured */ private WifiNetworkConfig mWifiNetworkConfig; /** The public key from Wi-Fi DPP QR code */ private String mPublicKey; /** The information from Wi-Fi DPP QR code */ private String mInformation; /** The uri from Wi-Fi DPP QR code */ private String mDppUri; /** The Wi-Fi DPP QR code from intent ACTION_PROCESS_WIFI_DPP_QR_CODE */ private WifiQrCode mWifiDppQrCode; Loading Loading @@ -228,12 +225,8 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements return mWifiNetworkConfig; } public String getPublicKey() { return mPublicKey; } public String getInformation() { return mInformation; public String getDppUri() { return mDppUri; } public WifiQrCode getWifiDppQrCode() { Loading Loading @@ -270,17 +263,15 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements } @Override public void onScanWifiDppSuccess(String publicKey, String information) { mPublicKey = publicKey; mInformation = information; public void onScanWifiDppSuccess(String uri) { mDppUri = uri; showAddDeviceFragment(/* addToBackStack */ true); } @Override public void onScanZxingWifiFormatSuccess(WifiNetworkConfig wifiNetworkConfig) { mPublicKey = null; mInformation = null; mDppUri = null; mWifiNetworkConfig = new WifiNetworkConfig(wifiNetworkConfig); showAddDeviceFragment(/* addToBackStack */ true); Loading src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java +40 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.wifi.dpp; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.provider.Settings; import android.app.ActionBar; import android.app.Activity; Loading @@ -32,6 +34,8 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedActivity; import com.android.settings.R; import java.util.List; /** * To provision "this" device with specified Wi-Fi network. * Loading @@ -49,6 +53,39 @@ public class WifiDppEnrolleeActivity extends InstrumentedActivity implements private FragmentManager mFragmentManager; private class DppStatusCallback extends android.net.wifi.DppStatusCallback { @Override public void onEnrolleeSuccess(int newNetworkId) { // Connect to the new network. final WifiManager wifiManager = getSystemService(WifiManager.class); final List<WifiConfiguration> wifiConfigs = wifiManager.getPrivilegedConfiguredNetworks(); for (WifiConfiguration wifiConfig : wifiConfigs) { if (wifiConfig.networkId == newNetworkId) { wifiManager.connect(wifiConfig, WifiDppEnrolleeActivity.this); return; } } Log.e(TAG, "Invalid networkId " + newNetworkId); WifiDppEnrolleeActivity.this.onFailure(WifiManager.ERROR_AUTHENTICATING); } @Override public void onConfiguratorSuccess(int code) { // Do nothing } @Override public void onFailure(int code) { //TODO(b/122429170): Show DPP enrollee error state UI Log.d(TAG, "DppStatusCallback.onFailure " + code); } @Override public void onProgress(int code) { // Do nothing } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_ENROLLEE; Loading Loading @@ -108,8 +145,9 @@ public class WifiDppEnrolleeActivity extends InstrumentedActivity implements } @Override public void onScanWifiDppSuccess(String publicKey, String information) { // TODO(b/1023597): starts DPP enrollee handshake here public void onScanWifiDppSuccess(String uri) { final WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.startDppAsEnrolleeInitiator(uri, /* handler */ null, new DppStatusCallback()); } @Override Loading src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +8 −11 Original line number Diff line number Diff line Loading @@ -62,9 +62,8 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl private static final long SHOW_ERROR_MESSAGE_INTERVAL = 2000; private static final long SHOW_SUCCESS_SQUARE_INTERVAL = 1000; // Keys for Bundle usage private static final String KEY_PUBLIC_KEY = "key_public_key"; private static final String KEY_INFORMATION = "key_information"; // Key for Bundle usage private static final String KEY_PUBLIC_URI = "key_public_uri"; private QrCamera mCamera; private TextureView mTextureView; Loading @@ -91,7 +90,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl // Container Activity must implement this interface public interface OnScanWifiDppSuccessListener { public void onScanWifiDppSuccess(String publicKey, String information); public void onScanWifiDppSuccess(String uri); } OnScanWifiDppSuccessListener mScanWifiDppSuccessListener; Loading Loading @@ -269,7 +268,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void handleSuccessfulResult(String qrCode) { switch (mWifiQrCode.getScheme()) { case WifiQrCode.SCHEME_DPP: handleWifiDpp(mWifiQrCode.getPublicKey(), mWifiQrCode.getInformation()); handleWifiDpp(qrCode); break; case WifiQrCode.SCHEME_ZXING_WIFI_NETWORK_CONFIG: Loading @@ -281,13 +280,12 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl } } private void handleWifiDpp(String publicKey, String information) { private void handleWifiDpp(String uri) { destroyCamera(); mDecorateView.setFocused(true); final Bundle bundle = new Bundle(); bundle.putString(KEY_PUBLIC_KEY, publicKey); bundle.putString(KEY_INFORMATION, information); bundle.putString(KEY_PUBLIC_URI, uri); Message message = mHandler.obtainMessage(MESSAGE_SCAN_WIFI_DPP_SUCCESS); message.setData(bundle); Loading Loading @@ -352,10 +350,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl return; } final Bundle bundle = msg.getData(); final String publicKey = bundle.getString(KEY_PUBLIC_KEY); final String information = bundle.getString(KEY_INFORMATION); final String uri = bundle.getString(KEY_PUBLIC_URI); mScanWifiDppSuccessListener.onScanWifiDppSuccess(publicKey, information); mScanWifiDppSuccessListener.onScanWifiDppSuccess(uri); break; case MESSAGE_SCAN_ZXING_WIFI_FORMAT_SUCCESS: Loading src/com/android/settings/wifi/dpp/WifiDppUtils.java +8 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public class WifiDppUtils { /** The data corresponding to {@code WifiConfiguration} hiddenSSID */ public static final String EXTRA_WIFI_HIDDEN_SSID = "hiddenSsid"; /** The data corresponding to {@code WifiConfiguration} networkId */ public static final String EXTRA_WIFI_NETWORK_ID = "networkId"; /** @see WifiQrCode */ public static final String EXTRA_QR_CODE = "qrCode"; Loading Loading @@ -164,6 +167,11 @@ public class WifiDppUtils { if (!TextUtils.isEmpty(preSharedKey)) { intent.putExtra(EXTRA_WIFI_PRE_SHARED_KEY, preSharedKey); } if (wifiConfig.networkId == WifiConfiguration.INVALID_NETWORK_ID) { throw new IllegalArgumentException("Invalid network ID"); } else { intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfig.networkId); } return intent; } Loading Loading
src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java +40 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ package com.android.settings.wifi.dpp; import android.app.ActionBar; import android.app.Activity; import android.content.Context; import android.net.wifi.WifiManager; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -35,11 +38,42 @@ import com.android.settings.R; * to the Wi-Fi network. */ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { private static final String TAG = "WifiDppAddDeviceFragment"; private ImageView mWifiApPictureView; private TextView mChooseDifferentNetwork; private Button mButtonLeft; private Button mButtonRight; private class DppStatusCallback extends android.net.wifi.DppStatusCallback { @Override public void onEnrolleeSuccess(int newNetworkId) { // Do nothing } @Override public void onConfiguratorSuccess(int code) { // Update success UI. mTitle.setText(R.string.wifi_dpp_wifi_shared_with_device); mSummary.setVisibility(View.INVISIBLE); mButtonLeft.setText(R.string.wifi_dpp_add_another_device); mButtonLeft.setOnClickListener(v -> getFragmentManager().popBackStack()); mButtonRight.setText(R.string.done); mButtonRight.setOnClickListener(v -> getActivity().finish()); } @Override public void onFailure(int code) { //TODO(b/122429170): Show DPP configuration error state UI Log.d(TAG, "DppStatusCallback.onFailure " + code); } @Override public void onProgress(int code) { // Do nothing } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR; Loading Loading @@ -86,6 +120,11 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { } private void startWifiDppInitiator() { //TODO(b/122331217): starts Wi-Fi DPP initiator handshake here final String enrolleeUri = ((WifiDppConfiguratorActivity) getActivity()).getDppUri(); final int networkId = ((WifiDppConfiguratorActivity) getActivity()).getWifiNetworkConfig().getNetworkId(); final WifiManager wifiManager = getContext().getSystemService(WifiManager.class); wifiManager.startDppAsConfiguratorInitiator(enrolleeUri, networkId, WifiManager.DPP_NETWORK_ROLE_STA, /* handler */ null, new DppStatusCallback()); } }
src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +7 −16 Original line number Diff line number Diff line Loading @@ -66,11 +66,8 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements /** The Wi-Fi network which will be configured */ private WifiNetworkConfig mWifiNetworkConfig; /** The public key from Wi-Fi DPP QR code */ private String mPublicKey; /** The information from Wi-Fi DPP QR code */ private String mInformation; /** The uri from Wi-Fi DPP QR code */ private String mDppUri; /** The Wi-Fi DPP QR code from intent ACTION_PROCESS_WIFI_DPP_QR_CODE */ private WifiQrCode mWifiDppQrCode; Loading Loading @@ -228,12 +225,8 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements return mWifiNetworkConfig; } public String getPublicKey() { return mPublicKey; } public String getInformation() { return mInformation; public String getDppUri() { return mDppUri; } public WifiQrCode getWifiDppQrCode() { Loading Loading @@ -270,17 +263,15 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements } @Override public void onScanWifiDppSuccess(String publicKey, String information) { mPublicKey = publicKey; mInformation = information; public void onScanWifiDppSuccess(String uri) { mDppUri = uri; showAddDeviceFragment(/* addToBackStack */ true); } @Override public void onScanZxingWifiFormatSuccess(WifiNetworkConfig wifiNetworkConfig) { mPublicKey = null; mInformation = null; mDppUri = null; mWifiNetworkConfig = new WifiNetworkConfig(wifiNetworkConfig); showAddDeviceFragment(/* addToBackStack */ true); Loading
src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java +40 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.wifi.dpp; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.provider.Settings; import android.app.ActionBar; import android.app.Activity; Loading @@ -32,6 +34,8 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedActivity; import com.android.settings.R; import java.util.List; /** * To provision "this" device with specified Wi-Fi network. * Loading @@ -49,6 +53,39 @@ public class WifiDppEnrolleeActivity extends InstrumentedActivity implements private FragmentManager mFragmentManager; private class DppStatusCallback extends android.net.wifi.DppStatusCallback { @Override public void onEnrolleeSuccess(int newNetworkId) { // Connect to the new network. final WifiManager wifiManager = getSystemService(WifiManager.class); final List<WifiConfiguration> wifiConfigs = wifiManager.getPrivilegedConfiguredNetworks(); for (WifiConfiguration wifiConfig : wifiConfigs) { if (wifiConfig.networkId == newNetworkId) { wifiManager.connect(wifiConfig, WifiDppEnrolleeActivity.this); return; } } Log.e(TAG, "Invalid networkId " + newNetworkId); WifiDppEnrolleeActivity.this.onFailure(WifiManager.ERROR_AUTHENTICATING); } @Override public void onConfiguratorSuccess(int code) { // Do nothing } @Override public void onFailure(int code) { //TODO(b/122429170): Show DPP enrollee error state UI Log.d(TAG, "DppStatusCallback.onFailure " + code); } @Override public void onProgress(int code) { // Do nothing } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_ENROLLEE; Loading Loading @@ -108,8 +145,9 @@ public class WifiDppEnrolleeActivity extends InstrumentedActivity implements } @Override public void onScanWifiDppSuccess(String publicKey, String information) { // TODO(b/1023597): starts DPP enrollee handshake here public void onScanWifiDppSuccess(String uri) { final WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.startDppAsEnrolleeInitiator(uri, /* handler */ null, new DppStatusCallback()); } @Override Loading
src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +8 −11 Original line number Diff line number Diff line Loading @@ -62,9 +62,8 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl private static final long SHOW_ERROR_MESSAGE_INTERVAL = 2000; private static final long SHOW_SUCCESS_SQUARE_INTERVAL = 1000; // Keys for Bundle usage private static final String KEY_PUBLIC_KEY = "key_public_key"; private static final String KEY_INFORMATION = "key_information"; // Key for Bundle usage private static final String KEY_PUBLIC_URI = "key_public_uri"; private QrCamera mCamera; private TextureView mTextureView; Loading @@ -91,7 +90,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl // Container Activity must implement this interface public interface OnScanWifiDppSuccessListener { public void onScanWifiDppSuccess(String publicKey, String information); public void onScanWifiDppSuccess(String uri); } OnScanWifiDppSuccessListener mScanWifiDppSuccessListener; Loading Loading @@ -269,7 +268,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void handleSuccessfulResult(String qrCode) { switch (mWifiQrCode.getScheme()) { case WifiQrCode.SCHEME_DPP: handleWifiDpp(mWifiQrCode.getPublicKey(), mWifiQrCode.getInformation()); handleWifiDpp(qrCode); break; case WifiQrCode.SCHEME_ZXING_WIFI_NETWORK_CONFIG: Loading @@ -281,13 +280,12 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl } } private void handleWifiDpp(String publicKey, String information) { private void handleWifiDpp(String uri) { destroyCamera(); mDecorateView.setFocused(true); final Bundle bundle = new Bundle(); bundle.putString(KEY_PUBLIC_KEY, publicKey); bundle.putString(KEY_INFORMATION, information); bundle.putString(KEY_PUBLIC_URI, uri); Message message = mHandler.obtainMessage(MESSAGE_SCAN_WIFI_DPP_SUCCESS); message.setData(bundle); Loading Loading @@ -352,10 +350,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl return; } final Bundle bundle = msg.getData(); final String publicKey = bundle.getString(KEY_PUBLIC_KEY); final String information = bundle.getString(KEY_INFORMATION); final String uri = bundle.getString(KEY_PUBLIC_URI); mScanWifiDppSuccessListener.onScanWifiDppSuccess(publicKey, information); mScanWifiDppSuccessListener.onScanWifiDppSuccess(uri); break; case MESSAGE_SCAN_ZXING_WIFI_FORMAT_SUCCESS: Loading
src/com/android/settings/wifi/dpp/WifiDppUtils.java +8 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public class WifiDppUtils { /** The data corresponding to {@code WifiConfiguration} hiddenSSID */ public static final String EXTRA_WIFI_HIDDEN_SSID = "hiddenSsid"; /** The data corresponding to {@code WifiConfiguration} networkId */ public static final String EXTRA_WIFI_NETWORK_ID = "networkId"; /** @see WifiQrCode */ public static final String EXTRA_QR_CODE = "qrCode"; Loading Loading @@ -164,6 +167,11 @@ public class WifiDppUtils { if (!TextUtils.isEmpty(preSharedKey)) { intent.putExtra(EXTRA_WIFI_PRE_SHARED_KEY, preSharedKey); } if (wifiConfig.networkId == WifiConfiguration.INVALID_NETWORK_ID) { throw new IllegalArgumentException("Invalid network ID"); } else { intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfig.networkId); } return intent; } Loading