Merge "Query entitlement server for premium slice"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3d80246..bf6872e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -159,6 +159,9 @@
<!-- Needed to block unwanted malicious pop up overlays -->
<uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
+ <!-- Needed to set user association to a certain sim -->
+ <uses-permission android:name="android.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION"/>
+
<permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"
android:label="Access last known cell identity."
android:protectionLevel="signature"/>
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/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index d0aad4a..a4ee836 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -31,6 +31,7 @@
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
+import android.os.UserHandle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.telecom.PhoneAccount;
@@ -702,7 +703,7 @@
}
public static PhoneAccountHandle makePstnPhoneAccountHandle(String id) {
- return makePstnPhoneAccountHandleWithPrefix(id, "", false);
+ return makePstnPhoneAccountHandleWithPrefix(id, "", false, null);
}
public static PhoneAccountHandle makePstnPhoneAccountHandle(int phoneId) {
@@ -710,22 +711,26 @@
}
public static PhoneAccountHandle makePstnPhoneAccountHandle(Phone phone) {
- return makePstnPhoneAccountHandleWithPrefix(phone, "", false);
+ return makePstnPhoneAccountHandleWithPrefix(phone, "", false, null);
}
public static PhoneAccountHandle makePstnPhoneAccountHandleWithPrefix(
- Phone phone, String prefix, boolean isEmergency) {
+ Phone phone, String prefix, boolean isEmergency, UserHandle userHandle) {
// TODO: Should use some sort of special hidden flag to decorate this account as
// an emergency-only account
String id = isEmergency ? EMERGENCY_ACCOUNT_HANDLE_ID : prefix +
String.valueOf(phone.getSubId());
- return makePstnPhoneAccountHandleWithPrefix(id, prefix, isEmergency);
+ return makePstnPhoneAccountHandleWithPrefix(id, prefix, isEmergency, userHandle);
}
public static PhoneAccountHandle makePstnPhoneAccountHandleWithPrefix(
- String id, String prefix, boolean isEmergency) {
+ String id, String prefix, boolean isEmergency, UserHandle userHandle) {
ComponentName pstnConnectionServiceName = getPstnConnectionServiceName();
- return new PhoneAccountHandle(pstnConnectionServiceName, id);
+ // If user handle is null, resort to default constructor to use phone process's
+ // user handle
+ return userHandle == null
+ ? new PhoneAccountHandle(pstnConnectionServiceName, id)
+ : new PhoneAccountHandle(pstnConnectionServiceName, id, userHandle);
}
public static int getSubIdForPhoneAccount(PhoneAccount phoneAccount) {
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index 49e1379..b6aaebe 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -387,7 +387,7 @@
private PhoneAccountHandle getEmergencyPhoneAccount() {
return PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
- (Phone) null, "" /* prefix */, true /* isEmergency */);
+ (Phone) null, "" /* prefix */, true /* isEmergency */, null /* userHandle */);
}
public static Intent buildPhoneAccountConfigureIntent(
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/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 8615325..453cb55 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -403,7 +403,7 @@
// receives an MT call while in ECM. Use the Emergency PhoneAccount to receive the account
// if it exists.
PhoneAccountHandle emergencyHandle =
- PhoneUtils.makePstnPhoneAccountHandleWithPrefix(mPhone, "", true);
+ PhoneUtils.makePstnPhoneAccountHandleWithPrefix(mPhone, "", true, null);
if(telecomAccountRegistry.hasAccountEntryForPhoneAccount(emergencyHandle)) {
Log.i(this, "Receiving MT call in ECM. Using Emergency PhoneAccount Instead.");
return emergencyHandle;
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 115c32b..f112d33 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -285,13 +285,19 @@
private PhoneAccount buildPstnPhoneAccount(boolean isEmergency, boolean isTestAccount) {
String testPrefix = isTestAccount ? "Test " : "";
+ // Check if we are registering another user. If we are, ensure that the account
+ // is registered to that user handle.
+ int subId = mPhone.getSubId();
+ UserHandle userToRegister = mSubscriptionManager.isActiveSubscriptionId(subId)
+ ? mSubscriptionManager.getSubscriptionUserHandle(subId)
+ : null;
+
// Build the Phone account handle.
PhoneAccountHandle phoneAccountHandle =
PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
- mPhone, testPrefix, isEmergency);
+ mPhone, testPrefix, isEmergency, userToRegister);
// Populate the phone account data.
- int subId = mPhone.getSubId();
String subscriberId = mPhone.getSubscriberId();
int color = PhoneAccount.NO_HIGHLIGHT_COLOR;
int slotId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
@@ -355,8 +361,12 @@
// By default all SIM phone accounts can place emergency calls.
int capabilities = PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
- PhoneAccount.CAPABILITY_CALL_PROVIDER |
- PhoneAccount.CAPABILITY_MULTI_USER;
+ PhoneAccount.CAPABILITY_CALL_PROVIDER;
+
+ // This is enabled by default. To support work profiles, it should not be enabled.
+ if (userToRegister == null) {
+ capabilities |= PhoneAccount.CAPABILITY_MULTI_USER;
+ }
if (mContext.getResources().getBoolean(R.bool.config_pstnCanPlaceEmergencyCalls)) {
capabilities |= PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS;
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index da918ad..5b1f463 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -360,7 +360,8 @@
@Override
public PhoneAccountHandle makePstnPhoneAccountHandleWithPrefix(Phone phone, String prefix,
boolean isEmergency) {
- return PhoneUtils.makePstnPhoneAccountHandleWithPrefix(phone, prefix, isEmergency);
+ return PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
+ phone, prefix, isEmergency, null);
}
};
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/)([^,.<>()"\s]+(?:[.,][^,.<>()"\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;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/)([^,.<>()"\s]+(?:[.,][^,.<>()"\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/res/values-af/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
new file mode 100644
index 0000000..2a1383b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..be17e82
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..55d3bbb
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..4a972f1
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..a9ee446
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..d8d82a9
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..10d273e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..182246f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..3f5617d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..e1a7e02
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..79dc1f2
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..aa9bcb0
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..312bd47
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..1b3caf3
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5f12d5b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..40a44fa
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..3938c7c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..d0c9f0b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..4819bc2
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..1a3381c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..2dbd14c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..214c568
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..8d22431
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..111d4cd
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..4b99fcb
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..2532a83
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..1c5b58c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..d15a53e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..f79ee6f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..855e108
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..c4a39d8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..cdf416b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..c8f0c65
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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
new file mode 100644
index 0000000..5fe7673
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ 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/tests/src/com/android/phone/PhoneUtilsTest.java b/tests/src/com/android/phone/PhoneUtilsTest.java
index 521a0bb..b5ff0dc 100644
--- a/tests/src/com/android/phone/PhoneUtilsTest.java
+++ b/tests/src/com/android/phone/PhoneUtilsTest.java
@@ -22,6 +22,7 @@
import static org.mockito.Mockito.when;
import android.content.ComponentName;
+import android.os.UserHandle;
import android.telecom.PhoneAccountHandle;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -82,6 +83,15 @@
PhoneAccountHandle phoneAccountHandleTest = new PhoneAccountHandle(
PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString);
assertEquals(phoneAccountHandleTest, PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
- mPhoneAccountHandleIdString, "", false));
+ mPhoneAccountHandleIdString, "", false, null));
+ }
+
+ @Test
+ public void testMakePstnPhoneAccountHandleWithPrefixForAnotherUser() throws Exception {
+ UserHandle userHandle = new UserHandle(10);
+ PhoneAccountHandle phoneAccountHandleTest = new PhoneAccountHandle(
+ PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString, userHandle);
+ assertEquals(phoneAccountHandleTest, PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
+ mPhoneAccountHandleIdString, "", false, userHandle));
}
}