Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7896f49 authored by Sarah Fortune's avatar Sarah Fortune Committed by Android (Google) Code Review
Browse files

Merge "Disable the wifi wakeup preference when wifi scanning is disabled" into oc-dev

parents 3265c258 15d1e267
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1628,6 +1628,8 @@
    <string name="wifi_wakeup">Turn on Wi\u2011Fi automatically</string>
    <!-- Checkbox summary for option to enable Wi-Fi when high quality saved networks are nearby-->
    <string name="wifi_wakeup_summary">Wi\u2011Fi will turn back on near high\u2011quality saved networks, like your home network</string>
    <!-- Checkbox summary for Wi-Fi wakeup option to explain that Wi-Fi wakeup is disabled because Wi-Fi scanning is turned off -->
    <string name="wifi_wakeup_summary_scanning_disabled">Unavailable because Wi\u2011Fi scanning is turned off</string>
    <!-- Checkbox title for option to toggle poor network detection -->
    <string name="wifi_poor_network_detection">Avoid poor connections</string>
    <!-- Checkbox summary for option to toggle poor network detection -->
+13 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import com.android.settings.R;

import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
@@ -97,10 +98,20 @@ public class WifiWakeupPreferenceController extends PreferenceController impleme
            return;
        }
        final SwitchPreference enableWifiWakeup = (SwitchPreference) preference;

        enableWifiWakeup.setChecked(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.WIFI_WAKEUP_ENABLED, 0) == 1);
        enableWifiWakeup.setEnabled(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1);

        boolean wifiScanningEnabled = Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1;
        boolean networkRecommendationsEnabled = Settings.Global.getInt(
                mContext.getContentResolver(),
                Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1;
        enableWifiWakeup.setEnabled(networkRecommendationsEnabled && wifiScanningEnabled);

        enableWifiWakeup.setSummary(wifiScanningEnabled ?
                R.string.wifi_wakeup_summary :
                R.string.wifi_wakeup_summary_scanning_disabled);
    }

    class SettingObserver extends ContentObserver {
+19 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.wifi;

import static android.provider.Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED;
import static android.provider.Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE;
import static android.provider.Settings.Global.WIFI_WAKEUP_ENABLED;

import static com.google.common.truth.Truth.assertThat;
@@ -29,6 +30,7 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;

import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.lifecycle.Lifecycle;
@@ -52,6 +54,7 @@ public class WifiWakeupPreferenceControllerTest {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mController = new WifiWakeupPreferenceController(mContext, mock(Lifecycle.class));
        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
    }

    @Test
@@ -95,6 +98,7 @@ public class WifiWakeupPreferenceControllerTest {

        verify(preference).setChecked(true);
        verify(preference).setEnabled(true);
        verify(preference).setSummary(R.string.wifi_wakeup_summary);
    }

    @Test
@@ -107,5 +111,20 @@ public class WifiWakeupPreferenceControllerTest {

        verify(preference).setChecked(false);
        verify(preference).setEnabled(false);
        verify(preference).setSummary(R.string.wifi_wakeup_summary);
    }

    @Test
    public void updateState_preferenceSetUncheckedAndSetDisabledWhenWifiScanningDisabled() {
        final SwitchPreference preference = mock(SwitchPreference.class);
        Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 1);
        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);

        mController.updateState(preference);

        verify(preference).setChecked(true);
        verify(preference).setEnabled(false);
        verify(preference).setSummary(R.string.wifi_wakeup_summary_scanning_disabled);
    }
}