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

Commit 729c584a authored by Jason Monk's avatar Jason Monk Committed by Android Git Automerger
Browse files

am d78cdb1d: am bf3d1af3: SettingsLib: Fix wifi crash during settings index

* commit 'd78cdb1d':
  SettingsLib: Fix wifi crash during settings index
parents 28c5ef5f d78cdb1d
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -106,6 +106,10 @@ public class WifiTracker {
            throw new IllegalArgumentException("Must include either saved or scans");
            throw new IllegalArgumentException("Must include either saved or scans");
        }
        }
        mContext = context;
        mContext = context;
        if (currentLooper == null) {
            // When we aren't on a looper thread, default to the main.
            currentLooper = Looper.getMainLooper();
        }
        mMainHandler = new MainHandler(currentLooper);
        mMainHandler = new MainHandler(currentLooper);
        mWorkHandler = new WorkHandler(
        mWorkHandler = new WorkHandler(
                workerLooper != null ? workerLooper : currentLooper);
                workerLooper != null ? workerLooper : currentLooper);
+24 −0
Original line number Original line Diff line number Diff line
@@ -171,6 +171,30 @@ public class WifiTrackerTest extends BaseTest {
        assertEquals(TEST_SSIDS[0], accessPoints.get(1).getSsid());
        assertEquals(TEST_SSIDS[0], accessPoints.get(1).getSsid());
    }
    }


    /**
     * This tests the case where Settings runs this on a non-looper thread for indexing.
     */
    public void testSavedOnlyNoLooper() {
        mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, true, false, true,
                mWifiManager,  null);
        mWifiTracker.mScanner = mWifiTracker.new Scanner();

        List<WifiConfiguration> wifiConfigs = new ArrayList<WifiConfiguration>();
        List<ScanResult> scanResults = new ArrayList<ScanResult>();
        generateTestNetworks(wifiConfigs, scanResults, true);

        // Send all of the configs and scan results to the tracker.
        Mockito.when(mWifiManager.getConfiguredNetworks()).thenReturn(wifiConfigs);
        Mockito.when(mWifiManager.getScanResults()).thenReturn(scanResults);
        mWifiTracker.forceUpdate();

        List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
        // Only expect the first two to come back in the results.
        assertEquals("Expected number of results", 2, accessPoints.size());
        assertEquals(TEST_SSIDS[1], accessPoints.get(0).getSsid());
        assertEquals(TEST_SSIDS[0], accessPoints.get(1).getSsid());
    }

    public void testAvailableOnly() {
    public void testAvailableOnly() {
        mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, false, true, true,
        mWifiTracker = new WifiTracker(mContext, mWifiListener, mLooper, false, true, true,
                mWifiManager, mMainLooper);
                mWifiManager, mMainLooper);