Fix empty network scan result
Settings use TelephonyScanManager.NetworkScanCallback to scan, and its onComplete() could happens before onResults(). We will change Settings to fix. Fix: 338986191 Test: manual - on NetworkSelectSettings Test: unit test Change-Id: If41d957f916a99eacc1becb6b460e58722a4dca7 Merged-In: If41d957f916a99eacc1becb6b460e58722a4dca7
This commit is contained in:
@@ -32,9 +32,6 @@ import android.telephony.TelephonyManager.NETWORK_CLASS_BITMASK_5G
|
||||
import android.telephony.TelephonyScanManager
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settings.network.telephony.scan.NetworkScanRepository.NetworkScanCellInfos
|
||||
import com.android.settings.network.telephony.scan.NetworkScanRepository.NetworkScanComplete
|
||||
import com.android.settings.network.telephony.scan.NetworkScanRepository.NetworkScanError
|
||||
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
|
||||
import com.android.settingslib.spa.testutils.toListWithTimeout
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
@@ -88,7 +85,12 @@ class NetworkScanRepositoryTest {
|
||||
|
||||
callback?.onResults(cellInfos)
|
||||
|
||||
assertThat(listDeferred.await()).containsExactly(NetworkScanCellInfos(cellInfos))
|
||||
assertThat(listDeferred.await()).containsExactly(
|
||||
NetworkScanRepository.NetworkScanResult(
|
||||
state = NetworkScanRepository.NetworkScanState.ACTIVE,
|
||||
cellInfos = cellInfos,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,7 +102,12 @@ class NetworkScanRepositoryTest {
|
||||
|
||||
callback?.onComplete()
|
||||
|
||||
assertThat(listDeferred.await()).containsExactly(NetworkScanComplete)
|
||||
assertThat(listDeferred.await()).containsExactly(
|
||||
NetworkScanRepository.NetworkScanResult(
|
||||
state = NetworkScanRepository.NetworkScanState.COMPLETE,
|
||||
cellInfos = emptyList(),
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -112,7 +119,12 @@ class NetworkScanRepositoryTest {
|
||||
|
||||
callback?.onError(1)
|
||||
|
||||
assertThat(listDeferred.await()).containsExactly(NetworkScanError(1))
|
||||
assertThat(listDeferred.await()).containsExactly(
|
||||
NetworkScanRepository.NetworkScanResult(
|
||||
state = NetworkScanRepository.NetworkScanState.ERROR,
|
||||
cellInfos = emptyList(),
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -133,12 +145,13 @@ class NetworkScanRepositoryTest {
|
||||
callback?.onResults(cellInfos)
|
||||
|
||||
assertThat(listDeferred.await()).containsExactly(
|
||||
NetworkScanCellInfos(
|
||||
listOf(
|
||||
NetworkScanRepository.NetworkScanResult(
|
||||
state = NetworkScanRepository.NetworkScanState.ACTIVE,
|
||||
cellInfos = listOf(
|
||||
createCellInfoLte("123", false),
|
||||
createCellInfoLte("124", true),
|
||||
createCellInfoGsm("123", false),
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -162,8 +175,9 @@ class NetworkScanRepositoryTest {
|
||||
callback?.onResults(cellInfos)
|
||||
|
||||
assertThat(listDeferred.await()).containsExactly(
|
||||
NetworkScanCellInfos(
|
||||
listOf(
|
||||
NetworkScanRepository.NetworkScanResult(
|
||||
state = NetworkScanRepository.NetworkScanState.ACTIVE,
|
||||
cellInfos = listOf(
|
||||
createCellInfoLte("123", false),
|
||||
createCellInfoLte("123", true),
|
||||
createCellInfoLte("124", false),
|
||||
|
||||
@@ -44,8 +44,12 @@ import androidx.preference.PreferenceManager;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.network.telephony.scan.NetworkScanRepository;
|
||||
import com.android.settings.network.telephony.scan.NetworkScanRepository.NetworkScanResult;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mock;
|
||||
@@ -163,8 +167,7 @@ public class NetworkSelectSettingsTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected NetworkOperatorPreference
|
||||
createNetworkOperatorPreference(CellInfo cellInfo) {
|
||||
protected NetworkOperatorPreference createNetworkOperatorPreference(CellInfo cellInfo) {
|
||||
NetworkOperatorPreference pref = super.createNetworkOperatorPreference(cellInfo);
|
||||
if (cellInfo == mTestEnv.mCellInfo1) {
|
||||
pref.updateCell(cellInfo, mTestEnv.mCellId1);
|
||||
@@ -183,9 +186,14 @@ public class NetworkSelectSettingsTest {
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void updateAllPreferenceCategory_correctOrderingPreference() {
|
||||
NetworkScanResult result = new NetworkScanResult(
|
||||
NetworkScanRepository.NetworkScanState.COMPLETE,
|
||||
ImmutableList.of(mCellInfo1, mCellInfo2));
|
||||
mNetworkSelectSettings.onCreateInitialization();
|
||||
mNetworkSelectSettings.enablePreferenceScreen(true);
|
||||
mNetworkSelectSettings.scanResultHandler(Arrays.asList(mCellInfo1, mCellInfo2));
|
||||
|
||||
mNetworkSelectSettings.scanResultHandler(result);
|
||||
|
||||
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
|
||||
final NetworkOperatorPreference preference =
|
||||
(NetworkOperatorPreference) mPreferenceCategory.getPreference(1);
|
||||
|
||||
Reference in New Issue
Block a user