Replace ConnectivityManager hidden symbols on Settings

Connectivity is becoming a mainline module in S, so
ConnectivityManager hidden symbols can not be used for outside
components. Besides, most Tethering relevant methods or variables
on CM are migrated to TetheringManager. So replace all these
methods or variables from ConnectivityManager to TetheringManager
on Settings.

Bug: 180693313
Test: make RunSettingsRoboTests ROBOTEST_FILTER=<Modified Test>
Change-Id: Iba4b121a4ddf3f04252aa0355e0e6494a593682a
This commit is contained in:
paulhu
2021-02-20 11:21:53 +08:00
committed by Paul Hu
parent 3e31334065
commit 6151c227e0
26 changed files with 135 additions and 130 deletions

View File

@@ -16,8 +16,8 @@
package com.android.settings;
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.ConnectivityManager.TETHERING_WIFI;
import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
import android.app.settings.SettingsEnums;

View File

@@ -167,8 +167,8 @@ public class TetherSettings extends RestrictedSettingsFragment
mEm = (EthernetManager) getSystemService(Context.ETHERNET_SERVICE);
mTm = (TetheringManager) getSystemService(Context.TETHERING_SERVICE);
mUsbRegexs = mCm.getTetherableUsbRegexs();
mBluetoothRegexs = mCm.getTetherableBluetoothRegexs();
mUsbRegexs = mTm.getTetherableUsbRegexs();
mBluetoothRegexs = mTm.getTetherableBluetoothRegexs();
mEthernetRegex = getContext().getResources().getString(
com.android.internal.R.string.config_ethernet_iface_regex);
@@ -251,14 +251,14 @@ public class TetherSettings extends RestrictedSettingsFragment
public void onReceive(Context content, Intent intent) {
String action = intent.getAction();
// TODO: stop using ACTION_TETHER_STATE_CHANGED and use mTetheringEventCallback instead.
if (action.equals(ConnectivityManager.ACTION_TETHER_STATE_CHANGED)) {
if (action.equals(TetheringManager.ACTION_TETHER_STATE_CHANGED)) {
// TODO - this should understand the interface types
ArrayList<String> available = intent.getStringArrayListExtra(
ConnectivityManager.EXTRA_AVAILABLE_TETHER);
TetheringManager.EXTRA_AVAILABLE_TETHER);
ArrayList<String> active = intent.getStringArrayListExtra(
ConnectivityManager.EXTRA_ACTIVE_TETHER);
TetheringManager.EXTRA_ACTIVE_TETHER);
ArrayList<String> errored = intent.getStringArrayListExtra(
ConnectivityManager.EXTRA_ERRORED_TETHER);
TetheringManager.EXTRA_ERRORED_TETHER);
updateState(available.toArray(new String[available.size()]),
active.toArray(new String[active.size()]),
errored.toArray(new String[errored.size()]));
@@ -345,7 +345,7 @@ public class TetherSettings extends RestrictedSettingsFragment
final Activity activity = getActivity();
mTetherChangeReceiver = new TetherChangeReceiver();
IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
IntentFilter filter = new IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED);
final Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
filter = new IntentFilter();
@@ -367,11 +367,10 @@ public class TetherSettings extends RestrictedSettingsFragment
}
private void updateState() {
final ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final String[] available = cm.getTetherableIfaces();
final String[] tethered = cm.getTetheredIfaces();
final String[] errored = cm.getTetheringErroredIfaces();
final TetheringManager tm = getContext().getSystemService(TetheringManager.class);
final String[] available = tm.getTetherableIfaces();
final String[] tethered = tm.getTetheredIfaces();
final String[] errored = tm.getTetheringErroredIfaces();
updateState(available, tethered, errored);
}
@@ -391,7 +390,7 @@ public class TetherSettings extends RestrictedSettingsFragment
for (String regex : mUsbRegexs) {
if (s.matches(regex)) {
if (usbError == ConnectivityManager.TETHER_ERROR_NO_ERROR) {
usbError = mCm.getLastTetherError(s);
usbError = mTm.getLastTetherError(s);
}
}
}
@@ -558,8 +557,8 @@ public class TetherSettings extends RestrictedSettingsFragment
@Override
public List<String> getNonIndexableKeys(Context context) {
final List<String> keys = super.getNonIndexableKeys(context);
final ConnectivityManager cm =
context.getSystemService(ConnectivityManager.class);
final TetheringManager tm =
context.getSystemService(TetheringManager.class);
if (!TetherUtil.isTetherAvailable(context)) {
keys.add(KEY_TETHER_PREFS_SCREEN);
@@ -567,13 +566,13 @@ public class TetherSettings extends RestrictedSettingsFragment
}
final boolean usbAvailable =
cm.getTetherableUsbRegexs().length != 0;
tm.getTetherableUsbRegexs().length != 0;
if (!usbAvailable || Utils.isMonkeyRunning()) {
keys.add(KEY_USB_TETHER_SETTINGS);
}
final boolean bluetoothAvailable =
cm.getTetherableBluetoothRegexs().length != 0;
tm.getTetherableBluetoothRegexs().length != 0;
if (!bluetoothAvailable) {
keys.add(KEY_ENABLE_BLUETOOTH_TETHERING);
}

View File

@@ -70,7 +70,7 @@ public final class BluetoothTetherPreferenceController extends TetherBasePrefere
@Override
public boolean shouldShow() {
final String[] bluetoothRegexs = mCm.getTetherableBluetoothRegexs();
final String[] bluetoothRegexs = mTm.getTetherableBluetoothRegexs();
return bluetoothRegexs != null && bluetoothRegexs.length != 0;
}

View File

@@ -65,7 +65,7 @@ public final class EthernetTetherPreferenceController extends TetherBasePreferen
@Override
public boolean shouldEnable() {
String[] available = mCm.getTetherableIfaces();
String[] available = mTm.getTetherableIfaces();
for (String s : available) {
if (s.matches(mEthernetRegex)) {
return true;

View File

@@ -17,7 +17,7 @@
package com.android.settings.network;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
@@ -33,7 +33,7 @@ public abstract class TetherBasePreferenceController extends TogglePreferenceCon
TetherEnabler.OnTetherStateUpdateListener {
private static final String TAG = "TetherBasePreferenceController";
final ConnectivityManager mCm;
final TetheringManager mTm;
private final DataSaverBackend mDataSaverBackend;
private TetherEnabler mTetherEnabler;
@@ -43,7 +43,7 @@ public abstract class TetherBasePreferenceController extends TogglePreferenceCon
TetherBasePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mTm = context.getSystemService(TetheringManager.class);
mDataSaverBackend = new DataSaverBackend(context);
mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
}

View File

@@ -147,7 +147,7 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe
mSwitchWidgetController.setListener(this);
mSwitchWidgetController.startListening();
final IntentFilter filter = new IntentFilter(
ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
TetheringManager.ACTION_TETHER_STATE_CHANGED);
filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
mContext.registerReceiver(mTetherChangeReceiver, filter);
@@ -222,7 +222,7 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe
int getTetheringState(@Nullable String[] tethered) {
int tetherState = TETHERING_OFF;
if (tethered == null) {
tethered = mConnectivityManager.getTetheredIfaces();
tethered = mTetheringManager.getTetheredIfaces();
}
if (mWifiManager.isWifiApEnabled()) {
@@ -239,7 +239,7 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe
}
}
String[] usbRegexs = mConnectivityManager.getTetherableUsbRegexs();
String[] usbRegexs = mTetheringManager.getTetherableUsbRegexs();
for (String s : tethered) {
for (String regex : usbRegexs) {
if (s.matches(regex)) {

View File

@@ -28,6 +28,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -62,6 +63,7 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
private final AtomicReference<BluetoothPan> mBluetoothPan;
private final ConnectivityManager mConnectivityManager;
private final BluetoothAdapter mBluetoothAdapter;
private final TetheringManager mTetheringManager;
@VisibleForTesting
final BluetoothProfile.ServiceListener mBtProfileServiceListener =
new android.bluetooth.BluetoothProfile.ServiceListener() {
@@ -86,6 +88,7 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
mBluetoothPan = new AtomicReference<>();
mConnectivityManager = null;
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mTetheringManager = null;
}
public TetherPreferenceController(Context context, Lifecycle lifecycle) {
@@ -95,6 +98,7 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
mConnectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mTetheringManager = context.getSystemService(TetheringManager.class);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -144,7 +148,7 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
mTetherReceiver = new TetherBroadcastReceiver();
}
mContext.registerReceiver(
mTetherReceiver, new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED));
mTetherReceiver, new IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED));
mContext.getContentResolver()
.registerContentObserver(mAirplaneModeObserver.uri, false, mAirplaneModeObserver);
}
@@ -178,9 +182,9 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
// Preference is not ready yet.
return;
}
String[] allTethered = mConnectivityManager.getTetheredIfaces();
String[] wifiTetherRegex = mConnectivityManager.getTetherableWifiRegexs();
String[] bluetoothRegex = mConnectivityManager.getTetherableBluetoothRegexs();
String[] allTethered = mTetheringManager.getTetheredIfaces();
String[] wifiTetherRegex = mTetheringManager.getTetherableWifiRegexs();
String[] bluetoothRegex = mTetheringManager.getTetherableBluetoothRegexs();
boolean hotSpotOn = false;
boolean tetherOn = false;
@@ -211,7 +215,7 @@ public class TetherPreferenceController extends AbstractPreferenceController imp
&& bluetoothRegex != null && bluetoothRegex.length > 0
&& mBluetoothAdapter != null
&& mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
// Check bluetooth state. It's not included in mConnectivityManager.getTetheredIfaces.
// Check bluetooth state. It's not included in mTetheringManager.getTetheredIfaces.
final BluetoothPan pan = mBluetoothPan.get();
tetherOn = pan != null && pan.isTetheringOn();
}

View File

@@ -68,7 +68,7 @@ public final class UsbTetherPreferenceController extends TetherBasePreferenceCon
@Override
public boolean shouldShow() {
String[] usbRegexs = mCm.getTetherableUsbRegexs();
String[] usbRegexs = mTm.getTetherableUsbRegexs();
return usbRegexs != null && usbRegexs.length != 0 && !Utils.isMonkeyRunning();
}

View File

@@ -68,7 +68,7 @@ public final class WifiTetherDisablePreferenceController extends TetherBasePrefe
@Override
public boolean shouldShow() {
final String[] wifiRegexs = mCm.getTetherableWifiRegexs();
final String[] wifiRegexs = mTm.getTetherableWifiRegexs();
return wifiRegexs != null && wifiRegexs.length != 0 && !Utils.isMonkeyRunning()
&& getTetheringStateOfOtherInterfaces() != TetherEnabler.TETHERING_OFF;
}

View File

@@ -17,7 +17,7 @@
package com.android.settings.wifi.tether;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.WifiManager;
import androidx.preference.Preference;
@@ -36,7 +36,7 @@ public abstract class WifiTetherBasePreferenceController extends AbstractPrefere
protected final WifiManager mWifiManager;
protected final String[] mWifiRegexs;
protected final ConnectivityManager mCm;
protected final TetheringManager mTm;
protected final OnTetherConfigUpdateListener mListener;
protected Preference mPreference;
@@ -46,8 +46,8 @@ public abstract class WifiTetherBasePreferenceController extends AbstractPrefere
super(context);
mListener = listener;
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mWifiRegexs = mCm.getTetherableWifiRegexs();
mTm = (TetheringManager) context.getSystemService(Context.TETHERING_SERVICE);
mWifiRegexs = mTm.getTetherableWifiRegexs();
}
@Override

View File

@@ -18,7 +18,7 @@ package com.android.settings.wifi.tether;
import android.annotation.NonNull;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiClient;
import android.net.wifi.WifiManager;
@@ -44,7 +44,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
private static final String WIFI_TETHER_SETTINGS = "wifi_tether";
private final ConnectivityManager mConnectivityManager;
private final TetheringManager mTetheringManager;
private final String[] mWifiRegexs;
private final WifiManager mWifiManager;
private final Lifecycle mLifecycle;
@@ -62,10 +62,9 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
WifiTetherPreferenceController(Context context, Lifecycle lifecycle,
boolean initSoftApManager) {
super(context);
mConnectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mTetheringManager = context.getSystemService(TetheringManager.class);
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mWifiRegexs = mConnectivityManager.getTetherableWifiRegexs();
mWifiRegexs = mTetheringManager.getTetherableWifiRegexs();
mLifecycle = lifecycle;
if (lifecycle != null) {
lifecycle.addObserver(this);

View File

@@ -16,7 +16,7 @@
package com.android.settings.wifi.tether;
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
import android.app.settings.SettingsEnums;

View File

@@ -33,6 +33,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.os.UserHandle;
import android.os.UserManager;
@@ -74,6 +75,8 @@ public class AllInOneTetherSettingsTest {
@Mock
private ConnectivityManager mConnectivityManager;
@Mock
private TetheringManager mTetheringManager;
@Mock
private UserManager mUserManager;
@Mock
private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
@@ -89,10 +92,12 @@ public class AllInOneTetherSettingsTest {
MockitoAnnotations.initMocks(this);
doReturn(mConnectivityManager)
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(WIFI_REGEXS).when(mConnectivityManager).getTetherableWifiRegexs();
doReturn(USB_REGEXS).when(mConnectivityManager).getTetherableUsbRegexs();
doReturn(BT_REGEXS).when(mConnectivityManager).getTetherableBluetoothRegexs();
doReturn(ETHERNET_REGEXS).when(mConnectivityManager).getTetherableIfaces();
doReturn(mTetheringManager)
.when(mContext).getSystemService(Context.TETHERING_SERVICE);
doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs();
doReturn(USB_REGEXS).when(mTetheringManager).getTetherableUsbRegexs();
doReturn(BT_REGEXS).when(mTetheringManager).getTetherableBluetoothRegexs();
doReturn(ETHERNET_REGEXS).when(mTetheringManager).getTetherableIfaces();
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
// Assume the feature is enabled for most test cases.
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true);

View File

@@ -34,6 +34,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.WifiManager;
import android.os.UserHandle;
import android.os.UserManager;
@@ -66,6 +67,8 @@ public class TetherSettingsTest {
private ConnectivityManager mConnectivityManager;
@Mock
private UserManager mUserManager;
@Mock
private TetheringManager mTetheringManager;
@Before
public void setUp() {
@@ -76,11 +79,13 @@ public class TetherSettingsTest {
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(mUserManager)
.when(mContext).getSystemService(Context.USER_SERVICE);
doReturn(mTetheringManager)
.when(mContext).getSystemService(Context.TETHERING_SERVICE);
setupIsTetherAvailable(true);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
}
@Test
@@ -110,7 +115,7 @@ public class TetherSettingsTest {
@Test
public void testTetherNonIndexableKeys_usbNotAvailable_usbKeyReturned() {
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -123,7 +128,7 @@ public class TetherSettingsTest {
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
// We can ignore the condition of Utils.isMonkeyRunning()
// In normal case, monkey and robotest should not execute at the same time
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{"fakeRegex"});
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{"fakeRegex"});
final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -133,7 +138,7 @@ public class TetherSettingsTest {
@Test
public void testTetherNonIndexableKeys_bluetoothNotAvailable_bluetoothKeyReturned() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -144,7 +149,7 @@ public class TetherSettingsTest {
@Test
public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() {
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
when(mConnectivityManager.getTetherableBluetoothRegexs())
when(mTetheringManager.getTetherableBluetoothRegexs())
.thenReturn(new String[]{"fakeRegex"});
final List<String> niks =
@@ -235,11 +240,11 @@ public class TetherSettingsTest {
}
private void updateOnlyBluetoothState(TetherSettings tetherSettings) {
doReturn(mConnectivityManager).when(tetherSettings)
.getSystemService(Context.CONNECTIVITY_SERVICE);
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheringErroredIfaces()).thenReturn(new String[0]);
doReturn(mTetheringManager).when(tetherSettings)
.getSystemService(Context.TETHERING_SERVICE);
when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetheringErroredIfaces()).thenReturn(new String[0]);
doNothing().when(tetherSettings).updateUsbState(any(String[].class), any(String[].class),
any(String[].class));
doNothing().when(tetherSettings).updateEthernetState(any(String[].class),

View File

@@ -26,7 +26,6 @@ import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import androidx.preference.SwitchPreference;
@@ -44,7 +43,7 @@ import org.robolectric.util.ReflectionHelpers;
public class BluetoothTetherPreferenceControllerTest {
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private TetherEnabler mTetherEnabler;
@@ -58,9 +57,8 @@ public class BluetoothTetherPreferenceControllerTest {
mContext = spy(ApplicationProvider.getApplicationContext());
mSwitchPreference = spy(SwitchPreference.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
mConnectivityManager);
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH");
mController.setTetherEnabler(mTetherEnabler);
ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
@@ -98,7 +96,7 @@ public class BluetoothTetherPreferenceControllerTest {
@Test
public void shouldShow_noBluetoothTetherable() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
assertThat(mController.isAvailable()).isFalse();
}

View File

@@ -25,7 +25,6 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.EthernetManager;
import android.net.TetheringManager;
@@ -49,7 +48,7 @@ public class EthernetTetherPreferenceControllerTest {
public MockitoRule mocks = MockitoJUnit.rule();
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private EthernetManager mEthernetManager;
@Mock
@@ -64,9 +63,8 @@ public class EthernetTetherPreferenceControllerTest {
public void setUp() {
mContext = spy(ApplicationProvider.getApplicationContext());
mPreference = spy(SwitchPreference.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
when(mContext.getSystemService(Context.ETHERNET_SERVICE)).thenReturn(mEthernetManager);
mController = new EthernetTetherPreferenceController(mContext, "ethernet");
mController.setTetherEnabler(mTetherEnabler);
@@ -105,7 +103,7 @@ public class EthernetTetherPreferenceControllerTest {
@Test
public void shouldEnable_noTetherable() {
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
assertThat(mController.shouldEnable()).isFalse();
}

View File

@@ -101,9 +101,9 @@ public class TetherEnablerTest {
when(context.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(context.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn(
mNetworkPolicyManager);
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
panReference.set(mBluetoothPan);
mEnabler = spy(new TetherEnabler(context, mSwitchWidgetController, panReference));
ReflectionHelpers.setField(mEnabler, "mBluetoothAdapter", mBluetoothAdapter);
@@ -111,8 +111,8 @@ public class TetherEnablerTest {
@Test
public void lifecycle_onStart_setCheckedCorrectly() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
when(mTetheringManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
mEnabler.onStart();
assertThat(mSwitchBar.isChecked()).isTrue();
@@ -150,7 +150,7 @@ public class TetherEnablerTest {
mEnabler.onStart();
mEnabler.startTethering(TetheringManager.TETHERING_WIFI);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
mEnabler.mOnStartTetheringCallback.onTetheringFailed();
assertThat(mSwitchBar.isChecked()).isFalse();
@@ -255,8 +255,8 @@ public class TetherEnablerTest {
@Test
public void updateState_shouldEnableSwitchBarTethering() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
when(mTetheringManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
mSwitchWidgetController.setListener(mEnabler);
mSwitchWidgetController.startListening();

View File

@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.provider.Settings;
import androidx.preference.Preference;
@@ -56,7 +57,7 @@ public class TetherPreferenceControllerTest {
@Mock
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private BluetoothAdapter mBluetoothAdapter;
@Mock
@@ -69,7 +70,7 @@ public class TetherPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
mController = spy(TetherPreferenceController.class);
ReflectionHelpers.setField(mController, "mContext", mContext);
ReflectionHelpers.setField(mController, "mConnectivityManager", mConnectivityManager);
ReflectionHelpers.setField(mController, "mTetheringManager", mTetheringManager);
ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
ReflectionHelpers.setField(mController, "mPreference", mPreference);
}
@@ -106,16 +107,16 @@ public class TetherPreferenceControllerTest {
}
@Test
public void updateSummary_noPreference_noInteractionWithConnectivityManager() {
public void updateSummary_noPreference_noInteractionWithTetheringManager() {
ReflectionHelpers.setField(mController, "mPreference", null);
mController.updateSummary();
verifyNoMoreInteractions(mConnectivityManager);
verifyNoMoreInteractions(mTetheringManager);
}
@Test
public void updateSummary_wifiTethered_shouldShowHotspotMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"});
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"});
mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
@@ -123,8 +124,8 @@ public class TetherPreferenceControllerTest {
@Test
public void updateSummary_btThetherOn_shouldShowTetherMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
@@ -132,8 +133,8 @@ public class TetherPreferenceControllerTest {
@Test
public void updateSummary_tetherOff_shouldShowTetherOffMessage() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
mController.updateSummary();
verify(mPreference).setSummary(R.string.switch_off_text);
@@ -141,9 +142,9 @@ public class TetherPreferenceControllerTest {
@Test
public void updateSummary_wifiBtTetherOn_shouldShowHotspotAndTetherMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"});
when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"});
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"});
mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_on);

View File

@@ -25,7 +25,6 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import androidx.preference.SwitchPreference;
@@ -43,7 +42,7 @@ import org.robolectric.util.ReflectionHelpers;
public class UsbTetherPreferenceControllerTest {
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private TetherEnabler mTetherEnabler;
@@ -56,9 +55,8 @@ public class UsbTetherPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
mConnectivityManager);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
mController = new UsbTetherPreferenceController(mContext, "USB");
mController.setTetherEnabler(mTetherEnabler);
mSwitchPreference = spy(SwitchPreference.class);
@@ -94,7 +92,7 @@ public class UsbTetherPreferenceControllerTest {
@Test
public void shouldShow_noTetherableUsb() {
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
assertThat(mController.shouldShow()).isFalse();
}

View File

@@ -28,7 +28,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
@@ -77,7 +77,7 @@ public class WifiTetherDisablePreferenceControllerTest {
}
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private PreferenceScreen mPreferenceScreen;
@Mock
@@ -100,9 +100,8 @@ public class WifiTetherDisablePreferenceControllerTest {
mContext = spy(ApplicationProvider.getApplicationContext());
mPreference = spy(SwitchPreference.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
mConnectivityManager);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{""});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{""});
mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY);
mController.setTetherEnabler(mTetherEnabler);
ReflectionHelpers.setField(mController, "mScreen", mPreferenceScreen);
@@ -112,7 +111,7 @@ public class WifiTetherDisablePreferenceControllerTest {
@Test
public void shouldShow_noTetherableWifi() {
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[0]);
assertThat(mController.shouldShow()).isFalse();
}

View File

@@ -25,7 +25,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
@@ -57,7 +57,7 @@ public class WifiTetherApBandPreferenceControllerTest {
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private WifiManager mWifiManager;
@Mock
@@ -74,9 +74,8 @@ public class WifiTetherApBandPreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application);
mPreference = new ListPreference(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
when(mWifiManager.getSoftApConfiguration()).thenReturn(

View File

@@ -22,7 +22,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.WifiManager;
import androidx.preference.PreferenceScreen;
@@ -43,7 +43,7 @@ public class WifiTetherFooterPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private WifiManager mWifiManager;
@Mock
@@ -58,9 +58,8 @@ public class WifiTetherFooterPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
mController = new WifiTetherFooterPreferenceController(mContext);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
}

View File

@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
@@ -53,7 +53,7 @@ public class WifiTetherPasswordPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private WifiManager mWifiManager;
@Mock
@@ -77,9 +77,8 @@ public class WifiTetherPasswordPreferenceControllerTest {
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
when(mScreen.findPreference(anyString())).thenReturn(mPreference);

View File

@@ -23,7 +23,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
@@ -56,7 +56,7 @@ public class WifiTetherPreferenceControllerTest {
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private WifiManager mWifiManager;
@Mock
@@ -77,14 +77,13 @@ public class WifiTetherPreferenceControllerTest {
mLifecycle = new Lifecycle(mLifecycleOwner);
FakeFeatureFactory.setupForTest();
mPreference = new PrimarySwitchPreference(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build();
when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
mController = new WifiTetherPreferenceController(mContext, mLifecycle,
false /* initSoftApManager */);
mController.displayPreference(mScreen);
@@ -92,7 +91,7 @@ public class WifiTetherPreferenceControllerTest {
@Test
public void isAvailable_noTetherRegex_shouldReturnFalse() {
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{});
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{});
mController = new WifiTetherPreferenceController(mContext, mLifecycle,
false /* initSoftApManager */);

View File

@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
@@ -49,7 +49,7 @@ public class WifiTetherSSIDPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
@Mock
private WifiManager mWifiManager;
@Mock
@@ -68,9 +68,8 @@ public class WifiTetherSSIDPreferenceControllerTest {
mPreference = new WifiTetherSsidPreference(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mController = new WifiTetherSSIDPreferenceController(mContext, mListener,

View File

@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
@@ -70,6 +71,8 @@ public class WifiTetherSettingsTest {
private ConnectivityManager mConnectivityManager;
@Mock
private UserManager mUserManager;
@Mock
private TetheringManager mTetheringManager;
@Before
public void setUp() {
@@ -78,7 +81,8 @@ public class WifiTetherSettingsTest {
MockitoAnnotations.initMocks(this);
doReturn(mConnectivityManager)
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(WIFI_REGEXS).when(mConnectivityManager).getTetherableWifiRegexs();
doReturn(mTetheringManager).when(mContext).getSystemService(Context.TETHERING_SERVICE);
doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs();
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
mWifiTetherSettings = new WifiTetherSettings();