Loading src/com/android/settings/wifi/WifiWakeupPreferenceController.java +15 −4 Original line number Diff line number Diff line Loading @@ -89,6 +89,13 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public int getAvailabilityStatus() { // Since mFragment is set only when entering Network preferences settings. So when // mFragment == null, we can assume that the object is created by Search settings. // When Search settings is called, if the dependent condition is not enabled, then // return DISABLED_DEPENDENT_SETTING to hide the toggle. if (mFragment == null && (!getLocationEnabled() || !getWifiScanningEnabled())) { return DISABLED_DEPENDENT_SETTING; } return AVAILABLE; } Loading @@ -96,7 +103,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i public boolean isChecked() { return getWifiWakeupEnabled() && getWifiScanningEnabled() && mLocationManager.isLocationEnabled(); && getLocationEnabled(); } @Override Loading @@ -106,7 +113,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i throw new IllegalStateException("No fragment to start activity"); } if (!mLocationManager.isLocationEnabled()) { if (!getLocationEnabled()) { final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); mFragment.startActivityForResult(intent, WIFI_WAKEUP_REQUEST_CODE); return false; Loading @@ -128,7 +135,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public CharSequence getSummary() { if (!mLocationManager.isLocationEnabled()) { if (!getLocationEnabled()) { return getNoLocationSummary(); } else { return mContext.getText(R.string.wifi_wakeup_summary); Loading @@ -151,12 +158,16 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i if (requestCode != WIFI_WAKEUP_REQUEST_CODE) { return; } if (mLocationManager.isLocationEnabled() && getWifiScanningEnabled()) { if (getLocationEnabled() && getWifiScanningEnabled()) { setWifiWakeupEnabled(true); updateState(mPreference); } } private boolean getLocationEnabled() { return mLocationManager.isLocationEnabled(); } private boolean getWifiScanningEnabled() { return mWifiManager.isScanAlwaysAvailable(); } Loading tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.settings.wifi; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; Loading Loading @@ -68,6 +71,29 @@ public class WifiWakeupPreferenceControllerTest { doReturn(true).when(mLocationManager).isLocationEnabled(); } @Test public void getAvailabilityStatus_fragmentIsNotNull_returnAvailable() { mController.setFragment(mFragment); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_fragmentIsNullAndLocationDisabled_returnDisabled() { mController.setFragment(null); when(mLocationManager.isLocationEnabled()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); } @Test public void getAvailabilityStatus_fragmentIsNullAndWifiScanDisabled_returnDisabled() { mController.setFragment(null); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); } @Test public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() { when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false); Loading Loading
src/com/android/settings/wifi/WifiWakeupPreferenceController.java +15 −4 Original line number Diff line number Diff line Loading @@ -89,6 +89,13 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public int getAvailabilityStatus() { // Since mFragment is set only when entering Network preferences settings. So when // mFragment == null, we can assume that the object is created by Search settings. // When Search settings is called, if the dependent condition is not enabled, then // return DISABLED_DEPENDENT_SETTING to hide the toggle. if (mFragment == null && (!getLocationEnabled() || !getWifiScanningEnabled())) { return DISABLED_DEPENDENT_SETTING; } return AVAILABLE; } Loading @@ -96,7 +103,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i public boolean isChecked() { return getWifiWakeupEnabled() && getWifiScanningEnabled() && mLocationManager.isLocationEnabled(); && getLocationEnabled(); } @Override Loading @@ -106,7 +113,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i throw new IllegalStateException("No fragment to start activity"); } if (!mLocationManager.isLocationEnabled()) { if (!getLocationEnabled()) { final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); mFragment.startActivityForResult(intent, WIFI_WAKEUP_REQUEST_CODE); return false; Loading @@ -128,7 +135,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public CharSequence getSummary() { if (!mLocationManager.isLocationEnabled()) { if (!getLocationEnabled()) { return getNoLocationSummary(); } else { return mContext.getText(R.string.wifi_wakeup_summary); Loading @@ -151,12 +158,16 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i if (requestCode != WIFI_WAKEUP_REQUEST_CODE) { return; } if (mLocationManager.isLocationEnabled() && getWifiScanningEnabled()) { if (getLocationEnabled() && getWifiScanningEnabled()) { setWifiWakeupEnabled(true); updateState(mPreference); } } private boolean getLocationEnabled() { return mLocationManager.isLocationEnabled(); } private boolean getWifiScanningEnabled() { return mWifiManager.isScanAlwaysAvailable(); } Loading
tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.settings.wifi; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; Loading Loading @@ -68,6 +71,29 @@ public class WifiWakeupPreferenceControllerTest { doReturn(true).when(mLocationManager).isLocationEnabled(); } @Test public void getAvailabilityStatus_fragmentIsNotNull_returnAvailable() { mController.setFragment(mFragment); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_fragmentIsNullAndLocationDisabled_returnDisabled() { mController.setFragment(null); when(mLocationManager.isLocationEnabled()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); } @Test public void getAvailabilityStatus_fragmentIsNullAndWifiScanDisabled_returnDisabled() { mController.setFragment(null); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); } @Test public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() { when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false); Loading