Loading services/core/java/com/android/server/connectivity/Tethering.java +8 −1 Original line number Diff line number Diff line Loading @@ -247,7 +247,14 @@ public class Tethering extends BaseNetworkObserver { (Intent ignored) -> { mLog.log("OBSERVED default data subscription change"); updateConfiguration(); // To avoid launch unexpected provisioning checks, ignore re-provisioning when // no CarrierConfig loaded yet. Assume reevaluateSimCardProvisioning() will be // triggered again when CarrierConfig is loaded. if (mEntitlementMgr.getCarrierConfig() != null) { mEntitlementMgr.reevaluateSimCardProvisioning(); } else { mLog.log("IGNORED reevaluate provisioning due to no carrier config loaded"); } }); mStateReceiver = new StateReceiver(); Loading services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java +16 −5 Original line number Diff line number Diff line Loading @@ -158,6 +158,21 @@ public class EntitlementManager { } } /** Get carrier configuration bundle. */ public PersistableBundle getCarrierConfig() { final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); if (configManager == null) return null; final PersistableBundle carrierConfig = configManager.getConfig(); if (CarrierConfigManager.isConfigForIdentifiedCarrier(carrierConfig)) { return carrierConfig; } return null; } // The logic here is aimed solely at confirming that a CarrierConfig exists // and affirms that entitlement checks are not required. // Loading @@ -165,11 +180,7 @@ public class EntitlementManager { // entirely so that this is more intuitive. private boolean carrierConfigAffirmsEntitlementCheckNotRequired() { // Check carrier config for entitlement checks final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); if (configManager == null) return false; final PersistableBundle carrierConfig = configManager.getConfig(); final PersistableBundle carrierConfig = getCarrierConfig(); if (carrierConfig == null) return false; // A CarrierConfigManager was found and it has a config. Loading tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ public final class EntitlementManagerTest { .thenReturn(mCarrierConfigManager); when(mCarrierConfigManager.getConfig()).thenReturn(mCarrierConfig); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true); } @Test Loading Loading @@ -198,6 +199,16 @@ public final class EntitlementManagerTest { assertTrue(mEnMgr.isTetherProvisioningRequired()); } @Test public void toleratesCarrierConfigNotLoaded() { setupForRequiredProvisioning(); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false); mEnMgr.updateConfiguration( new TetheringConfiguration(mMockContext, mLog, INVALID_SUBSCRIPTION_ID)); // We still have a provisioning app configured, so still require provisioning. assertTrue(mEnMgr.isTetherProvisioningRequired()); } @Test public void provisioningNotRequiredWhenAppNotFound() { setupForRequiredProvisioning(); Loading Loading
services/core/java/com/android/server/connectivity/Tethering.java +8 −1 Original line number Diff line number Diff line Loading @@ -247,7 +247,14 @@ public class Tethering extends BaseNetworkObserver { (Intent ignored) -> { mLog.log("OBSERVED default data subscription change"); updateConfiguration(); // To avoid launch unexpected provisioning checks, ignore re-provisioning when // no CarrierConfig loaded yet. Assume reevaluateSimCardProvisioning() will be // triggered again when CarrierConfig is loaded. if (mEntitlementMgr.getCarrierConfig() != null) { mEntitlementMgr.reevaluateSimCardProvisioning(); } else { mLog.log("IGNORED reevaluate provisioning due to no carrier config loaded"); } }); mStateReceiver = new StateReceiver(); Loading
services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java +16 −5 Original line number Diff line number Diff line Loading @@ -158,6 +158,21 @@ public class EntitlementManager { } } /** Get carrier configuration bundle. */ public PersistableBundle getCarrierConfig() { final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); if (configManager == null) return null; final PersistableBundle carrierConfig = configManager.getConfig(); if (CarrierConfigManager.isConfigForIdentifiedCarrier(carrierConfig)) { return carrierConfig; } return null; } // The logic here is aimed solely at confirming that a CarrierConfig exists // and affirms that entitlement checks are not required. // Loading @@ -165,11 +180,7 @@ public class EntitlementManager { // entirely so that this is more intuitive. private boolean carrierConfigAffirmsEntitlementCheckNotRequired() { // Check carrier config for entitlement checks final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); if (configManager == null) return false; final PersistableBundle carrierConfig = configManager.getConfig(); final PersistableBundle carrierConfig = getCarrierConfig(); if (carrierConfig == null) return false; // A CarrierConfigManager was found and it has a config. Loading
tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ public final class EntitlementManagerTest { .thenReturn(mCarrierConfigManager); when(mCarrierConfigManager.getConfig()).thenReturn(mCarrierConfig); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true); } @Test Loading Loading @@ -198,6 +199,16 @@ public final class EntitlementManagerTest { assertTrue(mEnMgr.isTetherProvisioningRequired()); } @Test public void toleratesCarrierConfigNotLoaded() { setupForRequiredProvisioning(); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false); mEnMgr.updateConfiguration( new TetheringConfiguration(mMockContext, mLog, INVALID_SUBSCRIPTION_ID)); // We still have a provisioning app configured, so still require provisioning. assertTrue(mEnMgr.isTetherProvisioningRequired()); } @Test public void provisioningNotRequiredWhenAppNotFound() { setupForRequiredProvisioning(); Loading