From f07f79988d7785fd1a6906257698c38c9c6936e4 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Thu, 19 Dec 2019 15:57:38 -0800 Subject: [PATCH] [Wi-Fi] Sync Connect button UI with WifiEntry connected state The Connect button in the Network Details Page should be synced to the connected state of WifiEntry and should toggle between not visible, "Connect", and "Connecting..." accordingly. Bug: 70983952 Test: manual - connect to in-range saved network through Network Details page Change-Id: Id34a840dd81fb99c8e64ad219b0b7af73946c1bf --- .../WifiDetailPreferenceController2.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index f94ca9d3751..842b74c6acd 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -588,16 +588,24 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle private void refreshButtons() { boolean canForgetNetwork = mWifiEntry.canForget(); boolean canSignIntoNetwork = canSignIntoNetwork(); - boolean canConnectNetwork = mWifiEntry.canConnect(); + boolean showConnectButton = mWifiEntry.canConnect() + || mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTING; boolean canShareNetwork = canShareNetwork(); mButtonsPref.setButton1Visible(canForgetNetwork); mButtonsPref.setButton2Visible(canSignIntoNetwork); - mButtonsPref.setButton3Visible(canConnectNetwork); + mButtonsPref.setButton3Visible(showConnectButton); + if (showConnectButton) { + if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTING) { + mButtonsPref.setButton3Text(R.string.wifi_connecting).setButton3Enabled(false); + } else { + mButtonsPref.setButton3Text(R.string.wifi_connect).setButton3Enabled(true); + } + } mButtonsPref.setButton4Visible(canShareNetwork); mButtonsPref.setVisible(canForgetNetwork || canSignIntoNetwork - || canConnectNetwork + || showConnectButton || canShareNetwork); } @@ -804,8 +812,6 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle @VisibleForTesting void connectNetwork() { - // TODO(b/143326832): What to do with WifiManager#isWifiEnabled() false case? - mButtonsPref.setButton3Text(R.string.wifi_connecting).setButton3Enabled(false); mWifiEntry.connect(); } @@ -845,8 +851,6 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle Toast.makeText(mContext, mContext.getString(R.string.wifi_connected_to_message, mWifiEntry.getTitle()), Toast.LENGTH_SHORT).show(); - updateNetworkInfo(); - refreshPage(); } else if (mWifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) { Toast.makeText(mContext, R.string.wifi_not_in_range_message,