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

Commit f509d526 authored by Sundeep Ghuman's avatar Sundeep Ghuman Committed by android-build-merger
Browse files

Merge "Synchronously update APs in during forceUpdate." into oc-dev am: 6bdbc4ab

am: 17bc6459

Change-Id: I02b3ff391b10ed1f2ced5b7149c77b68b90fa63e
parents 1ab0f123 17bc6459
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -234,10 +234,19 @@ public class WifiTracker {
    }

    /**
     * Forces an update of the wifi networks when not scanning.
     * Synchronously update the list of access points with the latest information.
     */
    public void forceUpdate() {
        mWorkHandler.removeMessages(WorkHandler.MSG_UPDATE_ACCESS_POINTS);

        mLastInfo = mWifiManager.getConnectionInfo();
        mLastNetworkInfo = mConnectivityManager.getNetworkInfo(mWifiManager.getCurrentNetwork());
        updateAccessPoints();

        // Synchronously copy access points
        mMainHandler.removeMessages(MainHandler.MSG_ACCESS_POINT_CHANGED);
        mMainHandler.handleMessage(
                Message.obtain(mMainHandler, MainHandler.MSG_ACCESS_POINT_CHANGED));
    }

    /**
+29 −4
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.atLeast;
@@ -33,12 +32,13 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkBadging;
import android.net.NetworkInfo;
import android.net.NetworkKey;
import android.net.NetworkScoreManager;
import android.net.ScoredNetwork;
import android.net.RssiCurve;
import android.net.ScoredNetwork;
import android.net.WifiKey;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
@@ -47,10 +47,10 @@ import android.net.wifi.WifiManager;
import android.net.wifi.WifiNetworkScoreCache;
import android.net.wifi.WifiSsid;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.SystemClock;
import android.provider.Settings;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
@@ -62,8 +62,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;

import org.mockito.ArgumentCaptor;
import org.mockito.Matchers;
import org.mockito.Captor;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock;
@@ -666,4 +666,29 @@ public class WifiTrackerTest {
        verify(mockWifiManager, atLeast(2)).getConnectionInfo();
        assertThat(tracker.getAccessPoints().get(0).getRssi()).isEqualTo(newRssi);
    }

    @Test
    public void forceUpdateShouldSynchronouslyFetchLatestInformation() throws Exception {
        when(mockWifiManager.getConnectionInfo()).thenReturn(CONNECTED_AP_1_INFO);

        WifiConfiguration configuration = new WifiConfiguration();
        configuration.SSID = SSID_1;
        configuration.BSSID = BSSID_1;
        configuration.networkId = CONNECTED_NETWORK_ID;
        when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration));

        NetworkInfo networkInfo = new NetworkInfo(
                ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype");
        networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test");
        when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(networkInfo);


        WifiTracker tracker = createMockedWifiTracker();
        startTracking(tracker);
        tracker.forceUpdate();

        verify(mockWifiListener).onAccessPointsChanged();
        assertThat(tracker.getAccessPoints().size()).isEqualTo(2);
        assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue();
    }
}
 No newline at end of file