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; package com.android.settings;
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
import static android.net.ConnectivityManager.TETHERING_WIFI; 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 static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,7 @@
package com.android.settings.wifi.tether; 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 static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;

View File

@@ -33,6 +33,7 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration; import android.net.wifi.SoftApConfiguration;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -74,6 +75,8 @@ public class AllInOneTetherSettingsTest {
@Mock @Mock
private ConnectivityManager mConnectivityManager; private ConnectivityManager mConnectivityManager;
@Mock @Mock
private TetheringManager mTetheringManager;
@Mock
private UserManager mUserManager; private UserManager mUserManager;
@Mock @Mock
private WifiTetherSecurityPreferenceController mSecurityPreferenceController; private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
@@ -89,10 +92,12 @@ public class AllInOneTetherSettingsTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
doReturn(mConnectivityManager) doReturn(mConnectivityManager)
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); .when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(WIFI_REGEXS).when(mConnectivityManager).getTetherableWifiRegexs(); doReturn(mTetheringManager)
doReturn(USB_REGEXS).when(mConnectivityManager).getTetherableUsbRegexs(); .when(mContext).getSystemService(Context.TETHERING_SERVICE);
doReturn(BT_REGEXS).when(mConnectivityManager).getTetherableBluetoothRegexs(); doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs();
doReturn(ETHERNET_REGEXS).when(mConnectivityManager).getTetherableIfaces(); 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); doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
// Assume the feature is enabled for most test cases. // Assume the feature is enabled for most test cases.
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true); 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.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -66,6 +67,8 @@ public class TetherSettingsTest {
private ConnectivityManager mConnectivityManager; private ConnectivityManager mConnectivityManager;
@Mock @Mock
private UserManager mUserManager; private UserManager mUserManager;
@Mock
private TetheringManager mTetheringManager;
@Before @Before
public void setUp() { public void setUp() {
@@ -76,11 +79,13 @@ public class TetherSettingsTest {
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); .when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(mUserManager) doReturn(mUserManager)
.when(mContext).getSystemService(Context.USER_SERVICE); .when(mContext).getSystemService(Context.USER_SERVICE);
doReturn(mTetheringManager)
.when(mContext).getSystemService(Context.TETHERING_SERVICE);
setupIsTetherAvailable(true); setupIsTetherAvailable(true);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
} }
@Test @Test
@@ -110,7 +115,7 @@ public class TetherSettingsTest {
@Test @Test
public void testTetherNonIndexableKeys_usbNotAvailable_usbKeyReturned() { public void testTetherNonIndexableKeys_usbNotAvailable_usbKeyReturned() {
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
final List<String> niks = final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -123,7 +128,7 @@ public class TetherSettingsTest {
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false); FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
// We can ignore the condition of Utils.isMonkeyRunning() // We can ignore the condition of Utils.isMonkeyRunning()
// In normal case, monkey and robotest should not execute at the same time // 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 = final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -133,7 +138,7 @@ public class TetherSettingsTest {
@Test @Test
public void testTetherNonIndexableKeys_bluetoothNotAvailable_bluetoothKeyReturned() { public void testTetherNonIndexableKeys_bluetoothNotAvailable_bluetoothKeyReturned() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
final List<String> niks = final List<String> niks =
TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
@@ -144,7 +149,7 @@ public class TetherSettingsTest {
@Test @Test
public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() { public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() {
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false); FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
when(mConnectivityManager.getTetherableBluetoothRegexs()) when(mTetheringManager.getTetherableBluetoothRegexs())
.thenReturn(new String[]{"fakeRegex"}); .thenReturn(new String[]{"fakeRegex"});
final List<String> niks = final List<String> niks =
@@ -235,11 +240,11 @@ public class TetherSettingsTest {
} }
private void updateOnlyBluetoothState(TetherSettings tetherSettings) { private void updateOnlyBluetoothState(TetherSettings tetherSettings) {
doReturn(mConnectivityManager).when(tetherSettings) doReturn(mTetheringManager).when(tetherSettings)
.getSystemService(Context.CONNECTIVITY_SERVICE); .getSystemService(Context.TETHERING_SERVICE);
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheringErroredIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetheringErroredIfaces()).thenReturn(new String[0]);
doNothing().when(tetherSettings).updateUsbState(any(String[].class), any(String[].class), doNothing().when(tetherSettings).updateUsbState(any(String[].class), any(String[].class),
any(String[].class)); any(String[].class));
doNothing().when(tetherSettings).updateEthernetState(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.bluetooth.BluetoothAdapter;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager; import android.net.TetheringManager;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -44,7 +43,7 @@ import org.robolectric.util.ReflectionHelpers;
public class BluetoothTetherPreferenceControllerTest { public class BluetoothTetherPreferenceControllerTest {
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private TetherEnabler mTetherEnabler; private TetherEnabler mTetherEnabler;
@@ -58,9 +57,8 @@ public class BluetoothTetherPreferenceControllerTest {
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
mSwitchPreference = spy(SwitchPreference.class); mSwitchPreference = spy(SwitchPreference.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn( when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
mConnectivityManager); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH"); mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH");
mController.setTetherEnabler(mTetherEnabler); mController.setTetherEnabler(mTetherEnabler);
ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference); ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
@@ -98,7 +96,7 @@ public class BluetoothTetherPreferenceControllerTest {
@Test @Test
public void shouldShow_noBluetoothTetherable() { public void shouldShow_noBluetoothTetherable() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }

View File

@@ -25,7 +25,6 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager;
import android.net.EthernetManager; import android.net.EthernetManager;
import android.net.TetheringManager; import android.net.TetheringManager;
@@ -49,7 +48,7 @@ public class EthernetTetherPreferenceControllerTest {
public MockitoRule mocks = MockitoJUnit.rule(); public MockitoRule mocks = MockitoJUnit.rule();
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private EthernetManager mEthernetManager; private EthernetManager mEthernetManager;
@Mock @Mock
@@ -64,9 +63,8 @@ public class EthernetTetherPreferenceControllerTest {
public void setUp() { public void setUp() {
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
mPreference = spy(SwitchPreference.class); mPreference = spy(SwitchPreference.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
.thenReturn(mConnectivityManager); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
when(mContext.getSystemService(Context.ETHERNET_SERVICE)).thenReturn(mEthernetManager); when(mContext.getSystemService(Context.ETHERNET_SERVICE)).thenReturn(mEthernetManager);
mController = new EthernetTetherPreferenceController(mContext, "ethernet"); mController = new EthernetTetherPreferenceController(mContext, "ethernet");
mController.setTetherEnabler(mTetherEnabler); mController.setTetherEnabler(mTetherEnabler);
@@ -105,7 +103,7 @@ public class EthernetTetherPreferenceControllerTest {
@Test @Test
public void shouldEnable_noTetherable() { public void shouldEnable_noTetherable() {
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
assertThat(mController.shouldEnable()).isFalse(); 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.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(context.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn( when(context.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn(
mNetworkPolicyManager); mNetworkPolicyManager);
when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
panReference.set(mBluetoothPan); panReference.set(mBluetoothPan);
mEnabler = spy(new TetherEnabler(context, mSwitchWidgetController, panReference)); mEnabler = spy(new TetherEnabler(context, mSwitchWidgetController, panReference));
ReflectionHelpers.setField(mEnabler, "mBluetoothAdapter", mBluetoothAdapter); ReflectionHelpers.setField(mEnabler, "mBluetoothAdapter", mBluetoothAdapter);
@@ -111,8 +111,8 @@ public class TetherEnablerTest {
@Test @Test
public void lifecycle_onStart_setCheckedCorrectly() { public void lifecycle_onStart_setCheckedCorrectly() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(USB_TETHERED); when(mTetheringManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
mEnabler.onStart(); mEnabler.onStart();
assertThat(mSwitchBar.isChecked()).isTrue(); assertThat(mSwitchBar.isChecked()).isTrue();
@@ -150,7 +150,7 @@ public class TetherEnablerTest {
mEnabler.onStart(); mEnabler.onStart();
mEnabler.startTethering(TetheringManager.TETHERING_WIFI); mEnabler.startTethering(TetheringManager.TETHERING_WIFI);
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
mEnabler.mOnStartTetheringCallback.onTetheringFailed(); mEnabler.mOnStartTetheringCallback.onTetheringFailed();
assertThat(mSwitchBar.isChecked()).isFalse(); assertThat(mSwitchBar.isChecked()).isFalse();
@@ -255,8 +255,8 @@ public class TetherEnablerTest {
@Test @Test
public void updateState_shouldEnableSwitchBarTethering() { public void updateState_shouldEnableSwitchBarTethering() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(USB_TETHERED); when(mTetheringManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
mSwitchWidgetController.setListener(mEnabler); mSwitchWidgetController.setListener(mEnabler);
mSwitchWidgetController.startListening(); mSwitchWidgetController.startListening();

View File

@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -56,7 +57,7 @@ public class TetherPreferenceControllerTest {
@Mock @Mock
private Context mContext; private Context mContext;
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private BluetoothAdapter mBluetoothAdapter; private BluetoothAdapter mBluetoothAdapter;
@Mock @Mock
@@ -69,7 +70,7 @@ public class TetherPreferenceControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mController = spy(TetherPreferenceController.class); mController = spy(TetherPreferenceController.class);
ReflectionHelpers.setField(mController, "mContext", mContext); ReflectionHelpers.setField(mController, "mContext", mContext);
ReflectionHelpers.setField(mController, "mConnectivityManager", mConnectivityManager); ReflectionHelpers.setField(mController, "mTetheringManager", mTetheringManager);
ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter); ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
ReflectionHelpers.setField(mController, "mPreference", mPreference); ReflectionHelpers.setField(mController, "mPreference", mPreference);
} }
@@ -106,16 +107,16 @@ public class TetherPreferenceControllerTest {
} }
@Test @Test
public void updateSummary_noPreference_noInteractionWithConnectivityManager() { public void updateSummary_noPreference_noInteractionWithTetheringManager() {
ReflectionHelpers.setField(mController, "mPreference", null); ReflectionHelpers.setField(mController, "mPreference", null);
mController.updateSummary(); mController.updateSummary();
verifyNoMoreInteractions(mConnectivityManager); verifyNoMoreInteractions(mTetheringManager);
} }
@Test @Test
public void updateSummary_wifiTethered_shouldShowHotspotMessage() { public void updateSummary_wifiTethered_shouldShowHotspotMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123"}); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"}); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"});
mController.updateSummary(); mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_off); verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
@@ -123,8 +124,8 @@ public class TetherPreferenceControllerTest {
@Test @Test
public void updateSummary_btThetherOn_shouldShowTetherMessage() { public void updateSummary_btThetherOn_shouldShowTetherMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123"}); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"}); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
mController.updateSummary(); mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_off_tether_on); verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
@@ -132,8 +133,8 @@ public class TetherPreferenceControllerTest {
@Test @Test
public void updateSummary_tetherOff_shouldShowTetherOffMessage() { public void updateSummary_tetherOff_shouldShowTetherOffMessage() {
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"}); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"}); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
mController.updateSummary(); mController.updateSummary();
verify(mPreference).setSummary(R.string.switch_off_text); verify(mPreference).setSummary(R.string.switch_off_text);
@@ -141,9 +142,9 @@ public class TetherPreferenceControllerTest {
@Test @Test
public void updateSummary_wifiBtTetherOn_shouldShowHotspotAndTetherMessage() { public void updateSummary_wifiBtTetherOn_shouldShowHotspotAndTetherMessage() {
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"}); when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"}); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"}); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"});
mController.updateSummary(); mController.updateSummary();
verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_on); 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 static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager;
import android.net.TetheringManager; import android.net.TetheringManager;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -43,7 +42,7 @@ import org.robolectric.util.ReflectionHelpers;
public class UsbTetherPreferenceControllerTest { public class UsbTetherPreferenceControllerTest {
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private TetherEnabler mTetherEnabler; private TetherEnabler mTetherEnabler;
@@ -56,9 +55,8 @@ public class UsbTetherPreferenceControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn( when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
mConnectivityManager); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
mController = new UsbTetherPreferenceController(mContext, "USB"); mController = new UsbTetherPreferenceController(mContext, "USB");
mController.setTetherEnabler(mTetherEnabler); mController.setTetherEnabler(mTetherEnabler);
mSwitchPreference = spy(SwitchPreference.class); mSwitchPreference = spy(SwitchPreference.class);
@@ -94,7 +92,7 @@ public class UsbTetherPreferenceControllerTest {
@Test @Test
public void shouldShow_noTetherableUsb() { public void shouldShow_noTetherableUsb() {
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
assertThat(mController.shouldShow()).isFalse(); assertThat(mController.shouldShow()).isFalse();
} }

View File

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

View File

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

View File

@@ -22,7 +22,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager; import android.net.TetheringManager;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -43,7 +43,7 @@ public class WifiTetherFooterPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext; private Context mContext;
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private WifiManager mWifiManager; private WifiManager mWifiManager;
@Mock @Mock
@@ -58,9 +58,8 @@ public class WifiTetherFooterPreferenceControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
.thenReturn(mConnectivityManager); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
mController = new WifiTetherFooterPreferenceController(mContext); mController = new WifiTetherFooterPreferenceController(mContext);
when(mScreen.findPreference(anyString())).thenReturn(mPreference); 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.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager; import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration; import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
@@ -53,7 +53,7 @@ public class WifiTetherPasswordPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext; private Context mContext;
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private WifiManager mWifiManager; private WifiManager mWifiManager;
@Mock @Mock
@@ -77,9 +77,8 @@ public class WifiTetherPasswordPreferenceControllerTest {
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig); when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
.thenReturn(mConnectivityManager); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources()); when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
when(mScreen.findPreference(anyString())).thenReturn(mPreference); 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 static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager; import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration; import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
@@ -56,7 +56,7 @@ public class WifiTetherPreferenceControllerTest {
private Context mContext; private Context mContext;
@Mock @Mock
private ConnectivityManager mConnectivityManager; private TetheringManager mTetheringManager;
@Mock @Mock
private WifiManager mWifiManager; private WifiManager mWifiManager;
@Mock @Mock
@@ -77,14 +77,13 @@ public class WifiTetherPreferenceControllerTest {
mLifecycle = new Lifecycle(mLifecycleOwner); mLifecycle = new Lifecycle(mLifecycleOwner);
FakeFeatureFactory.setupForTest(); FakeFeatureFactory.setupForTest();
mPreference = new PrimarySwitchPreference(RuntimeEnvironment.application); mPreference = new PrimarySwitchPreference(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
.thenReturn(mConnectivityManager);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mScreen.findPreference(anyString())).thenReturn(mPreference); when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build(); mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build();
when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration); 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, mController = new WifiTetherPreferenceController(mContext, mLifecycle,
false /* initSoftApManager */); false /* initSoftApManager */);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -92,7 +91,7 @@ public class WifiTetherPreferenceControllerTest {
@Test @Test
public void isAvailable_noTetherRegex_shouldReturnFalse() { public void isAvailable_noTetherRegex_shouldReturnFalse() {
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{}); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{});
mController = new WifiTetherPreferenceController(mContext, mLifecycle, mController = new WifiTetherPreferenceController(mContext, mLifecycle,
false /* initSoftApManager */); false /* initSoftApManager */);

View File

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

View File

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