Merge "Fix crash due to no Satellite" into main

This commit is contained in:
Tom Hsu
2024-12-03 11:30:08 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 2 deletions

View File

@@ -82,7 +82,8 @@ class AutoSelectPreferenceController @JvmOverloads constructor(
private var isSelectedSubIdForSatellite = false
private lateinit var telephonyManager: TelephonyManager
private lateinit var satelliteManager: SatelliteManager
private val satelliteManager: SatelliteManager? =
context.getSystemService(SatelliteManager::class.java)
private val listeners = mutableListOf<OnNetworkSelectModeListener>()
@VisibleForTesting
@@ -112,7 +113,6 @@ class AutoSelectPreferenceController @JvmOverloads constructor(
this.subId = subId
telephonyManager = mContext.getSystemService(TelephonyManager::class.java)!!
.createForSubscriptionId(subId)
satelliteManager = mContext.getSystemService(SatelliteManager::class.java)!!
return this
}

View File

@@ -217,6 +217,20 @@ class AutoSelectPreferenceControllerTest {
.assertIsEnabled()
}
@Test
@EnableFlags(Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
fun initialization_noSatellite_noCrash() {
`when`(context.getSystemService(SatelliteManager::class.java)).thenReturn(null)
AutoSelectPreferenceController(
context = context,
key = TEST_KEY,
allowedNetworkTypesFlowFactory = { emptyFlow() },
serviceStateFlowFactory = { flowOf(serviceState) },
getConfigForSubId = { carrierConfig },
).init(subId = SUB_ID)
}
@Test
fun onClick_turnOff_startNetworkSelectActivity() {
serviceState.isManualSelection = false