diff options
author | Jack Nudelman <jacknudelman@google.com> | 2021-09-02 20:20:49 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-09-02 20:20:49 +0000 |
commit | 4307b3ee3e15a174fb8e6072dd9296f6922a394d (patch) | |
tree | e7aa59a21b28cb131bcca1498a66bdbf8027e22f | |
parent | 7f632f3a065e77f1390d44aa11ddefc7a75c1625 (diff) | |
parent | 2f04ff6abf10caa513e74bd95dea6f897a5fd025 (diff) | |
download | AlternativeNetworkAccess-android12L-dev.tar.gz |
Enhance ONS to support 5G scanning. am: 2f04ff6abfandroid12L-dev
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/AlternativeNetworkAccess/+/15740042
Change-Id: I4c459dc46ab5d20e94d829aade6dc594926c6788
-rw-r--r-- | src/com/android/ons/ONSNetworkScanCtlr.java | 143 | ||||
-rw-r--r-- | tests/src/com/android/ons/ONSNetworkScanCtlrTest.java | 268 |
2 files changed, 296 insertions, 115 deletions
diff --git a/src/com/android/ons/ONSNetworkScanCtlr.java b/src/com/android/ons/ONSNetworkScanCtlr.java index 181a56c..57864c9 100644 --- a/src/com/android/ons/ONSNetworkScanCtlr.java +++ b/src/com/android/ons/ONSNetworkScanCtlr.java @@ -26,6 +26,8 @@ import android.telephony.AvailableNetworkInfo; import android.telephony.CarrierConfigManager; import android.telephony.CellInfo; import android.telephony.CellInfoLte; +import android.telephony.CellInfoNr; +import android.telephony.CellSignalStrengthNr; import android.telephony.NetworkScan; import android.telephony.NetworkScanRequest; import android.telephony.RadioAccessSpecifier; @@ -37,6 +39,8 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.telephony.Rlog; import java.util.ArrayList; +import java.util.Arrays; +import java.util.stream.Collectors; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -59,6 +63,23 @@ public class ONSNetworkScanCtlr { private static final int MSG_SCAN_COMPLETE = 2; private static final int MSG_SCAN_ERROR = 3; + private Boolean mIs4gScanEnabled = null; + + @VisibleForTesting + static final RadioAccessSpecifier DEFAULT_5G_RAS = new RadioAccessSpecifier( + AccessNetworkConstants.AccessNetworkType.NGRAN, + new int[] { + AccessNetworkConstants.NgranBands.BAND_48, + AccessNetworkConstants.NgranBands.BAND_71}, + null); + @VisibleForTesting + static final RadioAccessSpecifier DEFAULT_4G_RAS = new RadioAccessSpecifier( + AccessNetworkConstants.AccessNetworkType.NGRAN, + new int[] { + AccessNetworkConstants.EutranBand.BAND_48, + AccessNetworkConstants.EutranBand.BAND_71}, + null); + /* scan object to keep track of current scan request */ private NetworkScan mCurrentScan; private boolean mIsScanActive; @@ -67,6 +88,7 @@ public class ONSNetworkScanCtlr { private TelephonyManager mTelephonyManager; private CarrierConfigManager configManager; private int mRsrpEntryThreshold; + private int mSsRsrpEntryThreshold; @VisibleForTesting protected NetworkAvailableCallBack mNetworkAvailableCallBack; HandlerThread mThread; @@ -119,12 +141,16 @@ public class ONSNetworkScanCtlr { void onError(int error); } - private int getIntCarrierConfig(String key) { - PersistableBundle b = null; + private PersistableBundle getConfigBundle() { if (configManager != null) { // If an invalid subId is used, this bundle will contain default values. - b = configManager.getConfig(); + return configManager.getConfig(); } + return null; + } + + private int getIntCarrierConfig(String key) { + PersistableBundle b = getConfigBundle(); if (b != null) { return b.getInt(key); } else { @@ -133,6 +159,16 @@ public class ONSNetworkScanCtlr { } } + private boolean getBooleanCarrierConfig(String key) { + PersistableBundle b = getConfigBundle(); + if (b != null) { + return b.getBoolean(key); + } else { + // Return static default defined in CarrierConfigManager. + return CarrierConfigManager.getDefaultConfig().getBoolean(key); + } + } + /** * analyze scan results * @param results contains all available cells matching the scan request at current location. @@ -143,10 +179,20 @@ public class ONSNetworkScanCtlr { return; } List<CellInfo> filteredResults = new ArrayList<CellInfo>(); + mIs4gScanEnabled = getIs4gScanEnabled(); synchronized (mLock) { for (CellInfo cellInfo : results) { if (mMccMncs.contains(getMccMnc(cellInfo))) { - if (cellInfo instanceof CellInfoLte) { + if (cellInfo instanceof CellInfoNr) { + CellInfoNr nrCellInfo = (CellInfoNr) cellInfo; + int ssRsrp = ((CellSignalStrengthNr) nrCellInfo.getCellSignalStrength()) + .getSsRsrp(); + logDebug("cell info ssRsrp: " + ssRsrp); + if (ssRsrp >= mSsRsrpEntryThreshold) { + filteredResults.add(cellInfo); + } + } + if (mIs4gScanEnabled && cellInfo instanceof CellInfoLte) { int rsrp = ((CellInfoLte) cellInfo).getCellSignalStrength().getRsrp(); logDebug("cell info rsrp: " + rsrp); if (rsrp >= mRsrpEntryThreshold) { @@ -229,27 +275,87 @@ public class ONSNetworkScanCtlr { return null; } - private NetworkScanRequest createNetworkScanRequest(ArrayList<AvailableNetworkInfo> availableNetworks, - int periodicity) { - RadioAccessSpecifier[] ras = new RadioAccessSpecifier[1]; + private boolean getIs4gScanEnabled() { + // TODO: make this a null check + if (mIs4gScanEnabled != null) { + return mIs4gScanEnabled; + } + return getBooleanCarrierConfig( + CarrierConfigManager.KEY_ENABLE_4G_OPPORTUNISTIC_NETWORK_SCAN_BOOL); + } + + @VisibleForTesting + void setIs4gScanEnabled(boolean enabled) { + mIs4gScanEnabled = enabled; + } + + @VisibleForTesting + NetworkScanRequest createNetworkScanRequest(ArrayList<AvailableNetworkInfo> availableNetworks, + int periodicity) { + RadioAccessSpecifier[] ras; ArrayList<String> mccMncs = new ArrayList<String>(); - Set<Integer> bandSet = new ArraySet<>(); + Set<Integer> bandSet5G = new ArraySet<>(); + Set<Integer> bandSet4G = new ArraySet<>(); + + mIs4gScanEnabled = getIs4gScanEnabled(); - /* by default add band 48 */ - bandSet.add(AccessNetworkConstants.EutranBand.BAND_48); /* retrieve mcc mncs and bands for available networks */ for (AvailableNetworkInfo availableNetwork : availableNetworks) { mccMncs.addAll(availableNetwork.getMccMncs()); - bandSet.addAll(availableNetwork.getBands()); + List<RadioAccessSpecifier> radioAccessSpecifiers = + availableNetwork.getRadioAccessSpecifiers(); + if (radioAccessSpecifiers.isEmpty()) { + if (mIs4gScanEnabled) { + bandSet4G.addAll(availableNetwork.getBands()); + } + bandSet5G.addAll(availableNetwork.getBands()); + } else { + for (RadioAccessSpecifier radioAccessSpecifier : radioAccessSpecifiers) { + int radioAccessNetworkType = radioAccessSpecifier.getRadioAccessNetwork(); + if (mIs4gScanEnabled && + radioAccessNetworkType == + AccessNetworkConstants.AccessNetworkType.EUTRAN) { + bandSet4G.addAll(Arrays.stream(radioAccessSpecifier.getBands()) + .boxed().collect(Collectors.toList())); + } else if (radioAccessNetworkType == + AccessNetworkConstants.AccessNetworkType.NGRAN) { + bandSet5G.addAll(Arrays.stream(radioAccessSpecifier.getBands()) + .boxed().collect(Collectors.toList())); + } + } + } + } + + int rasSize = 1; + if (mIs4gScanEnabled && bandSet4G.isEmpty() == bandSet5G.isEmpty()) { + rasSize = 2; + } + ras = new RadioAccessSpecifier[rasSize]; + + if (bandSet4G.isEmpty() && bandSet5G.isEmpty()) { + // Set the default RadioAccessSpecifiers if none were set and no bands were set. + ras[0] = DEFAULT_5G_RAS; + if (mIs4gScanEnabled) { + ras[1] = DEFAULT_4G_RAS; + } + } else { + if (mIs4gScanEnabled && !bandSet4G.isEmpty()) { + ras[0] = new RadioAccessSpecifier(AccessNetworkConstants.AccessNetworkType.EUTRAN, + bandSet4G.stream().mapToInt(band->band).toArray(), null); + } + if (!bandSet5G.isEmpty()) { + ras[rasSize - 1] = new RadioAccessSpecifier( + AccessNetworkConstants.AccessNetworkType.NGRAN, + bandSet5G.stream().mapToInt(band->band).toArray(), null); + } else if (!mIs4gScanEnabled) { + // Reached if only 4G was specified but 4G scan is disabled. + ras[0] = DEFAULT_5G_RAS; + } } - int[] bands = bandSet.stream().mapToInt(band->band).toArray(); - /* create network scan request */ - ras[0] = new RadioAccessSpecifier(AccessNetworkConstants.AccessNetworkType.EUTRAN, bands, - null); NetworkScanRequest networkScanRequest = new NetworkScanRequest( - NetworkScanRequest.SCAN_TYPE_PERIODIC, ras, periodicity, MAX_SEARCH_TIME, false, - NetworkScanRequest.MAX_INCREMENTAL_PERIODICITY_SEC, mccMncs); + NetworkScanRequest.SCAN_TYPE_PERIODIC, ras, periodicity, MAX_SEARCH_TIME, false, + NetworkScanRequest.MAX_INCREMENTAL_PERIODICITY_SEC, mccMncs); synchronized (mLock) { mMccMncs = mccMncs; } @@ -284,6 +390,9 @@ public class ONSNetworkScanCtlr { getIntCarrierConfig( CarrierConfigManager.KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT); + mSsRsrpEntryThreshold = getIntCarrierConfig( + CarrierConfigManager.KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_SS_RSRP_INT); + /* start new scan */ networkScan = mTelephonyManager.requestNetworkScan(networkScanRequest, mNetworkScanCallback); diff --git a/tests/src/com/android/ons/ONSNetworkScanCtlrTest.java b/tests/src/com/android/ons/ONSNetworkScanCtlrTest.java index ba20467..67f31c2 100644 --- a/tests/src/com/android/ons/ONSNetworkScanCtlrTest.java +++ b/tests/src/com/android/ons/ONSNetworkScanCtlrTest.java @@ -20,13 +20,21 @@ import static org.junit.Assert.assertFalse; import static org.mockito.Mockito.*; import android.os.Looper; +import android.os.PersistableBundle; +import android.telephony.AccessNetworkConstants; import android.telephony.AvailableNetworkInfo; +import android.telephony.CarrierConfigManager; import android.telephony.CellIdentityLte; import android.telephony.CellInfo; import android.telephony.CellInfoLte; import android.telephony.NetworkScan; +import android.telephony.NetworkScanRequest; +import android.telephony.RadioAccessSpecifier; import android.telephony.SubscriptionInfo; import android.telephony.TelephonyManager; +import android.util.Log; + +import androidx.test.InstrumentationRegistry; import org.junit.After; import org.junit.Before; @@ -35,6 +43,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.sql.Array; +import java.util.Arrays; import java.util.ArrayList; import java.util.List; @@ -46,6 +55,19 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { private boolean mCallbackInvoked; private Looper mLooper; + private static final int SEARCH_PERIODICITY = 60; + private static final SubscriptionInfo TEST_SUBSCRIPTION_INFO = new SubscriptionInfo( + 1, "", 1, null, null, 0, 0, null, 0, null, "310", "210", null, + false, null, null); + private static final RadioAccessSpecifier TEST_5G_RAS = new RadioAccessSpecifier( + AccessNetworkConstants.AccessNetworkType.NGRAN, + new int[] {AccessNetworkConstants.NgranBands.BAND_71}, + null); + private static final RadioAccessSpecifier TEST_4G_RAS = new RadioAccessSpecifier( + AccessNetworkConstants.AccessNetworkType.EUTRAN, + new int[] {AccessNetworkConstants.EutranBand.BAND_48}, + null); + @Before public void setUp() throws Exception { super.setUp("ONSTest"); @@ -76,35 +98,8 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { CellInfoLte cellInfoLte = new CellInfoLte(); cellInfoLte.setCellIdentity(cellIdentityLte); expectedResults.add((CellInfo)cellInfoLte); - mReady = false; - // initializing ONSNetworkScanCtlr - new Thread(new Runnable() { - @Override - public void run() { - Looper.prepare(); - mONSNetworkScanCtlr = new ONSNetworkScanCtlr(mContext, mMockTelephonyManager, - new ONSNetworkScanCtlr.NetworkAvailableCallBack() { - @Override - public void onNetworkAvailability(List<CellInfo> results) { - mResults = results; - setReady(true); - } - - public void onError(int error) { - setReady(true); - } - }); - - mLooper = Looper.myLooper(); - setReady(true); - Looper.loop(); - } - }).start(); - - // Wait till initialization is complete. - waitUntilReady(); - mReady = false; + initONSNetworkScanCtrl(); // Testing startFastNetworkScan, onNetworkAvailability should be called with expectedResults mONSNetworkScanCtlr.startFastNetworkScan(availableNetworkInfos); @@ -126,38 +121,9 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { new ArrayList<Integer>()); ArrayList<AvailableNetworkInfo> availableNetworkInfos = new ArrayList<AvailableNetworkInfo>(); availableNetworkInfos.add(availableNetworkInfo); - mReady = false; mError = NetworkScan.SUCCESS; - // initializing ONSNetworkScanCtlr - new Thread(new Runnable() { - @Override - public void run() { - Looper.prepare(); - mONSNetworkScanCtlr = new ONSNetworkScanCtlr(mContext, mMockTelephonyManager, - new ONSNetworkScanCtlr.NetworkAvailableCallBack() { - @Override - public void onNetworkAvailability(List<CellInfo> results) { - setReady(true); - } - - @Override - public void onError(int error) { - mError = error; - setReady(true); - } - }); - - mLooper = Looper.myLooper(); - setReady(true); - Looper.loop(); - - } - }).start(); - - // Wait till initialization is complete. - waitUntilReady(); - mReady = false; + initONSNetworkScanCtrl(); // Testing startFastNetworkScan, onError should be called with ERROR_INVALID_SCAN mONSNetworkScanCtlr.startFastNetworkScan(availableNetworkInfos); @@ -180,36 +146,8 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { new ArrayList<Integer>()); ArrayList<AvailableNetworkInfo> availableNetworkInfos = new ArrayList<AvailableNetworkInfo>(); availableNetworkInfos.add(availableNetworkInfo); - mReady = false; - - // initializing ONSNetworkScanCtlr - new Thread(new Runnable() { - @Override - public void run() { - Looper.prepare(); - mONSNetworkScanCtlr = new ONSNetworkScanCtlr(mContext, mMockTelephonyManager, - new ONSNetworkScanCtlr.NetworkAvailableCallBack() { - @Override - public void onNetworkAvailability(List<CellInfo> results) { - mResults = results; - setReady(true); - } - public void onError(int error) { - setReady(true); - } - }); - - mLooper = Looper.myLooper(); - setReady(true); - Looper.loop(); - - } - }).start(); - - // Wait till initialization is complete. - waitUntilReady(); - mReady = false; + initONSNetworkScanCtrl(); // Testing startSlowNetworkScan, onNetworkAvailability should be called with expectedResults mONSNetworkScanCtlr.startFastNetworkScan(availableNetworkInfos); @@ -229,9 +167,149 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { mccMncs.add("310210"); AvailableNetworkInfo availableNetworkInfo = new AvailableNetworkInfo(1, 1, mccMncs, new ArrayList<Integer>()); - ArrayList<AvailableNetworkInfo> availableNetworkInfos = new ArrayList<AvailableNetworkInfo>(); + ArrayList<AvailableNetworkInfo> availableNetworkInfos = + new ArrayList<AvailableNetworkInfo>(); availableNetworkInfos.add(availableNetworkInfo); mCallbackInvoked = false; + + initONSNetworkScanCtrl(); + + // Testing stopNetworkScan, should not get any callback invocation after stopNetworkScan. + mONSNetworkScanCtlr.startFastNetworkScan(availableNetworkInfos); + mONSNetworkScanCtlr.stopNetworkScan(); + mONSNetworkScanCtlr.mNetworkScanCallback.onResults(expectedResults); + waitUntilReady(100); + assertFalse(mCallbackInvoked); + } + + @Test + public void testCreateNetworkScanRequest_withNoSpecifiedRasOrBands_4gScanEnabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(true); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest(new ArrayList<>()); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 2); + assertEquals(radioAccessSpecifiers[0], ONSNetworkScanCtlr.DEFAULT_5G_RAS); + assertEquals(radioAccessSpecifiers[1], ONSNetworkScanCtlr.DEFAULT_4G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withNoSpecifiedRasOrBands_4gScanDisabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(false); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest(new ArrayList<>()); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 1); + assertEquals(radioAccessSpecifiers[0], ONSNetworkScanCtlr.DEFAULT_5G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withSpecified5gRAS_4gScanEnabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(true); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest( + new ArrayList<>(Arrays.asList(TEST_5G_RAS))); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 1); + assertEquals(radioAccessSpecifiers[0], TEST_5G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withSpecified4gRAS_4gScanEnabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(true); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest( + new ArrayList<>(Arrays.asList(TEST_4G_RAS))); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 1); + assertEquals(radioAccessSpecifiers[0], TEST_4G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withSpecified4gRAS_4gScanDisabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(false); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest( + new ArrayList<>(Arrays.asList(TEST_4G_RAS))); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 1); + assertEquals(radioAccessSpecifiers[0], ONSNetworkScanCtlr.DEFAULT_5G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withSpecified4gAnd5gRAS_4gScanEnabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(true); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest( + new ArrayList<>(Arrays.asList(TEST_5G_RAS, TEST_4G_RAS))); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 2); + assertEquals(radioAccessSpecifiers[0], TEST_4G_RAS); + assertEquals(radioAccessSpecifiers[1], TEST_5G_RAS); + } + + @Test + public void testCreateNetworkScanRequest_withSpecified4gAnd5gRAS_4gScanDisabled() { + initONSNetworkScanCtrl(); + mONSNetworkScanCtlr.setIs4gScanEnabled(false); + + NetworkScanRequest networkScanRequest = createNetworkScanRequest( + new ArrayList<>(Arrays.asList(TEST_5G_RAS, TEST_4G_RAS))); + RadioAccessSpecifier[] radioAccessSpecifiers = networkScanRequest.getSpecifiers(); + + assertEquals(networkScanRequest.getSearchPeriodicity(), SEARCH_PERIODICITY); + assertEquals(networkScanRequest.getPlmns().size(), 1); + assertEquals(networkScanRequest.getPlmns().get(0), "310210"); + assertEquals(radioAccessSpecifiers.length, 1); + assertEquals(radioAccessSpecifiers[0], TEST_5G_RAS); + } + + private NetworkScanRequest createNetworkScanRequest(ArrayList<RadioAccessSpecifier> ras) { + AvailableNetworkInfo availableNetworkInfo = new AvailableNetworkInfo.Builder() + .setSubId(TEST_SUBSCRIPTION_INFO.getSubscriptionId()) + .setPriority(AvailableNetworkInfo.PRIORITY_LOW) + .setMccMncs(new ArrayList<>(Arrays.asList("310210"))) + .setRadioAccessSpecifiers(ras) + .build(); + ArrayList<AvailableNetworkInfo> availableNetworkInfos = + new ArrayList<AvailableNetworkInfo>(); + availableNetworkInfos.add(availableNetworkInfo); + + return mONSNetworkScanCtlr.createNetworkScanRequest(availableNetworkInfos, + SEARCH_PERIODICITY); + } + + private void initONSNetworkScanCtrl() { mReady = false; // initializing ONSNetworkScanCtlr @@ -240,15 +318,16 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { public void run() { Looper.prepare(); mONSNetworkScanCtlr = new ONSNetworkScanCtlr(mContext, mMockTelephonyManager, - new ONSNetworkScanCtlr.NetworkAvailableCallBack() { + new ONSNetworkScanCtlr.NetworkAvailableCallBack() { @Override public void onNetworkAvailability(List<CellInfo> results) { - mCallbackInvoked = true; + mResults = results; setReady(true); } public void onError(int error) { - mCallbackInvoked = true; + mError = error; + setReady(true); } }); @@ -261,12 +340,5 @@ public class ONSNetworkScanCtlrTest extends ONSBaseTest { // Wait till initialization is complete. waitUntilReady(); mReady = false; - - // Testing stopNetworkScan, should not get any callback invocation after stopNetworkScan. - mONSNetworkScanCtlr.startFastNetworkScan(availableNetworkInfos); - mONSNetworkScanCtlr.stopNetworkScan(); - mONSNetworkScanCtlr.mNetworkScanCallback.onResults(expectedResults); - waitUntilReady(100); - assertFalse(mCallbackInvoked); } } |