Add a broadcast receiver to WifiDetailsPreferenceController.
This allows the WifiNetworkDetailsFragment to update dynamically based on network and connection changes. Bug: b/36278407 Test: make RunSettingsRoboTests Change-Id: I388cf9842a144e45b68f2d173c7b29f347226b78
This commit is contained in:
@@ -15,7 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.wifi.details;
|
package com.android.settings.wifi.details;
|
||||||
|
|
||||||
|
import android.app.Fragment;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.IpPrefix;
|
import android.net.IpPrefix;
|
||||||
@@ -39,6 +43,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
import com.android.settings.core.lifecycle.Lifecycle;
|
import com.android.settings.core.lifecycle.Lifecycle;
|
||||||
import com.android.settings.core.lifecycle.LifecycleObserver;
|
import com.android.settings.core.lifecycle.LifecycleObserver;
|
||||||
|
import com.android.settings.core.lifecycle.events.OnPause;
|
||||||
import com.android.settings.core.lifecycle.events.OnResume;
|
import com.android.settings.core.lifecycle.events.OnResume;
|
||||||
import com.android.settings.wifi.WifiDetailPreference;
|
import com.android.settings.wifi.WifiDetailPreference;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
@@ -55,8 +60,9 @@ import java.util.StringJoiner;
|
|||||||
* {@link WifiNetworkDetailsFragment}.
|
* {@link WifiNetworkDetailsFragment}.
|
||||||
*/
|
*/
|
||||||
public class WifiDetailPreferenceController extends PreferenceController implements
|
public class WifiDetailPreferenceController extends PreferenceController implements
|
||||||
LifecycleObserver, OnResume {
|
LifecycleObserver, OnPause, OnResume {
|
||||||
private static final String TAG = "WifiDetailsPrefCtrl";
|
private static final String TAG = "WifiDetailsPrefCtrl";
|
||||||
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String KEY_CONNECTION_DETAIL_PREF = "connection_detail";
|
static final String KEY_CONNECTION_DETAIL_PREF = "connection_detail";
|
||||||
@@ -82,14 +88,15 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
|
|||||||
static final String KEY_IPV6_ADDRESS_CATEGORY = "ipv6_details_category";
|
static final String KEY_IPV6_ADDRESS_CATEGORY = "ipv6_details_category";
|
||||||
|
|
||||||
private AccessPoint mAccessPoint;
|
private AccessPoint mAccessPoint;
|
||||||
|
private final ConnectivityManager mConnectivityManager;
|
||||||
|
private final Fragment mFragment;
|
||||||
private NetworkInfo mNetworkInfo;
|
private NetworkInfo mNetworkInfo;
|
||||||
private Context mPrefContext;
|
private Context mPrefContext;
|
||||||
private int mRssi;
|
private int mRssi;
|
||||||
private String[] mSignalStr;
|
private String[] mSignalStr;
|
||||||
private WifiConfiguration mWifiConfig;
|
private final WifiConfiguration mWifiConfig;
|
||||||
private WifiInfo mWifiInfo;
|
private WifiInfo mWifiInfo;
|
||||||
private final WifiManager mWifiManager;
|
private final WifiManager mWifiManager;
|
||||||
private final ConnectivityManager mConnectivityManager;
|
|
||||||
|
|
||||||
// Preferences - in order of appearance
|
// Preferences - in order of appearance
|
||||||
private Preference mConnectionDetailPref;
|
private Preference mConnectionDetailPref;
|
||||||
@@ -104,18 +111,39 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
|
|||||||
private WifiDetailPreference mDnsPref;
|
private WifiDetailPreference mDnsPref;
|
||||||
private PreferenceCategory mIpv6AddressCategory;
|
private PreferenceCategory mIpv6AddressCategory;
|
||||||
|
|
||||||
public WifiDetailPreferenceController(AccessPoint accessPoint, Context context,
|
private final IntentFilter mFilter;
|
||||||
Lifecycle lifecycle, WifiManager wifiManager, ConnectivityManager connectivityManager) {
|
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
switch (intent.getAction()) {
|
||||||
|
case WifiManager.NETWORK_STATE_CHANGED_ACTION:
|
||||||
|
case WifiManager.RSSI_CHANGED_ACTION:
|
||||||
|
updateInfo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public WifiDetailPreferenceController(
|
||||||
|
AccessPoint accessPoint,
|
||||||
|
ConnectivityManager connectivityManager,
|
||||||
|
Context context,
|
||||||
|
Fragment fragment,
|
||||||
|
Lifecycle lifecycle,
|
||||||
|
WifiManager wifiManager) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
mAccessPoint = accessPoint;
|
mAccessPoint = accessPoint;
|
||||||
|
mConnectivityManager = connectivityManager;
|
||||||
|
mFragment = fragment;
|
||||||
mNetworkInfo = accessPoint.getNetworkInfo();
|
mNetworkInfo = accessPoint.getNetworkInfo();
|
||||||
mRssi = accessPoint.getRssi();
|
mRssi = accessPoint.getRssi();
|
||||||
mSignalStr = context.getResources().getStringArray(R.array.wifi_signal);
|
mSignalStr = context.getResources().getStringArray(R.array.wifi_signal);
|
||||||
mWifiConfig = accessPoint.getConfig();
|
mWifiConfig = accessPoint.getConfig();
|
||||||
mWifiManager = wifiManager;
|
mWifiManager = wifiManager;
|
||||||
mConnectivityManager = connectivityManager;
|
|
||||||
mWifiInfo = wifiManager.getConnectionInfo();
|
mFilter = new IntentFilter();
|
||||||
|
mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
||||||
|
mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
|
||||||
|
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
}
|
}
|
||||||
@@ -163,39 +191,33 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
mWifiInfo = mWifiManager.getConnectionInfo();
|
updateInfo();
|
||||||
|
|
||||||
refreshFromWifiInfo();
|
mContext.registerReceiver(mReceiver, mFilter);
|
||||||
setIpText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshFromWifiInfo() {
|
@Override
|
||||||
if (mWifiInfo == null) {
|
public void onPause() {
|
||||||
|
mContext.unregisterReceiver(mReceiver);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateInfo() {
|
||||||
|
mNetworkInfo = mConnectivityManager.getNetworkInfo(mWifiManager.getCurrentNetwork());
|
||||||
|
mWifiInfo = mWifiManager.getConnectionInfo();
|
||||||
|
if (mNetworkInfo == null || mWifiInfo == null) {
|
||||||
|
exitActivity();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
|
|
||||||
|
|
||||||
int iconSignalLevel = WifiManager.calculateSignalLevel(
|
refreshNetworkState();
|
||||||
mWifiInfo.getRssi(), WifiManager.RSSI_LEVELS);
|
|
||||||
Drawable wifiIcon = NetworkBadging.getWifiIcon(
|
|
||||||
iconSignalLevel, NetworkBadging.BADGING_NONE, mContext.getTheme()).mutate();
|
|
||||||
|
|
||||||
// Connected Header Pref
|
// Update Connection Header icon and Signal Strength Preference
|
||||||
mConnectionDetailPref.setIcon(wifiIcon);
|
mRssi = mWifiInfo.getRssi();
|
||||||
mConnectionDetailPref.setTitle(mAccessPoint.getSettingsSummary());
|
refreshRssiViews();
|
||||||
|
|
||||||
// MAC Address Pref
|
// MAC Address Pref
|
||||||
mMacAddressPref.setDetailText(mWifiInfo.getMacAddress());
|
mMacAddressPref.setDetailText(mWifiInfo.getMacAddress());
|
||||||
|
|
||||||
// Signal Strength Pref
|
|
||||||
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
|
|
||||||
wifiIconDark.setTint(mContext.getResources().getColor(
|
|
||||||
R.color.wifi_details_icon_color, mContext.getTheme()));
|
|
||||||
mSignalStrengthPref.setIcon(wifiIconDark);
|
|
||||||
|
|
||||||
int summarySignalLevel = mAccessPoint.getLevel();
|
|
||||||
mSignalStrengthPref.setDetailText(mSignalStr[summarySignalLevel]);
|
|
||||||
|
|
||||||
// Link Speed Pref
|
// Link Speed Pref
|
||||||
int linkSpeedMbps = mWifiInfo.getLinkSpeed();
|
int linkSpeedMbps = mWifiInfo.getLinkSpeed();
|
||||||
mLinkSpeedPref.setVisible(linkSpeedMbps >= 0);
|
mLinkSpeedPref.setVisible(linkSpeedMbps >= 0);
|
||||||
@@ -215,6 +237,37 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
|
|||||||
Log.e(TAG, "Unexpected frequency " + frequency);
|
Log.e(TAG, "Unexpected frequency " + frequency);
|
||||||
}
|
}
|
||||||
mFrequencyPref.setDetailText(band);
|
mFrequencyPref.setDetailText(band);
|
||||||
|
|
||||||
|
setIpText();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exitActivity() {
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Exiting the WifiNetworkDetailsPage");
|
||||||
|
}
|
||||||
|
mFragment.getActivity().finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshNetworkState() {
|
||||||
|
mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
|
||||||
|
mConnectionDetailPref.setTitle(mAccessPoint.getSettingsSummary());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshRssiViews() {
|
||||||
|
int iconSignalLevel = WifiManager.calculateSignalLevel(
|
||||||
|
mRssi, WifiManager.RSSI_LEVELS);
|
||||||
|
Drawable wifiIcon = NetworkBadging.getWifiIcon(
|
||||||
|
iconSignalLevel, NetworkBadging.BADGING_NONE, mContext.getTheme()).mutate();
|
||||||
|
|
||||||
|
mConnectionDetailPref.setIcon(wifiIcon);
|
||||||
|
|
||||||
|
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
|
||||||
|
wifiIconDark.setTint(mContext.getResources().getColor(
|
||||||
|
R.color.wifi_details_icon_color, mContext.getTheme()));
|
||||||
|
mSignalStrengthPref.setIcon(wifiIconDark);
|
||||||
|
|
||||||
|
int summarySignalLevel = mAccessPoint.getLevel();
|
||||||
|
mSignalStrengthPref.setDetailText(mSignalStr[summarySignalLevel]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setIpText() {
|
private void setIpText() {
|
||||||
@@ -321,5 +374,6 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
|
|||||||
mWifiManager.forget(mWifiConfig.networkId, null /* action listener */);
|
mWifiManager.forget(mWifiConfig.networkId, null /* action listener */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mFragment.getActivity().finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -69,7 +69,6 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
|||||||
private void forgetNetwork() {
|
private void forgetNetwork() {
|
||||||
mMetricsFeatureProvider.action(getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
mMetricsFeatureProvider.action(getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
||||||
mWifiDetailPreferenceController.forgetNetwork();
|
mWifiDetailPreferenceController.forgetNetwork();
|
||||||
getActivity().finish();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -91,10 +90,11 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
|||||||
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
||||||
mWifiDetailPreferenceController = new WifiDetailPreferenceController(
|
mWifiDetailPreferenceController = new WifiDetailPreferenceController(
|
||||||
mAccessPoint,
|
mAccessPoint,
|
||||||
|
context.getSystemService(ConnectivityManager.class),
|
||||||
context,
|
context,
|
||||||
|
this,
|
||||||
getLifecycle(),
|
getLifecycle(),
|
||||||
context.getSystemService(WifiManager.class),
|
context.getSystemService(WifiManager.class));
|
||||||
context.getSystemService(ConnectivityManager.class));
|
|
||||||
|
|
||||||
ArrayList<PreferenceController> controllers = new ArrayList(1);
|
ArrayList<PreferenceController> controllers = new ArrayList(1);
|
||||||
controllers.add(mWifiDetailPreferenceController);
|
controllers.add(mWifiDetailPreferenceController);
|
||||||
|
@@ -24,7 +24,9 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.IpPrefix;
|
import android.net.IpPrefix;
|
||||||
@@ -56,9 +58,6 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Config;
|
|
||||||
import org.robolectric.annotation.Implementation;
|
|
||||||
import org.robolectric.annotation.Implements;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
@@ -79,12 +78,14 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
private PreferenceScreen mockScreen;
|
private PreferenceScreen mockScreen;
|
||||||
|
|
||||||
@Mock private AccessPoint mockAccessPoint;
|
@Mock private AccessPoint mockAccessPoint;
|
||||||
@Mock private WifiManager mockWifiManager;
|
@Mock private Activity mockActivity;
|
||||||
@Mock private ConnectivityManager mockConnectivityManager;
|
@Mock private ConnectivityManager mockConnectivityManager;
|
||||||
|
@Mock private Network mockNetwork;
|
||||||
@Mock private NetworkInfo mockNetworkInfo;
|
@Mock private NetworkInfo mockNetworkInfo;
|
||||||
@Mock private WifiConfiguration mockWifiConfig;
|
@Mock private WifiConfiguration mockWifiConfig;
|
||||||
@Mock private WifiInfo mockWifiInfo;
|
@Mock private WifiInfo mockWifiInfo;
|
||||||
@Mock private Network mockNetwork;
|
@Mock private WifiNetworkDetailsFragment mockFragment;
|
||||||
|
@Mock private WifiManager mockWifiManager;
|
||||||
|
|
||||||
@Mock private Preference mockConnectionDetailPref;
|
@Mock private Preference mockConnectionDetailPref;
|
||||||
@Mock private WifiDetailPreference mockSignalStrengthPref;
|
@Mock private WifiDetailPreference mockSignalStrengthPref;
|
||||||
@@ -122,6 +123,9 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
when(mockAccessPoint.getRssi()).thenReturn(RSSI);
|
when(mockAccessPoint.getRssi()).thenReturn(RSSI);
|
||||||
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
|
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
|
||||||
|
|
||||||
|
when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
|
||||||
|
.thenReturn(mockNetworkInfo);
|
||||||
|
|
||||||
when(mockWifiInfo.getLinkSpeed()).thenReturn(LINK_SPEED);
|
when(mockWifiInfo.getLinkSpeed()).thenReturn(LINK_SPEED);
|
||||||
when(mockWifiInfo.getRssi()).thenReturn(RSSI);
|
when(mockWifiInfo.getRssi()).thenReturn(RSSI);
|
||||||
when(mockWifiInfo.getMacAddress()).thenReturn(MAC_ADDRESS);
|
when(mockWifiInfo.getMacAddress()).thenReturn(MAC_ADDRESS);
|
||||||
@@ -131,12 +135,23 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
mLinkProperties = new LinkProperties();
|
mLinkProperties = new LinkProperties();
|
||||||
when(mockConnectivityManager.getLinkProperties(mockNetwork)).thenReturn(mLinkProperties);
|
when(mockConnectivityManager.getLinkProperties(mockNetwork)).thenReturn(mLinkProperties);
|
||||||
|
|
||||||
mController = new WifiDetailPreferenceController(
|
when(mockFragment.getActivity()).thenReturn(mockActivity);
|
||||||
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
|
|
||||||
|
mController = newWifiDetailPreferenceController();
|
||||||
|
|
||||||
setupMockedPreferenceScreen();
|
setupMockedPreferenceScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private WifiDetailPreferenceController newWifiDetailPreferenceController() {
|
||||||
|
return new WifiDetailPreferenceController(
|
||||||
|
mockAccessPoint,
|
||||||
|
mockConnectivityManager,
|
||||||
|
mContext,
|
||||||
|
mockFragment,
|
||||||
|
mLifecycle,
|
||||||
|
mockWifiManager);
|
||||||
|
}
|
||||||
|
|
||||||
private void setupMockedPreferenceScreen() {
|
private void setupMockedPreferenceScreen() {
|
||||||
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_CONNECTION_DETAIL_PREF))
|
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_CONNECTION_DETAIL_PREF))
|
||||||
.thenReturn(mockConnectionDetailPref);
|
.thenReturn(mockConnectionDetailPref);
|
||||||
@@ -175,11 +190,17 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void latestWifiInfoAndConfig_shouldBeFetchedOnResume() {
|
public void latestWifiInfo_shouldBeFetchedOnResume() {
|
||||||
mController.onResume();
|
mController.onResume();
|
||||||
|
|
||||||
// Once in construction, once in onResume
|
verify(mockWifiManager, times(1)).getConnectionInfo();
|
||||||
verify(mockWifiManager, times(2)).getConnectionInfo();
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void latestNetworkInfo_shouldBeFetchedOnResume() {
|
||||||
|
mController.onResume();
|
||||||
|
|
||||||
|
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -321,9 +342,9 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void canForgetNetwork_noNetwork() {
|
public void canForgetNetwork_noNetwork() {
|
||||||
when(mockAccessPoint.getConfig()).thenReturn(null);
|
when(mockAccessPoint.getConfig()).thenReturn(null);
|
||||||
|
mController = newWifiDetailPreferenceController();
|
||||||
mController = new WifiDetailPreferenceController(
|
mController.displayPreference(mockScreen);
|
||||||
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
|
mController.onResume();
|
||||||
|
|
||||||
assertThat(mController.canForgetNetwork()).isFalse();
|
assertThat(mController.canForgetNetwork()).isFalse();
|
||||||
}
|
}
|
||||||
@@ -332,9 +353,9 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
public void canForgetNetwork_ephemeral() {
|
public void canForgetNetwork_ephemeral() {
|
||||||
when(mockWifiInfo.isEphemeral()).thenReturn(true);
|
when(mockWifiInfo.isEphemeral()).thenReturn(true);
|
||||||
when(mockAccessPoint.getConfig()).thenReturn(null);
|
when(mockAccessPoint.getConfig()).thenReturn(null);
|
||||||
|
mController = newWifiDetailPreferenceController();
|
||||||
mController = new WifiDetailPreferenceController(
|
mController.displayPreference(mockScreen);
|
||||||
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
|
mController.onResume();
|
||||||
|
|
||||||
assertThat(mController.canForgetNetwork()).isTrue();
|
assertThat(mController.canForgetNetwork()).isTrue();
|
||||||
}
|
}
|
||||||
@@ -347,10 +368,11 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void forgetNetwork_ephemeral() {
|
public void forgetNetwork_ephemeral() {
|
||||||
String ssid = "ssid";
|
String ssid = "ssid";
|
||||||
|
|
||||||
when(mockWifiInfo.isEphemeral()).thenReturn(true);
|
when(mockWifiInfo.isEphemeral()).thenReturn(true);
|
||||||
when(mockWifiInfo.getSSID()).thenReturn(ssid);
|
when(mockWifiInfo.getSSID()).thenReturn(ssid);
|
||||||
|
|
||||||
|
mController.onResume();
|
||||||
|
|
||||||
mController.forgetNetwork();
|
mController.forgetNetwork();
|
||||||
|
|
||||||
verify(mockWifiManager).disableEphemeralNetwork(ssid);
|
verify(mockWifiManager).disableEphemeralNetwork(ssid);
|
||||||
@@ -364,4 +386,38 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
|
|
||||||
verify(mockWifiManager).forget(mockWifiConfig.networkId, null);
|
verify(mockWifiManager).forget(mockWifiConfig.networkId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void networkStateChangedIntent_shouldRefetchInfo() {
|
||||||
|
mController.onResume();
|
||||||
|
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
|
||||||
|
verify(mockWifiManager, times(1)).getConnectionInfo();
|
||||||
|
|
||||||
|
mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
|
||||||
|
|
||||||
|
verify(mockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
|
||||||
|
verify(mockWifiManager, times(2)).getConnectionInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void rssiChangedIntent_shouldRefetchInfo() {
|
||||||
|
mController.onResume();
|
||||||
|
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
|
||||||
|
verify(mockWifiManager, times(1)).getConnectionInfo();
|
||||||
|
|
||||||
|
mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
|
||||||
|
|
||||||
|
verify(mockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
|
||||||
|
verify(mockWifiManager, times(2)).getConnectionInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void networkDisconnectdState_shouldFinishActivity() {
|
||||||
|
mController.onResume();
|
||||||
|
|
||||||
|
when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(null);
|
||||||
|
mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
|
||||||
|
|
||||||
|
verify(mockActivity).finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user