Merge "Revert "Add work profile support for registering phone accounts ...""
diff --git a/Android.bp b/Android.bp
index 0a7ccdc..dc35c5d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,6 +43,7 @@
         "PlatformProperties",
         "modules-utils-os",
         "nist-sip",
+        "service-entitlement"
     ],
 
     srcs: [
@@ -79,11 +80,14 @@
     },
 }
 
-// Allow other applications to use public constants from SliceStore
+// Allow other applications to use public constants from SlicePurchaseController
 java_library {
-    name: "SliceStore",
-    srcs: ["src/com/android/phone/slicestore/SliceStore.java",],
-    libs: ["telephony-common"],
+    name: "SlicePurchaseController",
+    srcs: ["src/com/android/phone/slice/*.java",],
+    libs: [
+        "telephony-common",
+        "service-entitlement"
+        ],
 }
 
 platform_compat_config {
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5599a50..3d80246 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,9 +21,9 @@
         android:sharedUserId="android.uid.phone"
         android:sharedUserLabel="@string/phoneAppLabel">
 
-    <!-- Allows broadcasting for SliceStore events. -->
-    <protected-broadcast android:name="com.android.phone.slicestore.action.START_SLICE_STORE" />
-    <protected-broadcast android:name="com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_TIMEOUT" />
+    <!-- Allows broadcasting for SlicePurchaseController events. -->
+    <protected-broadcast android:name="com.android.phone.slice.action.START_SLICE_PURCHASE_APP" />
+    <protected-broadcast android:name="com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_TIMEOUT" />
 
     <original-package android:name="com.android.phone" />
     <!-- Allows granting runtime permissions to telephony related components. -->
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 85a8ded..9aa0800 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -582,8 +582,8 @@
     <string name="onscreenAddCallText" msgid="9075675082903611677">"కాల్‌ను జోడించు"</string>
     <string name="onscreenMergeCallsText" msgid="3692389519611225407">"కాల్స్‌ను విలీనం చేయి"</string>
     <string name="onscreenSwapCallsText" msgid="2682542150803377991">"స్వాప్ చేయి"</string>
-    <string name="onscreenManageCallsText" msgid="1162047856081836469">"కాల్స్‌ను నిర్వహించు"</string>
-    <string name="onscreenManageConferenceText" msgid="4700574060601755137">"కాన్ఫరెన్స్‌ను నిర్వహించు"</string>
+    <string name="onscreenManageCallsText" msgid="1162047856081836469">"కాల్స్‌ను మేనేజ్ చేయండి"</string>
+    <string name="onscreenManageConferenceText" msgid="4700574060601755137">"కాన్ఫరెన్స్‌ను మేనేజ్ చేయండి"</string>
     <string name="onscreenAudioText" msgid="7224226735052019986">"ఆడియో"</string>
     <string name="onscreenVideoCallText" msgid="1743992456126258698">"వీడియో కాల్"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"దిగుమతి చేయండి"</string>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 71771cf..27d1de3 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -211,7 +211,7 @@
 import com.android.phone.callcomposer.CallComposerPictureTransfer;
 import com.android.phone.callcomposer.ImageData;
 import com.android.phone.settings.PickSmsSubscriptionActivity;
-import com.android.phone.slicestore.SliceStore;
+import com.android.phone.slice.SlicePurchaseController;
 import com.android.phone.vvm.PhoneAccountHandleConverter;
 import com.android.phone.vvm.RemoteVvmTaskManager;
 import com.android.phone.vvm.VisualVoicemailSettingsUtil;
@@ -2160,7 +2160,7 @@
                     onCompleted = obtainMessage(EVENT_PURCHASE_PREMIUM_CAPABILITY_DONE, request);
                     PurchasePremiumCapabilityArgument arg =
                             (PurchasePremiumCapabilityArgument) request.argument;
-                    SliceStore.getInstance(request.phone).purchasePremiumCapability(
+                    SlicePurchaseController.getInstance(request.phone).purchasePremiumCapability(
                             arg.capability, arg.appName, onCompleted);
                     break;
                 }
@@ -11268,7 +11268,7 @@
         Phone phone = getPhone(subId);
         final long identity = Binder.clearCallingIdentity();
         try {
-            return SliceStore.getInstance(phone)
+            return SlicePurchaseController.getInstance(phone)
                     .isPremiumCapabilityAvailableForPurchase(capability);
         } finally {
             Binder.restoreCallingIdentity(identity);
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index c6dbfc6..29f2d73 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -72,6 +72,13 @@
 import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
 import android.telephony.data.NetworkSlicingConfig;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsManager;
+import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.ImsRcsManager;
+import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Menu;
@@ -92,9 +99,6 @@
 import androidx.appcompat.app.AlertDialog.Builder;
 import androidx.appcompat.app.AppCompatActivity;
 
-import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
-import com.android.ims.ImsManager;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.euicc.EuiccConnector;
@@ -177,18 +181,6 @@
      */
     private static final int ALWAYS_ON_DSDS_MODE = 1;
 
-    private static final int IMS_VOLTE_PROVISIONED_CONFIG_ID =
-            ImsConfig.ConfigConstants.VLT_SETTING_ENABLED;
-
-    private static final int IMS_VT_PROVISIONED_CONFIG_ID =
-            ImsConfig.ConfigConstants.LVC_SETTING_ENABLED;
-
-    private static final int IMS_WFC_PROVISIONED_CONFIG_ID =
-            ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED;
-
-    private static final int EAB_PROVISIONED_CONFIG_ID =
-            ImsConfig.ConfigConstants.EAB_SETTING_ENABLED;
-
     //Values in must match CELL_INFO_REFRESH_RATES
     private static final String[] CELL_INFO_REFRESH_RATE_LABELS = {
             "Disabled",
@@ -293,6 +285,7 @@
     private TelephonyManager mTelephonyManager;
     private ImsManager mImsManager = null;
     private Phone mPhone = null;
+    private ProvisioningManager mProvisioningManager = null;
 
     private String mPingHostnameResultV4;
     private String mPingHostnameResultV6;
@@ -422,12 +415,23 @@
         unregisterPhoneStateListener();
         mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled, mPhone.getSubId());
 
+        if (phoneIndex == SubscriptionManager.INVALID_PHONE_INDEX) {
+            log("Invalid phone index " + phoneIndex + ", subscription ID " + subId);
+            return;
+        }
+
         // update the subId
         mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
 
         // update the phoneId
-        mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex);
         mPhone = PhoneFactory.getPhone(phoneIndex);
+        mImsManager = new ImsManager(mPhone.getContext());
+        try {
+            mProvisioningManager = ProvisioningManager.createForSubscriptionId(subId);
+        } catch (IllegalArgumentException e) {
+            log("updatePhoneIndex : IllegalArgumentException " + e.getMessage());
+            mProvisioningManager = null;
+        }
 
         updateAllFields();
     }
@@ -483,11 +487,17 @@
         mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
                 new LinkedBlockingDeque<Runnable>());
         mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
-        mPhone = PhoneFactory.getDefaultPhone();
+        mPhone = getPhone(SubscriptionManager.getDefaultSubscriptionId());
         mTelephonyManager = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                 .createForSubscriptionId(mPhone.getSubId());
 
-        mImsManager = ImsManager.getInstance(getApplicationContext(), mPhone.getPhoneId());
+        mImsManager = new ImsManager(mPhone.getContext());
+        try {
+            mProvisioningManager = ProvisioningManager.createForSubscriptionId(mPhone.getSubId());
+        } catch (IllegalArgumentException e) {
+            log("onCreate : IllegalArgumentException " + e.getMessage());
+            mProvisioningManager = null;
+        }
 
         sPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager);
 
@@ -555,7 +565,7 @@
         mImsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
         mEabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
 
-        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+        if (!isImsSupportedOnDevice(mPhone.getContext())) {
             mImsVolteProvisionedSwitch.setVisibility(View.GONE);
             mImsVtProvisionedSwitch.setVisibility(View.GONE);
             mImsWfcProvisionedSwitch.setVisibility(View.GONE);
@@ -635,7 +645,7 @@
 
         mCellInfoRefreshRateIndex = 0; //disabled
         mPreferredNetworkTypeResult = PREFERRED_NETWORK_LABELS.length - 1; //Unknown
-        mSelectedPhoneIndex = 0; //phone 0
+        mSelectedPhoneIndex = mPhone.getPhoneId();
 
         new Thread(() -> {
             int networkType = (int) mTelephonyManager.getPreferredNetworkTypeBitmask();
@@ -786,7 +796,7 @@
                 R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
         menu.add(1, MENU_ITEM_VIEW_SDN, 0,
                 R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
-        if (ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+        if (isImsSupportedOnDevice(mPhone.getContext())) {
             menu.add(1, MENU_ITEM_GET_IMS_STATUS,
                     0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
         }
@@ -1514,34 +1524,38 @@
         mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
     }
 
-    void setImsVolteProvisionedState(boolean state) {
+    private void setImsVolteProvisionedState(boolean state) {
         Log.d(TAG, "setImsVolteProvisioned state: " + ((state) ? "on" : "off"));
-        setImsConfigProvisionedState(IMS_VOLTE_PROVISIONED_CONFIG_ID, state);
+        setImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE, state);
     }
 
-    void setImsVtProvisionedState(boolean state) {
+    private void setImsVtProvisionedState(boolean state) {
         Log.d(TAG, "setImsVtProvisioned() state: " + ((state) ? "on" : "off"));
-        setImsConfigProvisionedState(IMS_VT_PROVISIONED_CONFIG_ID, state);
+        setImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE, state);
     }
 
-    void setImsWfcProvisionedState(boolean state) {
+    private void setImsWfcProvisionedState(boolean state) {
         Log.d(TAG, "setImsWfcProvisioned() state: " + ((state) ? "on" : "off"));
-        setImsConfigProvisionedState(IMS_WFC_PROVISIONED_CONFIG_ID, state);
+        setImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN, state);
     }
 
-    void setEabProvisionedState(boolean state) {
+    private void setEabProvisionedState(boolean state) {
         Log.d(TAG, "setEabProvisioned() state: " + ((state) ? "on" : "off"));
-        setImsConfigProvisionedState(EAB_PROVISIONED_CONFIG_ID, state);
+        setRcsConfigProvisionedState(ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE, state);
     }
 
-    void setImsConfigProvisionedState(int configItem, boolean state) {
-        if (mPhone != null && mImsManager != null) {
+    private void setImsConfigProvisionedState(int capability, int tech, boolean state) {
+        if (mProvisioningManager != null) {
             mQueuedWork.execute(new Runnable() {
                 public void run() {
                     try {
-                        mImsManager.getConfigInterface().setProvisionedValue(
-                                configItem, state ? 1 : 0);
-                    } catch (ImsException e) {
+                        mProvisioningManager.setProvisioningStatusForCapability(
+                                capability, tech, state);
+                    } catch (RuntimeException e) {
                         Log.e(TAG, "setImsConfigProvisioned() exception:", e);
                     }
                 }
@@ -1549,6 +1563,71 @@
         }
     }
 
+    private void setRcsConfigProvisionedState(int capability, int tech, boolean state) {
+        if (mProvisioningManager != null) {
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    try {
+                        mProvisioningManager.setRcsProvisioningStatusForCapability(
+                                capability, tech, state);
+                    } catch (RuntimeException e) {
+                        Log.e(TAG, "setRcsConfigProvisioned() exception:", e);
+                    }
+                }
+            });
+        }
+    }
+
+    private boolean isImsVolteProvisioningRequired() {
+        return isImsConfigProvisioningRequired(
+                MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+    }
+
+    private boolean isImsVtProvisioningRequired() {
+        return isImsConfigProvisioningRequired(
+                MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+    }
+
+    private boolean isImsWfcProvisioningRequired() {
+        return isImsConfigProvisioningRequired(
+                MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN);
+    }
+
+    private boolean isEabProvisioningRequired() {
+        return isRcsConfigProvisioningRequired(
+                ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+    }
+
+    private boolean isImsConfigProvisioningRequired(int capability, int tech) {
+        if (mProvisioningManager != null) {
+            try {
+                return mProvisioningManager.isProvisioningRequiredForCapability(
+                        capability, tech);
+            } catch (RuntimeException e) {
+                Log.e(TAG, "isImsConfigProvisioningRequired() exception:", e);
+            }
+        }
+
+        return false;
+    }
+
+    private boolean isRcsConfigProvisioningRequired(int capability, int tech) {
+        if (mProvisioningManager != null) {
+            try {
+                return mProvisioningManager.isRcsProvisioningRequiredForCapability(
+                        capability, tech);
+            } catch (RuntimeException e) {
+                Log.e(TAG, "isRcsConfigProvisioningRequired() exception:", e);
+            }
+        }
+
+        return false;
+    }
+
     OnCheckedChangeListener mRadioPowerOnChangeListener = new OnCheckedChangeListener() {
         @Override
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -1584,11 +1663,8 @@
     };
 
     private boolean isImsVolteProvisioned() {
-        if (mImsManager != null) {
-            return mImsManager.isVolteEnabledByPlatform()
-                && mImsManager.isVolteProvisionedOnDevice();
-        }
-        return false;
+        return getImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
     }
 
     OnCheckedChangeListener mImsVolteCheckedChangeListener = new OnCheckedChangeListener() {
@@ -1599,11 +1675,8 @@
     };
 
     private boolean isImsVtProvisioned() {
-        if (mImsManager != null) {
-            return mImsManager.isVtEnabledByPlatform()
-                && mImsManager.isVtProvisionedOnDevice();
-        }
-        return false;
+        return getImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
     }
 
     OnCheckedChangeListener mImsVtCheckedChangeListener = new OnCheckedChangeListener() {
@@ -1614,11 +1687,8 @@
     };
 
     private boolean isImsWfcProvisioned() {
-        if (mImsManager != null) {
-            return mImsManager.isWfcEnabledByPlatform()
-                && mImsManager.isWfcProvisionedOnDevice();
-        }
-        return false;
+        return getImsConfigProvisionedState(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN);
     }
 
     OnCheckedChangeListener mImsWfcCheckedChangeListener = new OnCheckedChangeListener() {
@@ -1629,7 +1699,8 @@
     };
 
     private boolean isEabProvisioned() {
-        return isFeatureProvisioned(EAB_PROVISIONED_CONFIG_ID, false);
+        return getRcsConfigProvisionedState(ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
     }
 
     OnCheckedChangeListener mEabCheckedChangeListener = new OnCheckedChangeListener() {
@@ -1639,23 +1710,30 @@
         }
     };
 
-    private boolean isFeatureProvisioned(int featureId, boolean defaultValue) {
-        boolean provisioned = defaultValue;
-        if (mImsManager != null) {
+    private boolean getImsConfigProvisionedState(int capability, int tech) {
+        if (mProvisioningManager != null) {
             try {
-                ImsConfig imsConfig = mImsManager.getConfigInterface();
-                if (imsConfig != null) {
-                    provisioned =
-                            (imsConfig.getProvisionedValue(featureId)
-                                    == ImsConfig.FeatureValueConstants.ON);
-                }
-            } catch (ImsException ex) {
-                Log.e(TAG, "isFeatureProvisioned() exception:", ex);
+                return mProvisioningManager.getProvisioningStatusForCapability(
+                        capability, tech);
+            } catch (RuntimeException e) {
+                Log.e(TAG, "getImsConfigProvisionedState() exception:", e);
             }
         }
 
-        log("isFeatureProvisioned() featureId=" + featureId + " provisioned=" + provisioned);
-        return provisioned;
+        return false;
+    }
+
+    private boolean getRcsConfigProvisionedState(int capability, int tech) {
+        if (mProvisioningManager != null) {
+            try {
+                return mProvisioningManager.getRcsProvisioningStatusForCapability(
+                        capability, tech);
+            } catch (RuntimeException e) {
+                Log.e(TAG, "getRcsConfigProvisionedState() exception:", e);
+            }
+        }
+
+        return false;
     }
 
     private boolean isEabEnabledByPlatform() {
@@ -1674,35 +1752,56 @@
     }
 
     private void updateImsProvisionedState() {
-        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+        if (!isImsSupportedOnDevice(mPhone.getContext())) {
             return;
         }
-        log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
-        //delightful hack to prevent on-checked-changed calls from
-        //actually forcing the ims provisioning to its transient/current value.
+
+        updateServiceEnabledByPlatform();
+
+        updateEabProvisionedSwitch(isEabEnabledByPlatform());
+    }
+
+    private void updateVolteProvisionedSwitch(boolean isEnabledByPlatform) {
+        boolean isProvisioned = isEnabledByPlatform && isImsVolteProvisioned();
+        log("updateVolteProvisionedSwitch isProvisioned" + isProvisioned);
+
         mImsVolteProvisionedSwitch.setOnCheckedChangeListener(null);
-        mImsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
+        mImsVolteProvisionedSwitch.setChecked(isProvisioned);
         mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
         mImsVolteProvisionedSwitch.setEnabled(!IS_USER_BUILD
-                && mImsManager.isVolteEnabledByPlatform());
+                && isEnabledByPlatform && isImsVolteProvisioningRequired());
+    }
+
+    private void updateVtProvisionedSwitch(boolean isEnabledByPlatform) {
+        boolean isProvisioned = isEnabledByPlatform && isImsVtProvisioned();
+        log("updateVtProvisionedSwitch isProvisioned" + isProvisioned);
 
         mImsVtProvisionedSwitch.setOnCheckedChangeListener(null);
-        mImsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
+        mImsVtProvisionedSwitch.setChecked(isProvisioned);
         mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
         mImsVtProvisionedSwitch.setEnabled(!IS_USER_BUILD
-                && mImsManager.isVtEnabledByPlatform());
+                && isEnabledByPlatform && isImsVtProvisioningRequired());
+    }
+
+    private void updateWfcProvisionedSwitch(boolean isEnabledByPlatform) {
+        boolean isProvisioned = isEnabledByPlatform && isImsWfcProvisioned();
+        log("updateWfcProvisionedSwitch isProvisioned" + isProvisioned);
 
         mImsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
-        mImsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
+        mImsWfcProvisionedSwitch.setChecked(isProvisioned);
         mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
         mImsWfcProvisionedSwitch.setEnabled(!IS_USER_BUILD
-                && mImsManager.isWfcEnabledByPlatform());
+                && isEnabledByPlatform && isImsWfcProvisioningRequired());
+    }
+
+    private void updateEabProvisionedSwitch(boolean isEnabledByPlatform) {
+        log("updateEabProvisionedSwitch isEabWfcProvisioned()=" + isEabProvisioned());
 
         mEabProvisionedSwitch.setOnCheckedChangeListener(null);
         mEabProvisionedSwitch.setChecked(isEabProvisioned());
         mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
         mEabProvisionedSwitch.setEnabled(!IS_USER_BUILD
-                && isEabEnabledByPlatform());
+                && isEnabledByPlatform && isEabProvisioningRequired());
     }
 
     OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
@@ -1941,4 +2040,45 @@
         intent.putExtra("isDefault", isChecked);
         sendBroadcast(intent);
     }
+
+    private boolean isImsSupportedOnDevice(Context context) {
+        return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS);
+    }
+
+    private void updateServiceEnabledByPlatform() {
+        int subId = mPhone.getSubId();
+        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            log("updateServiceEnabledByPlatform subscription ID is invalid");
+            return;
+        }
+
+        ImsMmTelManager imsMmTelManager = mImsManager.getImsMmTelManager(subId);
+        try {
+            imsMmTelManager.isSupported(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN, getMainExecutor(), (result) -> {
+                        updateVolteProvisionedSwitch(result);
+                    });
+            imsMmTelManager.isSupported(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN, getMainExecutor(), (result) -> {
+                        updateVtProvisionedSwitch(result);
+                    });
+            imsMmTelManager.isSupported(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WLAN, getMainExecutor(), (result) -> {
+                        updateWfcProvisionedSwitch(result);
+                    });
+        } catch (ImsException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private Phone getPhone(int subId) {
+        log("getPhone subId = " + subId);
+        Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
+        if (phone == null) {
+            log("return the default phone");
+            return PhoneFactory.getDefaultPhone();
+        }
+
+        return phone;
+    }
 }
diff --git a/src/com/android/phone/slice/PremiumNetworkEntitlementApi.java b/src/com/android/phone/slice/PremiumNetworkEntitlementApi.java
new file mode 100644
index 0000000..de26955
--- /dev/null
+++ b/src/com/android/phone/slice/PremiumNetworkEntitlementApi.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.slice;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.provider.DeviceConfig;
+import android.telephony.AnomalyReporter;
+import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.libraries.entitlement.CarrierConfig;
+import com.android.libraries.entitlement.ServiceEntitlement;
+import com.android.libraries.entitlement.ServiceEntitlementException;
+import com.android.libraries.entitlement.ServiceEntitlementRequest;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.UUID;
+
+class PremiumNetworkEntitlementApi {
+    private static final String TAG = "PremiumNetworkEntitlementApi";
+    private static final String ENTITLEMENT_STATUS_KEY = "EntitlementStatus";
+    private static final String PROVISION_STATUS_KEY = "ProvisionStatus";
+    private static final String SERVICE_FLOW_URL_KEY = "ServiceFlow_URL";
+    private static final String PROVISION_TIME_LEFT_KEY = "ProvisionTimeLeft";
+    private static final String DEFAULT_EAP_AKA_RESPONSE = "Default EAP AKA response";
+    /**
+     * UUID to report an anomaly if an unexpected error is received during entitlement check.
+     */
+    private static final String UUID_ENTITLEMENT_CHECK_UNEXPECTED_ERROR =
+            "f2b0661a-9114-4b1b-9add-a8d338f9c054";
+
+    /**
+     * Experiment flag to enable bypassing EAP-AKA authentication for Slice Purchase activities.
+     * The device will accept any challenge from the entitlement server and return a predefined
+     * string as a response.
+     *
+     * This flag should be enabled for testing only.
+     */
+    public static final String BYPASS_EAP_AKA_AUTH_FOR_SLICE_PURCHASE_ENABLED =
+            "bypass_eap_aka_auth_for_slice_purchase_enabled";
+
+    @NonNull private final Phone mPhone;
+    @NonNull private final PersistableBundle mCarrierConfig;
+    @NonNull private final ServiceEntitlement mServiceEntitlement;
+
+    PremiumNetworkEntitlementApi(@NonNull Phone phone, PersistableBundle carrierConfig) {
+        mPhone = phone;
+        mCarrierConfig = carrierConfig;
+        if (isBypassEapAkaAuthForSlicePurchaseEnabled()) {
+            mServiceEntitlement =
+                    new ServiceEntitlement(
+                            mPhone.getContext(),
+                            getEntitlementServerCarrierConfig(carrierConfig),
+                            mPhone.getSubId(),
+                            true,
+                            DEFAULT_EAP_AKA_RESPONSE);
+        } else {
+            mServiceEntitlement =
+                    new ServiceEntitlement(
+                            mPhone.getContext(),
+                            getEntitlementServerCarrierConfig(carrierConfig),
+                            mPhone.getSubId());
+        }
+    }
+
+    /**
+     * Returns premium network slice entitlement check result from carrier API (over network),
+     * or {@code null} on unrecoverable network issue or malformed server response.
+     * This is blocking call sending HTTP request and should not be called on main thread.
+     */
+    @Nullable
+    public PremiumNetworkEntitlementResponse checkEntitlementStatus(
+            @TelephonyManager.PremiumCapability int capability) {
+        Log.d(TAG, "checkEntitlementStatus subId=" + mPhone.getSubId());
+        ServiceEntitlementRequest.Builder requestBuilder = ServiceEntitlementRequest.builder();
+        // Set fake device info to avoid leaking
+        requestBuilder.setTerminalVendor("vendorX");
+        requestBuilder.setTerminalModel("modelY");
+        requestBuilder.setTerminalSoftwareVersion("versionZ");
+        requestBuilder.setAcceptContentType(ServiceEntitlementRequest.ACCEPT_CONTENT_TYPE_JSON);
+        requestBuilder.setNetworkIdentifier(
+                TelephonyManager.convertPremiumCapabilityToString(capability));
+        ServiceEntitlementRequest request = requestBuilder.build();
+        PremiumNetworkEntitlementResponse premiumNetworkEntitlementResponse =
+                new PremiumNetworkEntitlementResponse();
+
+        String response = null;
+        try {
+            response = mServiceEntitlement.queryEntitlementStatus(
+                    ServiceEntitlement.APP_PREMIUM_NETWORK_SLICE,
+                    request);
+        } catch (ServiceEntitlementException e) {
+            Log.e(TAG, "queryEntitlementStatus failed", e);
+            reportAnomaly(UUID_ENTITLEMENT_CHECK_UNEXPECTED_ERROR,
+                    "checkEntitlementStatus failed with ServiceEntitlementException");
+        }
+        if (response == null) {
+            return null;
+        }
+        try {
+            JSONObject jsonAuthResponse = new JSONObject(response);
+            String entitlementStatus = null;
+            String provisionStatus = null;
+            String provisionTimeLeft = null;
+            if (jsonAuthResponse.has(ServiceEntitlement.APP_PREMIUM_NETWORK_SLICE)) {
+                JSONObject jsonToken = jsonAuthResponse.getJSONObject(
+                        ServiceEntitlement.APP_PREMIUM_NETWORK_SLICE);
+                if (jsonToken.has(ENTITLEMENT_STATUS_KEY)) {
+                    entitlementStatus = jsonToken.getString(ENTITLEMENT_STATUS_KEY);
+                    if (entitlementStatus == null) {
+                        return null;
+                    }
+                    premiumNetworkEntitlementResponse.mEntitlementStatus =
+                            Integer.valueOf(entitlementStatus);
+                }
+                if (jsonToken.has(PROVISION_STATUS_KEY)) {
+                    provisionStatus = jsonToken.getString(PROVISION_STATUS_KEY);
+                    if (provisionStatus != null) {
+                        premiumNetworkEntitlementResponse.mProvisionStatus =
+                                Integer.valueOf(provisionStatus);
+                    }
+                }
+                if (jsonToken.has(PROVISION_TIME_LEFT_KEY)) {
+                    provisionTimeLeft = jsonToken.getString(PROVISION_TIME_LEFT_KEY);
+                    if (provisionTimeLeft != null) {
+                        premiumNetworkEntitlementResponse.mEntitlementStatus =
+                                Integer.valueOf(provisionTimeLeft);
+                    }
+                }
+                if (jsonToken.has(SERVICE_FLOW_URL_KEY)) {
+                    provisionStatus = jsonToken.getString(SERVICE_FLOW_URL_KEY);
+                    premiumNetworkEntitlementResponse.mServiceFlowURL =
+                            jsonToken.getString(SERVICE_FLOW_URL_KEY);
+                }
+            }
+
+
+        } catch (JSONException e) {
+            Log.e(TAG, "queryEntitlementStatus failed", e);
+            reportAnomaly(UUID_ENTITLEMENT_CHECK_UNEXPECTED_ERROR,
+                    "checkEntitlementStatus failed with JSONException");
+        }
+
+        return premiumNetworkEntitlementResponse;
+    }
+
+    private void reportAnomaly(@NonNull String uuid, @NonNull String log) {
+        AnomalyReporter.reportAnomaly(UUID.fromString(uuid), log);
+    }
+
+
+    /** Returns carrier config for the {@code subId}. */
+    private static PersistableBundle getConfigForSubId(Context context, int subId) {
+        CarrierConfigManager carrierConfigManager =
+                context.getSystemService(CarrierConfigManager.class);
+        PersistableBundle carrierConfig = carrierConfigManager.getConfigForSubId(subId);
+        if (carrierConfig == null) {
+            Log.d(TAG, "getDefaultConfig");
+            carrierConfig = CarrierConfigManager.getDefaultConfig();
+        }
+        return carrierConfig;
+    }
+
+    /**
+     * Returns entitlement server url for the {@code subId} or
+     * a default empty string if it is not available.
+     */
+    public static String getEntitlementServerUrl(PersistableBundle carrierConfig, int subId) {
+        return carrierConfig.getString(
+                CarrierConfigManager.ImsServiceEntitlement.KEY_ENTITLEMENT_SERVER_URL_STRING,
+                "");
+    }
+
+    private CarrierConfig getEntitlementServerCarrierConfig(PersistableBundle carrierConfig) {
+        String entitlementServiceUrl = getEntitlementServerUrl(carrierConfig, mPhone.getSubId());
+        return CarrierConfig.builder().setServerUrl(entitlementServiceUrl).build();
+    }
+
+    private boolean isBypassEapAkaAuthForSlicePurchaseEnabled() {
+        return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_TELEPHONY,
+                BYPASS_EAP_AKA_AUTH_FOR_SLICE_PURCHASE_ENABLED, false);
+    }
+}
diff --git a/src/com/android/phone/slice/PremiumNetworkEntitlementResponse.java b/src/com/android/phone/slice/PremiumNetworkEntitlementResponse.java
new file mode 100644
index 0000000..4588b71
--- /dev/null
+++ b/src/com/android/phone/slice/PremiumNetworkEntitlementResponse.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.slice;
+
+import android.annotation.IntDef;
+
+class PremiumNetworkEntitlementResponse {
+
+    public static final int PREMIUM_NETWORK_ENTITLEMENT_STATUS_DISABLED = 0;
+    public static final int PREMIUM_NETWORK_ENTITLEMENT_STATUS_ENABLED = 1;
+    public static final int PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCOMPATIBLE = 2;
+    public static final int PREMIUM_NETWORK_ENTITLEMENT_STATUS_PROVISIONING = 3;
+    public static final int PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCLUDED = 4;
+
+    @IntDef(prefix = {"PREMIUM_NETWORK_ENTITLEMENT_STATUS_"},
+            value = {
+                    PREMIUM_NETWORK_ENTITLEMENT_STATUS_DISABLED,
+                    PREMIUM_NETWORK_ENTITLEMENT_STATUS_ENABLED,
+                    PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCOMPATIBLE,
+                    PREMIUM_NETWORK_ENTITLEMENT_STATUS_PROVISIONING,
+                    PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCLUDED
+            })
+    public @interface PremiumNetworkEntitlementStatus {}
+
+    public static final int PREMIUM_NETWORK_PROVISION_STATUS_NOT_PROVISIONED = 0;
+    public static final int PREMIUM_NETWORK_PROVISION_STATUS_PROVISIONED = 1;
+    public static final int PREMIUM_NETWORK_PROVISION_STATUS_NOT_REQUIRED = 2;
+    public static final int PREMIUM_NETWORK_PROVISION_STATUS_IN_PROGRESS = 3;
+
+    @IntDef(prefix = {"PREMIUM_NETWORK_PROVISION_STATUS_"},
+            value = {
+                    PREMIUM_NETWORK_PROVISION_STATUS_NOT_PROVISIONED,
+                    PREMIUM_NETWORK_PROVISION_STATUS_PROVISIONED,
+                    PREMIUM_NETWORK_PROVISION_STATUS_NOT_REQUIRED,
+                    PREMIUM_NETWORK_PROVISION_STATUS_IN_PROGRESS
+            })
+    public @interface PremiumNetworkProvisionStatus {}
+
+    @PremiumNetworkEntitlementStatus int mEntitlementStatus;
+    @PremiumNetworkProvisionStatus int mProvisionStatus;
+    int mProvisionTimeLeftInSeconds;
+    String mServiceFlowURL;
+
+    boolean isProvisioned() {
+        if (mProvisionStatus == PREMIUM_NETWORK_PROVISION_STATUS_PROVISIONED
+                || mEntitlementStatus == PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCLUDED) {
+            return true;
+        }
+        return false;
+    }
+
+    boolean isProvisioningInProgress() {
+        if (mProvisionStatus == PREMIUM_NETWORK_PROVISION_STATUS_IN_PROGRESS
+                || mEntitlementStatus == PREMIUM_NETWORK_ENTITLEMENT_STATUS_PROVISIONING) {
+            return true;
+        }
+        return false;
+    }
+
+    boolean isPremiumNetworkCapabilityAllowed() {
+        switch (mEntitlementStatus) {
+            case PREMIUM_NETWORK_ENTITLEMENT_STATUS_INCOMPATIBLE:
+            case PREMIUM_NETWORK_ENTITLEMENT_STATUS_DISABLED:
+                return false;
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/phone/slicestore/SliceStore.java b/src/com/android/phone/slice/SlicePurchaseController.java
similarity index 69%
rename from src/com/android/phone/slicestore/SliceStore.java
rename to src/com/android/phone/slice/SlicePurchaseController.java
index bb66973..0f29c70 100644
--- a/src/com/android/phone/slicestore/SliceStore.java
+++ b/src/com/android/phone/slice/SlicePurchaseController.java
@@ -14,7 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.phone.slicestore;
+package com.android.phone.slice;
+
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
@@ -28,6 +33,8 @@
 import android.net.ConnectivityManager;
 import android.os.AsyncResult;
 import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.telephony.AnomalyReporter;
@@ -57,8 +64,8 @@
 import java.util.function.Consumer;
 
 /**
- * The SliceStore controls the purchase and availability of all cellular premium capabilities.
- * Applications can check whether premium capabilities are available by calling
+ * The SlicePurchaseController controls the purchase and availability of all cellular premium
+ * capabilities. Applications can check whether premium capabilities are available by calling
  * {@link TelephonyManager#isPremiumCapabilityAvailableForPurchase(int)}. If this returns true,
  * they can then call {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)}
  * to purchase the premium capability. If all conditions are met, a notification will be displayed
@@ -67,8 +74,8 @@
  * from the carrier. If the purchase is successful, the premium capability will be available for
  * all applications to request through {@link ConnectivityManager#requestNetwork}.
  */
-public class SliceStore extends Handler {
-    @NonNull private static final String TAG = "SliceStore";
+public class SlicePurchaseController extends Handler {
+    @NonNull private static final String TAG = "SlicePurchaseController";
 
     /** Unknown failure code. */
     public static final int FAILURE_CODE_UNKNOWN = 0;
@@ -128,101 +135,108 @@
      */
     private static final String UUID_NETWORK_SETUP_FAILED = "12eeffbf-08f8-40ed-9a00-d344199552fc";
 
-    /** Action to start the SliceStore application and display the network boost notification. */
-    public static final String ACTION_START_SLICE_STORE =
-            "com.android.phone.slicestore.action.START_SLICE_STORE";
-    /** Action indicating the SliceStore purchase was not completed in time. */
-    public static final String ACTION_SLICE_STORE_RESPONSE_TIMEOUT =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_TIMEOUT";
+    /**
+     * Action to start the slice purchase application and display the network boost notification.
+     */
+    public static final String ACTION_START_SLICE_PURCHASE_APP =
+            "com.android.phone.slice.action.START_SLICE_PURCHASE_APP";
+    /** Action indicating the premium capability purchase was not completed in time. */
+    public static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_TIMEOUT =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_TIMEOUT";
     /** Action indicating the network boost notification or WebView was canceled. */
-    private static final String ACTION_SLICE_STORE_RESPONSE_CANCELED =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_CANCELED";
+    private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_CANCELED";
     /** Action indicating a carrier error prevented premium capability purchase. */
-    private static final String ACTION_SLICE_STORE_RESPONSE_CARRIER_ERROR =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_CARRIER_ERROR";
-    /** Action indicating a Telephony or SliceStore error prevented premium capability purchase. */
-    private static final String ACTION_SLICE_STORE_RESPONSE_REQUEST_FAILED =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_REQUEST_FAILED";
+    private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR";
+    /**
+     * Action indicating a Telephony or slice purchase application error prevented premium
+     * capability purchase.
+     */
+    private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED";
     /** Action indicating the purchase request was not made on the default data subscription. */
-    private static final String ACTION_SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA";
+    private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB";
     /** Action indicating the purchase request was successful. */
-    private static final String ACTION_SLICE_STORE_RESPONSE_SUCCESS =
-            "com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_SUCCESS";
+    private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS =
+            "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_SUCCESS";
 
-    /** Extra for the phone index to send to the SliceStore application. */
-    public static final String EXTRA_PHONE_ID = "com.android.phone.slicestore.extra.PHONE_ID";
-    /** Extra for the subscription ID to send to the SliceStore application. */
-    public static final String EXTRA_SUB_ID = "com.android.phone.slicestore.extra.SUB_ID";
-    /** Extra for the requested premium capability to purchase from the SliceStore application. */
+    /** Extra for the phone index to send to the slice purchase application. */
+    public static final String EXTRA_PHONE_ID = "com.android.phone.slice.extra.PHONE_ID";
+    /** Extra for the subscription ID to send to the slice purchase application. */
+    public static final String EXTRA_SUB_ID = "com.android.phone.slice.extra.SUB_ID";
+    /**
+     * Extra for the requested premium capability to purchase from the slice purchase application.
+     */
     public static final String EXTRA_PREMIUM_CAPABILITY =
-            "com.android.phone.slicestore.extra.PREMIUM_CAPABILITY";
+            "com.android.phone.slice.extra.PREMIUM_CAPABILITY";
     /** Extra for the duration of the purchased premium capability. */
     public static final String EXTRA_PURCHASE_DURATION =
-            "com.android.phone.slicestore.extra.PURCHASE_DURATION";
+            "com.android.phone.slice.extra.PURCHASE_DURATION";
     /** Extra for the {@link FailureCode} why the premium capability purchase failed. */
-    public static final String EXTRA_FAILURE_CODE =
-            "com.android.phone.slicestore.extra.FAILURE_CODE";
+    public static final String EXTRA_FAILURE_CODE = "com.android.phone.slice.extra.FAILURE_CODE";
     /** Extra for the human-readable reason why the premium capability purchase failed. */
     public static final String EXTRA_FAILURE_REASON =
-            "com.android.phone.slicestore.extra.FAILURE_REASON";
+            "com.android.phone.slice.extra.FAILURE_REASON";
     /**
      * Extra for the application name requesting to purchase the premium capability
-     * from the SliceStore application.
+     * from the slice purchase application.
      */
     public static final String EXTRA_REQUESTING_APP_NAME =
-            "com.android.phone.slicestore.extra.REQUESTING_APP_NAME";
+            "com.android.phone.slice.extra.REQUESTING_APP_NAME";
     /**
-     * Extra for the canceled PendingIntent that the SliceStore application can send as a response
-     * if the network boost notification or WebView was canceled by the user.
-     * Sends {@link #ACTION_SLICE_STORE_RESPONSE_CANCELED}.
+     * Extra for the canceled PendingIntent that the slice purchase application can send as a
+     * response if the network boost notification or WebView was canceled by the user.
+     * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED}.
      */
     public static final String EXTRA_INTENT_CANCELED =
-            "com.android.phone.slicestore.extra.INTENT_CANCELED";
+            "com.android.phone.slice.extra.INTENT_CANCELED";
     /**
-     * Extra for the carrier error PendingIntent that the SliceStore application can send as a
+     * Extra for the carrier error PendingIntent that the slice purchase application can send as a
      * response if the premium capability purchase request failed due to a carrier error.
-     * Sends {@link #ACTION_SLICE_STORE_RESPONSE_CARRIER_ERROR}.
+     * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR}.
      * Sender can modify the intent to specify the failure code and reason for failure with
      * {@link #EXTRA_FAILURE_CODE} and {@link #EXTRA_FAILURE_REASON}.
      */
     public static final String EXTRA_INTENT_CARRIER_ERROR =
-            "com.android.phone.slicestore.extra.INTENT_CARRIER_ERROR";
+            "com.android.phone.slice.extra.INTENT_CARRIER_ERROR";
     /**
-     * Extra for the request failed PendingIntent that the SliceStore application can send as a
+     * Extra for the request failed PendingIntent that the slice purchase application can send as a
      * response if the premium capability purchase request failed due to an error in Telephony or
-     * the SliceStore application.
-     * Sends {@link #ACTION_SLICE_STORE_RESPONSE_REQUEST_FAILED}.
+     * the slice purchase application.
+     * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED}.
      */
     public static final String EXTRA_INTENT_REQUEST_FAILED =
-            "com.android.phone.slicestore.extra.INTENT_REQUEST_FAILED";
+            "com.android.phone.slice.extra.INTENT_REQUEST_FAILED";
     /**
-     * Extra for the not-default data subscription ID PendingIntent that the SliceStore application
-     * can send as a response if the premium capability purchase request failed because it was not
-     * requested on the default data subscription.
-     * Sends {@link #ACTION_SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA}.
+     * Extra for the not-default data subscription ID PendingIntent that the slice purchase
+     * application can send as a response if the premium capability purchase request failed because
+     * it was not requested on the default data subscription.
+     * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB}.
      */
-    public static final String EXTRA_INTENT_NOT_DEFAULT_DATA =
-            "com.android.phone.slicestore.extra.INTENT_NOT_DEFAULT_DATA";
+    public static final String EXTRA_INTENT_NOT_DEFAULT_DATA_SUB =
+            "com.android.phone.slice.extra.INTENT_NOT_DEFAULT_DATA_SUB";
     /**
-     * Extra for the success PendingIntent that the SliceStore application can send as a response
-     * if the premium capability purchase request was successful.
-     * Sends {@link #ACTION_SLICE_STORE_RESPONSE_SUCCESS}.
+     * Extra for the success PendingIntent that the slice purchase application can send as a
+     * response if the premium capability purchase request was successful.
+     * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS}.
      * Sender can modify the intent to specify a purchase duration with
      * {@link #EXTRA_PURCHASE_DURATION}.
      */
     public static final String EXTRA_INTENT_SUCCESS =
-            "com.android.phone.slicestore.extra.INTENT_SUCCESS";
+            "com.android.phone.slice.extra.INTENT_SUCCESS";
 
-    /** Component name to send an explicit broadcast to SliceStoreBroadcastReceiver. */
-    private static final ComponentName SLICE_STORE_COMPONENT_NAME =
+    /** Component name to send an explicit broadcast to SlicePurchaseBroadcastReceiver. */
+    private static final ComponentName SLICE_PURCHASE_APP_COMPONENT_NAME =
             ComponentName.unflattenFromString(
-                    "com.android.carrierdefaultapp/.SliceStoreBroadcastReceiver");
+                    "com.android.carrierdefaultapp/.SlicePurchaseBroadcastReceiver");
 
-    /** Map of phone ID -> SliceStore instances. */
-    @NonNull private static final Map<Integer, SliceStore> sInstances = new HashMap<>();
+    /** Map of phone ID -> SlicePurchaseController instances. */
+    @NonNull private static final Map<Integer, SlicePurchaseController> sInstances =
+            new HashMap<>();
 
-    /** The Phone instance used to create the SliceStore */
+    /** The Phone instance used to create the SlicePurchaseController. */
     @NonNull private final Phone mPhone;
     /** The set of capabilities that are pending network setup. */
     @NonNull private final Set<Integer> mPendingSetupCapabilities = new HashSet<>();
@@ -230,81 +244,92 @@
     @NonNull private final Set<Integer> mThrottledCapabilities = new HashSet<>();
     /** A map of pending capabilities to the onComplete message for the purchase request. */
     @NonNull private final Map<Integer, Message> mPendingPurchaseCapabilities = new HashMap<>();
-    /** A map of capabilities to the SliceStoreBroadcastReceiver for SliceStore responses. */
-    @NonNull private final Map<Integer, SliceStoreBroadcastReceiver> mSliceStoreBroadcastReceivers =
-            new HashMap<>();
+    /**
+     * A map of capabilities to the SlicePurchaseControllerBroadcastReceiver to handle
+     * slice purchase application responses.
+     */
+    @NonNull private final Map<Integer, SlicePurchaseControllerBroadcastReceiver>
+            mSlicePurchaseControllerBroadcastReceivers = new HashMap<>();
     /** The current network slicing configuration. */
     @Nullable private NetworkSlicingConfig mSlicingConfig;
+    /* Premium network entitlement query API */
+    @NonNull private PremiumNetworkEntitlementApi mPremiumNetworkEntitlementApi;
 
-    private class SliceStoreBroadcastReceiver extends BroadcastReceiver {
+    private class SlicePurchaseControllerBroadcastReceiver extends BroadcastReceiver {
         @TelephonyManager.PremiumCapability private final int mCapability;
 
-        SliceStoreBroadcastReceiver(@TelephonyManager.PremiumCapability int capability) {
+        SlicePurchaseControllerBroadcastReceiver(
+                @TelephonyManager.PremiumCapability int capability) {
             mCapability = capability;
         }
 
         @Override
         public void onReceive(@NonNull Context context, @NonNull Intent intent) {
             String action = intent.getAction();
-            logd("SliceStoreBroadcastReceiver("
+            logd("SlicePurchaseControllerBroadcastReceiver("
                     + TelephonyManager.convertPremiumCapabilityToString(mCapability)
                     + ") received action: " + action);
             int phoneId = intent.getIntExtra(EXTRA_PHONE_ID,
                     SubscriptionManager.INVALID_PHONE_INDEX);
             int capability = intent.getIntExtra(EXTRA_PREMIUM_CAPABILITY,
                     PREMIUM_CAPABILITY_INVALID);
-            if (SliceStore.getInstance(phoneId) == null) {
-                reportAnomaly(UUID_INVALID_PHONE_ID, "SliceStoreBroadcastReceiver( "
+            if (SlicePurchaseController.getInstance(phoneId) == null) {
+                reportAnomaly(UUID_INVALID_PHONE_ID, "SlicePurchaseControllerBroadcastReceiver( "
                         + TelephonyManager.convertPremiumCapabilityToString(mCapability)
                         + ") received invalid phoneId: " + phoneId);
                 return;
             } else if (capability != mCapability) {
-                logd("SliceStoreBroadcastReceiver("
+                logd("SlicePurchaseControllerBroadcastReceiver("
                         + TelephonyManager.convertPremiumCapabilityToString(mCapability)
                         + ") ignoring intent for capability "
                         + TelephonyManager.convertPremiumCapabilityToString(capability));
                 return;
             }
             switch (action) {
-                case ACTION_SLICE_STORE_RESPONSE_CANCELED: {
-                    logd("SliceStore canceled for capability: "
+                case ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED: {
+                    logd("Slice purchase application canceled for capability: "
                             + TelephonyManager.convertPremiumCapabilityToString(capability));
-                    SliceStore.getInstance(phoneId).sendPurchaseResultFromSliceStore(capability,
+                    SlicePurchaseController.getInstance(phoneId)
+                            .handlePurchaseResult(capability,
                             TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED,
                             true);
                     break;
                 }
-                case ACTION_SLICE_STORE_RESPONSE_CARRIER_ERROR: {
+                case ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR: {
                     int failureCode = intent.getIntExtra(EXTRA_FAILURE_CODE, FAILURE_CODE_UNKNOWN);
                     String failureReason = intent.getStringExtra(EXTRA_FAILURE_REASON);
-                    SliceStore.getInstance(phoneId).onCarrierError(
+                    SlicePurchaseController.getInstance(phoneId).onCarrierError(
                             capability, failureCode, failureReason);
                     break;
                 }
-                case ACTION_SLICE_STORE_RESPONSE_REQUEST_FAILED: {
+                case ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED: {
                     logd("Purchase premium capability request failed for capability: "
                             + TelephonyManager.convertPremiumCapabilityToString(capability));
-                    SliceStore.getInstance(phoneId).sendPurchaseResultFromSliceStore(capability,
+                    SlicePurchaseController.getInstance(phoneId)
+                            .handlePurchaseResult(capability,
                             TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED,
                             false);
                     break;
                 }
-                case ACTION_SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA: {
+                case ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB: {
                     logd("Purchase premium capability request was not made on the default data "
                             + "subscription for capability: "
                             + TelephonyManager.convertPremiumCapabilityToString(capability));
-                    SliceStore.getInstance(phoneId).sendPurchaseResultFromSliceStore(capability,
-                            TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA,
+                    SlicePurchaseController.getInstance(phoneId)
+                            .handlePurchaseResult(capability,
+                            TelephonyManager
+                                    .PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB,
                             false);
                     break;
                 }
-                case ACTION_SLICE_STORE_RESPONSE_SUCCESS: {
+                case ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS: {
                     long duration = intent.getLongExtra(EXTRA_PURCHASE_DURATION, 0);
-                    SliceStore.getInstance(phoneId).onCarrierSuccess(capability, duration);
+                    SlicePurchaseController.getInstance(phoneId).onCarrierSuccess(
+                            capability, duration);
                     break;
                 }
                 default:
-                    reportAnomaly(UUID_UNKNOWN_ACTION, "SliceStoreBroadcastReceiver("
+                    reportAnomaly(UUID_UNKNOWN_ACTION, "SlicePurchaseControllerBroadcastReceiver("
                             + TelephonyManager.convertPremiumCapabilityToString(mCapability)
                             + ") received unknown action: " + action);
                     break;
@@ -313,36 +338,42 @@
     }
 
     /**
-     * Get the static SliceStore instance for the given phone or create one if it doesn't exist.
+     * Get the static SlicePurchaseController instance for the given phone or create one if it
+     * doesn't exist.
      *
-     * @param phone The Phone to get the SliceStore for.
-     * @return The static SliceStore instance.
+     * @param phone The Phone to get the SlicePurchaseController for.
+     * @return The static SlicePurchaseController instance.
      */
-    @NonNull public static synchronized SliceStore getInstance(@NonNull Phone phone) {
+    @NonNull public static synchronized SlicePurchaseController getInstance(@NonNull Phone phone) {
         // TODO: Add listeners for multi sim setting changed (maybe carrier config changed too)
-        //  that dismiss notifications and update SliceStore instance
+        //  that dismiss notifications and update SlicePurchaseController instance
         int phoneId = phone.getPhoneId();
         if (sInstances.get(phoneId) == null) {
-            sInstances.put(phoneId, new SliceStore(phone));
+            HandlerThread handlerThread = new HandlerThread("SlicePurchaseController");
+            handlerThread.start();
+            sInstances.put(phoneId, new SlicePurchaseController(phone, handlerThread.getLooper()));
         }
         return sInstances.get(phoneId);
     }
 
     /**
-     * Get the static SliceStore instance for the given phone ID if it exists.
+     * Get the static SlicePurchaseController instance for the given phone ID if it exists.
      *
-     * @param phoneId The phone ID to get the SliceStore for.
-     * @return The static SliceStore instance or {@code null} if it hasn't been created yet.
+     * @param phoneId The phone ID to get the SlicePurchaseController for.
+     * @return The static SlicePurchaseController instance or
+     *         {@code null} if it hasn't been created yet.
      */
-    @Nullable private static SliceStore getInstance(int phoneId) {
+    @Nullable private static SlicePurchaseController getInstance(int phoneId) {
         return sInstances.get(phoneId);
     }
 
-    private SliceStore(@NonNull Phone phone) {
-        super(phone.getLooper());
+    private SlicePurchaseController(@NonNull Phone phone, @NonNull Looper looper) {
+        super(looper);
         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());
     }
 
     @Override
@@ -407,7 +438,7 @@
                     + " unsupported by the carrier.");
             return false;
         }
-        if (!isDefaultData()) {
+        if (!isDefaultDataSub()) {
             logd("Premium capability "
                     + TelephonyManager.convertPremiumCapabilityToString(capability)
                     + " unavailable on the non-default data subscription.");
@@ -440,19 +471,19 @@
         }
         if (!isPremiumCapabilitySupportedByCarrier(capability)) {
             sendPurchaseResult(capability,
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED,
                     onComplete);
             return;
         }
-        if (!isDefaultData()) {
+        if (!isDefaultDataSub()) {
             sendPurchaseResult(capability,
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA,
+                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB,
                     onComplete);
             return;
         }
         if (isSlicingConfigActive(capability)) {
             sendPurchaseResult(capability,
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED,
                     onComplete);
             return;
         }
@@ -474,17 +505,10 @@
                     onComplete);
             return;
         }
-        if (isNetworkCongested(capability)) {
-            throttleCapability(capability, getThrottleDuration(
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED));
-            sendPurchaseResult(capability,
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED,
-                    onComplete);
-            return;
-        }
+
         if (mPendingPurchaseCapabilities.containsKey(capability)) {
             sendPurchaseResult(capability,
-                    TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS,
                     onComplete);
             return;
         }
@@ -507,10 +531,11 @@
         onComplete.sendToTarget();
     }
 
-    private void sendPurchaseResultFromSliceStore(
+    private void handlePurchaseResult(
             @TelephonyManager.PremiumCapability int capability,
             @TelephonyManager.PurchasePremiumCapabilityResult int result, boolean throttle) {
-        mPhone.getContext().unregisterReceiver(mSliceStoreBroadcastReceivers.remove(capability));
+        mPhone.getContext().unregisterReceiver(
+                mSlicePurchaseControllerBroadcastReceivers.remove(capability));
         removeMessages(EVENT_PURCHASE_TIMEOUT, capability);
         if (throttle) {
             throttleCapability(capability, getThrottleDuration(result));
@@ -550,6 +575,37 @@
 
     private void onDisplayBoosterNotification(@TelephonyManager.PremiumCapability int capability,
             @NonNull String appName) {
+        PremiumNetworkEntitlementResponse premiumNetworkEntitlementResponse =
+                mPremiumNetworkEntitlementApi.checkEntitlementStatus(capability);
+
+        /* invalid response for entitlement check */
+        if (premiumNetworkEntitlementResponse == null) {
+            logd("Invalid response for entitlement check.");
+            handlePurchaseResult(capability,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED, true);
+            return;
+        }
+
+        if (premiumNetworkEntitlementResponse.isProvisioned()) {
+            logd("Entitlement Check: Already provisioned.");
+            handlePurchaseResult(capability,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED, true);
+            return;
+        }
+
+        if (premiumNetworkEntitlementResponse.isProvisioningInProgress()) {
+            logd("Entitlement Check: In Progress");
+            handlePurchaseResult(capability,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS, true);
+            return;
+        }
+
+        if (!premiumNetworkEntitlementResponse.isPremiumNetworkCapabilityAllowed()) {
+            handlePurchaseResult(capability,
+                    PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED, true);
+            return;
+        }
+
         // Start timeout for purchase completion.
         long timeout = getCarrierConfigs().getLong(CarrierConfigManager
                 .KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG);
@@ -558,40 +614,41 @@
                 + TimeUnit.MILLISECONDS.toMinutes(timeout) + " minutes.");
         sendMessageDelayed(obtainMessage(EVENT_PURCHASE_TIMEOUT, capability), timeout);
 
-        // Broadcast start intent to start the SliceStore application
-        Intent intent = new Intent(ACTION_START_SLICE_STORE);
-        intent.setComponent(SLICE_STORE_COMPONENT_NAME);
+        // Broadcast start intent to start the slice purchase application
+        Intent intent = new Intent(ACTION_START_SLICE_PURCHASE_APP);
+        intent.setComponent(SLICE_PURCHASE_APP_COMPONENT_NAME);
         intent.putExtra(EXTRA_PHONE_ID, mPhone.getPhoneId());
         intent.putExtra(EXTRA_SUB_ID, mPhone.getSubId());
         intent.putExtra(EXTRA_PREMIUM_CAPABILITY, capability);
         intent.putExtra(EXTRA_REQUESTING_APP_NAME, appName);
-        intent.putExtra(EXTRA_INTENT_CANCELED,
-                createPendingIntent(ACTION_SLICE_STORE_RESPONSE_CANCELED, capability, false));
-        intent.putExtra(EXTRA_INTENT_CARRIER_ERROR,
-                createPendingIntent(ACTION_SLICE_STORE_RESPONSE_CARRIER_ERROR, capability, true));
-        intent.putExtra(EXTRA_INTENT_REQUEST_FAILED,
-                createPendingIntent(ACTION_SLICE_STORE_RESPONSE_REQUEST_FAILED, capability, false));
-        intent.putExtra(EXTRA_INTENT_NOT_DEFAULT_DATA,
-                createPendingIntent(ACTION_SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA, capability,
-                        false));
-        intent.putExtra(EXTRA_INTENT_SUCCESS,
-                createPendingIntent(ACTION_SLICE_STORE_RESPONSE_SUCCESS, capability, true));
-        logd("Broadcasting start intent to SliceStoreBroadcastReceiver.");
+        intent.putExtra(EXTRA_INTENT_CANCELED, createPendingIntent(
+                ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED, capability, false));
+        intent.putExtra(EXTRA_INTENT_CARRIER_ERROR, createPendingIntent(
+                ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR, capability, true));
+        intent.putExtra(EXTRA_INTENT_REQUEST_FAILED, createPendingIntent(
+                ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED, capability, false));
+        intent.putExtra(EXTRA_INTENT_NOT_DEFAULT_DATA_SUB, createPendingIntent(
+                ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB, capability, false));
+        intent.putExtra(EXTRA_INTENT_SUCCESS, createPendingIntent(
+                ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS, capability, true));
+        logd("Broadcasting start intent to SlicePurchaseBroadcastReceiver.");
         mPhone.getContext().sendBroadcast(intent);
 
-        // Listen for responses from the SliceStore application
-        mSliceStoreBroadcastReceivers.put(capability, new SliceStoreBroadcastReceiver(capability));
+        // Listen for responses from the slice purchase application
+        mSlicePurchaseControllerBroadcastReceivers.put(capability,
+                new SlicePurchaseControllerBroadcastReceiver(capability));
         IntentFilter filter = new IntentFilter();
-        filter.addAction(ACTION_SLICE_STORE_RESPONSE_CANCELED);
-        filter.addAction(ACTION_SLICE_STORE_RESPONSE_CARRIER_ERROR);
-        filter.addAction(ACTION_SLICE_STORE_RESPONSE_REQUEST_FAILED);
-        filter.addAction(ACTION_SLICE_STORE_RESPONSE_NOT_DEFAULT_DATA);
-        filter.addAction(ACTION_SLICE_STORE_RESPONSE_SUCCESS);
-        mPhone.getContext().registerReceiver(mSliceStoreBroadcastReceivers.get(capability), filter);
+        filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED);
+        filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR);
+        filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED);
+        filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB);
+        filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS);
+        mPhone.getContext().registerReceiver(
+                mSlicePurchaseControllerBroadcastReceivers.get(capability), filter);
     }
 
     /**
-     * Create the PendingIntent to allow SliceStore to send back responses.
+     * Create the PendingIntent to allow the slice purchase application to send back responses.
      *
      * @param action The action that will be sent for this PendingIntent
      * @param capability The premium capability that was requested.
@@ -611,15 +668,15 @@
 
     private void onTimeout(@TelephonyManager.PremiumCapability int capability) {
         logd("onTimeout: " + TelephonyManager.convertPremiumCapabilityToString(capability));
-        // Broadcast timeout intent to clean up the SliceStore notification and activity
-        Intent intent = new Intent(ACTION_SLICE_STORE_RESPONSE_TIMEOUT);
-        intent.setComponent(SLICE_STORE_COMPONENT_NAME);
+        // Broadcast timeout intent to clean up the slice purchase notification and activity
+        Intent intent = new Intent(ACTION_SLICE_PURCHASE_APP_RESPONSE_TIMEOUT);
+        intent.setComponent(SLICE_PURCHASE_APP_COMPONENT_NAME);
         intent.putExtra(EXTRA_PHONE_ID, mPhone.getPhoneId());
         intent.putExtra(EXTRA_PREMIUM_CAPABILITY, capability);
-        logd("Broadcasting timeout intent to SliceStoreBroadcastReceiver.");
+        logd("Broadcasting timeout intent to SlicePurchaseBroadcastReceiver.");
         mPhone.getContext().sendBroadcast(intent);
 
-        sendPurchaseResultFromSliceStore(
+        handlePurchaseResult(
                 capability, TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT, true);
     }
 
@@ -632,22 +689,22 @@
             reportAnomaly(UUID_UNKNOWN_FAILURE_CODE,
                     "Failure code needs to be added for: " + failureReason);
         }
-        sendPurchaseResultFromSliceStore(capability,
+        handlePurchaseResult(capability,
                 TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR, true);
     }
 
     private void onCarrierSuccess(@TelephonyManager.PremiumCapability int capability,
             long duration) {
         logd("Successfully purchased premium capability "
-                + TelephonyManager.convertPremiumCapabilityToString(capability)
-                + " for " + TimeUnit.MILLISECONDS.toMinutes(duration) + " minutes.");
+                + TelephonyManager.convertPremiumCapabilityToString(capability) + (duration > 0
+                ? " for " + TimeUnit.MILLISECONDS.toMinutes(duration) + " minutes." : "."));
         mPendingSetupCapabilities.add(capability);
         long setupDuration = getCarrierConfigs().getLong(
                 CarrierConfigManager.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG);
         logd("Waiting " + TimeUnit.MILLISECONDS.toMinutes(setupDuration) + " minutes for the "
                 + "network to set up the slicing configuration.");
         sendMessageDelayed(obtainMessage(EVENT_SETUP_TIMEOUT, capability), setupDuration);
-        sendPurchaseResultFromSliceStore(
+        handlePurchaseResult(
                 capability, TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS, false);
     }
 
@@ -673,7 +730,7 @@
             return getCarrierConfigs().getLong(CarrierConfigManager
                     .KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG);
         }
-        if (result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED
+        if (result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED
                 || result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR) {
             return getCarrierConfigs().getLong(CarrierConfigManager
                     .KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG);
@@ -710,7 +767,7 @@
                 & TelephonyManager.NETWORK_TYPE_BITMASK_NR) != 0;
     }
 
-    private boolean isDefaultData() {
+    private boolean isDefaultDataSub() {
         return mPhone.getSubId() == SubscriptionManager.getDefaultDataSubscriptionId();
     }
 
@@ -749,18 +806,13 @@
         return false;
     }
 
-    private boolean isNetworkCongested(@TelephonyManager.PremiumCapability int capability) {
-        // TODO: Implement TS43
-        return true;
-    }
-
     /**
      * Returns the failure code {@link FailureCode} as a String.
      *
      * @param failureCode The failure code.
      * @return The failure code as a String.
      */
-    @NonNull public static String convertFailureCodeToString(@FailureCode int failureCode) {
+    @NonNull private static String convertFailureCodeToString(@FailureCode int failureCode) {
         switch (failureCode) {
             case FAILURE_CODE_UNKNOWN: return "UNKNOWN";
             case FAILURE_CODE_CARRIER_URL_UNAVAILABLE: return "CARRIER_URL_UNAVAILABLE";
diff --git a/src/com/android/services/telephony/TelephonyConferenceController.java b/src/com/android/services/telephony/TelephonyConferenceController.java
index 9aa3dbe..f0aa641 100644
--- a/src/com/android/services/telephony/TelephonyConferenceController.java
+++ b/src/com/android/services/telephony/TelephonyConferenceController.java
@@ -20,6 +20,8 @@
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
+import android.text.TextUtils;
+import android.util.Patterns;
 
 import com.android.internal.telephony.Call;
 import com.android.phone.PhoneUtils;
@@ -40,7 +42,6 @@
  */
 final class TelephonyConferenceController {
     private static final int TELEPHONY_CONFERENCE_MAX_SIZE = 5;
-    private static final String RIL_REPORTED_CONFERENCE_CALL_STRING = "Conference Call";
 
     private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
             new TelephonyConnection.TelephonyConnectionListener() {
@@ -271,13 +272,13 @@
                             // Remove all instances of PROPERTY_IS_DOWNGRADED_CONFERENCE. This
                             // property should only be set on the parent call (i.e. the newly
                             // created TelephonyConference.
-                            // This doesn't apply to a connection whose address is "Conference
-                            // Call", which may be updated by some modem to create a connection
-                            // to represent a merged conference connection in SRVCC.
+                            // This doesn't apply to a connection whose address is not an
+                            // identifiable phone number, which may be updated by some modem
+                            // to create a connection to represent a merged conference connection
+                            // in SRVCC.
                             if (connection.getAddress() == null
-                                    || !connection.getAddress().getSchemeSpecificPart()
-                                            .equalsIgnoreCase(
-                                                    RIL_REPORTED_CONFERENCE_CALL_STRING)) {
+                                    || isPhoneNumber(
+                                            connection.getAddress().getSchemeSpecificPart())) {
                                 Log.d(this, "Removing PROPERTY_IS_DOWNGRADED_CONFERENCE"
                                         + " from connection %s", connection);
                                 int newProperties = connection.getConnectionProperties()
@@ -320,4 +321,11 @@
             }
         }
     }
+
+    private boolean isPhoneNumber(String number) {
+        if (TextUtils.isEmpty(number)) {
+            return false;
+        }
+        return Patterns.PHONE.matcher(number).matches();
+    }
 }
diff --git a/testapps/TestServerApp/.gitignore b/testapps/TestServerApp/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/testapps/TestServerApp/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/testapps/TestServerApp/.idea/.gitignore b/testapps/TestServerApp/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/testapps/TestServerApp/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/testapps/TestServerApp/.idea/compiler.xml b/testapps/TestServerApp/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/testapps/TestServerApp/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <bytecodeTargetLevel target="11" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestServerApp/.idea/gradle.xml b/testapps/TestServerApp/.idea/gradle.xml
new file mode 100644
index 0000000..a2d7c21
--- /dev/null
+++ b/testapps/TestServerApp/.idea/gradle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="testRunner" value="GRADLE" />
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestServerApp/.idea/misc.xml b/testapps/TestServerApp/.idea/misc.xml
new file mode 100644
index 0000000..7c85865
--- /dev/null
+++ b/testapps/TestServerApp/.idea/misc.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="NullableNotNullManager">
+    <option name="myDefaultNullable" value="androidx.annotation.Nullable" />
+    <option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
+    <option name="myNullables">
+      <value>
+        <list size="15">
+          <item index="0" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="1" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+          <item index="2" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
+          <item index="3" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
+          <item index="4" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
+          <item index="5" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+          <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
+          <item index="7" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+          <item index="8" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
+          <item index="9" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+          <item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+          <item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="12" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="13" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+        </list>
+      </value>
+    </option>
+    <option name="myNotNulls">
+      <value>
+        <list size="14">
+          <item index="0" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
+          <item index="1" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+          <item index="2" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
+          <item index="3" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
+          <item index="4" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="5" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+          <item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="7" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+          <item index="8" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+          <item index="9" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+          <item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
+          <item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="12" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="13" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+        </list>
+      </value>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestServerApp/.idea/vcs.xml b/testapps/TestServerApp/.idea/vcs.xml
new file mode 100644
index 0000000..47fe944
--- /dev/null
+++ b/testapps/TestServerApp/.idea/vcs.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="IssueNavigationConfiguration">
+    <option name="links">
+      <list>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bb/(\d+)(#\w+)?\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1$2" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:BUG=|FIXED=)(\d+)\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:cl/|cr/|OCL=|DIFFBASE=|ROLLBACK_OF=)(\d+)\b" />
+          <option name="linkRegexp" value="https://critique.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bomg/(\d+)\b" />
+          <option name="linkRegexp" value="https://omg.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:go/|goto/)([^,.&lt;&gt;()&quot;\s]+(?:[.,][^,.&lt;&gt;()&quot;\s]+)*)" />
+          <option name="linkRegexp" value="https://goto.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bcs/([^\s]+[\w$])" />
+          <option name="linkRegexp" value="https://cs.corp.google.com/search/?q=$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="(LINT\.IfChange)|(LINT\.ThenChange)" />
+          <option name="linkRegexp" value="https://goto.google.com/ifthisthenthatlint" />
+        </IssueNavigationLink>
+      </list>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/.gitignore b/testapps/TestServerApp/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/testapps/TestServerApp/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/build.gradle b/testapps/TestServerApp/app/build.gradle
new file mode 100644
index 0000000..64a8ed9
--- /dev/null
+++ b/testapps/TestServerApp/app/build.gradle
@@ -0,0 +1,40 @@
+plugins {
+    id 'com.android.application'
+}
+
+android {
+    compileSdkPreview "android-Tiramisu"
+
+    defaultConfig {
+        applicationId "com.google.android.testserverapp"
+        minSdkPreview "Tiramisu"
+        targetSdkPreview "Tiramisu"
+        versionCode 1
+        versionName "1.0"
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+}
+
+dependencies {
+
+    implementation 'androidx.appcompat:appcompat:1.4.1'
+    implementation 'com.google.android.material:material:1.5.0'
+    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+    testImplementation 'junit:junit:4.+'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
+}
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/proguard-rules.pro b/testapps/TestServerApp/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/testapps/TestServerApp/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/androidTest/java/com/google/android/testserverapp/ExampleInstrumentedTest.java b/testapps/TestServerApp/app/src/androidTest/java/com/google/android/testserverapp/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..555bec9
--- /dev/null
+++ b/testapps/TestServerApp/app/src/androidTest/java/com/google/android/testserverapp/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.google.android.testserverapp;
+
+import android.content.Context;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+
+  @Test
+  public void useAppContext() {
+    // Context of the app under test.
+    Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+    assertEquals("com.google.android.testserverapp", appContext.getPackageName());
+  }
+}
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/Android.bp b/testapps/TestServerApp/app/src/main/Android.bp
new file mode 100644
index 0000000..1605962
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/Android.bp
@@ -0,0 +1,30 @@
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_import {
+    name: "sun-http-server",
+    jars: ["libs/http-2.2.1.jar", "libs/sun-common-server.jar"],
+}
+
+android_app {
+    name: "TestServerApp",
+    srcs: [
+        "java/com/google/android/testserverapp/*.java",
+    ],
+    static_libs: [
+        "androidx-constraintlayout_constraintlayout",
+        "androidx.appcompat_appcompat",
+        "sun-http-server",
+    ],
+    libs: ["org.apache.http.legacy"],
+    certificate: "platform",
+    privileged: true,
+    product_specific: true,
+    sdk_version: "system_current",
+    min_sdk_version: "30",
+    optimize: {
+        proguard_flags_files: ["proguard.flags"],
+    },
+}
diff --git a/testapps/TestServerApp/app/src/main/AndroidManifest.xml b/testapps/TestServerApp/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..3c91a82
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.google.android.testserverapp">
+
+  <uses-permission android:name="android.permission.INTERNET"/>
+
+  <application
+      android:allowBackup="true"
+      android:dataExtractionRules="@xml/data_extraction_rules"
+      android:fullBackupContent="@xml/backup_rules"
+      android:icon="@mipmap/ic_launcher"
+      android:label="@string/app_name"
+      android:roundIcon="@mipmap/ic_launcher_round"
+      android:supportsRtl="true"
+      android:theme="@style/Theme.AppCompat"
+      android:versionCode="34">
+    <activity
+        android:name=".MainActivity"
+        android:exported="true">
+      <intent-filter>
+        <action android:name="android.intent.action.MAIN" />
+
+        <category android:name="android.intent.category.LAUNCHER" />
+      </intent-filter>
+
+      <meta-data
+          android:name="android.app.lib_name"
+          android:value="" />
+    </activity>
+  </application>
+
+</manifest>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/java/com/google/android/testserverapp/MainActivity.java b/testapps/TestServerApp/app/src/main/java/com/google/android/testserverapp/MainActivity.java
new file mode 100644
index 0000000..b0d49ef
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/java/com/google/android/testserverapp/MainActivity.java
@@ -0,0 +1,245 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.android.testserverapp;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.TextView;
+import androidx.appcompat.app.AppCompatActivity;
+import com.sun.net.httpserver.Headers;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpServer;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.concurrent.Executors;
+
+public class MainActivity extends AppCompatActivity {
+  private static final String TAG = "TestServerApp";
+  private static final int SERVER_PORT = 5555;
+
+  private HttpServer mHttpServer = null;
+  private boolean mIsServerUp = false;
+  private int mEntitlementStatus = 1;
+  private int mProvisionStatus = 1;
+  private int mResponseCount = 0;
+
+  private Button mServerButton;
+  private TextView mServerStatusTextView, mClientRequestTextView;
+  private AdapterView mEntitlementStatusSpinner, mProvisionStatusSpinner;
+
+  private HttpHandler mHttpHandler = new HttpHandler() {
+    @Override
+    public void handle(HttpExchange httpExchange) throws IOException {
+      String method = httpExchange.getRequestMethod();
+      switch (method) {
+        case "GET":
+        case "POST":
+          updateClientRequestTextView("Client Request: received a request from client");
+          Log.d(TAG, "Client Request: received a request from client, requestHeaders = "
+              + httpHeadersToString(httpExchange.getRequestHeaders()));
+
+          sendResponseToClient(httpExchange, getTS43Response(), 200);
+          break;
+        default:
+          Log.d(TAG, "Request method = " + method);
+      }
+    }
+  };
+
+  @Override
+  protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    setContentView(R.layout.activity_main);
+
+    mServerStatusTextView = findViewById(R.id.serverStatusTextView);
+    mClientRequestTextView = findViewById(R.id.clientRequestTextView);
+    mServerButton = findViewById(R.id.serverButton);
+    mServerButton.setOnClickListener(new OnClickListener() {
+      @Override
+      public void onClick(View view) {
+        if (mIsServerUp) {
+          stopServer();
+          mIsServerUp = false;
+        } else {
+          startServer(SERVER_PORT);
+          mIsServerUp = true;
+        }
+      }
+    });
+
+    mEntitlementStatusSpinner = findViewById(R.id.entitlementStatusSpinner);
+    ArrayAdapter<CharSequence> entitlementArrayAdapter = ArrayAdapter.createFromResource(this,
+        R.array.entitlement_status, android.R.layout.simple_spinner_item);
+    entitlementArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
+    mEntitlementStatusSpinner.setAdapter(entitlementArrayAdapter);
+    mEntitlementStatusSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+      @Override
+      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        updateEntitlementStatus(parent.getItemAtPosition(position).toString());
+      }
+
+      @Override
+      public void onNothingSelected(AdapterView<?> parent) {}
+    });
+
+    mProvisionStatusSpinner = findViewById(R.id.provisionStatusSpinner);
+    ArrayAdapter<CharSequence> provisionArrayAdapter = ArrayAdapter.createFromResource(this,
+        R.array.provision_status, android.R.layout.simple_spinner_item);
+    entitlementArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
+    mProvisionStatusSpinner.setAdapter(provisionArrayAdapter);
+    mProvisionStatusSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+      @Override
+      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        updateProvisionStatus(parent.getItemAtPosition(position).toString());
+      }
+
+      @Override
+      public void onNothingSelected(AdapterView<?> parent) {}
+    });
+  }
+
+  private void startServer(int port) {
+    try {
+      mHttpServer = HttpServer.create(new InetSocketAddress(port), 0);
+      mHttpServer.setExecutor(Executors.newCachedThreadPool());
+
+      mHttpServer.createContext("/", mHttpHandler);
+      mHttpServer.createContext("/index", mHttpHandler);
+
+      mHttpServer.start();
+
+      mServerStatusTextView.setText(R.string.server_running);
+      mServerButton.setText(R.string.stop_server);
+    } catch (IOException e) {
+      Log.d(TAG, "Exception in startServer, e = " + e);
+    }
+  }
+
+  private void stopServer() {
+    if (mHttpServer != null) {
+      mHttpServer.stop(0);
+
+      mServerStatusTextView.setText(R.string.server_down);
+      mServerButton.setText(R.string.start_server);
+    }
+  }
+
+  private void sendResponseToClient(HttpExchange httpExchange, String message, int responseCode) {
+    try {
+      httpExchange.sendResponseHeaders(responseCode, message.length());
+      OutputStream os = httpExchange.getResponseBody();
+      os.write(message.getBytes());
+      os.close();
+
+      Log.d(TAG, "Sent a response to client, message = " + message);
+      updateClientRequestTextView("Client Request: Sent " + ++mResponseCount
+          + " responses to the clients");
+    } catch (IOException e) {
+      Log.d(TAG, "Exception in sendResponseToClient, e = " + e);
+      updateClientRequestTextView("Client Request: Exception in sendResponseToClient!!!");
+    }
+  }
+
+  private String httpHeadersToString(Headers headers) {
+    StringBuilder sb = new StringBuilder();
+    for (Entry<String, List<String>> entry : headers.entrySet()) {
+      sb.append("{" + entry.getKey() + ":");
+      for (String str : entry.getValue()) {
+        sb.append(str + ",");
+      }
+      sb.append("}");
+    }
+    return sb.toString();
+  }
+
+  private String getTS43Response() {
+    return "{"
+        + "  \"Vers\":{"
+        + "    \"version\": \"1\","
+        + "    \"validity\": \"1728000\""
+        + "  },"
+        + "  \"Token\":{"
+        + "    \"token\": \"kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX\""
+        + "  },"
+        + "  \"ap2012\":{"
+        + "    \"EntitlementStatus\": " + mEntitlementStatus + ","
+        + "    \"ServiceFlow_URL\": \"file:///android_asset/slice_purchase_test.html\","
+        + "    \"ServiceFlow_UserData\": \"PostData=U6%2FbQ%2BEP&amp;amp;l=en_US\","
+        + "    \"ProvStatus\": "+ mProvisionStatus + ","
+        + "    \"ProvTimeLeft\": 0"
+        + "  },"
+        + "  \"eap-relay-packet\":\"EapAkaChallengeRequest\""
+        + "}";
+  }
+
+  private void updateClientRequestTextView(String status) {
+    runOnUiThread(new Runnable() {
+      @Override
+      public void run() {
+        mClientRequestTextView.setText(status);
+      }
+    });
+  }
+
+  private void updateEntitlementStatus(String status) {
+    switch (status) {
+      case "Disabled":
+        mEntitlementStatus = 0;
+        break;
+      case "Enabled":
+        mEntitlementStatus = 1;
+        break;
+      case "Incompatible":
+        mEntitlementStatus = 2;
+        break;
+      case "Provisioning":
+        mEntitlementStatus = 3;
+        break;
+      case "Included":
+        mEntitlementStatus = 4;
+        break;
+    }
+    mClientRequestTextView.setText("Entitlement Status is set to  \"" + status + "\"");
+  }
+
+  private void updateProvisionStatus(String status) {
+    switch (status) {
+      case "Not Provisioned":
+        mProvisionStatus = 0;
+        break;
+      case "Provisioned":
+        mProvisionStatus = 1;
+        break;
+      case "Not Required":
+        mProvisionStatus = 2;
+        break;
+      case "In Progress":
+        mProvisionStatus = 3;
+        break;
+    }
+    mClientRequestTextView.setText("Provision Status is set to \"" + status + "\"");
+  }
+}
diff --git a/testapps/TestServerApp/app/src/main/libs/LICENSE b/testapps/TestServerApp/app/src/main/libs/LICENSE
new file mode 100644
index 0000000..3d33284
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/libs/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/libs/http-2.2.1.jar b/testapps/TestServerApp/app/src/main/libs/http-2.2.1.jar
new file mode 100644
index 0000000..6e2b44e
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/libs/http-2.2.1.jar
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/libs/sun-common-server.jar b/testapps/TestServerApp/app/src/main/libs/sun-common-server.jar
new file mode 100644
index 0000000..ca7127f
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/libs/sun-common-server.jar
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/proguard.flags b/testapps/TestServerApp/app/src/main/proguard.flags
new file mode 100644
index 0000000..4eefde6
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/proguard.flags
@@ -0,0 +1,4 @@
+-dontobfuscate
+-dontoptimize
+
+-keep class com.google.android.testserverapp.*
diff --git a/testapps/TestServerApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/testapps/TestServerApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..966abaf
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportHeight="108"
+    android:viewportWidth="108">
+  <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+    <aapt:attr name="android:fillColor">
+      <gradient
+          android:endX="85.84757"
+          android:endY="92.4963"
+          android:startX="42.9492"
+          android:startY="49.59793"
+          android:type="linear">
+        <item
+            android:color="#44000000"
+            android:offset="0.0" />
+        <item
+            android:color="#00000000"
+            android:offset="1.0" />
+      </gradient>
+    </aapt:attr>
+  </path>
+  <path
+      android:fillColor="#FFFFFF"
+      android:fillType="nonZero"
+      android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+      android:strokeColor="#00000000"
+      android:strokeWidth="1" />
+</vector>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/drawable/ic_launcher_background.xml b/testapps/TestServerApp/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..61bb79e
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportHeight="108"
+    android:viewportWidth="108">
+  <path
+      android:fillColor="#3DDC84"
+      android:pathData="M0,0h108v108h-108z" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M9,0L9,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,0L19,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M29,0L29,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M39,0L39,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M49,0L49,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M59,0L59,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M69,0L69,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M79,0L79,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M89,0L89,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M99,0L99,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,9L108,9"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,19L108,19"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,29L108,29"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,39L108,39"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,49L108,49"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,59L108,59"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,69L108,69"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,79L108,79"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,89L108,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,99L108,99"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,29L89,29"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,39L89,39"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,49L89,49"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,59L89,59"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,69L89,69"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,79L89,79"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M29,19L29,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M39,19L39,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M49,19L49,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M59,19L59,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M69,19L69,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M79,19L79,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+</vector>
diff --git a/testapps/TestServerApp/app/src/main/res/layout/activity_main.xml b/testapps/TestServerApp/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..a4ca45a
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+
+    android:layout_height="match_parent"
+    tools:context=".MainActivity">
+
+  <Button
+      android:id="@+id/serverButton"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:gravity="center|center_horizontal"
+      android:text="@string/start_server"
+      tools:layout_editor_absoluteX="124dp"
+      tools:layout_editor_absoluteY="55dp" />
+  <TextView
+      android:id="@+id/serverStatusTextView"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="10dp"
+      android:gravity="center"
+      android:text="@string/server_down"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/serverButton"
+      tools:layout_editor_absoluteX="0dp" />
+  <TextView
+      android:id="@+id/entitlementStatus"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="20dp"
+      android:gravity="left"
+      android:text="Entitlement Status:"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/serverStatusTextView"
+      tools:layout_editor_absoluteX="0dp" />
+  <Spinner
+      android:id="@+id/entitlementStatusSpinner"
+      android:layout_width="232dp"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="15dp"
+      android:gravity="left"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/entitlementStatus"
+      tools:layout_editor_absoluteX="-195dp" />
+  <TextView
+      android:id="@+id/provisionStatus"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="20dp"
+      android:gravity="left"
+      android:text="Provision Status:"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/entitlementStatusSpinner"
+      tools:layout_editor_absoluteX="0dp" />
+  <Spinner
+      android:id="@+id/provisionStatusSpinner"
+      android:layout_width="233dp"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="15dp"
+      android:gravity="center"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/provisionStatus"
+      tools:layout_editor_absoluteX="-195dp" />
+  <TextView
+      android:id="@+id/clientRequestTextView"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="20dp"
+      android:gravity="center"
+      android:text="Client Request:"
+      android:textColor="#4CAF50"
+      android:textSize="20sp"
+      app:layout_constraintTop_toBottomOf="@id/provisionStatusSpinner"
+      tools:layout_editor_absoluteX="0dp" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+  <background android:drawable="@drawable/ic_launcher_background" />
+  <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+  <background android:drawable="@drawable/ic_launcher_background" />
+  <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/values/colors.xml b/testapps/TestServerApp/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..09837df
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <color name="purple_200">#FFBB86FC</color>
+  <color name="purple_500">#FF6200EE</color>
+  <color name="purple_700">#FF3700B3</color>
+  <color name="teal_200">#FF03DAC5</color>
+  <color name="teal_700">#FF018786</color>
+  <color name="black">#FF000000</color>
+  <color name="white">#FFFFFFFF</color>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/values/strings.xml b/testapps/TestServerApp/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..0d1efa8
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/values/strings.xml
@@ -0,0 +1,21 @@
+<resources>
+  <string name="app_name">TestServerApp</string>
+  <string name="action_settings">Settings</string>
+  <string name="server_running">Server is running...</string>
+  <string name="stop_server">Stop Server</string>
+  <string name="server_down">Server is down</string>
+  <string name="start_server">Start Server</string>
+  <string-array name="entitlement_status">
+    <item>Disabled</item>
+    <item>Enabled</item>
+    <item>Incompatible</item>
+    <item>Provisioning</item>
+    <item>Included</item>
+  </string-array>
+  <string-array name="provision_status">
+    <item>Not Provisioned</item>
+    <item>Provisioned</item>
+    <item>Not Required</item>
+    <item>In Progress</item>
+  </string-array>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/xml/backup_rules.xml b/testapps/TestServerApp/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..9b42d90
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+   Sample backup rules file; uncomment and customize as necessary.
+   See https://developer.android.com/guide/topics/data/autobackup
+   for details.
+   Note: This file is ignored for devices older that API 31
+   See https://developer.android.com/about/versions/12/backup-restore
+-->
+<full-backup-content>
+  <!--
+   <include domain="sharedpref" path="."/>
+   <exclude domain="sharedpref" path="device.xml"/>
+-->
+</full-backup-content>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/main/res/xml/data_extraction_rules.xml b/testapps/TestServerApp/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..c6c3bb0
--- /dev/null
+++ b/testapps/TestServerApp/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+   Sample data extraction rules file; uncomment and customize as necessary.
+   See https://developer.android.com/about/versions/12/backup-restore#xml-changes
+   for details.
+-->
+<data-extraction-rules>
+  <cloud-backup>
+    <!-- TODO: Use <include> and <exclude> to control what is backed up.
+        <include .../>
+        <exclude .../>
+        -->
+  </cloud-backup>
+  <!--
+    <device-transfer>
+        <include .../>
+        <exclude .../>
+    </device-transfer>
+    -->
+</data-extraction-rules>
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/src/test/java/com/google/android/testserverapp/ExampleUnitTest.java b/testapps/TestServerApp/app/src/test/java/com/google/android/testserverapp/ExampleUnitTest.java
new file mode 100644
index 0000000..88a8c5a
--- /dev/null
+++ b/testapps/TestServerApp/app/src/test/java/com/google/android/testserverapp/ExampleUnitTest.java
@@ -0,0 +1,18 @@
+package com.google.android.testserverapp;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+
+  @Test
+  public void addition_isCorrect() {
+    assertEquals(4, 2 + 2);
+  }
+}
\ No newline at end of file
diff --git a/testapps/TestServerApp/build.gradle b/testapps/TestServerApp/build.gradle
new file mode 100644
index 0000000..90f9008
--- /dev/null
+++ b/testapps/TestServerApp/build.gradle
@@ -0,0 +1,5 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+    id 'com.android.application' version '7.3.0' apply false
+    id 'com.android.library' version '7.3.0' apply false
+}
\ No newline at end of file
diff --git a/testapps/TestServerApp/gradle.properties b/testapps/TestServerApp/gradle.properties
new file mode 100644
index 0000000..3e927b1
--- /dev/null
+++ b/testapps/TestServerApp/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.jar b/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
--- /dev/null
+++ b/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties b/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e12f4cd
--- /dev/null
+++ b/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sat Nov 05 01:06:49 UTC 2022
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/testapps/TestServerApp/gradlew b/testapps/TestServerApp/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/testapps/TestServerApp/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=`expr $i + 1`
+    done
+    case $i in
+        0) set -- ;;
+        1) set -- "$args0" ;;
+        2) set -- "$args0" "$args1" ;;
+        3) set -- "$args0" "$args1" "$args2" ;;
+        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/testapps/TestServerApp/gradlew.bat b/testapps/TestServerApp/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/testapps/TestServerApp/gradlew.bat
@@ -0,0 +1,89 @@
+@rem

+@rem Copyright 2015 the original author or authors.

+@rem

+@rem Licensed under the Apache License, Version 2.0 (the "License");

+@rem you may not use this file except in compliance with the License.

+@rem You may obtain a copy of the License at

+@rem

+@rem      https://www.apache.org/licenses/LICENSE-2.0

+@rem

+@rem Unless required by applicable law or agreed to in writing, software

+@rem distributed under the License is distributed on an "AS IS" BASIS,

+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+@rem See the License for the specific language governing permissions and

+@rem limitations under the License.

+@rem

+

+@if "%DEBUG%" == "" @echo off

+@rem ##########################################################################

+@rem

+@rem  Gradle startup script for Windows

+@rem

+@rem ##########################################################################

+

+@rem Set local scope for the variables with windows NT shell

+if "%OS%"=="Windows_NT" setlocal

+

+set DIRNAME=%~dp0

+if "%DIRNAME%" == "" set DIRNAME=.

+set APP_BASE_NAME=%~n0

+set APP_HOME=%DIRNAME%

+

+@rem Resolve any "." and ".." in APP_HOME to make it shorter.

+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi

+

+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.

+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

+

+@rem Find java.exe

+if defined JAVA_HOME goto findJavaFromJavaHome

+

+set JAVA_EXE=java.exe

+%JAVA_EXE% -version >NUL 2>&1

+if "%ERRORLEVEL%" == "0" goto execute

+

+echo.

+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

+echo.

+echo Please set the JAVA_HOME variable in your environment to match the

+echo location of your Java installation.

+

+goto fail

+

+:findJavaFromJavaHome

+set JAVA_HOME=%JAVA_HOME:"=%

+set JAVA_EXE=%JAVA_HOME%/bin/java.exe

+

+if exist "%JAVA_EXE%" goto execute

+

+echo.

+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%

+echo.

+echo Please set the JAVA_HOME variable in your environment to match the

+echo location of your Java installation.

+

+goto fail

+

+:execute

+@rem Setup the command line

+

+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

+

+

+@rem Execute Gradle

+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*

+

+:end

+@rem End local scope for the variables with windows NT shell

+if "%ERRORLEVEL%"=="0" goto mainEnd

+

+:fail

+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of

+rem the _cmd.exe /c_ return code!

+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1

+exit /b 1

+

+:mainEnd

+if "%OS%"=="Windows_NT" endlocal

+

+:omega

diff --git a/testapps/TestServerApp/settings.gradle b/testapps/TestServerApp/settings.gradle
new file mode 100644
index 0000000..a6a2846
--- /dev/null
+++ b/testapps/TestServerApp/settings.gradle
@@ -0,0 +1,16 @@
+pluginManagement {
+    repositories {
+        gradlePluginPortal()
+        google()
+        mavenCentral()
+    }
+}
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        google()
+        mavenCentral()
+    }
+}
+rootProject.name = "TestServerApp"
+include ':app'
diff --git a/testapps/TestSliceApp/.idea/.gitignore b/testapps/TestSliceApp/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/testapps/TestSliceApp/.idea/compiler.xml b/testapps/TestSliceApp/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <bytecodeTargetLevel target="11" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/gradle.xml b/testapps/TestSliceApp/.idea/gradle.xml
new file mode 100644
index 0000000..a2d7c21
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/gradle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="testRunner" value="GRADLE" />
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/misc.xml b/testapps/TestSliceApp/.idea/misc.xml
new file mode 100644
index 0000000..7c85865
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/misc.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="NullableNotNullManager">
+    <option name="myDefaultNullable" value="androidx.annotation.Nullable" />
+    <option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
+    <option name="myNullables">
+      <value>
+        <list size="15">
+          <item index="0" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="1" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+          <item index="2" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
+          <item index="3" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
+          <item index="4" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
+          <item index="5" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+          <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
+          <item index="7" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+          <item index="8" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
+          <item index="9" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+          <item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+          <item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="12" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="13" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+        </list>
+      </value>
+    </option>
+    <option name="myNotNulls">
+      <value>
+        <list size="14">
+          <item index="0" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
+          <item index="1" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+          <item index="2" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
+          <item index="3" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
+          <item index="4" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="5" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+          <item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="7" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+          <item index="8" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+          <item index="9" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+          <item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
+          <item index="11" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="12" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="13" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+        </list>
+      </value>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/vcs.xml b/testapps/TestSliceApp/.idea/vcs.xml
new file mode 100644
index 0000000..498ba99
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/vcs.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="IssueNavigationConfiguration">
+    <option name="links">
+      <list>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bb/(\d+)(#\w+)?\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1$2" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:BUG=|FIXED=)(\d+)\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:cl/|cr/|OCL=|DIFFBASE=|ROLLBACK_OF=)(\d+)\b" />
+          <option name="linkRegexp" value="https://critique.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bomg/(\d+)\b" />
+          <option name="linkRegexp" value="https://omg.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:go/|goto/)([^,.&lt;&gt;()&quot;\s]+(?:[.,][^,.&lt;&gt;()&quot;\s]+)*)" />
+          <option name="linkRegexp" value="https://goto.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bcs/([^\s]+[\w$])" />
+          <option name="linkRegexp" value="https://cs.corp.google.com/search/?q=$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="(LINT\.IfChange)|(LINT\.ThenChange)" />
+          <option name="linkRegexp" value="https://goto.google.com/ifthisthenthatlint" />
+        </IssueNavigationLink>
+      </list>
+    </option>
+  </component>
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
index a34c254..53754de 100644
--- a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
+++ b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
@@ -4,6 +4,7 @@
 
   <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
   <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
+  <uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
   <uses-permission android:name="android.permission.INTERNET" />
   <application
       android:allowBackup="true"
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
index 45ea666..6ad6ebd 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
@@ -15,32 +15,64 @@
  */
 package com.google.android.sample.testsliceapp;
 
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED;
+
+import android.annotation.TargetApi;
+import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.ConnectivityManager.NetworkCallback;
 import android.net.Network;
 import android.net.NetworkCapabilities;
 import android.net.NetworkRequest;
 import android.os.Bundle;
+import android.telephony.TelephonyManager;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.Button;
+import android.widget.TextView;
 
 import androidx.fragment.app.Fragment;
 
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
 /**
  * A simple {@link Fragment} subclass. Use the {@link PrioritizeLatency#newInstance} factory method
  * to create an instance of this fragment.
  */
 public class PrioritizeLatency extends Fragment {
-    Button mRelease, mRequest, mPing;
-    Network mNetwork;
+    Button mPurchase, mNetworkRequestRelease, mPing;
+    TextView mResultTextView;
+    Network mNetwork = null;
     ConnectivityManager mConnectivityManager;
     NetworkCallback mProfileCheckNetworkCallback;
+    TelephonyManager mTelephonyManager;
+    Context mContext;
+    private final ExecutorService mFixedThreadPool = Executors.newFixedThreadPool(3);
+
+    private static final String LOG_TAG = "PrioritizeLatency";
+    private static final int TIMEOUT_FOR_PURCHASE = 5 * 60; // 5 minutes
+
     public PrioritizeLatency() {
-      // Required empty public constructor
+        // Required empty public constructor
     }
 
     /**
@@ -62,7 +94,9 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
+        mContext = getContext();
+        mConnectivityManager = mContext.getSystemService(ConnectivityManager.class);
+        mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
     }
 
     @Override
@@ -70,56 +104,190 @@
             Bundle savedInstanceState) {
         // Inflate the layout for this fragment
         View view = inflater.inflate(R.layout.fragment_prioritize_latency, container, false);
-        mProfileCheckNetworkCallback =
-                new NetworkCallback() {
-            @Override
-            public void onAvailable(final Network network) {
-                mNetwork = network;
-            }
-        };
-        mRelease = view.findViewById(R.id.releaselatency);
-        mRelease.setOnClickListener(new OnClickListener() {
+        mResultTextView = view.findViewById(R.id.resultTextView);
+
+        mPurchase = view.findViewById(R.id.purchaseButton);
+        mPurchase.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View view) {
-                try {
-                    mConnectivityManager.unregisterNetworkCallback(
-                            mProfileCheckNetworkCallback);
-                } catch (Exception e) {
-                    Log.d("SliceTest", "Exception: " + e);
-                }
+                Log.d(LOG_TAG, "Clicking purchase button");
+                onPurchaseButtonClick();
             }
         });
-        mRequest = view.findViewById(R.id.requestlatency);
-        mRequest.setOnClickListener(new OnClickListener() {
+
+        mNetworkRequestRelease = view.findViewById(R.id.requestReleaseButton);
+        mNetworkRequestRelease.setEnabled(false);
+        mNetworkRequestRelease.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View view) {
-                mProfileCheckNetworkCallback = new NetworkCallback() {
-                    @Override
-                    public void onAvailable(final Network network) {
-                        Log.d("PrioritizeLatency", "onAvailable + " + network);
-                        mNetwork = network;
-                    }
-                };
-                NetworkRequest.Builder builder = new NetworkRequest.Builder();
-                builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
-                mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
-                Log.d("PrioritizeLatency", "onClick + " + builder.build());
+                Log.d(LOG_TAG, "Clicking Request/Release Network button");
+                onNetworkRequestReleaseClick();
             }
         });
+
         mPing = view.findViewById(R.id.pinglatency);
+        mPing.setEnabled(false);
         mPing.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View view) {
                 if (mNetwork != null) {
-                    //mNetwork.
                     try {
                         new RequestTask().ping(mNetwork);
                     } catch (Exception e) {
-                        Log.d("SliceTest", "Exception: " + e);
+                        Log.e(LOG_TAG, "Exception at ping: " + e);
                     }
                 }
             }
         });
         return view;
     }
+
+    private void onNetworkRequestReleaseClick() {
+        if (mNetwork == null) {
+            mProfileCheckNetworkCallback = new NetworkCallback() {
+                @Override
+                public void onAvailable(final Network network) {
+                    Log.d(LOG_TAG, "onAvailable + " + network);
+                    mNetwork = network;
+                    mPing.setEnabled(true);
+                    mNetworkRequestRelease.setText(R.string.release_network);
+                    mResultTextView.setText(R.string.network_available);
+                }
+            };
+            NetworkRequest.Builder builder = new NetworkRequest.Builder();
+            builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
+            mConnectivityManager.requestNetwork(builder.build(),
+                    mProfileCheckNetworkCallback);
+            Log.d(LOG_TAG, "Network Request/Release onClick + " + builder.build());
+            mResultTextView.setText(R.string.network_requested);
+        } else {
+            try {
+                mConnectivityManager.unregisterNetworkCallback(
+                        mProfileCheckNetworkCallback);
+                mNetwork = null;
+                mNetworkRequestRelease.setText(R.string.request_network);
+                mResultTextView.setText(R.string.network_released);
+            } catch (Exception e) {
+                Log.e(LOG_TAG, "Exception when releasing network: " + e);
+                mResultTextView.setText(R.string.network_release_failed);
+            }
+        }
+    }
+
+    @TargetApi(34)
+    private void onPurchaseButtonClick() {
+        try {
+            if (mTelephonyManager.isPremiumCapabilityAvailableForPurchase(
+                    TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY)) {
+                LinkedBlockingQueue<Integer> purchaseRequest = new LinkedBlockingQueue<>(1);
+
+                // Try to purchase the capability
+                mTelephonyManager.purchasePremiumCapability(
+                        TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY,
+                        mFixedThreadPool, purchaseRequest::offer);
+                mResultTextView.setText(R.string.purchase_in_progress);
+
+                mFixedThreadPool.execute(() -> {
+                    try {
+                        Integer result = purchaseRequest.poll(
+                                TIMEOUT_FOR_PURCHASE, TimeUnit.SECONDS);
+                        if (result == null) {
+                            updateResultTextView(R.string.purchase_empty_result);
+                            Log.d(LOG_TAG, "Got null result at purchasePremiumCapability");
+                            return;
+                        }
+
+                        String purchaseResultText = "Result: "
+                                + purchasePremiumResultToText(result.intValue());
+                        updateResultTextView(purchaseResultText);
+                        Log.d(LOG_TAG, purchaseResultText);
+
+                        if (isPremiumCapacityAvailableForUse(result.intValue())) {
+                            updateNetworkRequestReleaseButton(true);
+                        }
+                    } catch (InterruptedException e) {
+                        Log.e(LOG_TAG, "InterruptedException at onPurchaseButtonClick: " + e);
+                        updateResultTextView(R.string.purchase_exception);
+                    }
+                });
+            } else {
+                mResultTextView.setText(R.string.premium_not_available);
+            }
+        } catch (Exception e) {
+            Log.e(LOG_TAG, "Exception when purchasing network premium: " + e);
+            mResultTextView.setText(R.string.purchase_exception);
+        }
+    }
+
+    private void updateNetworkRequestReleaseButton(boolean enabled) {
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mNetworkRequestRelease.setEnabled(enabled);
+            }
+        });
+    }
+
+    private void updateResultTextView(int status) {
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mResultTextView.setText(status);
+            }
+        });
+    }
+
+    private void updateResultTextView(String status) {
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mResultTextView.setText(status);
+            }
+        });
+    }
+
+    private String purchasePremiumResultToText(int result) {
+        switch (result) {
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS:
+                return "Success";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED:
+                return "Throttled";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED:
+                return "Already purchased";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS:
+                return "Already in progress";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN:
+                return "Overridden";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED:
+                return "User canceled";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED:
+                return "Carrier disabled";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR:
+                return "Carrier error";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT:
+                return "Timeout";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED:
+                return "Feature not supported";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE:
+                return "Network not available";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED:
+                return "Entitlement check failed";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB:
+                return "No default data";
+            case PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP:
+                return "Pending network setup";
+            default:
+                String errorStr = "Unknown purchasing result " + result;
+                Log.e(LOG_TAG, errorStr);
+                return errorStr;
+        }
+    }
+
+    private boolean isPremiumCapacityAvailableForUse(int purchaseResult) {
+        if (purchaseResult == PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS
+                || purchaseResult == PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED) {
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
index 3849860..1521a14 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
@@ -35,6 +35,7 @@
         try {
             url = new URL("http://www.google.com");
         } catch (Exception e) {
+            Log.d("SliceTest", "exception: " + e);
         }
         if (url != null) {
             try {
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
index a723e6f..8a7d991 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,6 @@
     android:layout_height="match_parent"
     tools:context=".MainActivity" >
   <androidx.fragment.app.FragmentContainerView
-      xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/frameLayoutMainFrag"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
index 5305b53..eff68ac 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
@@ -17,7 +17,7 @@
       android:id="@+id/textView3"
       android:layout_width="342dp"
       android:layout_height="49dp"
-      android:text="CBS"
+      android:text="@string/cbs_title"
       tools:layout_editor_absoluteX="19dp"
       tools:layout_editor_absoluteY="7dp" />
   <Button
@@ -25,7 +25,7 @@
       android:layout_width="186dp"
       android:layout_height="57dp"
       android:layout_marginTop="164dp"
-      android:text="Request Network"
+      android:text="@string/request_network"
       app:layout_constraintTop_toTopOf="parent"
       tools:layout_editor_absoluteX="112dp" />
   <Button
@@ -33,14 +33,14 @@
       android:layout_width="187dp"
       android:layout_height="61dp"
       android:layout_marginTop="124dp"
-      android:text="Release Network"
+      android:text="@string/release_network"
       app:layout_constraintTop_toBottomOf="@+id/requestcbs"
       tools:layout_editor_absoluteX="119dp" />
   <Button
       android:id="@+id/pingcbs"
       android:layout_width="186dp"
       android:layout_height="55dp"
-      android:text="Ping"
+      android:text="@string/ping"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintTop_toBottomOf="@+id/releasecbs"
       tools:layout_editor_absoluteX="120dp" />
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
index 11e95a8..5c12075 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
@@ -5,18 +5,17 @@
     android:layout_height="match_parent"
     tools:context=".MainFragment">
 
-  <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  <androidx.constraintlayout.widget.ConstraintLayout
       xmlns:app="http://schemas.android.com/apk/res-auto"
-      xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/frameLayoutMain"
       tools:context=".MainActivity">
     <Button
         android:id="@+id/cbs"
-        android:layout_width="222dp"
-        android:layout_height="51dp"
-        android:text="CBS"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/cbs_title"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.493"
@@ -25,9 +24,9 @@
         app:layout_constraintVertical_bias="0.751" />
     <Button
         android:id="@+id/latency"
-        android:layout_width="222dp"
-        android:layout_height="46dp"
-        android:text="PRIORITIZE LATENCY"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/latency_title"
         app:layout_constraintBottom_toTopOf="@+id/cbs"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.497"
@@ -38,7 +37,7 @@
         android:id="@+id/bw"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="PRIORITIZE BANDWIDTH"
+        android:text="@string/bw_title"
         app:layout_constraintBottom_toTopOf="@+id/latency"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.497"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
index 8933e7a..412ec39 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
@@ -8,9 +8,7 @@
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/frameLayoutBW">
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
+<androidx.constraintlayout.widget.ConstraintLayout
     android:id="@+id/frameLayout2"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -19,7 +17,7 @@
       android:id="@+id/textView2"
       android:layout_width="371dp"
       android:layout_height="52dp"
-      android:text="Prioritize Bandwidth"
+      android:text="@string/bw_title"
       tools:layout_editor_absoluteX="20dp"
       tools:layout_editor_absoluteY="4dp" />
   <Button
@@ -27,7 +25,7 @@
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="64dp"
-      android:text="Release Network"
+      android:text="@string/release_network"
       app:layout_constraintBottom_toTopOf="@+id/requestbw"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintStart_toStartOf="parent"
@@ -38,7 +36,7 @@
       android:layout_width="182dp"
       android:layout_height="42dp"
       android:layout_marginBottom="228dp"
-      android:text="Ping"
+      android:text="@string/ping"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintHorizontal_bias="0.493"
@@ -48,7 +46,7 @@
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="308dp"
-      android:text="RequestNetwork"
+      android:text="@string/request_network"
       app:layout_constraintBottom_toTopOf="@+id/pingbw"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintHorizontal_bias="0.495"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
index b040995..37a519f 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
@@ -14,44 +14,52 @@
         android:layout_height="match_parent"
         tools:context=".PrioritizeLatency">
       <Button
-          android:id="@+id/requestlatency"
-          android:layout_width="183dp"
+          android:id="@+id/purchaseButton"
+          android:layout_width="233dp"
           android:layout_height="50dp"
           android:layout_marginTop="176dp"
-          android:text="RequestNetwork"
-          app:layout_constraintBottom_toTopOf="@+id/button6"
+          android:text="@string/purchase"
           app:layout_constraintEnd_toEndOf="parent"
           app:layout_constraintHorizontal_bias="0.495"
           app:layout_constraintStart_toStartOf="parent"
           app:layout_constraintTop_toTopOf="parent"
           app:layout_constraintVertical_bias="0.717" />
       <Button
-          android:id="@+id/releaselatency"
+          android:id="@+id/requestReleaseButton"
           android:layout_width="183dp"
           android:layout_height="50dp"
           android:layout_marginTop="84dp"
-          android:text="ReleaseNetwork"
-          app:layout_constraintBottom_toTopOf="@+id/button6"
+          android:text="@string/request_network"
           app:layout_constraintEnd_toEndOf="parent"
           app:layout_constraintStart_toStartOf="parent"
-          app:layout_constraintTop_toBottomOf="@+id/requestlatency"
+          app:layout_constraintTop_toBottomOf="@+id/purchaseButton"
           app:layout_constraintVertical_bias="0.717" />
       <Button
           android:id="@+id/pinglatency"
           android:layout_width="182dp"
           android:layout_height="42dp"
           android:layout_marginBottom="92dp"
-          android:text="Ping"
+          android:text="@string/ping"
           app:layout_constraintBottom_toBottomOf="parent"
           app:layout_constraintEnd_toEndOf="parent"
           app:layout_constraintHorizontal_bias="0.493"
           app:layout_constraintStart_toStartOf="parent"
-          app:layout_constraintTop_toBottomOf="@+id/releaselatency" />
+          app:layout_constraintTop_toBottomOf="@+id/requestReleaseButton" />
+      <TextView
+          android:id="@+id/resultTextView"
+          android:layout_width="283dp"
+          android:layout_height="wrap_content"
+          android:layout_marginTop="84dp"
+          android:text="@string/result_prefix"
+          app:layout_constraintEnd_toEndOf="parent"
+          app:layout_constraintStart_toStartOf="parent"
+          app:layout_constraintTop_toBottomOf="@+id/pinglatency"
+          app:layout_constraintVertical_bias="0.717" />
       <TextView
           android:id="@+id/textView"
           android:layout_width="371dp"
           android:layout_height="52dp"
-          android:text="Prioritize Latency"
+          android:text="@string/latency_title"
           tools:layout_editor_absoluteX="16dp"
           tools:layout_editor_absoluteY="16dp" />
     </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
index d172f0f..2a1383b 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leë fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
index 0cadb81..be17e82 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"جزء فارغ للترحيب"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
index 3702d56..55d3bbb 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Boş salamlama fraqmenti"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
index 385f84e..4a972f1 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Вітаем,"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
index 943a70d..a9ee446 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Здравей, празен фрагмент"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
index 9799d39..d8d82a9 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Fragment de benvinguda en blanc"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
index 793ab6f..10d273e 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Prázdný fragment pro pozdrav"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
index dafc7d2..182246f 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎TestSliceApp‎‏‎‎‏‎"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎Hello blank fragment‎‏‎‎‏‎"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
index 355b912..3f5617d 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hola, (segmento en blanco):"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
index 6f35108..e1a7e02 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"سلام بخش خالی"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
index e9b3b45..79dc1f2 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Bonjour fragment vierge"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
index 0e73dba..aa9bcb0 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Üres üdvözlő rész"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
index 31a60c6..312bd47 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Դատարկ հատված"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
index 4287a40..1b3caf3 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"שלום קטע ריק"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
index 8d91ed0..5f12d5b 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"მოგესალმებით, ეს ცარიელი ფრაგმენტია"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
index 13a202b..40a44fa 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"ಹಲೋ, ಖಾಲಿ ಫ್ರಾಗ್ಮೆಂಟ್"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
index 3d47ad6..3938c7c 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"​ສະ​ບາຍ​ດີ​ຈຸດ​ແຕກທີ່​ຫວ່າງ​ເປົ່າ"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
index 509fd2d..d0c9f0b 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Sveiki, tuščias fragmentas"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
index 47ca9c8..4819bc2 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"ഹലോ ബ്ലാങ്ക് ഫ്രാഗ്‌മെന്റ്"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
index 1aa5138..1a3381c 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Сайн байна уу хоосон хэсэг"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
index 7fbe792..2dbd14c 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"हॅलो ब्लँक फ्रॅग्मेंट"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
index b928cd6..214c568 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Helo cebisan kosong"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
index 3d601ab..8d22431 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hei, tomt fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
index 5d10fc6..111d4cd 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leeg fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
index 0bf147b..4b99fcb 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Tutaj jest pusty fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
index b94a687..2532a83 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Olá, fragmento em branco"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
index 7c88afe..1c5b58c 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"ආයුබෝවන් හිස් කොටස"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
index b3fd35a..d15a53e 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Prazen del za pozdrav"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
index 5cc6a6a..f79ee6f 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Kipande cha salamu kisichokuwa na kitu"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
index ad9cef8..855e108 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"హలో ఖాళీ విడిభాగము"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
index 1e18a88..c4a39d8 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Merhaba boş bölüm"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
index 0219615..cdf416b 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Пустий фрагмент із привітанням"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
index 93c0492..c8f0c65 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"歡迎詞空白片段"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
index 229ff5d..5fe7673 100644
--- a/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
@@ -3,4 +3,36 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
     <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+    <!-- no translation found for request_network (8945235490804849914) -->
+    <skip />
+    <!-- no translation found for release_network (174252378593535238) -->
+    <skip />
+    <!-- no translation found for ping (7890607576220714932) -->
+    <skip />
+    <!-- no translation found for result_prefix (3522796186427501399) -->
+    <skip />
+    <!-- no translation found for latency_title (963052613947017009) -->
+    <skip />
+    <!-- no translation found for bw_title (3902162973688221344) -->
+    <skip />
+    <!-- no translation found for cbs_title (5234410535569935600) -->
+    <skip />
+    <!-- no translation found for purchase (7843181995697372128) -->
+    <skip />
+    <!-- no translation found for network_available (4780293262690730734) -->
+    <skip />
+    <!-- no translation found for network_requested (5646123922691865991) -->
+    <skip />
+    <!-- no translation found for network_released (2992280481133877025) -->
+    <skip />
+    <!-- no translation found for network_release_failed (256471231420029151) -->
+    <skip />
+    <!-- no translation found for purchase_exception (8876841120055716671) -->
+    <skip />
+    <!-- no translation found for purchase_empty_result (7497824191649973928) -->
+    <skip />
+    <!-- no translation found for premium_not_available (7346368693802644748) -->
+    <skip />
+    <!-- no translation found for purchase_in_progress (5450288183685032424) -->
+    <skip />
 </resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values/strings.xml b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
index c2bb089..4990cec 100644
--- a/testapps/TestSliceApp/app/src/main/res/values/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
@@ -1,5 +1,20 @@
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
   <string name="app_name">TestSliceApp</string>
-  <!-- TODO: Remove or change this placeholder text -->
   <string name="hello_blank_fragment">Hello blank fragment</string>
+  <string name="request_network">Request Network</string>
+  <string name="release_network">Release Network</string>
+  <string name="ping">Ping</string>
+  <string name="result_prefix">Result: </string>
+  <string name="latency_title">Prioritize Latency</string>
+  <string name="bw_title">Prioritize Bandwidth</string>
+  <string name="cbs_title">CBS</string>
+  <string name="purchase">Purchase Network Premium</string>
+  <string name="network_available">Result: The requested network is available now!</string>
+  <string name="network_requested">Result: The network has been requested!</string>
+  <string name="network_released">Result: The network has been released!</string>
+  <string name="network_release_failed">Result: Failed to release the network!!!</string>
+  <string name="purchase_exception">Result: Exception when purchasing network premium!!!</string>
+  <string name="purchase_empty_result">Result: Got empty result when purchasing network premium!!!</string>
+  <string name="premium_not_available">Result: The network premium is not available for purchase!!!</string>
+  <string name="purchase_in_progress">Result: The network premium purchase is in progress ...</string>
 </resources>
\ No newline at end of file
diff --git a/tests/src/com/android/phone/CarrierConfigLoaderTest.java b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
index 60c3a84..9c425d6 100644
--- a/tests/src/com/android/phone/CarrierConfigLoaderTest.java
+++ b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
@@ -192,6 +192,7 @@
      * will return the right config in the XML.
      */
     @Test
+    @Ignore("b/257169357")
     public void testUpdateConfigForPhoneId_simLoaded_withCachedConfigInXml() throws Exception {
         // Bypass case if default subId is not supported by device to reduce flakiness
         if (!SubscriptionManager.isValidPhoneId(SubscriptionManager.getPhoneId(DEFAULT_SUB_ID))) {
diff --git a/tests/src/com/android/phone/NotificationMgrTest.java b/tests/src/com/android/phone/NotificationMgrTest.java
index 6d979d6..3e8cf28 100644
--- a/tests/src/com/android/phone/NotificationMgrTest.java
+++ b/tests/src/com/android/phone/NotificationMgrTest.java
@@ -62,6 +62,7 @@
 import android.os.UserManager;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
+import android.telephony.NetworkRegistrationInfo;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
@@ -73,6 +74,8 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.ServiceStateTracker;
+import com.android.internal.telephony.SignalStrengthController;
 import com.android.internal.telephony.data.DataConfigManager;
 import com.android.internal.telephony.data.DataNetworkController;
 import com.android.internal.telephony.data.DataSettingsManager;
@@ -115,11 +118,13 @@
     @Mock SubscriptionInfo mSubscriptionInfo;
     @Mock Resources mResources;
     @Mock Context mMockedContext;
+    @Mock ServiceStateTracker mServiceStateTracker;
     @Mock ServiceState mServiceState;
     @Mock CarrierConfigManager mCarrierConfigManager;
     @Mock DataNetworkController mDataNetworkController;
     @Mock DataSettingsManager mDataSettingsManager;
     @Mock DataConfigManager mDataConfigManager;
+    @Mock SignalStrengthController mSignalStrengthController;
 
     private Phone[] mPhones;
     private NotificationMgr mNotificationMgr;
@@ -133,6 +138,14 @@
         when(mPhone.getContext()).thenReturn(mMockedContext);
         when(mMockedContext.getResources()).thenReturn(mResources);
         when(mPhone.getServiceState()).thenReturn(mServiceState);
+        when(mServiceState.getNetworkRegistrationInfo(anyInt(), anyInt())).thenReturn(
+                new NetworkRegistrationInfo.Builder()
+                        .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
+                        .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
+                        .build());
+        when(mPhone.getServiceStateTracker()).thenReturn(mServiceStateTracker);
+        mServiceStateTracker.mSS = mServiceState;
+        when(mPhone.getSignalStrengthController()).thenReturn(mSignalStrengthController);
         when(mPhone.getDataNetworkController()).thenReturn(mDataNetworkController);
         when(mDataNetworkController.getInternetDataDisallowedReasons()).thenReturn(
                 Collections.emptyList());