summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tomasz Wasilczyk <twasilczyk@google.com> 2024-03-07 14:57:32 -0800
committer Tomasz Wasilczyk <twasilczyk@google.com> 2024-03-08 21:47:48 +0000
commitd79db443e27251695e9b2f3deb7515464dbd4105 (patch)
tree3e79ef02e65f18c2f6e2df85127bff8ccfb4d9ca
parentda0bc47550e5ed89049ee114664b420181e69a95 (diff)
Fix crash on potentially missing CarrierConfigManager [SystemUI]
Bug: 310710841 Test: it builds and boots Flag: NONE Change-Id: I379093db2a3170cedaccdeaa8f4eea786304a8a6
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/CarrierConfigRepository.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java6
3 files changed, 9 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java b/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java
index ce24259bbc1e..9fa3e5fb155d 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java
@@ -643,6 +643,7 @@ public class FrameworkServicesModule {
@Provides
@Singleton
+ @Nullable
static CarrierConfigManager provideCarrierConfigManager(Context context) {
return context.getSystemService(CarrierConfigManager.class);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/CarrierConfigRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/CarrierConfigRepository.kt
index efdce062bb37..016ba5fddcbd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/CarrierConfigRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/CarrierConfigRepository.kt
@@ -55,7 +55,7 @@ class CarrierConfigRepository
@Inject
constructor(
broadcastDispatcher: BroadcastDispatcher,
- private val carrierConfigManager: CarrierConfigManager,
+ private val carrierConfigManager: CarrierConfigManager?,
dumpManager: DumpManager,
logger: MobileInputLogger,
@Application scope: CoroutineScope,
@@ -87,7 +87,7 @@ constructor(
.onEach { logger.logCarrierConfigChanged(it) }
.filter { SubscriptionManager.isValidSubscriptionId(it) }
.mapNotNull { subId ->
- val config = carrierConfigManager.getConfigForSubId(subId)
+ val config = carrierConfigManager?.getConfigForSubId(subId)
config?.let { subId to it }
}
.shareIn(scope, SharingStarted.WhileSubscribed())
@@ -111,7 +111,7 @@ constructor(
fun getOrCreateConfigForSubId(subId: Int): SystemUiCarrierConfig {
return configs.getOrElse(subId) {
val config = SystemUiCarrierConfig(subId, defaultConfig)
- val carrierConfig = carrierConfigManager.getConfigForSubId(subId)
+ val carrierConfig = carrierConfigManager?.getConfigForSubId(subId)
if (carrierConfig != null) config.processNewCarrierConfig(carrierConfig)
configs.put(subId, config)
config
diff --git a/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
index a925e384d3be..f755feb7aa44 100644
--- a/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
+++ b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
@@ -27,6 +27,7 @@ import android.util.ArraySet;
import android.util.SparseBooleanArray;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.android.internal.telephony.TelephonyIntents;
import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -72,7 +73,7 @@ public class CarrierConfigTracker
@Inject
public CarrierConfigTracker(
- CarrierConfigManager carrierConfigManager,
+ @Nullable CarrierConfigManager carrierConfigManager,
BroadcastDispatcher broadcastDispatcher) {
mCarrierConfigManager = carrierConfigManager;
IntentFilter filter = new IntentFilter();
@@ -95,6 +96,9 @@ public class CarrierConfigTracker
final int subId = intent.getIntExtra(
CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ if (mCarrierConfigManager == null) {
+ return;
+ }
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
return;
}