Fix crash due to no Satellite

- AutoSelectPreferenceController get null pointer exception

Flag: EXEMPT bug fix
Fix: b/381995900
Test: atest pass
Change-Id: Iadbd83825cdfbc0aabd85b79e9ad7043f172a8a1
This commit is contained in:
tomhsu
2024-12-03 08:51:54 +00:00
parent aaee1a1511
commit 9329684c86
2 changed files with 16 additions and 2 deletions

View File

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

View File

@@ -217,6 +217,20 @@ class AutoSelectPreferenceControllerTest {
.assertIsEnabled() .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 @Test
fun onClick_turnOff_startNetworkSelectActivity() { fun onClick_turnOff_startNetworkSelectActivity() {
serviceState.isManualSelection = false serviceState.isManualSelection = false