From e39fbace41fdf3ff5357963adc5c39ad272e6c31 Mon Sep 17 00:00:00 2001 From: yinxu Date: Mon, 7 Jun 2021 09:29:20 -0700 Subject: [PATCH] Lazy fetch the default Carrier Config Fetching the default Carrier Configs may cause some delay so move them out of the constructor. Bug: 188597489 Test: Manual testing Change-Id: I1c6093ab6f0f59f2c74bcb84c0392eaace6b907e --- .../systemui/util/CarrierConfigTracker.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java index 02a07e48e8147..de5a3637fe9fc 100644 --- a/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java +++ b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java @@ -37,20 +37,16 @@ public class CarrierConfigTracker extends BroadcastReceiver { private final SparseArray mCallStrengthConfigs = new SparseArray<>(); private final SparseArray mNoCallingConfigs = new SparseArray<>(); private final CarrierConfigManager mCarrierConfigManager; - private final boolean mDefaultCallStrengthConfig; - private final boolean mDefaultNoCallingConfig; + private boolean mDefaultCallStrengthConfigLoaded; + private boolean mDefaultCallStrengthConfig; + private boolean mDefaultNoCallingConfigLoaded; + private boolean mDefaultNoCallingConfig; @Inject public CarrierConfigTracker(Context context) { mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); context.registerReceiver( this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); - mDefaultCallStrengthConfig = - CarrierConfigManager.getDefaultConfig().getBoolean( - CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL); - mDefaultNoCallingConfig = - CarrierConfigManager.getDefaultConfig().getBoolean( - CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL); } @Override @@ -81,6 +77,12 @@ public class CarrierConfigTracker extends BroadcastReceiver { if (mCallStrengthConfigs.indexOfKey(subId) >= 0) { return mCallStrengthConfigs.get(subId); } + if (!mDefaultCallStrengthConfigLoaded) { + mDefaultCallStrengthConfig = + CarrierConfigManager.getDefaultConfig().getBoolean( + CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL); + mDefaultCallStrengthConfigLoaded = true; + } return mDefaultCallStrengthConfig; } @@ -91,6 +93,12 @@ public class CarrierConfigTracker extends BroadcastReceiver { if (mNoCallingConfigs.indexOfKey(subId) >= 0) { return mNoCallingConfigs.get(subId); } + if (!mDefaultNoCallingConfigLoaded) { + mDefaultNoCallingConfig = + CarrierConfigManager.getDefaultConfig().getBoolean( + CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL); + mDefaultNoCallingConfigLoaded = true; + } return mDefaultNoCallingConfig; } }