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

Commit ada5c339 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Hide toggle to Turn on Wi-Fi automatically preference in Search...

Merge "Hide toggle to Turn on Wi-Fi automatically preference in Search settings" into tm-qpr-dev am: 06cc4ed4

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19816198



Change-Id: I6b16ef9121b890647e1ff49ee6e380b8bbdaa832
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1a7168a1 06cc4ed4
Loading
Loading
Loading
Loading
+18 −8
Original line number Original line Diff line number Diff line
@@ -89,6 +89,13 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i


    @Override
    @Override
    public int getAvailabilityStatus() {
    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;
        return AVAILABLE;
    }
    }


@@ -96,17 +103,16 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i
    public boolean isChecked() {
    public boolean isChecked() {
        return getWifiWakeupEnabled()
        return getWifiWakeupEnabled()
                && getWifiScanningEnabled()
                && getWifiScanningEnabled()
                && mLocationManager.isLocationEnabled();
                && getLocationEnabled();
    }
    }


    @Override
    @Override
    public boolean setChecked(boolean isChecked) {
    public boolean setChecked(boolean isChecked) {
        if (isChecked) {
        if (isChecked) {
            if (!getLocationEnabled()) {
                if (mFragment == null) {
                if (mFragment == null) {
                    throw new IllegalStateException("No fragment to start activity");
                    throw new IllegalStateException("No fragment to start activity");
                }
                }

            if (!mLocationManager.isLocationEnabled()) {
                final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                mFragment.startActivityForResult(intent, WIFI_WAKEUP_REQUEST_CODE);
                mFragment.startActivityForResult(intent, WIFI_WAKEUP_REQUEST_CODE);
                return false;
                return false;
@@ -128,7 +134,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i


    @Override
    @Override
    public CharSequence getSummary() {
    public CharSequence getSummary() {
        if (!mLocationManager.isLocationEnabled()) {
        if (!getLocationEnabled()) {
            return getNoLocationSummary();
            return getNoLocationSummary();
        } else {
        } else {
            return mContext.getText(R.string.wifi_wakeup_summary);
            return mContext.getText(R.string.wifi_wakeup_summary);
@@ -151,12 +157,16 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i
        if (requestCode != WIFI_WAKEUP_REQUEST_CODE) {
        if (requestCode != WIFI_WAKEUP_REQUEST_CODE) {
            return;
            return;
        }
        }
        if (mLocationManager.isLocationEnabled() && getWifiScanningEnabled()) {
        if (getLocationEnabled() && getWifiScanningEnabled()) {
            setWifiWakeupEnabled(true);
            setWifiWakeupEnabled(true);
            updateState(mPreference);
            updateState(mPreference);
        }
        }
    }
    }


    private boolean getLocationEnabled() {
        return mLocationManager.isLocationEnabled();
    }

    private boolean getWifiScanningEnabled() {
    private boolean getWifiScanningEnabled() {
        return mWifiManager.isScanAlwaysAvailable();
        return mWifiManager.isScanAlwaysAvailable();
    }
    }
+38 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settings.wifi;
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 com.google.common.truth.Truth.assertThat;


import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
@@ -68,6 +71,41 @@ public class WifiWakeupPreferenceControllerTest {
        doReturn(true).when(mLocationManager).isLocationEnabled();
        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_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
    @Test
    public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() {
    public void setChecked_scanEnableLocationEnable_wifiWakeupEnable() {
        when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false);
        when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false);