Merge "Create entitlement object everytime" into udc-dev
diff --git a/src/com/android/phone/slice/SlicePurchaseController.java b/src/com/android/phone/slice/SlicePurchaseController.java
index e36325e..471f80b 100644
--- a/src/com/android/phone/slice/SlicePurchaseController.java
+++ b/src/com/android/phone/slice/SlicePurchaseController.java
@@ -300,8 +300,7 @@
mSlicePurchaseControllerBroadcastReceivers = new HashMap<>();
/** The current network slicing configuration. */
@Nullable private NetworkSlicingConfig mSlicingConfig;
- /** Premium network entitlement query API. */
- @NonNull private final PremiumNetworkEntitlementApi mPremiumNetworkEntitlementApi;
+
/** LocalDate to use when resetting notification counts. {@code null} except when testing. */
@Nullable private LocalDate mLocalDate;
/** The number of times the performance boost notification has been shown today. */
@@ -452,8 +451,6 @@
mPhone = phone;
// TODO: Create a cached value for slicing config in DataIndication and initialize here
mPhone.mCi.registerForSlicingConfigChanged(this, EVENT_SLICING_CONFIG_CHANGED, null);
- mPremiumNetworkEntitlementApi =
- new PremiumNetworkEntitlementApi(mPhone, getCarrierConfigs());
mIsSlicingUpsellEnabled = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_TELEPHONY, KEY_ENABLE_SLICING_UPSELL, false);
DeviceConfig.addOnPropertiesChangedListener(
@@ -682,10 +679,20 @@
}
}
+ /*
+ return a new PremiumNetworkEntitlementApi object.
+ */
+ @VisibleForTesting
+ public PremiumNetworkEntitlementApi getPremiumNetworkEntitlementApi() {
+ return new PremiumNetworkEntitlementApi(mPhone, getCarrierConfigs());
+ }
+
private void onStartSlicePurchaseApplication(
@TelephonyManager.PremiumCapability int capability) {
+ final PremiumNetworkEntitlementApi premiumNetworkEntitlementApi =
+ getPremiumNetworkEntitlementApi();
PremiumNetworkEntitlementResponse premiumNetworkEntitlementResponse =
- mPremiumNetworkEntitlementApi.checkEntitlementStatus(capability);
+ premiumNetworkEntitlementApi.checkEntitlementStatus(capability);
// invalid response for entitlement check
if (premiumNetworkEntitlementResponse == null) {
diff --git a/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java b/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
index 544d7ea..94b9c7c 100644
--- a/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
+++ b/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
@@ -151,11 +151,11 @@
doReturn(CARRIER).when(mSlicePurchaseController).getSimOperator();
replaceInstance(SlicePurchaseController.class, "sInstances", mSlicePurchaseController,
Map.of(PHONE_ID, mSlicePurchaseController));
- replaceInstance(SlicePurchaseController.class, "mPremiumNetworkEntitlementApi",
- mSlicePurchaseController, mPremiumNetworkEntitlementApi);
replaceInstance(SlicePurchaseController.class, "mIsSlicingUpsellEnabled",
mSlicePurchaseController, true);
mEntitlementResponse = new PremiumNetworkEntitlementResponse();
+ doReturn(mPremiumNetworkEntitlementApi).when(mSlicePurchaseController)
+ .getPremiumNetworkEntitlementApi();
doReturn(mEntitlementResponse).when(mPremiumNetworkEntitlementApi)
.checkEntitlementStatus(anyInt());
}