Merge "Do not clear scores during stopTracking." into oc-dr1-dev

am: 3b63aa79eb

Change-Id: Iab18b4e433aa1de2bb4acde5db2e8b8ea5a56710
This commit is contained in:
Sundeep Ghuman
2017-07-21 01:01:52 +00:00
committed by android-build-merger
2 changed files with 18 additions and 4 deletions

View File

@@ -365,7 +365,7 @@ public class WifiTracker {
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
mRegistered = false;
}
unregisterAndClearScoreCache();
unregisterScoreCache();
pauseScanning();
mContext.getContentResolver().unregisterContentObserver(mObserver);
@@ -375,11 +375,14 @@ public class WifiTracker {
mStaleScanResults = true;
}
private void unregisterAndClearScoreCache() {
private void unregisterScoreCache() {
mNetworkScoreManager.unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, mScoreCache);
mScoreCache.clearScores();
// Synchronize on mLock to avoid concurrent modification during updateAccessPoints
// We do not want to clear the existing scores in the cache, as this method is called during
// stop tracking on activity pause. Hence, on resumption we want the ability to show the
// last known, potentially stale, scores. However, by clearing requested scores, the scores
// will be requested again upon resumption of tracking, and if any changes have occurred
// the listeners (UI) will be updated accordingly.
synchronized (mLock) {
mRequestedScores.clear();
}

View File

@@ -472,6 +472,17 @@ public class WifiTrackerTest {
assertTrue(mRequestedKeys.contains(NETWORK_KEY_2));
}
@Test
public void stopTracking_shouldNotClearExistingScores()
throws InterruptedException {
// Start the tracker and inject the initial scan results and then stop tracking
WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults();
updateScoresAndWaitForAccessPointsChangedCallback(tracker);
tracker.stopTracking();
assertThat(mScoreCacheCaptor.getValue().getScoredNetwork(NETWORK_KEY_1)).isNotNull();
}
@Test
public void scoreCacheUpdateScoresShouldTriggerOnAccessPointsChanged()
throws InterruptedException {