Set Wifi scoring status when Adaptive Connectivity toggle status changes

Bug: 177440342

Test: make RunSettingsRoboTests
Test: manual

Signed-off-by: Mingguang Xu <mingguangxu@google.com>
Change-Id: Ic0a3ce834c9a55a8eab702b82adb4d27642ca543
This commit is contained in:
Mingguang Xu
2021-02-04 14:22:20 -08:00
parent f2d710cfd1
commit 107baf6216
2 changed files with 17 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.network; package com.android.settings.network;
import android.content.Context; import android.content.Context;
import android.net.wifi.WifiManager;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -28,8 +29,11 @@ import com.android.settings.core.TogglePreferenceController;
*/ */
public class AdaptiveConnectivityTogglePreferenceController extends TogglePreferenceController { public class AdaptiveConnectivityTogglePreferenceController extends TogglePreferenceController {
private final WifiManager mWifiManager;
public AdaptiveConnectivityTogglePreferenceController(Context context, String preferenceKey) { public AdaptiveConnectivityTogglePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
mWifiManager = context.getSystemService(WifiManager.class);
} }
@Override @Override
@@ -53,6 +57,7 @@ public class AdaptiveConnectivityTogglePreferenceController extends TogglePrefer
Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED, Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED,
isChecked ? 1 : 0); isChecked ? 1 : 0);
mWifiManager.setWifiScoringEnabled(isChecked);
return true; return true;
} }
} }

View File

@@ -19,8 +19,13 @@ package com.android.settings.network;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.net.wifi.WifiManager;
import android.provider.Settings; import android.provider.Settings;
import org.junit.Before; import org.junit.Before;
@@ -29,6 +34,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class AdaptiveConnectivityTogglePreferenceControllerTest { public class AdaptiveConnectivityTogglePreferenceControllerTest {
@@ -37,12 +43,16 @@ public class AdaptiveConnectivityTogglePreferenceControllerTest {
@Mock(answer = RETURNS_DEEP_STUBS) @Mock(answer = RETURNS_DEEP_STUBS)
private Context mContext; private Context mContext;
@Mock
WifiManager mWifiManager;
private AdaptiveConnectivityTogglePreferenceController mController; private AdaptiveConnectivityTogglePreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
mController = new AdaptiveConnectivityTogglePreferenceController(mContext, PREF_KEY); mController = new AdaptiveConnectivityTogglePreferenceController(mContext, PREF_KEY);
} }
@@ -61,6 +71,7 @@ public class AdaptiveConnectivityTogglePreferenceControllerTest {
assertThat(Settings.Secure.getInt(mContext.getContentResolver(), assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED, 1)) Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED, 1))
.isEqualTo(1); .isEqualTo(1);
verify(mWifiManager, atLeastOnce()).setWifiScoringEnabled(true);
} }
@Test @Test
@@ -73,5 +84,6 @@ public class AdaptiveConnectivityTogglePreferenceControllerTest {
assertThat(Settings.Secure.getInt(mContext.getContentResolver(), assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED, 1)) Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED, 1))
.isEqualTo(0); .isEqualTo(0);
verify(mWifiManager).setWifiScoringEnabled(false);
} }
} }