Merge changes Ia96af86c,Ifbe2ac30 into rvc-dev am: 4b45334288
Change-Id: I776a3e7e0418231db4e8ef72e3c1899228839941
This commit is contained in:
@@ -214,4 +214,8 @@ public class WifiDialog2 extends AlertDialog implements WifiConfigUiBase2,
|
|||||||
public void setCancelButton(CharSequence text) {
|
public void setCancelButton(CharSequence text) {
|
||||||
setButton(BUTTON_NEGATIVE, text, this);
|
setButton(BUTTON_NEGATIVE, text, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WifiEntry getWifiEntry() {
|
||||||
|
return mWifiEntry;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -647,6 +647,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
setOffMessage();
|
setOffMessage();
|
||||||
setAdditionalSettingsSummaries();
|
setAdditionalSettingsSummaries();
|
||||||
setProgressBarVisible(false);
|
setProgressBarVisible(false);
|
||||||
|
mClickedConnect = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -739,6 +740,11 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
pref.setOnGearClickListener(preference -> {
|
pref.setOnGearClickListener(preference -> {
|
||||||
launchNetworkDetailsFragment(pref);
|
launchNetworkDetailsFragment(pref);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (mClickedConnect) {
|
||||||
|
mClickedConnect = false;
|
||||||
|
scrollToPreference(mConnectedWifiEntryPreferenceCategory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mConnectedWifiEntryPreferenceCategory.removeAll();
|
mConnectedWifiEntryPreferenceCategory.removeAll();
|
||||||
@@ -954,18 +960,30 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onForget(WifiDialog2 dialog) {
|
public void onForget(WifiDialog2 dialog) {
|
||||||
forget(mDialogWifiEntry);
|
forget(dialog.getWifiEntry());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubmit(WifiDialog2 dialog) {
|
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) {
|
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
|
} else if (dialogMode == WifiConfigUiBase2.MODE_CONNECT
|
||||||
|| (dialogMode == WifiConfigUiBase2.MODE_VIEW && mDialogWifiEntry.canConnect())) {
|
|| (dialogMode == WifiConfigUiBase2.MODE_VIEW && wifiEntry.canConnect())) {
|
||||||
connect(mDialogWifiEntry, false /* editIfNoConfig */, false /* fullScreenEdit*/);
|
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 */);
|
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,
|
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_WIFI_CONNECT,
|
||||||
wifiEntry.isSaved());
|
wifiEntry.isSaved());
|
||||||
|
|
||||||
@@ -994,7 +1013,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
private class WifiConnectActionListener implements WifiManager.ActionListener {
|
private class WifiConnectActionListener implements WifiManager.ActionListener {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
// Do nothing.
|
mClickedConnect = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1028,13 +1047,15 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
return;
|
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) {
|
if (mEditIfNoConfig) {
|
||||||
// Edit an unsaved secure Wi-Fi network.
|
// Edit an unsaved secure Wi-Fi network.
|
||||||
if (mFullScreenEdit) {
|
if (mFullScreenEdit) {
|
||||||
launchConfigNewNetworkFragment(mConnectWifiEntry);
|
launchConfigNewNetworkFragment(mConnectWifiEntry);
|
||||||
} else {
|
} else {
|
||||||
showDialog(mConnectWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
|
showDialog(mConnectWifiEntry, WifiConfigUiBase2.MODE_CONNECT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (status == CONNECT_STATUS_FAILURE_UNKNOWN) {
|
} else if (status == CONNECT_STATUS_FAILURE_UNKNOWN) {
|
||||||
|
@@ -15,6 +15,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
|
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_CONNECT;
|
||||||
|
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_MODIFY;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
@@ -34,6 +37,7 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
@@ -64,6 +68,7 @@ import org.mockito.MockitoAnnotations;
|
|||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
import org.robolectric.shadows.ShadowToast;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class WifiSettings2Test {
|
public class WifiSettings2Test {
|
||||||
@@ -303,4 +308,57 @@ public class WifiSettings2Test {
|
|||||||
|
|
||||||
mWifiSettings2.onNumSavedSubscriptionsChanged();
|
mWifiSettings2.onNumSavedSubscriptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onSubmit_modeModifyNoConfig_toastErrorMessage() {
|
||||||
|
WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, null /* config */);
|
||||||
|
|
||||||
|
mWifiSettings2.onSubmit(dialog);
|
||||||
|
|
||||||
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
||||||
|
mContext.getString(R.string.wifi_failed_save_message));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onSubmit_modeModifyHasConfig_saveWifiManager() {
|
||||||
|
final WifiConfiguration config = mock(WifiConfiguration.class);
|
||||||
|
WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, config);
|
||||||
|
|
||||||
|
mWifiSettings2.onSubmit(dialog);
|
||||||
|
|
||||||
|
verify(mWifiManager).save(eq(config), any());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onSubmit_modeConnectNoConfig_connectWifiEntry() {
|
||||||
|
WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, null /* config */);
|
||||||
|
final WifiEntry wifiEntry = dialog.getWifiEntry();
|
||||||
|
|
||||||
|
mWifiSettings2.onAttach(mContext);
|
||||||
|
mWifiSettings2.onSubmit(dialog);
|
||||||
|
|
||||||
|
verify(mWifiSettings2).connect(wifiEntry, false /* editIfNoConfig */,
|
||||||
|
false /* fullScreenEdit*/);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onSubmit_modeConnectHasConfig_connectWifiManager() {
|
||||||
|
final WifiConfiguration config = mock(WifiConfiguration.class);
|
||||||
|
WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, config);
|
||||||
|
|
||||||
|
mWifiSettings2.onSubmit(dialog);
|
||||||
|
|
||||||
|
verify(mWifiManager).connect(eq(config), any(WifiManager.ActionListener.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
private WifiDialog2 createWifiDialog2(int mode, WifiConfiguration config) {
|
||||||
|
final WifiEntry wifiEntry = mock(WifiEntry.class);
|
||||||
|
when(wifiEntry.canConnect()).thenReturn(true);
|
||||||
|
final WifiConfigController2 controller = mock(WifiConfigController2.class);
|
||||||
|
when(controller.getConfig()).thenReturn(config);
|
||||||
|
final WifiDialog2 wifiDialog2 = spy(WifiDialog2.createModal(mContext, null /* listener */,
|
||||||
|
wifiEntry, mode));
|
||||||
|
when(wifiDialog2.getController()).thenReturn(controller);
|
||||||
|
return wifiDialog2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user