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

Commit 12970297 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Always show wifi wake setting."

parents d1afc3e4 38100366
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -63,10 +63,7 @@ public class ConfigureWifiSettings extends DashboardFragment {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        int tileLimit = 1;
        if (mWifiWakeupPreferenceController.isAvailable()) {
            tileLimit++;
        }
        int tileLimit = 2;
        if (mUseOpenWifiPreferenceController.isAvailable()) {
            tileLimit++;
        }
@@ -82,8 +79,7 @@ public class ConfigureWifiSettings extends DashboardFragment {
    protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
        final NetworkScoreManagerWrapper networkScoreManagerWrapper =
                new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class));
        mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(
                context, getLifecycle());
        mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(context);
        mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
                networkScoreManagerWrapper, getLifecycle());
        final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+4 −13
Original line number Diff line number Diff line
@@ -911,17 +911,10 @@ public class WifiSettings extends RestrictedSettingsFragment

    private void setAdditionalSettingsSummaries() {
        mAdditionalSettingsPreferenceCategory.addPreference(mConfigureWifiSettingsPreference);
        final int defaultWakeupAvailable = getResources().getInteger(
                com.android.internal.R.integer.config_wifi_wakeup_available);
        boolean wifiWakeupAvailable = Settings.Global.getInt(
                getContentResolver(), Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultWakeupAvailable)
                == 1;
        if (wifiWakeupAvailable) {
        mConfigureWifiSettingsPreference.setSummary(getString(
                isWifiWakeupEnabled()
                        ? R.string.wifi_configure_settings_preference_summary_wakeup_on
                        : R.string.wifi_configure_settings_preference_summary_wakeup_off));
        }
        int numSavedNetworks = mWifiTracker.getNumSavedNetworks();
        if (numSavedNetworks > 0) {
            mAdditionalSettingsPreferenceCategory.addPreference(mSavedNetworksPreference);
@@ -942,8 +935,6 @@ public class WifiSettings extends RestrictedSettingsFragment
                        Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1
                && Settings.Global.getInt(contentResolver,
                        Settings.Global.AIRPLANE_MODE_ON, 0) == 0
                && Settings.Global.getInt(contentResolver,
                        Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1
                && !powerManager.isPowerSaveMode();
    }

+7 −64
Original line number Diff line number Diff line
@@ -31,52 +31,28 @@ import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.wrapper.NetworkScoreManagerWrapper;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;

/**
 * {@link PreferenceControllerMixin} that controls whether the Wi-Fi Wakeup feature should be
 * enabled.
 */
public class WifiWakeupPreferenceController extends AbstractPreferenceController
        implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause {
        implements PreferenceControllerMixin {

    private static final String KEY_ENABLE_WIFI_WAKEUP = "enable_wifi_wakeup";
    private SettingObserver mSettingObserver;

    public WifiWakeupPreferenceController(Context context, Lifecycle lifecycle) {
    public WifiWakeupPreferenceController(Context context) {
        super(context);
        lifecycle.addObserver(this);
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mSettingObserver = new SettingObserver(screen.findPreference(KEY_ENABLE_WIFI_WAKEUP));
    }

    @Override
    public void onResume() {
        if (mSettingObserver != null) {
            mSettingObserver.register(mContext.getContentResolver(), true /* register */);
        }
    }

    @Override
    public void onPause() {
        if (mSettingObserver != null) {
            mSettingObserver.register(mContext.getContentResolver(), false /* register */);
        }
    }

    @Override
    public boolean isAvailable() {
        final int defaultValue = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_wifi_wakeup_available);
        return Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultValue) == 1;
      return true;
    }

    @Override
@@ -110,45 +86,12 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController

        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.setEnabled(wifiScanningEnabled);

        if (!networkRecommendationsEnabled) {
            enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scoring_disabled);
        } else if (!wifiScanningEnabled) {
            enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled);
        } else {
        if (wifiScanningEnabled) {
            enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary);
        }
    }

    class SettingObserver extends ContentObserver {
        private final Uri NETWORK_RECOMMENDATIONS_ENABLED_URI =
                Settings.Global.getUriFor(Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED);

        private final Preference mPreference;

        public SettingObserver(Preference preference) {
            super(new Handler());
            mPreference = preference;
        }

        public void register(ContentResolver cr, boolean register) {
            if (register) {
                cr.registerContentObserver(NETWORK_RECOMMENDATIONS_ENABLED_URI, false, this);
        } else {
                cr.unregisterContentObserver(this);
            }
        }

        @Override
        public void onChange(boolean selfChange, Uri uri) {
            super.onChange(selfChange, uri);
            if (NETWORK_RECOMMENDATIONS_ENABLED_URI.equals(uri)) {
                updateState(mPreference);
            }
            enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled);
        }
    }
}
+1 −33
Original line number Diff line number Diff line
@@ -16,9 +16,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_AVAILABLE;
import static android.provider.Settings.Global.WIFI_WAKEUP_ENABLED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
@@ -33,7 +31,6 @@ import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.core.lifecycle.Lifecycle;

import org.junit.After;
import org.junit.Before;
@@ -59,12 +56,8 @@ public class WifiWakeupPreferenceControllerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mController = new WifiWakeupPreferenceController(
                mContext, mock(Lifecycle.class));
        mController = new WifiWakeupPreferenceController(mContext);
        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
        Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 1);
        SettingsShadowResources.overrideResource(
                com.android.internal.R.integer.config_wifi_wakeup_available, 0);
    }

    @After
@@ -72,18 +65,6 @@ public class WifiWakeupPreferenceControllerTest {
        SettingsShadowResources.reset();
    }

    @Test
    public void testIsAvailable_returnsFalseWhenSettingIsNotAvailable() {
        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 0);
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void testIsAvailable_returnsTrueWhenSettingIsAvailable() {
        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 1);
        assertThat(mController.isAvailable()).isTrue();
    }

    @Test
    public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() {
        final SwitchPreference pref = new SwitchPreference(mContext);
@@ -146,17 +127,4 @@ public class WifiWakeupPreferenceControllerTest {
        verify(preference).setEnabled(false);
        verify(preference).setSummary(R.string.wifi_wakeup_summary_scanning_disabled);
    }

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

        mController.updateState(preference);

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