Launch Wi-Fi details for connected Wi-Fi network
- Since the posspoint Wi-Fi entry can be connected even if the entry is not saved - Allow to launch Wi-Fi details when the entry is connected but not saved Bug: 363151879 Flag: EXEMPT bugfix Test: Manual testing atest -c NetworkProviderSettingsTest Change-Id: I004b8a33bdd07cb92e167039949919f255c5303e
This commit is contained in:
@@ -19,6 +19,8 @@ package com.android.settings.network;
|
||||
import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
|
||||
import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
|
||||
|
||||
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
@@ -669,7 +671,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
@VisibleForTesting
|
||||
void addModifyMenuIfSuitable(ContextMenu menu, WifiEntry wifiEntry) {
|
||||
if (mIsAdmin && wifiEntry.isSaved()
|
||||
&& wifiEntry.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED) {
|
||||
&& wifiEntry.getConnectedState() != CONNECTED_STATE_CONNECTED) {
|
||||
menu.add(Menu.NONE, MENU_ID_MODIFY, 0 /* order */, R.string.wifi_modify);
|
||||
}
|
||||
}
|
||||
@@ -765,7 +767,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
|
||||
private void showDialog(WifiEntry wifiEntry, int dialogMode) {
|
||||
if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
|
||||
&& wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
|
||||
&& wifiEntry.getConnectedState() == CONNECTED_STATE_CONNECTED) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(),
|
||||
RestrictedLockUtilsInternal.getDeviceOwner(getActivity()));
|
||||
return;
|
||||
@@ -1068,8 +1070,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
@VisibleForTesting
|
||||
void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
|
||||
final WifiEntry wifiEntry = pref.getWifiEntry();
|
||||
if (!wifiEntry.isSaved()) {
|
||||
Log.w(TAG, "launchNetworkDetailsFragment: Don't launch because WifiEntry isn't saved!");
|
||||
if (!wifiEntry.isSaved() && wifiEntry.getConnectedState() != CONNECTED_STATE_CONNECTED) {
|
||||
Log.w(TAG, "Don't launch Wi-Fi details because WifiEntry is not saved or connected!");
|
||||
return;
|
||||
}
|
||||
final Context context = requireContext();
|
||||
|
@@ -22,6 +22,7 @@ import static com.android.settings.network.NetworkProviderSettings.MENU_ID_MODIF
|
||||
import static com.android.settings.network.NetworkProviderSettings.MENU_ID_SHARE;
|
||||
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_CONNECT;
|
||||
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_MODIFY;
|
||||
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED;
|
||||
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_DISCONNECTED;
|
||||
import static com.android.wifitrackerlib.WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL;
|
||||
|
||||
@@ -343,7 +344,7 @@ public class NetworkProviderSettingsTest {
|
||||
when(mWifiEntry.canDisconnect()).thenReturn(true);
|
||||
when(mWifiEntry.canForget()).thenReturn(true);
|
||||
when(mWifiEntry.isSaved()).thenReturn(true);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_CONNECTED);
|
||||
|
||||
final LongPressWifiEntryPreference connectedWifiEntryPreference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
@@ -366,7 +367,7 @@ public class NetworkProviderSettingsTest {
|
||||
when(mWifiEntry.canShare()).thenReturn(true);
|
||||
when(mWifiEntry.canForget()).thenReturn(true);
|
||||
when(mWifiEntry.isSaved()).thenReturn(true);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_CONNECTED);
|
||||
|
||||
final LongPressWifiEntryPreference connectedWifiEntryPreference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
@@ -388,7 +389,7 @@ public class NetworkProviderSettingsTest {
|
||||
when(mWifiEntry.canShare()).thenReturn(false);
|
||||
when(mWifiEntry.canForget()).thenReturn(true);
|
||||
when(mWifiEntry.isSaved()).thenReturn(true);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_CONNECTED);
|
||||
|
||||
final LongPressWifiEntryPreference connectedWifiEntryPreference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
@@ -872,14 +873,54 @@ public class NetworkProviderSettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchNetworkDetailsFragment_wifiEntryIsNotSaved_ignoreWifiEntry() {
|
||||
public void launchNetworkDetailsFragment_entryDisconnectedNotSaved_ignore() {
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
|
||||
when(mWifiEntry.isSaved()).thenReturn(false);
|
||||
LongPressWifiEntryPreference preference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
|
||||
mNetworkProviderSettings.launchNetworkDetailsFragment(preference);
|
||||
|
||||
verify(mWifiEntry, never()).getKey();
|
||||
verify(mContext, never()).startActivity(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchNetworkDetailsFragment_entryConnectedNotSaved_launch() {
|
||||
doNothing().when(mContext).startActivity(any());
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry.isSaved()).thenReturn(false);
|
||||
LongPressWifiEntryPreference preference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
|
||||
mNetworkProviderSettings.launchNetworkDetailsFragment(preference);
|
||||
|
||||
verify(mContext).startActivity(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchNetworkDetailsFragment_entryDisconnectedSaved_launch() {
|
||||
doNothing().when(mContext).startActivity(any());
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
|
||||
when(mWifiEntry.isSaved()).thenReturn(true);
|
||||
LongPressWifiEntryPreference preference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
|
||||
mNetworkProviderSettings.launchNetworkDetailsFragment(preference);
|
||||
|
||||
verify(mContext).startActivity(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchNetworkDetailsFragment_entryConnectedSaved_launch() {
|
||||
doNothing().when(mContext).startActivity(any());
|
||||
when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_CONNECTED);
|
||||
when(mWifiEntry.isSaved()).thenReturn(true);
|
||||
LongPressWifiEntryPreference preference =
|
||||
mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
|
||||
|
||||
mNetworkProviderSettings.launchNetworkDetailsFragment(preference);
|
||||
|
||||
verify(mContext).startActivity(any());
|
||||
}
|
||||
|
||||
@Implements(PreferenceFragmentCompat.class)
|
||||
|
Reference in New Issue
Block a user