Merge changes Ia96af86c,Ifbe2ac30 into rvc-dev

* changes:
  [Wi-Fi] Wi-Fi picker scrolls to top after a user clicked to connect
  [Wi-Fi] Fix Wi-Fi picker context menu 'Connect' button
This commit is contained in:
TreeHugger Robot
2020-03-31 15:01:09 +00:00
committed by Android (Google) Code Review
3 changed files with 92 additions and 9 deletions

View File

@@ -214,4 +214,8 @@ public class WifiDialog2 extends AlertDialog implements WifiConfigUiBase2,
public void setCancelButton(CharSequence text) {
setButton(BUTTON_NEGATIVE, text, this);
}
public WifiEntry getWifiEntry() {
return mWifiEntry;
}
}

View File

@@ -647,6 +647,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
setOffMessage();
setAdditionalSettingsSummaries();
setProgressBarVisible(false);
mClickedConnect = false;
break;
}
}
@@ -739,6 +740,11 @@ public class WifiSettings2 extends RestrictedSettingsFragment
pref.setOnGearClickListener(preference -> {
launchNetworkDetailsFragment(pref);
});
if (mClickedConnect) {
mClickedConnect = false;
scrollToPreference(mConnectedWifiEntryPreferenceCategory);
}
}
} else {
mConnectedWifiEntryPreferenceCategory.removeAll();
@@ -954,18 +960,30 @@ public class WifiSettings2 extends RestrictedSettingsFragment
@Override
public void onForget(WifiDialog2 dialog) {
forget(mDialogWifiEntry);
forget(dialog.getWifiEntry());
}
@Override
public void onSubmit(WifiDialog2 dialog) {
final int dialogMode = mDialog.getController().getMode();
final int dialogMode = dialog.getMode();
final WifiConfiguration config = dialog.getController().getConfig();
final WifiEntry wifiEntry = dialog.getWifiEntry();
if (dialogMode == WifiConfigUiBase2.MODE_MODIFY) {
mWifiManager.save(mDialogWifiEntry.getWifiConfiguration(), mSaveListener);
if (config == null) {
Toast.makeText(getContext(), R.string.wifi_failed_save_message,
Toast.LENGTH_SHORT).show();
} else {
mWifiManager.save(config, mSaveListener);
}
} else if (dialogMode == WifiConfigUiBase2.MODE_CONNECT
|| (dialogMode == WifiConfigUiBase2.MODE_VIEW && mDialogWifiEntry.canConnect())) {
connect(mDialogWifiEntry, false /* editIfNoConfig */, false /* fullScreenEdit*/);
|| (dialogMode == WifiConfigUiBase2.MODE_VIEW && wifiEntry.canConnect())) {
if (config == null) {
connect(wifiEntry, false /* editIfNoConfig */,
false /* fullScreenEdit*/);
} else {
mWifiManager.connect(config, new WifiConnectActionListener());
}
}
}
@@ -981,7 +999,8 @@ public class WifiSettings2 extends RestrictedSettingsFragment
wifiEntry.forget(null /* callback */);
}
private void connect(WifiEntry wifiEntry, boolean editIfNoConfig, boolean fullScreenEdit) {
@VisibleForTesting
void connect(WifiEntry wifiEntry, boolean editIfNoConfig, boolean fullScreenEdit) {
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_WIFI_CONNECT,
wifiEntry.isSaved());
@@ -994,7 +1013,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
private class WifiConnectActionListener implements WifiManager.ActionListener {
@Override
public void onSuccess() {
// Do nothing.
mClickedConnect = true;
}
@Override
@@ -1028,13 +1047,15 @@ public class WifiSettings2 extends RestrictedSettingsFragment
return;
}
if (status == ConnectCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
if (status == ConnectCallback.CONNECT_STATUS_SUCCESS) {
mClickedConnect = true;
} else if (status == ConnectCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
if (mEditIfNoConfig) {
// Edit an unsaved secure Wi-Fi network.
if (mFullScreenEdit) {
launchConfigNewNetworkFragment(mConnectWifiEntry);
} else {
showDialog(mConnectWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
showDialog(mConnectWifiEntry, WifiConfigUiBase2.MODE_CONNECT);
}
}
} else if (status == CONNECT_STATUS_FAILURE_UNKNOWN) {