diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index 066242ca2c7..df48129615e 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -109,11 +109,11 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public boolean setChecked(boolean isChecked) { if (isChecked) { - if (mFragment == null) { - throw new IllegalStateException("No fragment to start activity"); - } - if (!getLocationEnabled()) { + if (mFragment == null) { + throw new IllegalStateException("No fragment to start activity"); + } + final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); mFragment.startActivityForResult(intent, WIFI_WAKEUP_REQUEST_CODE); return false; diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java index ce4bfed01b1..62d6fb8fd07 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java @@ -94,6 +94,18 @@ public class WifiWakeupPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); } + @Test + public void setChecked_mFragmentIsNullLocationEnable_wifiWakeupEnable() { + mController.setFragment(null); + when(mLocationManager.isLocationEnabled()).thenReturn(true); + when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); + when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false); + + mController.setChecked(true); + + verify(mWifiManager).setAutoWakeupEnabled(true); + } + @Test public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() { when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false);