diff options
| author | 2025-02-20 16:09:45 -0800 | |
|---|---|---|
| committer | 2025-02-20 16:22:54 -0800 | |
| commit | 38c5d9b9ab0dc00f20643843cb2c8b24f8ce03f5 (patch) | |
| tree | 1a885c417295332add6186c37750492830bcd79e | |
| parent | e93897907ca2e9a6fb50258052c1069a19c8253b (diff) | |
Return false for emergency calls for automotive
For automotive devices that lack the feature Telephony calling, return
false for emergency calls for the status bar. Not doing so results in
the UI crashing.
Flag: EXEMPT bugfix
Bug: 396801499
Bug: 310710841
Bug: 398045526
Test: AndroidAutomotiveNavigationBarTests:
android.platform.tests.NavigationBarTest#testNotificationButton
Change-Id: I978a4c1f2ca151193cb71d151375b0f675cd9634
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt index d3369033942e..2efc0579f333 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt @@ -20,6 +20,7 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.content.pm.PackageManager import android.telephony.CarrierConfigManager import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager @@ -192,6 +193,19 @@ constructor( serviceStateChangedEvent .mapLatest { val modems = telephonyManager.activeModemCount + + // Assume false for automotive devices which don't have the calling feature. + // TODO: b/398045526 to revisit the below. + val isAutomotive: Boolean = + context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) + val hasFeatureCalling: Boolean = + context.packageManager.hasSystemFeature( + PackageManager.FEATURE_TELEPHONY_CALLING + ) + if (isAutomotive && !hasFeatureCalling) { + return@mapLatest false + } + // Check the service state for every modem. If any state reports emergency calling // capable, then consider the device to have emergency call capabilities (0..<modems) |