Merge "Purchase premium capability handle null phone"
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 7f61f78..14db930 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -40,10 +40,12 @@
import com.android.internal.telephony.CallManager;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaDisplayInfoRec;
import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaSignalInfoRec;
import com.android.internal.telephony.cdma.SignalToneUtil;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import java.util.ArrayList;
import java.util.Collections;
@@ -487,9 +489,16 @@
}
public void updatePhoneStateListeners(boolean isRefresh, int updateType, int subIdToUpdate) {
- List<SubscriptionInfo> subInfos = SubscriptionController.getInstance()
- .getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
- mApplication.getAttributionTag());
+ List<SubscriptionInfo> subInfos;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ subInfos = SubscriptionManagerService.getInstance()
+ .getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
+ mApplication.getAttributionTag());
+ } else {
+ subInfos = SubscriptionController.getInstance()
+ .getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
+ mApplication.getAttributionTag());
+ }
// Sort sub id list based on slot id, so that CFI/MWI notifications will be updated for
// slot 0 first then slot 1. This is needed to ensure that when CFI or MWI is enabled for
@@ -498,8 +507,8 @@
List<Integer> subIdList = new ArrayList<Integer>(mTelephonyCallback.keySet());
Collections.sort(subIdList, new Comparator<Integer>() {
public int compare(Integer sub1, Integer sub2) {
- int slotId1 = SubscriptionController.getInstance().getSlotIndex(sub1);
- int slotId2 = SubscriptionController.getInstance().getSlotIndex(sub2);
+ int slotId1 = SubscriptionManager.getSlotIndex(sub1);
+ int slotId2 = SubscriptionManager.getSlotIndex(sub2);
return slotId1 > slotId2 ? 0 : -1;
}
});
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index abbd816..2f1ec4d 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -17,6 +17,7 @@
package com.android.phone;
import android.annotation.IntDef;
+import android.annotation.Nullable;
import android.app.Activity;
import android.app.KeyguardManager;
import android.app.ProgressDialog;
@@ -49,6 +50,7 @@
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyLocalConnection;
import android.telephony.TelephonyManager;
+import android.util.ArraySet;
import android.util.LocalLog;
import android.util.Log;
import android.widget.Toast;
@@ -188,6 +190,9 @@
@RoamingNotification
private int mPrevRoamingNotification = ROAMING_NOTIFICATION_NO_NOTIFICATION;
+ /** Operator numerics for which we've shown is-roaming notifications. **/
+ private ArraySet<String> mPrevRoamingOperatorNumerics = new ArraySet<>();
+
private WakeState mWakeState = WakeState.SLEEP;
private PowerManager mPowerManager;
@@ -375,7 +380,7 @@
.unregisterTelephonyCallback(callback);
callback = new PhoneAppCallback(subId);
tm.createForSubscriptionId(subId).registerTelephonyCallback(
- TelephonyManager.INCLUDE_LOCATION_DATA_NONE, mHandler::post,
+ TelephonyManager.INCLUDE_LOCATION_DATA_COARSE, mHandler::post,
callback);
mTelephonyCallbacks[phone.getPhoneId()] = callback;
}
@@ -736,6 +741,13 @@
Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 0);
TelephonyProperties.airplane_mode_on(true); // true means int value 1
PhoneUtils.setRadioPower(false);
+ clearCacheOnRadioOff();
+ }
+
+ /** Clear fields on power off radio **/
+ private void clearCacheOnRadioOff() {
+ // Re-show is-roaming notifications after APM mode
+ mPrevRoamingOperatorNumerics.clear();
}
private void setRadioPowerOn() {
@@ -859,18 +871,27 @@
+ mDefaultDataSubId + ", ss roaming=" + serviceState.getDataRoaming());
}
if (subId == mDefaultDataSubId) {
- updateDataRoamingStatus();
+ updateDataRoamingStatus(serviceState.getOperatorNumeric());
}
}
/**
+ * @param subId The sub Id for querying carrier config
+ * @param roamingOperatorNumeric The operator numeric for the current roaming. {@code null} if
+ * the current roaming operator numeric didn't change.
* @return whether or not we should show a notification when connecting to data roaming if the
* user has data roaming enabled
*/
- private boolean shouldShowDataConnectedRoaming(int subId) {
- PersistableBundle config = getCarrierConfigForSubId(subId);
- return config.getBoolean(CarrierConfigManager
- .KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL);
+ private boolean shouldShowDataConnectedRoaming(int subId,
+ @Nullable String roamingOperatorNumeric) {
+ boolean configAllows = getCarrierConfigForSubId(subId)
+ .getBoolean(CarrierConfigManager
+ .KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL);
+ if (!configAllows) return false;
+ // If config/settings changed, always consider show roaming notification
+ if (roamingOperatorNumeric == null) return true;
+ // Show roaming notification if we are roaming using a new network
+ return mPrevRoamingOperatorNumerics.add(roamingOperatorNumeric);
}
/**
@@ -879,6 +900,17 @@
* changes, we need to dismiss the notification.
*/
private void updateDataRoamingStatus() {
+ updateDataRoamingStatus(null /*roamingOperatorNumeric*/);
+ }
+
+ /**
+ * When roaming, if mobile data cannot be established due to data roaming not enabled, we need
+ * to notify the user so they can enable it through settings. Vise versa if the condition
+ * changes, we need to dismiss the notification.
+ * @param roamingOperatorNumeric The operator numeric for the current roaming. {@code null} if
+ * the current roaming operator numeric didn't change.
+ */
+ private void updateDataRoamingStatus(@Nullable String roamingOperatorNumeric) {
if (VDBG) Log.v(LOG_TAG, "updateDataRoamingStatus");
Phone phone = getPhone(mDefaultDataSubId);
if (phone == null) {
@@ -893,8 +925,12 @@
dataAllowed = reasons.isEmpty();
notAllowedDueToRoamingOff = (reasons.size() == 1
&& reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
- mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons
+ + ", roamingOperatorNumeric=" + roamingOperatorNumeric);
+ if (VDBG) {
+ Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons
+ + ", roamingOperatorNumeric=" + roamingOperatorNumeric);
+ }
if (!dataAllowed && notAllowedDueToRoamingOff) {
// No need to show it again if we never cancelled it explicitly.
@@ -907,8 +943,8 @@
Message msg = mHandler.obtainMessage(EVENT_DATA_ROAMING_DISCONNECTED);
msg.arg1 = mDefaultDataSubId;
msg.sendToTarget();
- } else if (dataAllowed && dataIsNowRoaming(mDefaultDataSubId)
- && shouldShowDataConnectedRoaming(mDefaultDataSubId)) {
+ } else if (dataAllowed && dataIsNowRoaming(mDefaultDataSubId)) {
+ if (!shouldShowDataConnectedRoaming(mDefaultDataSubId, roamingOperatorNumeric)) return;
// No need to show it again if we never cancelled it explicitly, or carrier config
// indicates this is not needed.
if (mPrevRoamingNotification == ROAMING_NOTIFICATION_CONNECTED) return;
@@ -1053,6 +1089,7 @@
e.printStackTrace();
}
pw.decreaseIndent();
+ pw.println("mPrevRoamingOperatorNumerics:" + mPrevRoamingOperatorNumerics);
pw.println("------- End PhoneGlobals -------");
}
}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 11f9c30..493a85f 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -195,6 +195,8 @@
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
import com.android.internal.telephony.metrics.RcsStats;
import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
import com.android.internal.telephony.uicc.IccIoResult;
import com.android.internal.telephony.uicc.IccUtils;
@@ -2450,7 +2452,7 @@
// returns phone associated with the subId.
private Phone getPhone(int subId) {
- return PhoneFactory.getPhone(mSubscriptionController.getPhoneId(subId));
+ return PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
}
private void sendEraseModemConfig(@NonNull Phone phone) {
@@ -3011,7 +3013,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- int subId = mSubscriptionController.getDefaultDataSubId();
+ int subId = SubscriptionManager.getDefaultDataSubscriptionId();
final Phone phone = getPhone(subId);
if (phone != null) {
phone.getDataSettingsManager().setDataEnabled(
@@ -3032,7 +3034,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- int subId = mSubscriptionController.getDefaultDataSubId();
+ int subId = SubscriptionManager.getDefaultDataSubscriptionId();
final Phone phone = getPhone(subId);
if (phone != null) {
phone.getDataSettingsManager().setDataEnabled(
@@ -3143,7 +3145,7 @@
@Override
public int getDataState() {
- return getDataStateForSubId(mSubscriptionController.getDefaultDataSubId());
+ return getDataStateForSubId(SubscriptionManager.getDefaultDataSubscriptionId());
}
@Override
@@ -3164,7 +3166,7 @@
@Override
public @DataActivityType int getDataActivity() {
- return getDataActivityForSubId(mSubscriptionController.getDefaultDataSubId());
+ return getDataActivityForSubId(SubscriptionManager.getDefaultDataSubscriptionId());
}
@Override
@@ -3210,7 +3212,7 @@
final long identity = Binder.clearCallingIdentity();
try {
if (DBG_LOC) log("getCellLocation: is active user");
- int subId = mSubscriptionController.getDefaultDataSubId();
+ int subId = SubscriptionManager.getDefaultDataSubscriptionId();
return (CellIdentity) sendRequest(CMD_GET_CELL_LOCATION, workSource, subId);
} finally {
Binder.restoreCallingIdentity(identity);
@@ -3227,7 +3229,7 @@
// Get default phone in this case.
phoneId = SubscriptionManager.DEFAULT_PHONE_INDEX;
}
- final int subId = mSubscriptionController.getSubId(phoneId);
+ final int subId = SubscriptionManager.getSubscriptionId(phoneId);
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone == null) return "";
ServiceStateTracker sst = phone.getServiceStateTracker();
@@ -5174,7 +5176,7 @@
*/
@Override
public int getDataNetworkType(String callingPackage, String callingFeatureId) {
- return getDataNetworkTypeForSubscriber(mSubscriptionController.getDefaultDataSubId(),
+ return getDataNetworkTypeForSubscriber(SubscriptionManager.getDefaultDataSubscriptionId(),
callingPackage, callingFeatureId);
}
@@ -5239,7 +5241,7 @@
*/
public boolean hasIccCard() {
// FIXME Make changes to pass defaultSimId of type int
- return hasIccCardUsingSlotIndex(mSubscriptionController.getSlotIndex(
+ return hasIccCardUsingSlotIndex(SubscriptionManager.getSlotIndex(
getDefaultSubscription()));
}
@@ -5304,18 +5306,22 @@
* Returns Default subId, 0 in the case of single standby.
*/
private int getDefaultSubscription() {
- return mSubscriptionController.getDefaultSubId();
+ return SubscriptionManager.getDefaultSubscriptionId();
}
private int getSlotForDefaultSubscription() {
- return mSubscriptionController.getPhoneId(getDefaultSubscription());
+ return SubscriptionManager.getPhoneId(getDefaultSubscription());
}
private int getPreferredVoiceSubscription() {
- return mSubscriptionController.getDefaultVoiceSubId();
+ return SubscriptionManager.getDefaultVoiceSubscriptionId();
}
private boolean isActiveSubscription(int subId) {
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ return SubscriptionManagerService.getInstance().isActiveSubId(subId,
+ mApp.getOpPackageName(), mApp.getFeatureId());
+ }
return mSubscriptionController.isActiveSubId(subId);
}
@@ -6154,11 +6160,11 @@
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "setNetworkSelectionModeManual");
+ final long identity = Binder.clearCallingIdentity();
if (!isActiveSubscription(subId)) {
return false;
}
- final long identity = Binder.clearCallingIdentity();
try {
ManualNetworkSelectionArgument arg = new ManualNetworkSelectionArgument(operatorInfo,
persistSelection);
@@ -6769,7 +6775,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- int phoneId = mSubscriptionController.getPhoneId(subId);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
if (DBG) log("isUserDataEnabled: subId=" + subId + " phoneId=" + phoneId);
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
@@ -6816,7 +6822,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- int phoneId = mSubscriptionController.getPhoneId(subId);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
boolean retVal = phone.getDataSettingsManager().isDataEnabled();
@@ -6863,7 +6869,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- int phoneId = mSubscriptionController.getPhoneId(subId);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
if (DBG) {
log("isDataEnabledForReason: subId=" + subId + " phoneId=" + phoneId
+ " reason=" + reason);
@@ -7275,9 +7281,16 @@
return null;
}
- final SubscriptionInfo info = SubscriptionController.getInstance()
- .getSubscriptionInfo(subId);
- final ParcelUuid groupUuid = info.getGroupUuid();
+ ParcelUuid groupUuid;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ final SubscriptionInfo info = SubscriptionManagerService.getInstance()
+ .getSubscriptionInfo(subId);
+ groupUuid = info.getGroupUuid();
+ } else {
+ final SubscriptionInfo info = mSubscriptionController
+ .getSubscriptionInfo(subId);
+ groupUuid = info.getGroupUuid();
+ }
// If it doesn't belong to any group, return just subscriberId of itself.
if (groupUuid == null) {
return new String[]{subscriberId};
@@ -7285,9 +7298,16 @@
// Get all subscriberIds from the group.
final List<String> mergedSubscriberIds = new ArrayList<>();
- final List<SubscriptionInfo> groupInfos = SubscriptionController.getInstance()
- .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
- mApp.getAttributionTag());
+ List<SubscriptionInfo> groupInfos;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ groupInfos = SubscriptionManagerService.getInstance()
+ .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
+ mApp.getAttributionTag());
+ } else {
+ groupInfos = mSubscriptionController
+ .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
+ mApp.getAttributionTag());
+ }
for (SubscriptionInfo subInfo : groupInfos) {
subscriberId = telephonyManager.getSubscriberId(subInfo.getSubscriptionId());
if (subscriberId != null) {
@@ -7847,11 +7867,23 @@
}
final long identity = Binder.clearCallingIdentity();
try {
- final SubscriptionInfo info = mSubscriptionController.getActiveSubscriptionInfo(subId,
- phone.getContext().getOpPackageName(), phone.getContext().getAttributionTag());
- if (info == null) {
- log("getSimLocaleForSubscriber, inactive subId: " + subId);
- return null;
+ SubscriptionInfo info;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ info = SubscriptionManagerService.getInstance().getActiveSubscriptionInfo(subId,
+ phone.getContext().getOpPackageName(),
+ phone.getContext().getAttributionTag());
+ if (info == null) {
+ log("getSimLocaleForSubscriber, inactive subId: " + subId);
+ return null;
+ }
+ } else {
+ info = mSubscriptionController.getActiveSubscriptionInfo(subId,
+ phone.getContext().getOpPackageName(),
+ phone.getContext().getAttributionTag());
+ if (info == null) {
+ log("getSimLocaleForSubscriber, inactive subId: " + subId);
+ return null;
+ }
}
// Try and fetch the locale from the carrier properties or from the SIM language
// preferences (EF-PL and EF-LI)...
@@ -7899,15 +7931,14 @@
return inputLocale.toLanguageTag();
}
- private List<SubscriptionInfo> getAllSubscriptionInfoList() {
- return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName(),
- mApp.getAttributionTag());
- }
-
/**
* NOTE: this method assumes permission checks are done and caller identity has been cleared.
*/
private List<SubscriptionInfo> getActiveSubscriptionInfoListPrivileged() {
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ return SubscriptionManagerService.getInstance().getActiveSubscriptionInfoList(
+ mApp.getOpPackageName(), mApp.getAttributionTag());
+ }
return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName(),
mApp.getAttributionTag());
}
@@ -8119,10 +8150,21 @@
.contains(callingPackage);
try {
// isActiveSubId requires READ_PHONE_STATE, which we already check for above
- if (!mSubscriptionController.isActiveSubId(subId, callingPackage, callingFeatureId)) {
- Rlog.d(LOG_TAG,
- "getServiceStateForSubscriber returning null for inactive subId=" + subId);
- return null;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ SubscriptionInfoInternal subInfo = SubscriptionManagerService.getInstance()
+ .getSubscriptionInfoInternal(subId);
+ if (subInfo == null || !subInfo.isActive()) {
+ Rlog.d(LOG_TAG, "getServiceStateForSubscriber returning null for inactive "
+ + "subId=" + subId);
+ return null;
+ }
+ } else {
+ if (!mSubscriptionController.isActiveSubId(subId, callingPackage,
+ callingFeatureId)) {
+ Rlog.d(LOG_TAG, "getServiceStateForSubscriber returning null for inactive "
+ + "subId=" + subId);
+ return null;
+ }
}
ServiceState ss = phone.getServiceState();
@@ -9271,7 +9313,7 @@
*/
private int getDefaultNetworkType(int subId) {
List<Integer> list = TelephonyProperties.default_network();
- int phoneId = mSubscriptionController.getPhoneId(subId);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
if (phoneId >= 0 && phoneId < list.size() && list.get(phoneId) != null) {
return list.get(phoneId);
}
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index 475d878..4c29e65 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -40,6 +40,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionController;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.phone.PhoneGlobals;
import com.android.phone.R;
@@ -183,10 +184,16 @@
// Update RTT config with IMS Manager if the always-on carrier config isn't set to true.
CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(
Context.CARRIER_CONFIG_SERVICE);
- for (int subId : SubscriptionController.getInstance().getActiveSubIdList(true)) {
+ int[] activeSubIds;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ activeSubIds = SubscriptionManagerService.getInstance().getActiveSubIdList(true);
+ } else {
+ activeSubIds = SubscriptionController.getInstance().getActiveSubIdList(true);
+ }
+ for (int subId : activeSubIds) {
if (!configManager.getConfigForSubId(subId).getBoolean(
CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL, false)) {
- int phoneId = SubscriptionController.getInstance().getPhoneId(subId);
+ int phoneId = SubscriptionManager.getPhoneId(subId);
ImsManager imsManager = ImsManager.getInstance(getContext(), phoneId);
imsManager.setRttEnabled(mButtonRtt.isChecked());
}
@@ -264,6 +271,14 @@
private boolean shouldShowRttSetting() {
// Go through all the subs -- if we want to display the RTT setting for any of them, do
// display it.
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ for (int subId : SubscriptionManagerService.getInstance().getActiveSubIdList(true)) {
+ if (PhoneGlobals.getInstance().phoneMgr.isRttSupported(subId)) {
+ return true;
+ }
+ }
+ return false;
+ }
for (int subId : SubscriptionController.getInstance().getActiveSubIdList(true)) {
if (PhoneGlobals.getInstance().phoneMgr.isRttSupported(subId)) {
return true;
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 10f1f86..d92b136 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -64,6 +64,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionController;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.phone.PhoneGlobals;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
@@ -547,18 +548,37 @@
return false;
}
- SubscriptionController controller = SubscriptionController.getInstance();
- if (controller == null) {
- Log.d(this, "isEmergencyPreferredAccount: SubscriptionController not available.");
- return false;
- }
- // Only set an emergency preference on devices with multiple active subscriptions
- // (include opportunistic subscriptions) in this check.
- // API says never null, but this can return null in testing.
- int[] activeSubIds = controller.getActiveSubIdList(false);
- if (activeSubIds == null || activeSubIds.length <= 1) {
- Log.d(this, "isEmergencyPreferredAccount: one or less active subscriptions.");
- return false;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ if (SubscriptionManagerService.getInstance() == null) {
+ Log.d(this,
+ "isEmergencyPreferredAccount: SubscriptionManagerService not "
+ + "available.");
+ return false;
+ }
+ // Only set an emergency preference on devices with multiple active subscriptions
+ // (include opportunistic subscriptions) in this check.
+ // API says never null, but this can return null in testing.
+ int[] activeSubIds = SubscriptionManagerService.getInstance()
+ .getActiveSubIdList(false);
+ if (activeSubIds == null || activeSubIds.length <= 1) {
+ Log.d(this, "isEmergencyPreferredAccount: one or less active subscriptions.");
+ return false;
+ }
+ } else {
+ SubscriptionController controller = SubscriptionController.getInstance();
+ if (controller == null) {
+ Log.d(this,
+ "isEmergencyPreferredAccount: SubscriptionController not available.");
+ return false;
+ }
+ // Only set an emergency preference on devices with multiple active subscriptions
+ // (include opportunistic subscriptions) in this check.
+ // API says never null, but this can return null in testing.
+ int[] activeSubIds = controller.getActiveSubIdList(false);
+ if (activeSubIds == null || activeSubIds.length <= 1) {
+ Log.d(this, "isEmergencyPreferredAccount: one or less active subscriptions.");
+ return false;
+ }
}
// Check to see if this PhoneAccount is associated with the default Data subscription.
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
@@ -566,10 +586,21 @@
+ "valid.");
return false;
}
- int userDefaultData = controller.getDefaultDataSubId();
+ int userDefaultData = SubscriptionManager.getDefaultDataSubscriptionId();
boolean isActiveDataValid = SubscriptionManager.isValidSubscriptionId(activeDataSubId);
- boolean isActiveDataOpportunistic = isActiveDataValid
- && controller.isOpportunistic(activeDataSubId);
+
+ boolean isActiveDataOpportunistic;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ SubscriptionInfo subInfo;
+ subInfo = SubscriptionManagerService.getInstance()
+ .getSubscriptionInfo(activeDataSubId);
+ isActiveDataOpportunistic = isActiveDataValid && subInfo != null
+ && subInfo.isOpportunistic();
+ } else {
+ isActiveDataOpportunistic = isActiveDataValid
+ && SubscriptionController.getInstance().isOpportunistic(activeDataSubId);
+ }
+
// compare the activeDataSubId to the subId specified only if it is valid and not an
// opportunistic subscription (only supports data). If not, use the current default
// defined by the user.
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 36c2378..9b49c3e 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -67,6 +67,8 @@
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.phone.FrameworksUtils;
import com.android.phone.MMIDialogActivity;
import com.android.phone.PhoneUtils;
@@ -842,6 +844,19 @@
return (phone.getState() == PhoneConstants.State.OFFHOOK)
|| phone.getServiceStateTracker().isRadioOn();
} else {
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ SubscriptionInfoInternal subInfo = SubscriptionManagerService
+ .getInstance().getSubscriptionInfoInternal(phone.getSubId());
+ // Wait until we are in service and ready to make calls. This can happen
+ // when we power down the radio on bluetooth to save power on watches or
+ // if it is a test emergency number and we have to wait for the device
+ // to move IN_SERVICE before the call can take place over normal
+ // routing.
+ return (phone.getState() == PhoneConstants.State.OFFHOOK)
+ // Do not wait for voice in service on opportunistic SIMs.
+ || (subInfo != null && subInfo.isOpportunistic())
+ || serviceState == ServiceState.STATE_IN_SERVICE;
+ }
// Wait until we are in service and ready to make calls. This can happen
// when we power down the radio on bluetooth to save power on watches or if
// it is a test emergency number and we have to wait for the device to move
@@ -1002,9 +1017,16 @@
// Notify Telecom of the new Connection type.
// TODO: Switch out the underlying connection instead of creating a new
// one and causing UI Jank.
- boolean noActiveSimCard = SubscriptionController.getInstance()
- .getActiveSubInfoCount(phone.getContext().getOpPackageName(),
- phone.getContext().getAttributionTag()) == 0;
+ boolean noActiveSimCard;
+ if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ noActiveSimCard = SubscriptionManagerService.getInstance()
+ .getActiveSubInfoCount(phone.getContext().getOpPackageName(),
+ phone.getContext().getAttributionTag()) == 0;
+ } else {
+ noActiveSimCard = SubscriptionController.getInstance()
+ .getActiveSubInfoCount(phone.getContext().getOpPackageName(),
+ phone.getContext().getAttributionTag()) == 0;
+ }
// If there's no active sim card and the device is in emergency mode, use E account.
addExistingConnection(mPhoneUtilsProxy.makePstnPhoneAccountHandleWithPrefix(
phone, "", isEmergencyNumber && noActiveSimCard), repConnection);
diff --git a/testapps/TestServerApp/.gitignore b/testapps/TestServerApp/.gitignore
deleted file mode 100644
index aa724b7..0000000
--- a/testapps/TestServerApp/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-*.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
deleted file mode 100644
index 26d3352..0000000
--- a/testapps/TestServerApp/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/testapps/TestServerApp/.idea/compiler.xml b/testapps/TestServerApp/.idea/compiler.xml
deleted file mode 100644
index fb7f4a8..0000000
--- a/testapps/TestServerApp/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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
deleted file mode 100644
index a2d7c21..0000000
--- a/testapps/TestServerApp/.idea/gradle.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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
deleted file mode 100644
index 7c85865..0000000
--- a/testapps/TestServerApp/.idea/misc.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?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
deleted file mode 100644
index 47fe944..0000000
--- a/testapps/TestServerApp/.idea/vcs.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?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
deleted file mode 100644
index 42afabf..0000000
--- a/testapps/TestServerApp/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/testapps/TestServerApp/app/build.gradle b/testapps/TestServerApp/app/build.gradle
deleted file mode 100644
index 64a8ed9..0000000
--- a/testapps/TestServerApp/app/build.gradle
+++ /dev/null
@@ -1,40 +0,0 @@
-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
deleted file mode 100644
index 481bb43..0000000
--- a/testapps/TestServerApp/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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
deleted file mode 100644
index 555bec9..0000000
--- a/testapps/TestServerApp/app/src/androidTest/java/com/google/android/testserverapp/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-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
deleted file mode 100644
index 1605962..0000000
--- a/testapps/TestServerApp/app/src/main/Android.bp
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index 3c91a82..0000000
--- a/testapps/TestServerApp/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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
deleted file mode 100644
index 4521655..0000000
--- a/testapps/TestServerApp/app/src/main/java/com/google/android/testserverapp/MainActivity.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * 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 + ","
- + " \"ProvisionTimeLeft\": 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
deleted file mode 100644
index 3d33284..0000000
--- a/testapps/TestServerApp/app/src/main/libs/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- 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
deleted file mode 100644
index 6e2b44e..0000000
--- a/testapps/TestServerApp/app/src/main/libs/http-2.2.1.jar
+++ /dev/null
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
deleted file mode 100644
index ca7127f..0000000
--- a/testapps/TestServerApp/app/src/main/libs/sun-common-server.jar
+++ /dev/null
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/proguard.flags b/testapps/TestServerApp/app/src/main/proguard.flags
deleted file mode 100644
index 4eefde6..0000000
--- a/testapps/TestServerApp/app/src/main/proguard.flags
+++ /dev/null
@@ -1,4 +0,0 @@
--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
deleted file mode 100644
index 966abaf..0000000
--- a/testapps/TestServerApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<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
deleted file mode 100644
index 61bb79e..0000000
--- a/testapps/TestServerApp/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?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
deleted file mode 100644
index a4ca45a..0000000
--- a/testapps/TestServerApp/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?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
deleted file mode 100644
index 03eed25..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?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
deleted file mode 100644
index 03eed25..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?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
deleted file mode 100644
index c209e78..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
+++ /dev/null
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
deleted file mode 100644
index b2dfe3d..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
+++ /dev/null
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
deleted file mode 100644
index 4f0f1d6..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
+++ /dev/null
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
deleted file mode 100644
index 62b611d..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
+++ /dev/null
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
deleted file mode 100644
index 948a307..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
+++ /dev/null
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
deleted file mode 100644
index 1b9a695..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
+++ /dev/null
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
deleted file mode 100644
index 28d4b77..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
+++ /dev/null
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
deleted file mode 100644
index 9287f50..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
+++ /dev/null
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
deleted file mode 100644
index aa7d642..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
+++ /dev/null
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
deleted file mode 100644
index 9126ae3..0000000
--- a/testapps/TestServerApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ
diff --git a/testapps/TestServerApp/app/src/main/res/values-af/strings.xml b/testapps/TestServerApp/app/src/main/res/values-af/strings.xml
deleted file mode 100644
index d9a3978..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-af/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"Toetsbediener-app"</string>
- <string name="action_settings" msgid="1335152369747372374">"Instellings"</string>
- <string name="server_running" msgid="2780193626090379172">"Bediener werk tans …"</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop bediener"</string>
- <string name="server_down" msgid="1030249207496490556">"Bediener is af"</string>
- <string name="start_server" msgid="3878573341408591975">"Begin bediener"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Gedeaktiveer"</item>
- <item msgid="3193389681837907872">"Geaktiveer"</item>
- <item msgid="3124590179479393815">"Onversoenbaar"</item>
- <item msgid="1606753456265236910">"Stel tans op"</item>
- <item msgid="3930807209231347454">"Ingesluit"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Nie opgestel nie"</item>
- <item msgid="7598231293776486217">"Opgestel"</item>
- <item msgid="3720547957514534185">"Nie vereis nie"</item>
- <item msgid="1264673582354896949">"Tans besig"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-bs/strings.xml b/testapps/TestServerApp/app/src/main/res/values-bs/strings.xml
deleted file mode 100644
index f143153..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-bs/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Postavke"</string>
- <string name="server_running" msgid="2780193626090379172">"Server radi…"</string>
- <string name="stop_server" msgid="6192029827529013598">"Zaustavi server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server ne radi"</string>
- <string name="start_server" msgid="3878573341408591975">"Pokreni server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Onemogućeno"</item>
- <item msgid="3193389681837907872">"Omogućeno"</item>
- <item msgid="3124590179479393815">"Nekompatibilno"</item>
- <item msgid="1606753456265236910">"Dodjeljivanje"</item>
- <item msgid="3930807209231347454">"Uključeno"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Nije dodijeljeno"</item>
- <item msgid="7598231293776486217">"Dodijeljeno"</item>
- <item msgid="3720547957514534185">"Nije potrebno"</item>
- <item msgid="1264673582354896949">"U toku"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-ca/strings.xml b/testapps/TestServerApp/app/src/main/res/values-ca/strings.xml
deleted file mode 100644
index 7b7a999..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-ca/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Configuració"</string>
- <string name="server_running" msgid="2780193626090379172">"El servidor s\'està executant..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Atura el servidor"</string>
- <string name="server_down" msgid="1030249207496490556">"El servidor no funciona"</string>
- <string name="start_server" msgid="3878573341408591975">"Inicia el servidor"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Desactivat"</item>
- <item msgid="3193389681837907872">"Activat"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"S\'està proporcionant"</item>
- <item msgid="3930807209231347454">"Inclòs"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"No proporcionat"</item>
- <item msgid="7598231293776486217">"Proporcionat"</item>
- <item msgid="3720547957514534185">"No obligatori"</item>
- <item msgid="1264673582354896949">"En curs"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-en-rAU/strings.xml b/testapps/TestServerApp/app/src/main/res/values-en-rAU/strings.xml
deleted file mode 100644
index 9a8beab..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Settings"</string>
- <string name="server_running" msgid="2780193626090379172">"Server is running..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server is down"</string>
- <string name="start_server" msgid="3878573341408591975">"Start server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Disabled"</item>
- <item msgid="3193389681837907872">"Enabled"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Included"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Not provisioned"</item>
- <item msgid="7598231293776486217">"Provisioned"</item>
- <item msgid="3720547957514534185">"Not required"</item>
- <item msgid="1264673582354896949">"In progress"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-en-rCA/strings.xml b/testapps/TestServerApp/app/src/main/res/values-en-rCA/strings.xml
deleted file mode 100644
index 6f4f3b1..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Settings"</string>
- <string name="server_running" msgid="2780193626090379172">"Server is running..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop Server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server is down"</string>
- <string name="start_server" msgid="3878573341408591975">"Start Server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Disabled"</item>
- <item msgid="3193389681837907872">"Enabled"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Included"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Not Provisioned"</item>
- <item msgid="7598231293776486217">"Provisioned"</item>
- <item msgid="3720547957514534185">"Not Required"</item>
- <item msgid="1264673582354896949">"In Progress"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-en-rGB/strings.xml b/testapps/TestServerApp/app/src/main/res/values-en-rGB/strings.xml
deleted file mode 100644
index 9a8beab..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Settings"</string>
- <string name="server_running" msgid="2780193626090379172">"Server is running..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server is down"</string>
- <string name="start_server" msgid="3878573341408591975">"Start server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Disabled"</item>
- <item msgid="3193389681837907872">"Enabled"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Included"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Not provisioned"</item>
- <item msgid="7598231293776486217">"Provisioned"</item>
- <item msgid="3720547957514534185">"Not required"</item>
- <item msgid="1264673582354896949">"In progress"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-en-rIN/strings.xml b/testapps/TestServerApp/app/src/main/res/values-en-rIN/strings.xml
deleted file mode 100644
index 9a8beab..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Settings"</string>
- <string name="server_running" msgid="2780193626090379172">"Server is running..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server is down"</string>
- <string name="start_server" msgid="3878573341408591975">"Start server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Disabled"</item>
- <item msgid="3193389681837907872">"Enabled"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Included"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Not provisioned"</item>
- <item msgid="7598231293776486217">"Provisioned"</item>
- <item msgid="3720547957514534185">"Not required"</item>
- <item msgid="1264673582354896949">"In progress"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-en-rXC/strings.xml b/testapps/TestServerApp/app/src/main/res/values-en-rXC/strings.xml
deleted file mode 100644
index c6f5304..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Settings"</string>
- <string name="server_running" msgid="2780193626090379172">"Server is running..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Stop Server"</string>
- <string name="server_down" msgid="1030249207496490556">"Server is down"</string>
- <string name="start_server" msgid="3878573341408591975">"Start Server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Disabled"</item>
- <item msgid="3193389681837907872">"Enabled"</item>
- <item msgid="3124590179479393815">"Incompatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Included"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Not Provisioned"</item>
- <item msgid="7598231293776486217">"Provisioned"</item>
- <item msgid="3720547957514534185">"Not Required"</item>
- <item msgid="1264673582354896949">"In Progress"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-fa/strings.xml b/testapps/TestServerApp/app/src/main/res/values-fa/strings.xml
deleted file mode 100644
index 17b4d08..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-fa/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"تنظیمات"</string>
- <string name="server_running" msgid="2780193626090379172">"سرور درحال اجرا است…"</string>
- <string name="stop_server" msgid="6192029827529013598">"توقف سرور"</string>
- <string name="server_down" msgid="1030249207496490556">"سرور ازکار افتاده است"</string>
- <string name="start_server" msgid="3878573341408591975">"شروع سرور"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"غیرفعال"</item>
- <item msgid="3193389681837907872">"فعال"</item>
- <item msgid="3124590179479393815">"ناسازگار"</item>
- <item msgid="1606753456265236910">"درحال ارائه دسترسی"</item>
- <item msgid="3930807209231347454">"لحاظشده"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"ارائهنشده"</item>
- <item msgid="7598231293776486217">"ارائهشده"</item>
- <item msgid="3720547957514534185">"الزامی نیست"</item>
- <item msgid="1264673582354896949">"درحال انجام"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-iw/strings.xml b/testapps/TestServerApp/app/src/main/res/values-iw/strings.xml
deleted file mode 100644
index 701edba..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-iw/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"אפליקציית TestServer"</string>
- <string name="action_settings" msgid="1335152369747372374">"הגדרות"</string>
- <string name="server_running" msgid="2780193626090379172">"השרת פועל…"</string>
- <string name="stop_server" msgid="6192029827529013598">"הפסקת השרת"</string>
- <string name="server_down" msgid="1030249207496490556">"תקלה בשרת"</string>
- <string name="start_server" msgid="3878573341408591975">"הפעלת השרת"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"מושבת"</item>
- <item msgid="3193389681837907872">"פועל"</item>
- <item msgid="3124590179479393815">"לא תואם"</item>
- <item msgid="1606753456265236910">"הקצאה"</item>
- <item msgid="3930807209231347454">"כלול"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"לא מוקצה"</item>
- <item msgid="7598231293776486217">"מוקצה"</item>
- <item msgid="3720547957514534185">"לא נדרש"</item>
- <item msgid="1264673582354896949">"בתהליך"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-ka/strings.xml b/testapps/TestServerApp/app/src/main/res/values-ka/strings.xml
deleted file mode 100644
index fc17ddd..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-ka/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"პარამეტრები"</string>
- <string name="server_running" msgid="2780193626090379172">"სერვერი მუშაობს..."</string>
- <string name="stop_server" msgid="6192029827529013598">"სერვერის გაჩერება"</string>
- <string name="server_down" msgid="1030249207496490556">"სერვერი გათიშულია"</string>
- <string name="start_server" msgid="3878573341408591975">"სერვერის დაწყება"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"გათიშულია"</item>
- <item msgid="3193389681837907872">"ჩართულია"</item>
- <item msgid="3124590179479393815">"არათავსებადი"</item>
- <item msgid="1606753456265236910">"დანერგვა"</item>
- <item msgid="3930807209231347454">"შედის"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"არ არის გათვალისწინებული"</item>
- <item msgid="7598231293776486217">"უზრუნველყოფილი"</item>
- <item msgid="3720547957514534185">"არასავალდებულო"</item>
- <item msgid="1264673582354896949">"მიმდინარე"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-km/strings.xml b/testapps/TestServerApp/app/src/main/res/values-km/strings.xml
deleted file mode 100644
index 888db64..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-km/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"ការកំណត់"</string>
- <string name="server_running" msgid="2780193626090379172">"ម៉ាស៊ីនមេកំពុងដំណើរការ..."</string>
- <string name="stop_server" msgid="6192029827529013598">"បញ្ឈប់ម៉ាស៊ីនមេ"</string>
- <string name="server_down" msgid="1030249207496490556">"ម៉ាស៊ីនមេមិនដំណើរការ"</string>
- <string name="start_server" msgid="3878573341408591975">"ចាប់ផ្ដើមម៉ាស៊ីនមេ"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"បានបិទ"</item>
- <item msgid="3193389681837907872">"បានបើក"</item>
- <item msgid="3124590179479393815">"មិនត្រូវគ្នា"</item>
- <item msgid="1606753456265236910">"ការផ្តល់"</item>
- <item msgid="3930807209231347454">"បានរួមបញ្ចូល"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"មិនបានផ្ដល់"</item>
- <item msgid="7598231293776486217">"បានផ្ដល់"</item>
- <item msgid="3720547957514534185">"មិនតម្រូវ"</item>
- <item msgid="1264673582354896949">"កំពុងដំណើរការ"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-lo/strings.xml b/testapps/TestServerApp/app/src/main/res/values-lo/strings.xml
deleted file mode 100644
index eb725cf..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-lo/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"ການຕັ້ງຄ່າ"</string>
- <string name="server_running" msgid="2780193626090379172">"ເຊີບເວີກຳລັງເຮັດວຽກ..."</string>
- <string name="stop_server" msgid="6192029827529013598">"ຢຸດການເຮັດວຽກຂອງເຊີບເວີ"</string>
- <string name="server_down" msgid="1030249207496490556">"ເຊີບເວີຢຸດໃຫ້ບໍລິການ"</string>
- <string name="start_server" msgid="3878573341408591975">"ເລີ່ມການເຮັດວຽກຂອງເຊີບເວີ"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"ປິດການນຳໃຊ້ແລ້ວ"</item>
- <item msgid="3193389681837907872">"ເປີດການນຳໃຊ້ແລ້ວ"</item>
- <item msgid="3124590179479393815">"ໃຊ້ຮ່ວມກັນບໍ່ໄດ້"</item>
- <item msgid="1606753456265236910">"ກຳລັງຈັດກຽມ"</item>
- <item msgid="3930807209231347454">"ຮວມເຂົ້າແລ້ວ"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"ບໍ່ໄດ້ຈັດກຽມ"</item>
- <item msgid="7598231293776486217">"ຈັດກຽມໃຫ້ແລ້ວ"</item>
- <item msgid="3720547957514534185">"ບໍ່ຈຳເປັນ"</item>
- <item msgid="1264673582354896949">"ກຳລັງດຳເນີນການ"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-ms/strings.xml b/testapps/TestServerApp/app/src/main/res/values-ms/strings.xml
deleted file mode 100644
index 8d60ad4..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-ms/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Tetapan"</string>
- <string name="server_running" msgid="2780193626090379172">"Pelayan sedang dijalankan..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Hentikan Pelayan"</string>
- <string name="server_down" msgid="1030249207496490556">"Pelayan tergendala"</string>
- <string name="start_server" msgid="3878573341408591975">"Mulakan Pelayan"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Dilumpuhkan"</item>
- <item msgid="3193389681837907872">"Didayakan"</item>
- <item msgid="3124590179479393815">"Tidak serasi"</item>
- <item msgid="1606753456265236910">"Peruntukan"</item>
- <item msgid="3930807209231347454">"Disertakan"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Tidak Diperuntukkan"</item>
- <item msgid="7598231293776486217">"Diperuntukkan"</item>
- <item msgid="3720547957514534185">"Tidak Diperlukan"</item>
- <item msgid="1264673582354896949">"Sedang Berlangsung"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-or/strings.xml b/testapps/TestServerApp/app/src/main/res/values-or/strings.xml
deleted file mode 100644
index 3f951e7..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-or/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"ସେଟିଂସ"</string>
- <string name="server_running" msgid="2780193626090379172">"ସର୍ଭର ଚାଲୁଛି..."</string>
- <string name="stop_server" msgid="6192029827529013598">"ସର୍ଭର ବନ୍ଦ କରନ୍ତୁ"</string>
- <string name="server_down" msgid="1030249207496490556">"ସର୍ଭର ଡାଉନ ଅଛି"</string>
- <string name="start_server" msgid="3878573341408591975">"ସର୍ଭର ଆରମ୍ଭ କରନ୍ତୁ"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"ଅକ୍ଷମ କରାଯାଇଛି"</item>
- <item msgid="3193389681837907872">"ସକ୍ଷମ କରାଯାଇଛି"</item>
- <item msgid="3124590179479393815">"ଇନକମ୍ପାଟିବଲ"</item>
- <item msgid="1606753456265236910">"ପ୍ରୋଭିଜନ କରାଯାଉଛି"</item>
- <item msgid="3930807209231347454">"ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"ପ୍ରୋଭିଜନ କରାଯାଇନାହିଁ"</item>
- <item msgid="7598231293776486217">"ପ୍ରୋଭିଜନ କରାଯାଇଛି"</item>
- <item msgid="3720547957514534185">"ଆବଶ୍ୟକ ନୁହେଁ"</item>
- <item msgid="1264673582354896949">"ଚାଲୁଛି"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-tl/strings.xml b/testapps/TestServerApp/app/src/main/res/values-tl/strings.xml
deleted file mode 100644
index 0133ed5..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-tl/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Mga Setting"</string>
- <string name="server_running" msgid="2780193626090379172">"Gumagana ang server..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Patigilin ang Server"</string>
- <string name="server_down" msgid="1030249207496490556">"Down ang server"</string>
- <string name="start_server" msgid="3878573341408591975">"Simulan ang Server"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Naka-disable"</item>
- <item msgid="3193389681837907872">"Naka-enable"</item>
- <item msgid="3124590179479393815">"Hindi Compatible"</item>
- <item msgid="1606753456265236910">"Provisioning"</item>
- <item msgid="3930807209231347454">"Kasama"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Hindi Naka-provision"</item>
- <item msgid="7598231293776486217">"Naka-provision"</item>
- <item msgid="3720547957514534185">"Hindi Kinakailangan"</item>
- <item msgid="1264673582354896949">"Isinasagawa"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-tr/strings.xml b/testapps/TestServerApp/app/src/main/res/values-tr/strings.xml
deleted file mode 100644
index d5950a1..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-tr/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Ayarlar"</string>
- <string name="server_running" msgid="2780193626090379172">"Sunucu çalışıyor..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Sunucuyu Durdur"</string>
- <string name="server_down" msgid="1030249207496490556">"Sunucu kapalı"</string>
- <string name="start_server" msgid="3878573341408591975">"Sunucuyu Başlat"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Devre dışı"</item>
- <item msgid="3193389681837907872">"Etkin"</item>
- <item msgid="3124590179479393815">"Uyumsuz"</item>
- <item msgid="1606753456265236910">"Temel Hazırlık Yapılıyor"</item>
- <item msgid="3930807209231347454">"Dahil"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Temel Hazırlığı Yapılmadı"</item>
- <item msgid="7598231293776486217">"Temel Hazırlığı Yapıldı"</item>
- <item msgid="3720547957514534185">"Gerekli Değil"</item>
- <item msgid="1264673582354896949">"Devam Ediyor"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-uk/strings.xml b/testapps/TestServerApp/app/src/main/res/values-uk/strings.xml
deleted file mode 100644
index 0899971..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-uk/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Налаштування"</string>
- <string name="server_running" msgid="2780193626090379172">"Сервер працює…"</string>
- <string name="stop_server" msgid="6192029827529013598">"Зупинити сервер"</string>
- <string name="server_down" msgid="1030249207496490556">"Сервер не працює"</string>
- <string name="start_server" msgid="3878573341408591975">"Запустити сервер"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Вимкнено"</item>
- <item msgid="3193389681837907872">"Увімкнено"</item>
- <item msgid="3124590179479393815">"Несумісні"</item>
- <item msgid="1606753456265236910">"Надання"</item>
- <item msgid="3930807209231347454">"Включено"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Не надано"</item>
- <item msgid="7598231293776486217">"Надано"</item>
- <item msgid="3720547957514534185">"Необов’язково"</item>
- <item msgid="1264673582354896949">"Виконується"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-uz/strings.xml b/testapps/TestServerApp/app/src/main/res/values-uz/strings.xml
deleted file mode 100644
index bed928c..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-uz/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"Sozlamalar"</string>
- <string name="server_running" msgid="2780193626090379172">"Server ishlayapti..."</string>
- <string name="stop_server" msgid="6192029827529013598">"Serverni to‘xtatish"</string>
- <string name="server_down" msgid="1030249207496490556">"Server ishlamayapti"</string>
- <string name="start_server" msgid="3878573341408591975">"Serverni ishga tushirish"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"Yoqilmagan"</item>
- <item msgid="3193389681837907872">"Yoqilgan"</item>
- <item msgid="3124590179479393815">"Mos emas"</item>
- <item msgid="1606753456265236910">"Sinxronlanmoqda"</item>
- <item msgid="3930807209231347454">"Kiritilgan"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"Taqdim etilmagan"</item>
- <item msgid="7598231293776486217">"Taqdim etilgan"</item>
- <item msgid="3720547957514534185">"Majburiy emas"</item>
- <item msgid="1264673582354896949">"Bajarilmoqda"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-zh-rHK/strings.xml b/testapps/TestServerApp/app/src/main/res/values-zh-rHK/strings.xml
deleted file mode 100644
index a9ab91c..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"設定"</string>
- <string name="server_running" msgid="2780193626090379172">"伺服器運作中…"</string>
- <string name="stop_server" msgid="6192029827529013598">"停止伺服器"</string>
- <string name="server_down" msgid="1030249207496490556">"伺服器故障"</string>
- <string name="start_server" msgid="3878573341408591975">"啟動伺服器"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"已停用"</item>
- <item msgid="3193389681837907872">"已啟用"</item>
- <item msgid="3124590179479393815">"不兼容"</item>
- <item msgid="1606753456265236910">"正在佈建"</item>
- <item msgid="3930807209231347454">"已包括"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"未佈建"</item>
- <item msgid="7598231293776486217">"已佈建"</item>
- <item msgid="3720547957514534185">"非必填"</item>
- <item msgid="1264673582354896949">"進行中"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values-zh-rTW/strings.xml b/testapps/TestServerApp/app/src/main/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 8b32974..0000000
--- a/testapps/TestServerApp/app/src/main/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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="2894617184221823208">"TestServerApp"</string>
- <string name="action_settings" msgid="1335152369747372374">"設定"</string>
- <string name="server_running" msgid="2780193626090379172">"伺服器正在運作中..."</string>
- <string name="stop_server" msgid="6192029827529013598">"停止伺服器"</string>
- <string name="server_down" msgid="1030249207496490556">"伺服器發生問題"</string>
- <string name="start_server" msgid="3878573341408591975">"啟動伺服器"</string>
- <string-array name="entitlement_status">
- <item msgid="5560300387618996934">"已停用"</item>
- <item msgid="3193389681837907872">"已啟用"</item>
- <item msgid="3124590179479393815">"不相容"</item>
- <item msgid="1606753456265236910">"佈建中"</item>
- <item msgid="3930807209231347454">"已納入"</item>
- </string-array>
- <string-array name="provision_status">
- <item msgid="3486273747926710021">"尚未佈建"</item>
- <item msgid="7598231293776486217">"已佈建"</item>
- <item msgid="3720547957514534185">"非必要"</item>
- <item msgid="1264673582354896949">"進行中"</item>
- </string-array>
-</resources>
diff --git a/testapps/TestServerApp/app/src/main/res/values/colors.xml b/testapps/TestServerApp/app/src/main/res/values/colors.xml
deleted file mode 100644
index 09837df..0000000
--- a/testapps/TestServerApp/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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
deleted file mode 100644
index 0d1efa8..0000000
--- a/testapps/TestServerApp/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<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
deleted file mode 100644
index 9b42d90..0000000
--- a/testapps/TestServerApp/app/src/main/res/xml/backup_rules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?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
deleted file mode 100644
index c6c3bb0..0000000
--- a/testapps/TestServerApp/app/src/main/res/xml/data_extraction_rules.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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
deleted file mode 100644
index 88a8c5a..0000000
--- a/testapps/TestServerApp/app/src/test/java/com/google/android/testserverapp/ExampleUnitTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-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
deleted file mode 100644
index 90f9008..0000000
--- a/testapps/TestServerApp/build.gradle
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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
deleted file mode 100644
index 3e927b1..0000000
--- a/testapps/TestServerApp/gradle.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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
deleted file mode 100644
index e708b1c..0000000
--- a/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.jar
+++ /dev/null
Binary files differ
diff --git a/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties b/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index e12f4cd..0000000
--- a/testapps/TestServerApp/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#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
deleted file mode 100755
index 4f906e0..0000000
--- a/testapps/TestServerApp/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/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
deleted file mode 100644
index ac1b06f..0000000
--- a/testapps/TestServerApp/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@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
deleted file mode 100644
index a6a2846..0000000
--- a/testapps/TestServerApp/settings.gradle
+++ /dev/null
@@ -1,16 +0,0 @@
-pluginManagement {
- repositories {
- gradlePluginPortal()
- google()
- mavenCentral()
- }
-}
-dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- google()
- mavenCentral()
- }
-}
-rootProject.name = "TestServerApp"
-include ':app'