From c8cd5d383433ca1f1720fa6382fda2d6ee61ad5d Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Thu, 3 Jan 2019 18:36:27 +0800 Subject: [PATCH] Add more Wi-Fi DPP UI features. 1. Update strings and icons. 2. Add more UI features in WifiDppAddDeviceFragment & WifiDppChooseSavedWifiNetworkFragment. Bug: 118794978 Test: manual test Change-Id: I2bee3f66732a1083fb13c113695899272e98c23e --- res/layout/wifi_dialog.xml | 4 +-- res/layout/wifi_dpp_add_device_fragment.xml | 13 +++----- res/values/strings.xml | 20 +++++++++--- .../android/settings/wifi/WifiSettings.java | 2 +- .../wifi/dpp/WifiDppAddDeviceFragment.java | 31 +++++++++++++++++-- ...WifiDppChooseSavedWifiNetworkFragment.java | 24 +++++++++++++- .../wifi/dpp/WifiDppConfiguratorActivity.java | 1 - 7 files changed, 76 insertions(+), 19 deletions(-) diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml index 2a395b677c4..df676fc2a21 100644 --- a/res/layout/wifi_dialog.xml +++ b/res/layout/wifi_dialog.xml @@ -68,7 +68,7 @@ android:layout_centerVertical="true" android:layout_margin="5dp" android:background="@null" - android:src="@drawable/ic_qrcode_24dp" + android:src="@drawable/ic_scan_24dp" android:visibility="gone" android:contentDescription="@string/wifi_add_network" /> @@ -303,7 +303,7 @@ android:layout_centerVertical="true" android:layout_margin="5dp" android:background="@null" - android:src="@drawable/ic_qrcode_24dp" + android:src="@drawable/ic_scan_24dp" android:visibility="gone" android:contentDescription="@string/wifi_add_network" /> diff --git a/res/layout/wifi_dpp_add_device_fragment.xml b/res/layout/wifi_dpp_add_device_fragment.xml index 03add625733..5e70396ae40 100644 --- a/res/layout/wifi_dpp_add_device_fragment.xml +++ b/res/layout/wifi_dpp_add_device_fragment.xml @@ -24,22 +24,19 @@ - - - + android:layout_gravity="center" + android:layout_marginTop="8dp" + android:text="@string/wifi_dpp_choose_different_network"/> diff --git a/res/values/strings.xml b/res/values/strings.xml index a45be067fda..2597ece7533 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2077,13 +2077,13 @@ Privacy - Add a device to this network + Add a device - Center the device\u2019s QR code below to add device to \u201c%1$s\u201d + Center the QR code below to add the device to \u201c%1$s\u201d Scan QR code - Join \u201c%1$s\u201d by scanning a QR code + Center the QR code below to connect to \u201c%1$s\u201d Join Wi\u2011Fi by scanning a QR code @@ -2091,7 +2091,19 @@ Scan this QR code with another device to join \u201c%1$s\u201d - Could not detect valid QR code + Couldn\u2019t read QR code + + Choose network + + To connect your device, choose a network + + Add this device to \u201c%1$s\u201d? + + Wi\u2011Fi shared with device + + Add another device + + Choose different network Share with other device users diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 95e912db684..eddae067597 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -240,7 +240,7 @@ public class WifiSettings extends RestrictedSettingsFragment mAddPreference.setIcon(R.drawable.ic_menu_add); mAddPreference.setTitle(R.string.wifi_add_network); if (WifiDppUtils.isSharingNetworkEnabled(getContext())) { - mAddPreference.setButtonIcon(R.drawable.ic_qrcode_24dp); + mAddPreference.setButtonIcon(R.drawable.ic_scan_24dp); mAddPreference.setButtonOnClickListener((View v) -> { // Launch QR code scanner to join a network. getContext().startActivity( diff --git a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java index 90fb850a25d..12814f8ef01 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java +++ b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java @@ -16,6 +16,8 @@ package com.android.settings.wifi.dpp; +import android.app.ActionBar; +import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -33,7 +35,6 @@ import com.android.settings.R; * to the Wi-Fi network. */ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { - private ProgressBar mProgressBar; private ImageView mWifiApPictureView; private TextView mChooseDifferentNetwork; private Button mButtonLeft; @@ -44,6 +45,16 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR; } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + final ActionBar actionBar = getActivity().getActionBar(); + if (actionBar != null) { + actionBar.hide(); + } + } + @Override public final View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -55,10 +66,26 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - mProgressBar = view.findViewById(R.id.progress_bar); + final WifiNetworkConfig wifiNetworkConfig = ((WifiDppConfiguratorActivity) getActivity()) + .getWifiNetworkConfig(); + if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) { + throw new IllegalStateException("Invalid Wi-Fi network for configuring"); + } + mSummary.setText(getString(R.string.wifi_dpp_add_device_to_wifi, + wifiNetworkConfig.getSsid())); + mWifiApPictureView = view.findViewById(R.id.wifi_ap_picture_view); mChooseDifferentNetwork = view.findViewById(R.id.choose_different_network); mButtonLeft = view.findViewById(R.id.button_left); + mButtonLeft.setText(R.string.cancel); + mButtonLeft.setOnClickListener(v -> getFragmentManager().popBackStack()); + mButtonRight = view.findViewById(R.id.button_right); + mButtonRight.setText(R.string.wifi_dpp_share_wifi); + mButtonRight.setOnClickListener(v -> startWifiDppInitiator()); + } + + private void startWifiDppInitiator() { + //TODO(b/122331217): starts Wi-Fi DPP initiator handshake here } } diff --git a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java index a3e6db3953a..8037e2305f8 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java +++ b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java @@ -16,6 +16,8 @@ package com.android.settings.wifi.dpp; +import android.app.ActionBar; +import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -40,6 +42,16 @@ public class WifiDppChooseSavedWifiNetworkFragment extends WifiDppQrCodeBaseFrag return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR; } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + final ActionBar actionBar = getActivity().getActionBar(); + if (actionBar != null) { + actionBar.hide(); + } + } + @Override public final View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -51,8 +63,18 @@ public class WifiDppChooseSavedWifiNetworkFragment extends WifiDppQrCodeBaseFrag public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - mSavedWifiNetworkList = view.findViewById(R.id.saved_wifi_network_list); + mTitle.setText(R.string.wifi_dpp_choose_network); + mSummary.setText(R.string.wifi_dpp_choose_network_to_connect_device); + mButtonLeft = view.findViewById(R.id.button_left); + mButtonLeft.setText(R.string.cancel); + mButtonLeft.setOnClickListener(v -> { + Activity activity = getActivity(); + activity.setResult(Activity.RESULT_CANCELED); + activity.finish(); + }); + mButtonRight = view.findViewById(R.id.button_right); + mButtonRight.setVisibility(View.GONE); } } diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java index c34bfd314aa..9c65d1019bf 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java @@ -273,7 +273,6 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements public void onScanWifiDppSuccess(String publicKey, String information) { mPublicKey = publicKey; mInformation = information; - mWifiNetworkConfig = null; showAddDeviceFragment(/* addToBackStack */ true); }