Observe NetworkCallback instead of polling

Switch from polling for the first connected WiFi network to observing
the currently connected WiFi network and associating that with the
preference at the time the preference is created or updated.

Whenever the ConnectedAccessPointPreference is removed or UI is stopped
unregister the callback.

Bug:68031656
Test: make RunSettingsRoboTests
Change-Id: I5d1ed83b6a13e8a83fae04bfdce8d0f13c2ba0ac
This commit is contained in:
Adam Newman
2018-03-19 21:09:52 -07:00
parent 2c1de66c58
commit 5178a9d07a
4 changed files with 149 additions and 61 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.wifi;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -32,7 +33,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
@@ -45,8 +45,6 @@ public class ConnectedAccessPointPreferenceTest {
private View mView;
@Mock
private ConnectedAccessPointPreference.OnGearClickListener mOnGearClickListener;
@Mock
private ConnectedAccessPointPreference.CaptivePortalStatus mCaptivePortalStatus;
private Context mContext;
private ConnectedAccessPointPreference mConnectedAccessPointPreference;
@@ -56,7 +54,7 @@ public class ConnectedAccessPointPreferenceTest {
mContext = RuntimeEnvironment.application;
mConnectedAccessPointPreference = new ConnectedAccessPointPreference(mAccessPoint, mContext,
null, 0 /* iconResId */, false /* forSavedNetworks */, mCaptivePortalStatus);
null, 0 /* iconResId */, false /* forSavedNetworks */);
mConnectedAccessPointPreference.setOnGearClickListener(mOnGearClickListener);
}
@@ -78,15 +76,13 @@ public class ConnectedAccessPointPreferenceTest {
@Test
public void testCaptivePortalStatus_isCaptivePortal_dividerDrawn() {
Mockito.when(mCaptivePortalStatus.isCaptivePortalNetwork()).thenReturn(true);
mConnectedAccessPointPreference.refresh();
mConnectedAccessPointPreference.setCaptivePortal(true);
assertThat(mConnectedAccessPointPreference.shouldShowDivider()).isTrue();
}
@Test
public void testCaptivePortalStatus_isNotCaptivePortal_dividerNotDrawn() {
Mockito.when(mCaptivePortalStatus.isCaptivePortalNetwork()).thenReturn(false);
mConnectedAccessPointPreference.refresh();
mConnectedAccessPointPreference.setCaptivePortal(false);
assertThat(mConnectedAccessPointPreference.shouldShowDivider()).isFalse();
}