Loading src/com/android/settings/network/CarrierConfigCache.java +29 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.telephony.CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANG import static android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.BroadcastReceiver; import android.content.Context; Loading Loading @@ -154,6 +155,33 @@ public class CarrierConfigCache { } } /** * Gets the specific Carrier-Configurations for a particular subscription, which is associated * with a specific SIM card. If an invalid subId is used, the returned config will contain * default values. * * @param subId the subscription ID, normally obtained from {@link SubscriptionManager}. * @return A {@link PersistableBundle} containing the config for the given subId, or default * values for an invalid subId. */ public @Nullable PersistableBundle getSpecificConfigsForSubId(int subId, @NonNull String... keys) { if (sCarrierConfigManager == null) return null; synchronized (sCarrierConfigs) { if (sCarrierConfigs.containsKey(subId)) { return sCarrierConfigs.get(subId); } final PersistableBundle config = sCarrierConfigManager.getConfigForSubId(subId, keys); if (config == null) { Log.e(TAG, "Could not get carrier config, subId:" + subId); return null; } sCarrierConfigs.put(subId, config); return config; } } /** * Gets the Carrier-Configuration for the default subscription. * Loading src/com/android/settings/network/telephony/satellite/SatelliteSettingPreferenceController.java +17 −4 Original line number Diff line number Diff line Loading @@ -69,6 +69,8 @@ public class SatelliteSettingPreferenceController extends public SatelliteSettingPreferenceController(@NonNull Context context, @NonNull String key) { super(context, key); mCarrierConfigCache = CarrierConfigCache.getInstance(mContext); mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); } /** Loading @@ -79,12 +81,15 @@ public class SatelliteSettingPreferenceController extends public void initialize(int subId) { logd("initialize(), subId=" + subId); mSubId = subId; mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); if (mTelephonyManager != null) { mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); } mCarrierConfigs = mCarrierConfigCache.getConfigForSubId(subId); if (mCarrierConfigs == null) { return; } mCarrierConfigs = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT); } @Override Loading @@ -93,7 +98,15 @@ public class SatelliteSettingPreferenceController extends return UNSUPPORTED_ON_DEVICE; } if (!mCarrierConfigs.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL)) { if (mCarrierConfigs.isEmpty()) { // for search mCarrierConfigs = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT); } if (!mCarrierConfigs.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, false)) { return CONDITIONALLY_UNAVAILABLE; } Loading src/com/android/settings/network/telephony/satellite/SatelliteSettingsPreferenceCategoryController.java +16 −5 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ public class SatelliteSettingsPreferenceCategoryController extends public SatelliteSettingsPreferenceCategoryController(Context context, String key) { super(context, key); mCarrierConfigCache = CarrierConfigCache.getInstance(mContext); mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); } /** Loading @@ -75,8 +77,9 @@ public class SatelliteSettingsPreferenceCategoryController extends public void init(int subId) { Log.d(TAG, "init(), subId=" + subId); mSubId = subId; mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); if (mTelephonyManager != null) { mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); } requestIsSatelliteSupported(); } Loading @@ -99,7 +102,14 @@ public class SatelliteSettingsPreferenceCategoryController extends if (!com.android.internal.telephony.flags.Flags.carrierEnabledSatelliteFlag()) { return UNSUPPORTED_ON_DEVICE; } final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); PersistableBundle carrierConfig = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT, KEY_SATELLITE_ESOS_SUPPORTED_BOOL, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL); if (carrierConfig == null) { carrierConfig = new PersistableBundle(); } boolean isSatelliteConnectedTypeIsAuto = CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC == carrierConfig.getInt( Loading @@ -114,10 +124,11 @@ public class SatelliteSettingsPreferenceCategoryController extends boolean isSatelliteSosSupported = false; if (Flags.satelliteOemSettingsUxMigration()) { isSatelliteSosSupported = carrierConfig.getBoolean(KEY_SATELLITE_ESOS_SUPPORTED_BOOL); isSatelliteSosSupported = carrierConfig.getBoolean(KEY_SATELLITE_ESOS_SUPPORTED_BOOL, false); } if (!carrierConfig.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL)) { if (!carrierConfig.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, false)) { return UNSUPPORTED_ON_DEVICE; } Loading tests/unit/src/com/android/settings/network/telephony/satellite/SatelliteSettingPreferenceControllerTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -87,7 +88,8 @@ public class SatelliteSettingPreferenceControllerTest { when(mContext.getSystemService(SatelliteManager.class)).thenReturn(satelliteManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(TEST_SUB_ID)).thenReturn(mTelephonyManager); when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig); when(mCarrierConfigCache.getSpecificConfigsForSubId(eq(TEST_SUB_ID), any())).thenReturn( mCarrierConfig); mController = new SatelliteSettingPreferenceController(mContext, KEY); } Loading tests/unit/src/com/android/settings/network/telephony/satellite/SatelliteSettingsPreferenceCategoryControllerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; Loading Loading @@ -76,7 +78,8 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { SatelliteManager satelliteManager = new SatelliteManager(mContext); CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache); mController = new SatelliteSettingsPreferenceCategoryController(mContext, KEY); when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mPersistableBundle); when(mCarrierConfigCache.getSpecificConfigsForSubId(eq(TEST_SUB_ID), any())).thenReturn( mPersistableBundle); mPersistableBundle.putInt(KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT, CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC); when(mContext.getSystemService(SatelliteManager.class)).thenReturn(satelliteManager); Loading Loading
src/com/android/settings/network/CarrierConfigCache.java +29 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.telephony.CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANG import static android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX; import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.BroadcastReceiver; import android.content.Context; Loading Loading @@ -154,6 +155,33 @@ public class CarrierConfigCache { } } /** * Gets the specific Carrier-Configurations for a particular subscription, which is associated * with a specific SIM card. If an invalid subId is used, the returned config will contain * default values. * * @param subId the subscription ID, normally obtained from {@link SubscriptionManager}. * @return A {@link PersistableBundle} containing the config for the given subId, or default * values for an invalid subId. */ public @Nullable PersistableBundle getSpecificConfigsForSubId(int subId, @NonNull String... keys) { if (sCarrierConfigManager == null) return null; synchronized (sCarrierConfigs) { if (sCarrierConfigs.containsKey(subId)) { return sCarrierConfigs.get(subId); } final PersistableBundle config = sCarrierConfigManager.getConfigForSubId(subId, keys); if (config == null) { Log.e(TAG, "Could not get carrier config, subId:" + subId); return null; } sCarrierConfigs.put(subId, config); return config; } } /** * Gets the Carrier-Configuration for the default subscription. * Loading
src/com/android/settings/network/telephony/satellite/SatelliteSettingPreferenceController.java +17 −4 Original line number Diff line number Diff line Loading @@ -69,6 +69,8 @@ public class SatelliteSettingPreferenceController extends public SatelliteSettingPreferenceController(@NonNull Context context, @NonNull String key) { super(context, key); mCarrierConfigCache = CarrierConfigCache.getInstance(mContext); mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); } /** Loading @@ -79,12 +81,15 @@ public class SatelliteSettingPreferenceController extends public void initialize(int subId) { logd("initialize(), subId=" + subId); mSubId = subId; mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); if (mTelephonyManager != null) { mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); } mCarrierConfigs = mCarrierConfigCache.getConfigForSubId(subId); if (mCarrierConfigs == null) { return; } mCarrierConfigs = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT); } @Override Loading @@ -93,7 +98,15 @@ public class SatelliteSettingPreferenceController extends return UNSUPPORTED_ON_DEVICE; } if (!mCarrierConfigs.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL)) { if (mCarrierConfigs.isEmpty()) { // for search mCarrierConfigs = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT); } if (!mCarrierConfigs.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, false)) { return CONDITIONALLY_UNAVAILABLE; } Loading
src/com/android/settings/network/telephony/satellite/SatelliteSettingsPreferenceCategoryController.java +16 −5 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ public class SatelliteSettingsPreferenceCategoryController extends public SatelliteSettingsPreferenceCategoryController(Context context, String key) { super(context, key); mCarrierConfigCache = CarrierConfigCache.getInstance(mContext); mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); } /** Loading @@ -75,8 +77,9 @@ public class SatelliteSettingsPreferenceCategoryController extends public void init(int subId) { Log.d(TAG, "init(), subId=" + subId); mSubId = subId; mSatelliteManager = mContext.getSystemService(SatelliteManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); if (mTelephonyManager != null) { mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); } requestIsSatelliteSupported(); } Loading @@ -99,7 +102,14 @@ public class SatelliteSettingsPreferenceCategoryController extends if (!com.android.internal.telephony.flags.Flags.carrierEnabledSatelliteFlag()) { return UNSUPPORTED_ON_DEVICE; } final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); PersistableBundle carrierConfig = mCarrierConfigCache.getSpecificConfigsForSubId( subId, KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT, KEY_SATELLITE_ESOS_SUPPORTED_BOOL, KEY_SATELLITE_ATTACH_SUPPORTED_BOOL); if (carrierConfig == null) { carrierConfig = new PersistableBundle(); } boolean isSatelliteConnectedTypeIsAuto = CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC == carrierConfig.getInt( Loading @@ -114,10 +124,11 @@ public class SatelliteSettingsPreferenceCategoryController extends boolean isSatelliteSosSupported = false; if (Flags.satelliteOemSettingsUxMigration()) { isSatelliteSosSupported = carrierConfig.getBoolean(KEY_SATELLITE_ESOS_SUPPORTED_BOOL); isSatelliteSosSupported = carrierConfig.getBoolean(KEY_SATELLITE_ESOS_SUPPORTED_BOOL, false); } if (!carrierConfig.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL)) { if (!carrierConfig.getBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, false)) { return UNSUPPORTED_ON_DEVICE; } Loading
tests/unit/src/com/android/settings/network/telephony/satellite/SatelliteSettingPreferenceControllerTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -87,7 +88,8 @@ public class SatelliteSettingPreferenceControllerTest { when(mContext.getSystemService(SatelliteManager.class)).thenReturn(satelliteManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(TEST_SUB_ID)).thenReturn(mTelephonyManager); when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig); when(mCarrierConfigCache.getSpecificConfigsForSubId(eq(TEST_SUB_ID), any())).thenReturn( mCarrierConfig); mController = new SatelliteSettingPreferenceController(mContext, KEY); } Loading
tests/unit/src/com/android/settings/network/telephony/satellite/SatelliteSettingsPreferenceCategoryControllerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; Loading Loading @@ -76,7 +78,8 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { SatelliteManager satelliteManager = new SatelliteManager(mContext); CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache); mController = new SatelliteSettingsPreferenceCategoryController(mContext, KEY); when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mPersistableBundle); when(mCarrierConfigCache.getSpecificConfigsForSubId(eq(TEST_SUB_ID), any())).thenReturn( mPersistableBundle); mPersistableBundle.putInt(KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT, CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC); when(mContext.getSystemService(SatelliteManager.class)).thenReturn(satelliteManager); Loading