Enable Carrier-Config cache for Settings
- Since the "Mobile-Data Details Settings" (NETWORK_OPERATOR_SETTINGS) will query Carrier-Config around 70 times during launching, use the Carrier-Config cache to reduce 69 times to speed up the launching time. - It takes about 3ms to query a Carrier-Config each time. - Create a singleton class to share the Carrier-Config for all sub-settings. Bug: 204135235 Test: manual test atest -c ApnPreferenceControllerTest \ AutoSelectPreferenceControllerTest \ BackupCallingPreferenceControllerTest \ CarrierConfigCacheTest \ CarrierPreferenceControllerTest \ CarrierSettingsVersionPreferenceControllerTest \ DataServiceSetupPreferenceControllerTest \ Enable2gPreferenceControllerTest \ EnabledNetworkModePreferenceControllerTest \ Enhanced4gBasePreferenceControllerTest \ MobileNetworkUtilsTest \ NetworkProviderBackupCallingGroupTest \ NrAdvancedCallingPreferenceControllerTest \ PreferredNetworkModePreferenceControllerTest \ TelephonyTogglePreferenceControllerTest \ WifiPickerTrackerHelperTest make RunSettingsRoboTests \ ROBOTEST_FILTER=ContactDiscoveryPreferenceControllerTest make RunSettingsRoboTests \ ROBOTEST_FILTER=VideoCallingPreferenceControllerTest Change-Id: I26f9ac115a754910b5d59e820703f1a0e701bb7f
This commit is contained in:
@@ -35,6 +35,7 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.network.CarrierConfigCache;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
|
||||
/**
|
||||
@@ -47,7 +48,7 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere
|
||||
Telephony.SimInfo.COLUMN_IMS_RCS_UCE_ENABLED);
|
||||
|
||||
private ImsManager mImsManager;
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
private CarrierConfigCache mCarrierConfigCache;
|
||||
private ContentObserver mUceSettingObserver;
|
||||
private FragmentManager mFragmentManager;
|
||||
|
||||
@@ -57,7 +58,7 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere
|
||||
public ContactDiscoveryPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mImsManager = mContext.getSystemService(ImsManager.class);
|
||||
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
|
||||
mCarrierConfigCache = CarrierConfigCache.getInstance(context);
|
||||
}
|
||||
|
||||
public ContactDiscoveryPreferenceController init(FragmentManager fragmentManager, int subId,
|
||||
@@ -96,7 +97,7 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus(int subId) {
|
||||
PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(subId);
|
||||
PersistableBundle bundle = mCarrierConfigCache.getConfigForSubId(subId);
|
||||
boolean shouldShowPresence = bundle != null
|
||||
&& (bundle.getBoolean(
|
||||
CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, false /*default*/)
|
||||
|
Reference in New Issue
Block a user