SlicePurchaseController fix slice logic
Test: atest SlicePurchaseControllerTest
Bug: 248533515
Change-Id: I77c1b7bce0fcd6b173483e8bb757bf866832bcc6
diff --git a/src/com/android/phone/slice/SlicePurchaseController.java b/src/com/android/phone/slice/SlicePurchaseController.java
index f258e2c..64261e1 100644
--- a/src/com/android/phone/slice/SlicePurchaseController.java
+++ b/src/com/android/phone/slice/SlicePurchaseController.java
@@ -956,7 +956,6 @@
}
int capabilityServiceType = getSliceServiceType(capability);
for (NetworkSliceInfo sliceInfo : mSlicingConfig.getSliceInfo()) {
- // TODO: check if TrafficDescriptor has realtime capability slice
if (sliceInfo.getSliceServiceType() == capabilityServiceType
&& sliceInfo.getStatus() == NetworkSliceInfo.SLICE_STATUS_ALLOWED) {
return true;
@@ -967,7 +966,9 @@
@NetworkSliceInfo.SliceServiceType private int getSliceServiceType(
@TelephonyManager.PremiumCapability int capability) {
- // TODO: Implement properly -- potentially need to add new slice service types?
+ if (capability == TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY) {
+ return NetworkSliceInfo.SLICE_SERVICE_TYPE_URLLC;
+ }
return NetworkSliceInfo.SLICE_SERVICE_TYPE_NONE;
}
diff --git a/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java b/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
index e9e23f3..8320807 100644
--- a/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
+++ b/tests/src/com/android/phone/slice/SlicePurchaseControllerTest.java
@@ -505,7 +505,7 @@
public void testPurchasePremiumCapabilityResultAlreadyPurchased() {
testPurchasePremiumCapabilityResultSuccess();
- sendNetworkSlicingConfig(true);
+ sendNetworkSlicingConfig(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY, true);
mSlicePurchaseController.purchasePremiumCapability(
TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY, TAG,
@@ -523,7 +523,7 @@
mResult);
// retry to verify purchase expired
- sendNetworkSlicingConfig(false);
+ sendNetworkSlicingConfig(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY, false);
testPurchasePremiumCapabilityResultSuccess();
}
@@ -705,9 +705,9 @@
assertEquals(TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS, mResult);
// complete network setup
- sendNetworkSlicingConfig(true);
+ sendNetworkSlicingConfig(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY, true);
// purchase expired
- sendNetworkSlicingConfig(false);
+ sendNetworkSlicingConfig(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY, false);
}
private void sendValidPurchaseRequest() {
@@ -755,13 +755,17 @@
verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class));
}
- private void sendNetworkSlicingConfig(boolean configExists) {
- // TODO: implement slicing config logic properly
+ private void sendNetworkSlicingConfig(int capability, boolean configActive) {
+ int sliceServiceType = capability == TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
+ ? NetworkSliceInfo.SLICE_SERVICE_TYPE_URLLC
+ : NetworkSliceInfo.SLICE_SERVICE_TYPE_NONE;
+ NetworkSliceInfo sliceInfo = new NetworkSliceInfo.Builder()
+ .setStatus(configActive ? NetworkSliceInfo.SLICE_STATUS_ALLOWED
+ : NetworkSliceInfo.SLICE_STATUS_UNKNOWN)
+ .setSliceServiceType(sliceServiceType)
+ .build();
NetworkSlicingConfig slicingConfig = new NetworkSlicingConfig(Collections.emptyList(),
- configExists
- ? Collections.singletonList(new NetworkSliceInfo.Builder()
- .setStatus(NetworkSliceInfo.SLICE_STATUS_ALLOWED).build())
- : Collections.emptyList());
+ Collections.singletonList(sliceInfo));
mSlicePurchaseController.obtainMessage(2 /* EVENT_SLICING_CONFIG_CHANGED */,
new AsyncResult(null, slicingConfig, null)).sendToTarget();
mTestableLooper.processAllMessages();