Loading AndroidManifest.xml +8 −1 Original line number Diff line number Diff line Loading @@ -3036,7 +3036,14 @@ </provider> <activity android:name=".wifi.dpp.WifiDppConfiguratorActivity"/> android:name=".wifi.dpp.WifiDppConfiguratorActivity"> <intent-filter> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER"/> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR"/> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <activity android:name=".homepage.contextualcards.ContextualCardFeedbackDialog" android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.Alert" /> Loading src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +70 −40 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.wifi.dpp; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; Loading @@ -30,32 +31,22 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedActivity; import com.android.settings.R; public class WifiDppConfiguratorActivity extends InstrumentedActivity { public class WifiDppConfiguratorActivity extends InstrumentedActivity implements WifiNetworkConfig.Retriever { private static final String TAG = "WifiDppConfiguratorActivity"; public static final String ACTION_CONFIGURATOR_QR_CODE_SCANNER = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER"; public static final String ACTION_CONFIGURATOR_QR_CODE_GENERATOR = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR"; public static final String ACTION_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK = "android.settings.WIFI_DPP_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK"; private FragmentManager mFragmentManager; private FragmentTransaction mFragmentTransaction; public static final String EXTRA_LAUNCH_MODE = "com.android.settings.wifi.dpp.EXTRA_LAUNCH_MODE"; public static final String EXTRA_SSID = "com.android.settings.wifi.dpp.EXTRA_SSID"; public enum LaunchMode { LAUNCH_MODE_QR_CODE_SCANNER(1), LAUNCH_MODE_QR_CODE_GENERATOR(2), LAUNCH_MODE_CHOOSE_SAVED_WIFI_NETWORK(3), LAUNCH_MODE_NOT_DEFINED(-1); private int mMode; LaunchMode(int mode) { this.mMode = mode; } public int getMode() { return mMode; } } /** The Wi-Fi network which will be configured */ private WifiNetworkConfig mWifiNetworkConfig; @Override public int getMetricsCategory() { Loading @@ -71,37 +62,59 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { mFragmentManager = getSupportFragmentManager(); mFragmentTransaction = getSupportFragmentManager().beginTransaction(); final int launchMode = getIntent().getIntExtra(EXTRA_LAUNCH_MODE, LaunchMode.LAUNCH_MODE_NOT_DEFINED.getMode()); if (launchMode == LaunchMode.LAUNCH_MODE_QR_CODE_SCANNER.getMode()) { addQrCodeScannerFragment(); } else if (launchMode == LaunchMode.LAUNCH_MODE_QR_CODE_GENERATOR.getMode()) { addQrCodeGeneratorFragment(); } else if (launchMode == LaunchMode.LAUNCH_MODE_CHOOSE_SAVED_WIFI_NETWORK.getMode()) { addChooseSavedWifiNetworkFragment(); Intent intent = getIntent(); boolean cancelActivity = false; WifiNetworkConfig config; switch (intent.getAction()) { case ACTION_CONFIGURATOR_QR_CODE_SCANNER: config = WifiNetworkConfig.getValidConfigOrNull(intent); if (config == null) { cancelActivity = true; } else { mWifiNetworkConfig = config; addQrCodeScannerFragment(/* addToBackStack= */ false); } break; case ACTION_CONFIGURATOR_QR_CODE_GENERATOR: config = WifiNetworkConfig.getValidConfigOrNull(intent); if (config == null) { cancelActivity = true; } else { Log.e(TAG, "Launch with an invalid mode extra"); mWifiNetworkConfig = config; addQrCodeGeneratorFragment(); } break; case ACTION_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK: addChooseSavedWifiNetworkFragment(/* addToBackStack */ false); break; default: cancelActivity = true; Log.e(TAG, "Launch with an invalid action"); } if (cancelActivity) { setResult(Activity.RESULT_CANCELED); finish(); } } private void addQrCodeScannerFragment() { final WifiDppQrCodeScannerFragment fragment = new WifiDppQrCodeScannerFragment(); private void addQrCodeScannerFragment(boolean addToBackStack) { WifiDppQrCodeScannerFragment fragment = new WifiDppQrCodeScannerFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); if (addToBackStack) { mFragmentTransaction.addToBackStack(/* name */ null); } mFragmentTransaction.commit(); } private void addQrCodeGeneratorFragment() { final WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment(); WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); mFragmentTransaction.addToBackStack(/* name */ null); mFragmentTransaction.commit(); } private void addChooseSavedWifiNetworkFragment() { final ActionBar action = getActionBar(); private void addChooseSavedWifiNetworkFragment(boolean addToBackStack) { ActionBar action = getActionBar(); if (action != null) { action.hide(); } Loading @@ -109,13 +122,15 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { WifiDppChooseSavedWifiNetworkFragment fragment = new WifiDppChooseSavedWifiNetworkFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); if (addToBackStack) { mFragmentTransaction.addToBackStack(/* name */ null); } mFragmentTransaction.commit(); } @Override protected void onStop() { final Fragment fragment = mFragmentManager.findFragmentById(R.id.fragment_container); Fragment fragment = mFragmentManager.findFragmentById(R.id.fragment_container); if (fragment != null) { // Remove it to prevent stacking multiple fragments after screen rotated. mFragmentManager.beginTransaction().remove(fragment).commit(); Loading @@ -123,4 +138,19 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { super.onStop(); } @Override public WifiNetworkConfig getWifiNetworkConfig() { return mWifiNetworkConfig; } @Override public boolean setWifiNetworkConfig(WifiNetworkConfig config) { if(!WifiNetworkConfig.isValidConfig(config)) { return false; } else { mWifiNetworkConfig = new WifiNetworkConfig(config); return true; } } } src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.widget.TextView; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedFragment; import com.android.settings.wifi.qrcode.QrDecorateView; import com.android.settings.R; /** Loading @@ -46,7 +47,7 @@ public abstract class WifiDppQrCodeBaseFragment extends InstrumentedFragment { private TextView mDescription; private SurfaceView mPreviewView; //optional, for WifiDppQrCodeScannerFragment private ImageView mDecorateViiew; //optional, for WifiDppQrCodeScannerFragment private QrDecorateView mDecorateViiew; //optional, for WifiDppQrCodeScannerFragment private TextView mErrorMessage; //optional, for WifiDppQrCodeScannerFragment private ImageView mBarcodeView; //optional, for WifiDppQrCodeGeneratorFragment Loading src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +5 −8 Original line number Diff line number Diff line Loading @@ -49,15 +49,12 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl setTitle(getString(R.string.wifi_dpp_add_device_to_network)); String ssid = null; final Intent intent = getActivity().getIntent(); if (intent != null) { ssid = intent.getStringExtra(WifiDppConfiguratorActivity.EXTRA_SSID); WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity()) .getWifiNetworkConfig(); if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) { throw new IllegalArgumentException("Invalid Wi-Fi network for configuring"); } if (TextUtils.isEmpty(ssid)) { throw new IllegalArgumentException("Invalid SSID"); } setDescription(getString(R.string.wifi_dpp_center_qr_code, ssid)); setDescription(getString(R.string.wifi_dpp_center_qr_code, wifiNetworkConfig.getSsid())); hideRightButton(); Loading src/com/android/settings/wifi/dpp/WifiDppUtils.java 0 → 100644 +57 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.wifi.dpp; import android.content.Intent; /** * Here are the items shared by both WifiDppConfiguratorActivity & WifiDppEnrolleeActivity */ public class WifiDppUtils { /** The data is from {@code com.android.settingslib.wifi.AccessPoint.securityToString} */ public static final String EXTRA_WIFI_SECURITY = "security"; /** The data corresponding to {@code WifiConfiguration} SSID */ public static final String EXTRA_WIFI_SSID = "ssid"; /** The data corresponding to {@code WifiConfiguration} preSharedKey */ public static final String EXTRA_WIFI_PRE_SHARED_KEY = "preSharedKey"; /** The data corresponding to {@code WifiConfiguration} hiddenSSID */ public static final String EXTRA_WIFI_HIDDEN_SSID = "hiddenSsid"; /** * Acceptable QR code string may be a standard W-Fi DPP bootstrapping information or the Wi-Fi * Network config format described in * https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11 * * Wi-Fi Network config format example: * * WIFI:T:WPA;S:mynetwork;P:mypass;; * * parameter Example Description * T WPA Authentication type; can be WEP or WPA, or 'nopass' for no password. Or, * omit for no password. * S mynetwork Network SSID. Required. Enclose in double quotes if it is an ASCII name, * but could be interpreted as hex (i.e. "ABCD") * P mypass Password, ignored if T is "nopass" (in which case it may be omitted). * Enclose in double quotes if it is an ASCII name, but could be interpreted as * hex (i.e. "ABCD") * H true Optional. True if the network SSID is hidden. */ public static final String EXTRA_QR_CODE = "qrCode"; } Loading
AndroidManifest.xml +8 −1 Original line number Diff line number Diff line Loading @@ -3036,7 +3036,14 @@ </provider> <activity android:name=".wifi.dpp.WifiDppConfiguratorActivity"/> android:name=".wifi.dpp.WifiDppConfiguratorActivity"> <intent-filter> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER"/> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR"/> <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <activity android:name=".homepage.contextualcards.ContextualCardFeedbackDialog" android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.Alert" /> Loading
src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +70 −40 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.wifi.dpp; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; Loading @@ -30,32 +31,22 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedActivity; import com.android.settings.R; public class WifiDppConfiguratorActivity extends InstrumentedActivity { public class WifiDppConfiguratorActivity extends InstrumentedActivity implements WifiNetworkConfig.Retriever { private static final String TAG = "WifiDppConfiguratorActivity"; public static final String ACTION_CONFIGURATOR_QR_CODE_SCANNER = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER"; public static final String ACTION_CONFIGURATOR_QR_CODE_GENERATOR = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR"; public static final String ACTION_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK = "android.settings.WIFI_DPP_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK"; private FragmentManager mFragmentManager; private FragmentTransaction mFragmentTransaction; public static final String EXTRA_LAUNCH_MODE = "com.android.settings.wifi.dpp.EXTRA_LAUNCH_MODE"; public static final String EXTRA_SSID = "com.android.settings.wifi.dpp.EXTRA_SSID"; public enum LaunchMode { LAUNCH_MODE_QR_CODE_SCANNER(1), LAUNCH_MODE_QR_CODE_GENERATOR(2), LAUNCH_MODE_CHOOSE_SAVED_WIFI_NETWORK(3), LAUNCH_MODE_NOT_DEFINED(-1); private int mMode; LaunchMode(int mode) { this.mMode = mode; } public int getMode() { return mMode; } } /** The Wi-Fi network which will be configured */ private WifiNetworkConfig mWifiNetworkConfig; @Override public int getMetricsCategory() { Loading @@ -71,37 +62,59 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { mFragmentManager = getSupportFragmentManager(); mFragmentTransaction = getSupportFragmentManager().beginTransaction(); final int launchMode = getIntent().getIntExtra(EXTRA_LAUNCH_MODE, LaunchMode.LAUNCH_MODE_NOT_DEFINED.getMode()); if (launchMode == LaunchMode.LAUNCH_MODE_QR_CODE_SCANNER.getMode()) { addQrCodeScannerFragment(); } else if (launchMode == LaunchMode.LAUNCH_MODE_QR_CODE_GENERATOR.getMode()) { addQrCodeGeneratorFragment(); } else if (launchMode == LaunchMode.LAUNCH_MODE_CHOOSE_SAVED_WIFI_NETWORK.getMode()) { addChooseSavedWifiNetworkFragment(); Intent intent = getIntent(); boolean cancelActivity = false; WifiNetworkConfig config; switch (intent.getAction()) { case ACTION_CONFIGURATOR_QR_CODE_SCANNER: config = WifiNetworkConfig.getValidConfigOrNull(intent); if (config == null) { cancelActivity = true; } else { mWifiNetworkConfig = config; addQrCodeScannerFragment(/* addToBackStack= */ false); } break; case ACTION_CONFIGURATOR_QR_CODE_GENERATOR: config = WifiNetworkConfig.getValidConfigOrNull(intent); if (config == null) { cancelActivity = true; } else { Log.e(TAG, "Launch with an invalid mode extra"); mWifiNetworkConfig = config; addQrCodeGeneratorFragment(); } break; case ACTION_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK: addChooseSavedWifiNetworkFragment(/* addToBackStack */ false); break; default: cancelActivity = true; Log.e(TAG, "Launch with an invalid action"); } if (cancelActivity) { setResult(Activity.RESULT_CANCELED); finish(); } } private void addQrCodeScannerFragment() { final WifiDppQrCodeScannerFragment fragment = new WifiDppQrCodeScannerFragment(); private void addQrCodeScannerFragment(boolean addToBackStack) { WifiDppQrCodeScannerFragment fragment = new WifiDppQrCodeScannerFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); if (addToBackStack) { mFragmentTransaction.addToBackStack(/* name */ null); } mFragmentTransaction.commit(); } private void addQrCodeGeneratorFragment() { final WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment(); WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); mFragmentTransaction.addToBackStack(/* name */ null); mFragmentTransaction.commit(); } private void addChooseSavedWifiNetworkFragment() { final ActionBar action = getActionBar(); private void addChooseSavedWifiNetworkFragment(boolean addToBackStack) { ActionBar action = getActionBar(); if (action != null) { action.hide(); } Loading @@ -109,13 +122,15 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { WifiDppChooseSavedWifiNetworkFragment fragment = new WifiDppChooseSavedWifiNetworkFragment(); mFragmentTransaction.add(R.id.fragment_container, fragment); if (addToBackStack) { mFragmentTransaction.addToBackStack(/* name */ null); } mFragmentTransaction.commit(); } @Override protected void onStop() { final Fragment fragment = mFragmentManager.findFragmentById(R.id.fragment_container); Fragment fragment = mFragmentManager.findFragmentById(R.id.fragment_container); if (fragment != null) { // Remove it to prevent stacking multiple fragments after screen rotated. mFragmentManager.beginTransaction().remove(fragment).commit(); Loading @@ -123,4 +138,19 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity { super.onStop(); } @Override public WifiNetworkConfig getWifiNetworkConfig() { return mWifiNetworkConfig; } @Override public boolean setWifiNetworkConfig(WifiNetworkConfig config) { if(!WifiNetworkConfig.isValidConfig(config)) { return false; } else { mWifiNetworkConfig = new WifiNetworkConfig(config); return true; } } }
src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.widget.TextView; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.InstrumentedFragment; import com.android.settings.wifi.qrcode.QrDecorateView; import com.android.settings.R; /** Loading @@ -46,7 +47,7 @@ public abstract class WifiDppQrCodeBaseFragment extends InstrumentedFragment { private TextView mDescription; private SurfaceView mPreviewView; //optional, for WifiDppQrCodeScannerFragment private ImageView mDecorateViiew; //optional, for WifiDppQrCodeScannerFragment private QrDecorateView mDecorateViiew; //optional, for WifiDppQrCodeScannerFragment private TextView mErrorMessage; //optional, for WifiDppQrCodeScannerFragment private ImageView mBarcodeView; //optional, for WifiDppQrCodeGeneratorFragment Loading
src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +5 −8 Original line number Diff line number Diff line Loading @@ -49,15 +49,12 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl setTitle(getString(R.string.wifi_dpp_add_device_to_network)); String ssid = null; final Intent intent = getActivity().getIntent(); if (intent != null) { ssid = intent.getStringExtra(WifiDppConfiguratorActivity.EXTRA_SSID); WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity()) .getWifiNetworkConfig(); if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) { throw new IllegalArgumentException("Invalid Wi-Fi network for configuring"); } if (TextUtils.isEmpty(ssid)) { throw new IllegalArgumentException("Invalid SSID"); } setDescription(getString(R.string.wifi_dpp_center_qr_code, ssid)); setDescription(getString(R.string.wifi_dpp_center_qr_code, wifiNetworkConfig.getSsid())); hideRightButton(); Loading
src/com/android/settings/wifi/dpp/WifiDppUtils.java 0 → 100644 +57 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.wifi.dpp; import android.content.Intent; /** * Here are the items shared by both WifiDppConfiguratorActivity & WifiDppEnrolleeActivity */ public class WifiDppUtils { /** The data is from {@code com.android.settingslib.wifi.AccessPoint.securityToString} */ public static final String EXTRA_WIFI_SECURITY = "security"; /** The data corresponding to {@code WifiConfiguration} SSID */ public static final String EXTRA_WIFI_SSID = "ssid"; /** The data corresponding to {@code WifiConfiguration} preSharedKey */ public static final String EXTRA_WIFI_PRE_SHARED_KEY = "preSharedKey"; /** The data corresponding to {@code WifiConfiguration} hiddenSSID */ public static final String EXTRA_WIFI_HIDDEN_SSID = "hiddenSsid"; /** * Acceptable QR code string may be a standard W-Fi DPP bootstrapping information or the Wi-Fi * Network config format described in * https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11 * * Wi-Fi Network config format example: * * WIFI:T:WPA;S:mynetwork;P:mypass;; * * parameter Example Description * T WPA Authentication type; can be WEP or WPA, or 'nopass' for no password. Or, * omit for no password. * S mynetwork Network SSID. Required. Enclose in double quotes if it is an ASCII name, * but could be interpreted as hex (i.e. "ABCD") * P mypass Password, ignored if T is "nopass" (in which case it may be omitted). * Enclose in double quotes if it is an ASCII name, but could be interpreted as * hex (i.e. "ABCD") * H true Optional. True if the network SSID is hidden. */ public static final String EXTRA_QR_CODE = "qrCode"; }