summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Mattis <jmattis@google.com> 2025-02-20 16:09:45 -0800
committer James Mattis <jmattis@google.com> 2025-02-20 16:22:54 -0800
commit38c5d9b9ab0dc00f20643843cb2c8b24f8ce03f5 (patch)
tree1a885c417295332add6186c37750492830bcd79e
parente93897907ca2e9a6fb50258052c1069a19c8253b (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.kt14
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)