diff options
| author | 2024-03-07 14:57:32 -0800 | |
|---|---|---|
| committer | 2024-03-08 21:47:48 +0000 | |
| commit | d79db443e27251695e9b2f3deb7515464dbd4105 (patch) | |
| tree | 3e79ef02e65f18c2f6e2df85127bff8ccfb4d9ca | |
| parent | da0bc47550e5ed89049ee114664b420181e69a95 (diff) | |
Fix crash on potentially missing CarrierConfigManager [SystemUI]
Bug: 310710841
Test: it builds and boots
Flag: NONE
Change-Id: I379093db2a3170cedaccdeaa8f4eea786304a8a6
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; } |