From a023de72a9906b5e749f118b350223926d40cd97 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Mon, 10 Feb 2020 12:15:23 -0800 Subject: [PATCH 1/2] Settings: Use new API for tethering auto shutdown Bug: 148514485 Test: m RunSettingsRoboTests -j ROBOTEST_FILTER= com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceControllerTest Test: Manually verified the toggle from Settings. Change-Id: I5f89c6149b9f2e7145ecb1cf656adb3d3e8f1bff --- ...WifiTetherAutoOffPreferenceController.java | 19 +++++--- ...TetherAutoOffPreferenceControllerTest.java | 46 +++++++++++++------ 2 files changed, 45 insertions(+), 20 deletions(-) diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java index 01a0b5707cb..b54a80f6b41 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java @@ -17,7 +17,8 @@ package com.android.settings.wifi.tether; import android.content.Context; -import android.provider.Settings; +import android.net.wifi.SoftApConfiguration; +import android.net.wifi.WifiManager; import androidx.preference.Preference; import androidx.preference.SwitchPreference; @@ -27,8 +28,11 @@ import com.android.settings.core.BasePreferenceController; public class WifiTetherAutoOffPreferenceController extends BasePreferenceController implements Preference.OnPreferenceChangeListener { + private final WifiManager mWifiManager; + public WifiTetherAutoOffPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); + mWifiManager = context.getSystemService(WifiManager.class); } @Override @@ -38,8 +42,8 @@ public class WifiTetherAutoOffPreferenceController extends BasePreferenceControl @Override public void updateState(Preference preference) { - final boolean settingsOn = Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.SOFT_AP_TIMEOUT_ENABLED, 1) != 0; + SoftApConfiguration softApConfiguration = mWifiManager.getSoftApConfiguration(); + final boolean settingsOn = softApConfiguration.isAutoShutdownEnabled(); ((SwitchPreference) preference).setChecked(settingsOn); } @@ -47,8 +51,11 @@ public class WifiTetherAutoOffPreferenceController extends BasePreferenceControl @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean settingsOn = (Boolean) newValue; - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.SOFT_AP_TIMEOUT_ENABLED, settingsOn ? 1 : 0); - return true; + SoftApConfiguration softApConfiguration = mWifiManager.getSoftApConfiguration(); + SoftApConfiguration newSoftApConfiguration = + new SoftApConfiguration.Builder(softApConfiguration) + .setAutoShutdownEnabled(settingsOn) + .build(); + return mWifiManager.setSoftApConfiguration(newSoftApConfiguration); } } diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java index f027147eb23..fbc4aaa3b90 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java @@ -18,14 +18,21 @@ package com.android.settings.wifi.tether; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.Context; -import android.provider.Settings; +import android.net.wifi.SoftApConfiguration; +import android.net.wifi.WifiManager; import androidx.preference.SwitchPreference; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -34,17 +41,23 @@ import org.robolectric.RuntimeEnvironment; public class WifiTetherAutoOffPreferenceControllerTest { private static final String KEY_PREF = "wifi_tether_auto_off"; - private static final int ON = 1; - private static final int OFF = 0; private Context mContext; private WifiTetherAutoOffPreferenceController mController; private SwitchPreference mSwitchPreference; + @Mock + private WifiManager mWifiManager; + private SoftApConfiguration mSoftApConfiguration; @Before public void setup() { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); + + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); + mSoftApConfiguration = new SoftApConfiguration.Builder().build(); + when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration); + mController = new WifiTetherAutoOffPreferenceController(mContext, KEY_PREF); mSwitchPreference = new SwitchPreference(mContext); } @@ -53,19 +66,19 @@ public class WifiTetherAutoOffPreferenceControllerTest { public void testOnPreferenceChange_toggleOn_settingsOn() { mController.onPreferenceChange(null, true); - assertThat(getAutoOffSetting()).isEqualTo(ON); + assertThat(getAutoOffSetting()).isEqualTo(true); } @Test public void testOnPreferenceChange_toggleOff_settingsOff() { mController.onPreferenceChange(null, false); - assertThat(getAutoOffSetting()).isEqualTo(OFF); + assertThat(getAutoOffSetting()).isEqualTo(false); } @Test public void testUpdateState_settingsOn_toggleOn() { - setAutoOffSetting(ON); + setAutoOffSetting(true); mController.updateState(mSwitchPreference); @@ -74,7 +87,7 @@ public class WifiTetherAutoOffPreferenceControllerTest { @Test public void testUpdateState_settingsOff_toggleOff() { - setAutoOffSetting(OFF); + setAutoOffSetting(false); mController.updateState(mSwitchPreference); @@ -88,13 +101,18 @@ public class WifiTetherAutoOffPreferenceControllerTest { assertThat(mSwitchPreference.isChecked()).isTrue(); } - private int getAutoOffSetting() { - return Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.SOFT_AP_TIMEOUT_ENABLED, OFF); + private boolean getAutoOffSetting() { + ArgumentCaptor softApConfigCaptor = + ArgumentCaptor.forClass(SoftApConfiguration.class); + verify(mWifiManager).setSoftApConfiguration(softApConfigCaptor.capture()); + return softApConfigCaptor.getValue().isAutoShutdownEnabled(); } - private void setAutoOffSetting(int config) { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.SOFT_AP_TIMEOUT_ENABLED, config); + private void setAutoOffSetting(boolean config) { + mSoftApConfiguration = + new SoftApConfiguration.Builder(mSoftApConfiguration) + .setAutoShutdownEnabled(config) + .build(); + when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration); } } From a7e96dd80e136b9243ed74424d818f41465519e9 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Wed, 12 Feb 2020 14:17:49 -0800 Subject: [PATCH 2/2] Settings: Use new API for setting wifi scan always on Bug: 148514485 Test: Manually verified the toggle from Settings Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi Change-Id: I0a55b7212c97c11d50b0a05eec743e8ebe9ea6d8 --- .../LocationScanningPreferenceController.java | 7 +++-- .../WifiScanningPreferenceController.java | 12 ++++----- .../settings/wifi/WifiScanModeActivity.java | 4 +-- .../wifi/WifiScanningRequiredFragment.java | 5 ++-- .../android/settings/wifi/WifiSettings.java | 7 +++-- .../android/settings/wifi/WifiSettings2.java | 7 +++-- .../wifi/WifiWakeupPreferenceController.java | 3 +-- ...ationScanningPreferenceControllerTest.java | 24 ++++++++++------- .../WifiScanningPreferenceControllerTest.java | 27 ++++++++++--------- .../WifiScanningRequiredFragmentTest.java | 14 +++++----- .../settings/wifi/WifiSettings2Test.java | 2 +- .../settings/wifi/WifiSettingsTest.java | 2 +- .../WifiWakeupPreferenceControllerTest.java | 19 +++++-------- 13 files changed, 66 insertions(+), 67 deletions(-) diff --git a/src/com/android/settings/location/LocationScanningPreferenceController.java b/src/com/android/settings/location/LocationScanningPreferenceController.java index 436676df558..a0c32412113 100644 --- a/src/com/android/settings/location/LocationScanningPreferenceController.java +++ b/src/com/android/settings/location/LocationScanningPreferenceController.java @@ -17,6 +17,7 @@ package com.android.settings.location; import android.content.Context; +import android.net.wifi.WifiManager; import android.provider.Settings; import com.android.settings.R; @@ -25,14 +26,16 @@ import com.android.settings.core.BasePreferenceController; public class LocationScanningPreferenceController extends BasePreferenceController { + private final WifiManager mWifiManager; + public LocationScanningPreferenceController(Context context, String key) { super(context, key); + mWifiManager = context.getSystemService(WifiManager.class); } @Override public CharSequence getSummary() { - final boolean wifiScanOn = Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; + final boolean wifiScanOn = mWifiManager.isScanAlwaysAvailable(); final boolean bleScanOn = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1; int resId; diff --git a/src/com/android/settings/location/WifiScanningPreferenceController.java b/src/com/android/settings/location/WifiScanningPreferenceController.java index 234ec5e53e1..2e393a26382 100644 --- a/src/com/android/settings/location/WifiScanningPreferenceController.java +++ b/src/com/android/settings/location/WifiScanningPreferenceController.java @@ -14,7 +14,7 @@ package com.android.settings.location; import android.content.Context; -import android.provider.Settings; +import android.net.wifi.WifiManager; import androidx.preference.Preference; import androidx.preference.SwitchPreference; @@ -26,9 +26,11 @@ public class WifiScanningPreferenceController extends AbstractPreferenceControll implements PreferenceControllerMixin { private static final String KEY_WIFI_SCAN_ALWAYS_AVAILABLE = "wifi_always_scanning"; + private final WifiManager mWifiManager; public WifiScanningPreferenceController(Context context) { super(context); + mWifiManager = context.getSystemService(WifiManager.class); } @Override @@ -43,17 +45,13 @@ public class WifiScanningPreferenceController extends AbstractPreferenceControll @Override public void updateState(Preference preference) { - ((SwitchPreference) preference).setChecked( - Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1); + ((SwitchPreference) preference).setChecked(mWifiManager.isScanAlwaysAvailable()); } @Override public boolean handlePreferenceTreeClick(Preference preference) { if (KEY_WIFI_SCAN_ALWAYS_AVAILABLE.equals(preference.getKey())) { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, - ((SwitchPreference) preference).isChecked() ? 1 : 0); + mWifiManager.setScanAlwaysAvailable(((SwitchPreference) preference).isChecked()); return true; } return false; diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java index 4dc1b97a00e..024dc104125 100644 --- a/src/com/android/settings/wifi/WifiScanModeActivity.java +++ b/src/com/android/settings/wifi/WifiScanModeActivity.java @@ -24,7 +24,6 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.net.wifi.WifiManager; import android.os.Bundle; -import android.provider.Settings; import android.text.TextUtils; import androidx.appcompat.app.AlertDialog; @@ -80,8 +79,7 @@ public class WifiScanModeActivity extends FragmentActivity { } private void doPositiveClick() { - Settings.Global.putInt(getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + getApplicationContext().getSystemService(WifiManager.class).setScanAlwaysAvailable(true); setResult(RESULT_OK); finish(); } diff --git a/src/com/android/settings/wifi/WifiScanningRequiredFragment.java b/src/com/android/settings/wifi/WifiScanningRequiredFragment.java index fa9b21a518e..0f81edba021 100644 --- a/src/com/android/settings/wifi/WifiScanningRequiredFragment.java +++ b/src/com/android/settings/wifi/WifiScanningRequiredFragment.java @@ -23,8 +23,8 @@ import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.net.wifi.WifiManager; import android.os.Bundle; -import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; @@ -69,8 +69,7 @@ public class WifiScanningRequiredFragment extends InstrumentedDialogFragment imp ContentResolver contentResolver = context.getContentResolver(); switch(which) { case DialogInterface.BUTTON_POSITIVE: - Settings.Global.putInt(contentResolver, - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + context.getSystemService(WifiManager.class).setScanAlwaysAvailable(true); Toast.makeText( context, context.getString(R.string.wifi_settings_scanning_required_enabled), diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index f563e326698..bba90016bb2 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -1048,8 +1048,7 @@ public class WifiSettings extends RestrictedSettingsFragment final PowerManager powerManager = context.getSystemService(PowerManager.class); final ContentResolver contentResolver = context.getContentResolver(); return mWifiManager.isAutoWakeupEnabled() - && Settings.Global.getInt(contentResolver, - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1 + && mWifiManager.isScanAlwaysAvailable() && Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) == 0 && !powerManager.isPowerSaveMode(); @@ -1060,8 +1059,8 @@ public class WifiSettings extends RestrictedSettingsFragment // Don't use WifiManager.isScanAlwaysAvailable() to check the Wi-Fi scanning mode. Instead, // read the system settings directly. Because when the device is in Airplane mode, even if // Wi-Fi scanning mode is on, WifiManager.isScanAlwaysAvailable() still returns "off". - final boolean wifiScanningMode = Settings.Global.getInt(getActivity().getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; + // TODO(b/149421497): Fix this? + final boolean wifiScanningMode = mWifiManager.isScanAlwaysAvailable(); final CharSequence description = wifiScanningMode ? getText(R.string.wifi_scan_notify_text) : getText(R.string.wifi_scan_notify_text_scanning_off); final LinkifyUtils.OnClickListener clickListener = diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java index 86effea9292..1b3a7313fc8 100644 --- a/src/com/android/settings/wifi/WifiSettings2.java +++ b/src/com/android/settings/wifi/WifiSettings2.java @@ -852,8 +852,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment final PowerManager powerManager = context.getSystemService(PowerManager.class); final ContentResolver contentResolver = context.getContentResolver(); return mWifiManager.isAutoWakeupEnabled() - && Settings.Global.getInt(contentResolver, - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1 + && mWifiManager.isScanAlwaysAvailable() && Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) == 0 && !powerManager.isPowerSaveMode(); @@ -864,8 +863,8 @@ public class WifiSettings2 extends RestrictedSettingsFragment // Don't use WifiManager.isScanAlwaysAvailable() to check the Wi-Fi scanning mode. Instead, // read the system settings directly. Because when the device is in Airplane mode, even if // Wi-Fi scanning mode is on, WifiManager.isScanAlwaysAvailable() still returns "off". - final boolean wifiScanningMode = Settings.Global.getInt(getActivity().getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; + // TODO(b/149421497): Fix this? + final boolean wifiScanningMode = mWifiManager.isScanAlwaysAvailable(); final CharSequence description = wifiScanningMode ? getText(R.string.wifi_scan_notify_text) : getText(R.string.wifi_scan_notify_text_scanning_off); final LinkifyUtils.OnClickListener clickListener = diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index d2a4a98c0f9..e9fd35004da 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -153,8 +153,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i } private boolean getWifiScanningEnabled() { - return Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; + return mWifiManager.isScanAlwaysAvailable(); } private void showScanningDialog() { diff --git a/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java index 28403b1fb11..149276658b3 100644 --- a/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java @@ -18,7 +18,11 @@ package com.android.settings.location; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + import android.content.Context; +import android.net.wifi.WifiManager; import android.provider.Settings; import com.android.settings.R; @@ -26,18 +30,24 @@ import com.android.settings.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class LocationScanningPreferenceControllerTest { + @Mock + private WifiManager mWifiManager; private Context mContext; private LocationScanningPreferenceController mController; @Before public void setUp() { - mContext = RuntimeEnvironment.application; + MockitoAnnotations.initMocks(this); + mContext = spy(RuntimeEnvironment.application); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); mController = new LocationScanningPreferenceController(mContext, "key"); } @@ -48,8 +58,7 @@ public class LocationScanningPreferenceControllerTest { @Test public void testLocationScanning_WifiOnBleOn() { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 1); assertThat(mController.getSummary()).isEqualTo( @@ -58,8 +67,7 @@ public class LocationScanningPreferenceControllerTest { @Test public void testLocationScanning_WifiOnBleOff() { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0); assertThat(mController.getSummary()).isEqualTo( @@ -68,8 +76,7 @@ public class LocationScanningPreferenceControllerTest { @Test public void testLocationScanning_WifiOffBleOn() { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 1); assertThat(mController.getSummary()).isEqualTo( @@ -78,8 +85,7 @@ public class LocationScanningPreferenceControllerTest { @Test public void testLocationScanning_WifiOffBleOff() { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0); assertThat(mController.getSummary()).isEqualTo( diff --git a/tests/robotests/src/com/android/settings/location/WifiScanningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/WifiScanningPreferenceControllerTest.java index 53acda314b8..1cfb70c374f 100644 --- a/tests/robotests/src/com/android/settings/location/WifiScanningPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/WifiScanningPreferenceControllerTest.java @@ -15,14 +15,13 @@ */ package com.android.settings.location; -import static com.google.common.truth.Truth.assertThat; - +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.ContentResolver; -import android.provider.Settings; -import android.provider.Settings.Global; +import android.content.Context; +import android.net.wifi.WifiManager; import androidx.preference.SwitchPreference; @@ -39,7 +38,10 @@ public class WifiScanningPreferenceControllerTest { @Mock private SwitchPreference mPreference; + @Mock + private WifiManager mWifiManager; + private Context mContext; private ContentResolver mContentResolver; private WifiScanningPreferenceController mController; @@ -47,13 +49,16 @@ public class WifiScanningPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContentResolver = RuntimeEnvironment.application.getContentResolver(); - mController = new WifiScanningPreferenceController(RuntimeEnvironment.application); + mContext = spy(RuntimeEnvironment.application); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); + + mController = new WifiScanningPreferenceController(mContext); when(mPreference.getKey()).thenReturn(mController.getPreferenceKey()); } @Test public void updateState_wifiScanningEnabled_shouldCheckedPreference() { - Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); mController.updateState(mPreference); @@ -62,7 +67,7 @@ public class WifiScanningPreferenceControllerTest { @Test public void updateState_wifiScanningDisabled_shouldUncheckedPreference() { - Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); mController.updateState(mPreference); @@ -75,9 +80,7 @@ public class WifiScanningPreferenceControllerTest { mController.handlePreferenceTreeClick(mPreference); - final int scanAlways = - Settings.Global.getInt(mContentResolver, Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); - assertThat(scanAlways).isEqualTo(1); + verify(mWifiManager).setScanAlwaysAvailable(true); } @Test @@ -86,8 +89,6 @@ public class WifiScanningPreferenceControllerTest { mController.handlePreferenceTreeClick(mPreference); - final int scanAlways = - Settings.Global.getInt(mContentResolver, Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); - assertThat(scanAlways).isEqualTo(0); + verify(mWifiManager).setScanAlwaysAvailable(false); } } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java index 9291e0bb3f2..e5c730f7283 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java @@ -15,8 +15,6 @@ */ package com.android.settings.wifi; -import static com.google.common.truth.Truth.assertThat; - import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; @@ -27,10 +25,12 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; +import android.net.wifi.WifiManager; import android.provider.Settings; import androidx.appcompat.app.AlertDialog; @@ -53,6 +53,8 @@ public class WifiScanningRequiredFragmentTest { private Context mContext; private ContentResolver mResolver; @Mock + private WifiManager mWifiManager; + @Mock private Fragment mCallbackFragment; @Mock private AlertDialog.Builder mBuilder; @@ -61,12 +63,13 @@ public class WifiScanningRequiredFragmentTest { public void setUp() { MockitoAnnotations.initMocks(this); mFragment = spy(WifiScanningRequiredFragment.newInstance()); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); mResolver = mContext.getContentResolver(); doReturn(mContext).when(mFragment).getContext(); mFragment.setTargetFragment(mCallbackFragment, 1000); - Settings.Global.putInt(mResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); } @Test @@ -74,8 +77,7 @@ public class WifiScanningRequiredFragmentTest { throws Settings.SettingNotFoundException { mFragment.onClick(null, DialogInterface.BUTTON_POSITIVE); - assertThat(Settings.Global.getInt(mResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE)) - .isEqualTo(1); + verify(mWifiManager).setScanAlwaysAvailable(false); } @Test diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java index e5b5eb10a02..2af87fe63d1 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java @@ -163,7 +163,7 @@ public class WifiSettings2Test { public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() { final ContentResolver contentResolver = mContext.getContentResolver(); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(contentResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0); when(mPowerManager.isPowerSaveMode()).thenReturn(false); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java index 3dd0da9f18e..eae75d601d0 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java @@ -248,7 +248,7 @@ public class WifiSettingsTest { public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() { final ContentResolver contentResolver = mContext.getContentResolver(); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(contentResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0); when(mPowerManager.isPowerSaveMode()).thenReturn(false); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java index a41d7c85d32..8face4a757d 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java @@ -16,22 +16,17 @@ package com.android.settings.wifi; -import static android.provider.Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE; - import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.location.LocationManager; import android.net.wifi.WifiManager; -import android.provider.Settings; - import android.text.TextUtils; -import androidx.preference.Preference; + import androidx.preference.SwitchPreference; import com.android.settings.R; @@ -69,14 +64,14 @@ public class WifiWakeupPreferenceControllerTest { mController.mPreference = mPreference; mController.mWifiManager = mWifiManager; - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); doReturn(true).when(mLocationManager).isLocationEnabled(); } @Test public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() { when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false); - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); doReturn(true).when(mLocationManager).isLocationEnabled(); mController.setChecked(true); @@ -88,7 +83,7 @@ public class WifiWakeupPreferenceControllerTest { public void updateState_wifiWakeupEnableScanningDisable_wifiWakeupDisabled() { final SwitchPreference preference = new SwitchPreference(mContext); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); doReturn(true).when(mLocationManager).isLocationEnabled(); mController.updateState(preference); @@ -102,7 +97,7 @@ public class WifiWakeupPreferenceControllerTest { public void updateState_preferenceSetCheckedWhenWakeupSettingEnabled() { final SwitchPreference preference = new SwitchPreference(mContext); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); doReturn(true).when(mLocationManager).isLocationEnabled(); mController.updateState(preference); @@ -128,7 +123,7 @@ public class WifiWakeupPreferenceControllerTest { public void updateState_preferenceSetUncheckedWhenWifiScanningDisabled() { final SwitchPreference preference = new SwitchPreference(mContext); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); mController.updateState(preference); @@ -165,7 +160,7 @@ public class WifiWakeupPreferenceControllerTest { public void updateState_preferenceSetUncheckedWhenWifiScanningDisabledLocationEnabled() { final SwitchPreference preference = new SwitchPreference(mContext); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); - Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); doReturn(false).when(mLocationManager).isLocationEnabled(); mController.updateState(preference);