Merge "Register VmsPublisherService with VmsClientManager on construction time." into qt-dev
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/config.xml b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
index 6db7961..62ff41c 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
@@ -84,5 +84,8 @@
<!-- True if the device supports split screen as a form of multi-window. -->
<bool name="config_supportsSplitScreenMultiWindow">false</bool>
+ <!-- True if the device supports system decorations on secondary displays. -->
+ <bool name="config_supportsSystemDecorsOnSecondaryDisplays">false</bool>
+
<string name="config_dataUsageSummaryComponent">com.android.car.settings/com.android.car.settings.datausage.DataWarningAndLimitActivity</string>
</resources>
diff --git a/service/res/values/config.xml b/service/res/values/config.xml
index 4aef4a5..a81bed4 100644
--- a/service/res/values/config.xml
+++ b/service/res/values/config.xml
@@ -155,12 +155,14 @@
Every item in this array contains a flatten component name of a service that needs to be
started and a list of parameters after hashtag symbol. Here's the format:
- <item>com.bar.foo/.Service#bind={true|false},user={all|system|foreground},trigger={asap,userUnlocked}</item>
+ <item>com.bar.foo/.Service#bind={bind|start|startForeground},user={all|system|foreground},
+ trigger={asap,userUnlocked}</item>
- bind: indicates whether service needs to be bound or started, if the value is 'true'
- the service will be bound by calling Context#bindService(...), otherwise it will
- be started using Context#startService. If service was bound it will be restarted
- unless it is constantly crashing. The default value is 'false'
+ bind: bind - start service with Context#bindService
+ start - start service with Context#startService
+ startForeground - start service with Context#startForegroundService
+ If service was bound it will be restarted unless it is constantly crashing.
+ The default value is 'start'
user: all - the service will be bound/started for system and all foreground users
system - the service will be started/bound only for system user (u0)
foreground - the service will be bound/started only for foreground users
@@ -175,7 +177,7 @@
is no longer foreground.
-->
<string-array translatable="false" name="config_earlyStartupServices">
- <!-- list your services here -->
+ <item>com.android.car.messenger/.MessengerService#bind=startForeground,user=foreground,trigger=userUnlocked</item>
</string-array>
<string name="config_TetheredProjectionAccessPointSsid" translatable="false">CarAP</string>
diff --git a/service/src/com/android/car/CarDrivingStateService.java b/service/src/com/android/car/CarDrivingStateService.java
index 48840b7..f75c4e7 100644
--- a/service/src/com/android/car/CarDrivingStateService.java
+++ b/service/src/com/android/car/CarDrivingStateService.java
@@ -36,9 +36,9 @@
import android.util.Log;
import java.io.PrintWriter;
-import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
/**
* A service that infers the current driving state of the vehicle. It computes the driving state
@@ -53,7 +53,7 @@
private final Context mContext;
private CarPropertyService mPropertyService;
// List of clients listening to driving state events.
- private final List<DrivingStateClient> mDrivingStateClients = new ArrayList<>();
+ private final List<DrivingStateClient> mDrivingStateClients = new CopyOnWriteArrayList<>();
// Array of properties that the service needs to listen to from CarPropertyService for deriving
// the driving state.
private static final int[] REQUIRED_PROPERTIES = {
@@ -154,7 +154,7 @@
}
// If a new client is registering, create a new DrivingStateClient and add it to the list
// of listening clients.
- DrivingStateClient client = findDrivingStateClientLocked(listener);
+ DrivingStateClient client = findDrivingStateClient(listener);
if (client == null) {
client = new DrivingStateClient(listener);
try {
@@ -175,8 +175,7 @@
* @return the {@link DrivingStateClient} if found, null if not
*/
@Nullable
- private DrivingStateClient findDrivingStateClientLocked(
- ICarDrivingStateChangeListener listener) {
+ private DrivingStateClient findDrivingStateClient(ICarDrivingStateChangeListener listener) {
IBinder binder = listener.asBinder();
// Find the listener by comparing the binder object they host.
for (DrivingStateClient client : mDrivingStateClients) {
@@ -200,7 +199,7 @@
throw new IllegalArgumentException("Listener is null");
}
- DrivingStateClient client = findDrivingStateClientLocked(listener);
+ DrivingStateClient client = findDrivingStateClient(listener);
if (client == null) {
Log.e(TAG, "unregisterDrivingStateChangeListener(): listener was not previously "
+ "registered");
@@ -222,7 +221,7 @@
}
@Override
- public synchronized void injectDrivingState(CarDrivingStateEvent event) {
+ public void injectDrivingState(CarDrivingStateEvent event) {
ICarImpl.assertPermission(mContext, Car.PERMISSION_CONTROL_APP_BLOCKING);
for (DrivingStateClient client : mDrivingStateClients) {
@@ -251,9 +250,7 @@
Log.d(TAG, "Binder died " + listenerBinder);
}
listenerBinder.unlinkToDeath(this, 0);
- synchronized (CarDrivingStateService.this) {
- mDrivingStateClients.remove(this);
- }
+ mDrivingStateClients.remove(this);
}
/**
@@ -319,82 +316,80 @@
* the corresponding UX Restrictions and dispatch the events to the registered clients.
*/
private synchronized void handlePropertyEvent(CarPropertyEvent event) {
- switch (event.getEventType()) {
- case CarPropertyEvent.PROPERTY_EVENT_PROPERTY_CHANGE:
- CarPropertyValue value = event.getCarPropertyValue();
- int propId = value.getPropertyId();
- long curTimestamp = value.getTimestamp();
- Log.d(TAG, "Property Changed: propId=" + propId);
- switch (propId) {
- case VehicleProperty.PERF_VEHICLE_SPEED:
- float curSpeed = (Float) value.getValue();
- if (DBG) {
- Log.d(TAG, "Speed: " + curSpeed + "@" + curTimestamp);
- }
- if (curTimestamp > mLastSpeedTimestamp) {
- mLastSpeedTimestamp = curTimestamp;
- mLastSpeed = curSpeed;
- } else if (DBG) {
- Log.d(TAG, "Ignoring speed with older timestamp:" + curTimestamp);
- }
- break;
- case VehicleProperty.GEAR_SELECTION:
- if (mSupportedGears == null) {
- mSupportedGears = getSupportedGears();
- }
- int curGear = (Integer) value.getValue();
- if (DBG) {
- Log.d(TAG, "Gear: " + curGear + "@" + curTimestamp);
- }
- if (curTimestamp > mLastGearTimestamp) {
- mLastGearTimestamp = curTimestamp;
- mLastGear = (Integer) value.getValue();
- } else if (DBG) {
- Log.d(TAG, "Ignoring Gear with older timestamp:" + curTimestamp);
- }
- break;
- case VehicleProperty.PARKING_BRAKE_ON:
- boolean curParkingBrake = (boolean) value.getValue();
- if (DBG) {
- Log.d(TAG, "Parking Brake: " + curParkingBrake + "@" + curTimestamp);
- }
- if (curTimestamp > mLastParkingBrakeTimestamp) {
- mLastParkingBrakeTimestamp = curTimestamp;
- mLastParkingBrakeState = curParkingBrake;
- } else if (DBG) {
- Log.d(TAG, "Ignoring Parking Brake status with an older timestamp:"
- + curTimestamp);
- }
- break;
- default:
- Log.e(TAG, "Received property event for unhandled propId=" + propId);
- break;
- }
-
- int drivingState = inferDrivingStateLocked();
- // Check if the driving state has changed. If it has, update our records and
- // dispatch the new events to the listeners.
+ if (event.getEventType() != CarPropertyEvent.PROPERTY_EVENT_PROPERTY_CHANGE) {
+ return;
+ }
+ CarPropertyValue value = event.getCarPropertyValue();
+ int propId = value.getPropertyId();
+ long curTimestamp = value.getTimestamp();
+ if (DBG) {
+ Log.d(TAG, "Property Changed: propId=" + propId);
+ }
+ switch (propId) {
+ case VehicleProperty.PERF_VEHICLE_SPEED:
+ float curSpeed = (Float) value.getValue();
if (DBG) {
- Log.d(TAG, "Driving state new->old " + drivingState + "->"
- + mCurrentDrivingState.eventValue);
+ Log.d(TAG, "Speed: " + curSpeed + "@" + curTimestamp);
}
- if (drivingState != mCurrentDrivingState.eventValue) {
- addTransitionLog(TAG, mCurrentDrivingState.eventValue, drivingState,
- System.currentTimeMillis());
- // Update if there is a change in state.
- mCurrentDrivingState = createDrivingStateEvent(drivingState);
- if (DBG) {
- Log.d(TAG, "dispatching to " + mDrivingStateClients.size() + " clients");
- }
- for (DrivingStateClient client : mDrivingStateClients) {
- client.dispatchEventToClients(mCurrentDrivingState);
- }
+ if (curTimestamp > mLastSpeedTimestamp) {
+ mLastSpeedTimestamp = curTimestamp;
+ mLastSpeed = curSpeed;
+ } else if (DBG) {
+ Log.d(TAG, "Ignoring speed with older timestamp:" + curTimestamp);
+ }
+ break;
+ case VehicleProperty.GEAR_SELECTION:
+ if (mSupportedGears == null) {
+ mSupportedGears = getSupportedGears();
+ }
+ int curGear = (Integer) value.getValue();
+ if (DBG) {
+ Log.d(TAG, "Gear: " + curGear + "@" + curTimestamp);
+ }
+ if (curTimestamp > mLastGearTimestamp) {
+ mLastGearTimestamp = curTimestamp;
+ mLastGear = (Integer) value.getValue();
+ } else if (DBG) {
+ Log.d(TAG, "Ignoring Gear with older timestamp:" + curTimestamp);
+ }
+ break;
+ case VehicleProperty.PARKING_BRAKE_ON:
+ boolean curParkingBrake = (boolean) value.getValue();
+ if (DBG) {
+ Log.d(TAG, "Parking Brake: " + curParkingBrake + "@" + curTimestamp);
+ }
+ if (curTimestamp > mLastParkingBrakeTimestamp) {
+ mLastParkingBrakeTimestamp = curTimestamp;
+ mLastParkingBrakeState = curParkingBrake;
+ } else if (DBG) {
+ Log.d(TAG, "Ignoring Parking Brake status with an older timestamp:"
+ + curTimestamp);
}
break;
default:
- // Unhandled event
+ Log.e(TAG, "Received property event for unhandled propId=" + propId);
break;
}
+
+ int drivingState = inferDrivingStateLocked();
+ // Check if the driving state has changed. If it has, update our records and
+ // dispatch the new events to the listeners.
+ if (DBG) {
+ Log.d(TAG, "Driving state new->old " + drivingState + "->"
+ + mCurrentDrivingState.eventValue);
+ }
+ if (drivingState != mCurrentDrivingState.eventValue) {
+ addTransitionLog(TAG, mCurrentDrivingState.eventValue, drivingState,
+ System.currentTimeMillis());
+ // Update if there is a change in state.
+ mCurrentDrivingState = createDrivingStateEvent(drivingState);
+ if (DBG) {
+ Log.d(TAG, "dispatching to " + mDrivingStateClients.size() + " clients");
+ }
+ for (DrivingStateClient client : mDrivingStateClients) {
+ client.dispatchEventToClients(mCurrentDrivingState);
+ }
+ }
}
private List<Integer> getSupportedGears() {
diff --git a/service/src/com/android/car/CarProjectionService.java b/service/src/com/android/car/CarProjectionService.java
index 144804e..25edc79 100644
--- a/service/src/com/android/car/CarProjectionService.java
+++ b/service/src/com/android/car/CarProjectionService.java
@@ -67,6 +67,7 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.car.BinderInterfaceContainer.BinderInterface;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.Preconditions;
@@ -80,7 +81,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Random;
-import java.util.concurrent.CopyOnWriteArrayList;
/**
* Car projection service allows to bound to projected app to boost it prioirity.
@@ -128,8 +128,8 @@
@GuardedBy("mLock")
private @Nullable String mCurrentProjectionPackage;
- private final List<ICarProjectionStatusListener> mProjectionStatusListeners =
- new CopyOnWriteArrayList<>();
+ private final BinderInterfaceContainer<ICarProjectionStatusListener>
+ mProjectionStatusListeners = new BinderInterfaceContainer<>();
@GuardedBy("mLock")
private final ProjectionKeyEventHandlerContainer mKeyEventHandlers;
@@ -431,7 +431,7 @@
public void registerProjectionStatusListener(ICarProjectionStatusListener listener)
throws RemoteException {
ICarImpl.assertProjectionStatusPermission(mContext);
- mProjectionStatusListeners.add(listener);
+ mProjectionStatusListeners.addBinder(listener);
// Immediately notify listener with the current status.
notifyProjectionStatusChanged(listener);
@@ -441,7 +441,7 @@
public void unregisterProjectionStatusListener(ICarProjectionStatusListener listener)
throws RemoteException {
ICarImpl.assertProjectionStatusPermission(mContext);
- mProjectionStatusListeners.remove(listener);
+ mProjectionStatusListeners.removeBinder(listener);
}
private ProjectionReceiverClient getOrCreateProjectionReceiverClientLocked(
@@ -488,8 +488,14 @@
}
if (singleListenerToNotify == null) {
- for (ICarProjectionStatusListener listener : mProjectionStatusListeners) {
- listener.onProjectionStatusChanged(currentState, currentPackage, statuses);
+ for (BinderInterface<ICarProjectionStatusListener> listener :
+ mProjectionStatusListeners.getInterfaces()) {
+ try {
+ listener.binderInterface.onProjectionStatusChanged(
+ currentState, currentPackage, statuses);
+ } catch (RemoteException ex) {
+ Log.e(TAG, "Error calling to projection status listener", ex);
+ }
}
} else {
singleListenerToNotify.onProjectionStatusChanged(
@@ -793,6 +799,8 @@
writer.println("Current projection state: " + mCurrentProjectionState);
writer.println("Current projection package: " + mCurrentProjectionPackage);
writer.println("Projection status: " + mProjectionReceiverClients);
+ writer.println("Projection status listeners: "
+ + mProjectionStatusListeners.getInterfaces());
writer.println("WifiScanner: " + mWifiScanner);
}
}
diff --git a/service/src/com/android/car/ICarImpl.java b/service/src/com/android/car/ICarImpl.java
index 0335186..8c5b981 100644
--- a/service/src/com/android/car/ICarImpl.java
+++ b/service/src/com/android/car/ICarImpl.java
@@ -217,6 +217,7 @@
service.init();
}
traceEnd();
+ mSystemInterface.reconfigureSecondaryDisplays();
}
void release() {
diff --git a/service/src/com/android/car/pm/VendorServiceController.java b/service/src/com/android/car/pm/VendorServiceController.java
index 0c8eae3..189370e 100644
--- a/service/src/com/android/car/pm/VendorServiceController.java
+++ b/service/src/com/android/car/pm/VendorServiceController.java
@@ -300,6 +300,9 @@
Intent intent = mVendorServiceInfo.getIntent();
if (mVendorServiceInfo.shouldBeBound()) {
return mContext.bindServiceAsUser(intent, this, BIND_AUTO_CREATE, mHandler, mUser);
+ } else if (mVendorServiceInfo.shouldBeStartedInForeground()) {
+ mStarted = mContext.startForegroundServiceAsUser(intent, mUser) != null;
+ return mStarted;
} else {
mStarted = mContext.startServiceAsUser(intent, mUser) != null;
return mStarted;
diff --git a/service/src/com/android/car/pm/VendorServiceInfo.java b/service/src/com/android/car/pm/VendorServiceInfo.java
index 94a50a0..ba79978 100644
--- a/service/src/com/android/car/pm/VendorServiceInfo.java
+++ b/service/src/com/android/car/pm/VendorServiceInfo.java
@@ -53,17 +53,28 @@
})
@interface Trigger {}
- private final boolean mBind;
+ private static final int BIND = 0;
+ private static final int START = 1;
+ private static final int START_FOREGROUND = 2;
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ BIND,
+ START,
+ START_FOREGROUND,
+ })
+ @interface Bind {}
+
+ private final @Bind int mBind;
private final @UserScope int mUserScope;
private final @Trigger int mTrigger;
private final ComponentName mComponentName;
- private VendorServiceInfo(ComponentName componentName, boolean bind, @UserScope int userScope,
+ private VendorServiceInfo(ComponentName componentName, @Bind int bind, @UserScope int userScope,
@Trigger int trigger) {
mComponentName = componentName;
- mBind = bind;
mUserScope = userScope;
mTrigger = trigger;
+ mBind = bind;
}
boolean isSystemUserService() {
@@ -83,7 +94,11 @@
}
boolean shouldBeBound() {
- return mBind;
+ return mBind == BIND;
+ }
+
+ boolean shouldBeStartedInForeground() {
+ return mBind == START_FOREGROUND;
}
Intent getIntent() {
@@ -102,11 +117,11 @@
final ComponentName cn = ComponentName.unflattenFromString(serviceParamTokens[0]);
if (cn == null) {
- throw new IllegalArgumentException("Failed to parse service info: "
- + rawServiceInfo + ", expected a single '#' symbol");
+ throw new IllegalArgumentException("Failed to unflatten component name from: "
+ + rawServiceInfo);
}
- boolean bind = false;
+ int bind = START;
int userScope = USER_SCOPE_ALL;
int trigger = TRIGGER_UNLOCKED;
@@ -121,7 +136,15 @@
switch (key) {
case KEY_BIND:
- bind = TextUtils.equals("true", val.toLowerCase());
+ if ("bind".equals(val)) {
+ bind = BIND;
+ } else if ("start".equals(val)) {
+ bind = START;
+ } else if ("startForeground".equals(val)) {
+ bind = START_FOREGROUND;
+ } else {
+ throw new IllegalArgumentException("Unexpected bind option: " + val);
+ }
break;
case KEY_USER_SCOPE:
if ("all".equals(val)) {
diff --git a/service/src/com/android/car/systeminterface/DisplayInterface.java b/service/src/com/android/car/systeminterface/DisplayInterface.java
index 885657b..4d8f180 100644
--- a/service/src/com/android/car/systeminterface/DisplayInterface.java
+++ b/service/src/com/android/car/systeminterface/DisplayInterface.java
@@ -31,12 +31,16 @@
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings.SettingNotFoundException;
import android.provider.Settings.System;
import android.util.Log;
import android.view.Display;
+import android.view.DisplayAddress;
+import android.view.IWindowManager;
import com.android.car.CarLog;
import com.android.car.CarPowerManagementService;
@@ -59,9 +63,15 @@
void refreshDisplayBrightness();
/**
+ * Reconfigure all secondary displays due to b/131909551
+ */
+ void reconfigureSecondaryDisplays();
+ /**
* Default implementation of display operations
*/
class DefaultImpl implements DisplayInterface, OnUsersUpdateListener {
+ static final String TAG = DisplayInterface.class.getSimpleName();
+
private final ActivityManager mActivityManager;
private final ContentResolver mContentResolver;
private final Context mContext;
@@ -211,5 +221,32 @@
mLastBrightnessLevel = -1;
refreshDisplayBrightness();
}
+
+ @Override
+ public void reconfigureSecondaryDisplays() {
+ IWindowManager wm = IWindowManager.Stub
+ .asInterface(ServiceManager.getService(Context.WINDOW_SERVICE));
+ if (wm == null) {
+ Log.e(TAG, "reconfigureSecondaryDisplays IWindowManager not available");
+ return;
+ }
+ Display[] displays = mDisplayManager.getDisplays();
+ for (Display display : displays) {
+ if (display.getDisplayId() == Display.DEFAULT_DISPLAY) { // skip main
+ continue;
+ }
+ // Only use physical secondary displays
+ if (display.getAddress() instanceof DisplayAddress.Physical) {
+ int displayId = display.getDisplayId();
+ try {
+ // Do not change the mode but this triggers reconfiguring.
+ int windowingMode = wm.getWindowingMode(displayId);
+ wm.setWindowingMode(displayId, windowingMode);
+ } catch (RemoteException e) {
+ Log.e(CarLog.TAG_SERVICE, "cannot access IWindowManager", e);
+ }
+ }
+ }
+ }
}
}
diff --git a/service/src/com/android/car/systeminterface/SystemInterface.java b/service/src/com/android/car/systeminterface/SystemInterface.java
index a617a5a..8e7f863 100644
--- a/service/src/com/android/car/systeminterface/SystemInterface.java
+++ b/service/src/com/android/car/systeminterface/SystemInterface.java
@@ -123,6 +123,11 @@
}
@Override
+ public void reconfigureSecondaryDisplays() {
+ mDisplayInterface.reconfigureSecondaryDisplays();
+ }
+
+ @Override
public void startDisplayStateMonitoring(CarPowerManagementService service) {
mDisplayInterface.startDisplayStateMonitoring(service);
}
diff --git a/service/src/com/android/car/trust/CarTrustAgentBleManager.java b/service/src/com/android/car/trust/CarTrustAgentBleManager.java
index 718bd22..022477e 100644
--- a/service/src/com/android/car/trust/CarTrustAgentBleManager.java
+++ b/service/src/com/android/car/trust/CarTrustAgentBleManager.java
@@ -85,7 +85,7 @@
private CarTrustAgentUnlockService mCarTrustAgentUnlockService;
private String mOriginalBluetoothName;
private byte[] mUniqueId;
- private String mRandomName;
+ private String mEnrollmentDeviceName;
private int mMtuSize = 20;
// Enrollment Service and Characteristic UUIDs
@@ -247,15 +247,15 @@
}
@Nullable
- private String getRandomName() {
- if (mRandomName != null) {
- return mRandomName;
+ private String getEnrollmentDeviceName() {
+ if (mEnrollmentDeviceName != null) {
+ return mEnrollmentDeviceName;
}
if (getTrustedDeviceService() != null) {
- mRandomName = getTrustedDeviceService().getRandomName();
+ mEnrollmentDeviceName = getTrustedDeviceService().getEnrollmentDeviceName();
}
- return mRandomName;
+ return mEnrollmentDeviceName;
}
private void resolveBLEVersion(BluetoothDevice device, byte[] value,
@@ -374,17 +374,17 @@
void startEnrollmentAdvertising() {
mCurrentTrustedDeviceOperation = TRUSTED_DEVICE_OPERATION_ENROLLMENT;
// Replace name to ensure it is small enough to be advertised
- BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
- String name = getRandomName();
- if (mOriginalBluetoothName == null) {
- mOriginalBluetoothName = adapter.getName();
- }
+ String name = getEnrollmentDeviceName();
if (name != null) {
+ BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+ if (mOriginalBluetoothName == null) {
+ mOriginalBluetoothName = adapter.getName();
+ }
adapter.setName(name);
- }
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "Changing bluetooth adapter name from "
- + mOriginalBluetoothName + " to " + name);
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Changing bluetooth adapter name from "
+ + mOriginalBluetoothName + " to " + name);
+ }
}
startAdvertising(mEnrollmentGattService,
new AdvertiseData.Builder()
diff --git a/service/src/com/android/car/trust/CarTrustedDeviceService.java b/service/src/com/android/car/trust/CarTrustedDeviceService.java
index cc79eff..d7e3321 100644
--- a/service/src/com/android/car/trust/CarTrustedDeviceService.java
+++ b/service/src/com/android/car/trust/CarTrustedDeviceService.java
@@ -24,6 +24,7 @@
import android.content.SharedPreferences;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyProperties;
+import android.sysprop.CarProperties;
import android.util.Base64;
import android.util.Log;
@@ -71,20 +72,31 @@
private static final String KEYSTORE_PROVIDER = "AndroidKeyStore";
private static final String IV_SPEC_SEPARATOR = ";";
+ // Device name length is limited by available bytes in BLE advertisement data packet.
+ //
+ // BLE advertisement limits data packet length to 31
+ // Currently we send:
+ // - 18 bytes for 16 chars UUID: 16 bytes + 2 bytes for header;
+ // - 3 bytes for advertisement being connectable;
+ // which leaves 10 bytes.
+ // Subtracting 2 bytes used by header, we have 8 bytes for device name.
+ private static final int DEVICE_NAME_LENGTH_LIMIT = 8;
+ // Limit prefix to 4 chars and fill the rest with randomly generated name. Use random name
+ // to improve uniqueness in paired device name.
+ private static final int DEVICE_NAME_PREFIX_LIMIT = 4;
+
// The length of the authentication tag for a cipher in GCM mode. The GCM specification states
// that this length can only have the values {128, 120, 112, 104, 96}. Using the highest
// possible value.
private static final int GCM_AUTHENTICATION_TAG_LENGTH = 128;
- private static final int RANDOM_NAME_LENGTH = 6;
-
private final Context mContext;
private CarTrustAgentEnrollmentService mCarTrustAgentEnrollmentService;
private CarTrustAgentUnlockService mCarTrustAgentUnlockService;
private CarTrustAgentBleManager mCarTrustAgentBleManager;
private SharedPreferences mTrustAgentTokenPreferences;
private UUID mUniqueId;
- private String mRandomName;
+ private String mEnrollmentDeviceName;
public CarTrustedDeviceService(Context context) {
mContext = context;
@@ -286,17 +298,22 @@
}
/**
- * Get generated random name for enrollment
+ * Returns the name that should be used for the device during enrollment of a trusted device.
*
- * @return a random name for enrollment
+ * <p>The returned name will be a combination of a prefix sysprop and randomized digits.
*/
- String getRandomName() {
- if (mRandomName == null) {
- // Create random RANDOM_NAME_LENGTH digit number for name
- mRandomName = Utils.generateRandomNumberString(RANDOM_NAME_LENGTH);
- }
+ String getEnrollmentDeviceName() {
+ if (mEnrollmentDeviceName == null) {
+ String deviceNamePrefix =
+ CarProperties.trusted_device_device_name_prefix().orElse("");
+ deviceNamePrefix = deviceNamePrefix.substring(
+ 0, Math.min(deviceNamePrefix.length(), DEVICE_NAME_PREFIX_LIMIT));
- return mRandomName;
+ int randomNameLength = DEVICE_NAME_LENGTH_LIMIT - deviceNamePrefix.length();
+ String randomName = Utils.generateRandomNumberString(randomNameLength);
+ mEnrollmentDeviceName = deviceNamePrefix + randomName;
+ }
+ return mEnrollmentDeviceName;
}
/**
diff --git a/tests/BugReportApp/src/com/google/android/car/bugreport/BugReportActivity.java b/tests/BugReportApp/src/com/google/android/car/bugreport/BugReportActivity.java
index 1a41925..c0b9da3 100644
--- a/tests/BugReportApp/src/com/google/android/car/bugreport/BugReportActivity.java
+++ b/tests/BugReportApp/src/com/google/android/car/bugreport/BugReportActivity.java
@@ -280,6 +280,8 @@
+ Arrays.toString(permissions);
Log.w(TAG, text);
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
+ BugStorageUtils.setBugReportStatus(this, mMetaBugReport,
+ Status.STATUS_USER_CANCELLED, text);
finish();
}
diff --git a/tests/CarCtsDummyLauncher/res/values-af/strings.xml b/tests/CarCtsDummyLauncher/res/values-af/strings.xml
deleted file mode 100644
index ed08816..0000000
--- a/tests/CarCtsDummyLauncher/res/values-af/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Deïnstalleer dit wanneer CTS klaar is\n\n Om dit te deïnstalleer, kan jy Instellings-program of die volgende bevel gebruik:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Skynlanseerder vir CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-am/strings.xml b/tests/CarCtsDummyLauncher/res/values-am/strings.xml
deleted file mode 100644
index a25efc4..0000000
--- a/tests/CarCtsDummyLauncher/res/values-am/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS ከጨረሰ በኋላ ይህን ይጫኑት\n\n ለማራገፍ የቅንብር መተግበሪያውን መጠቀም ወይም የሚከተለውን ትዕዛዝ ማሄድ ይችላሉ፦\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"ለCTS የውሸት ማስጀመሪያ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ar/strings.xml b/tests/CarCtsDummyLauncher/res/values-ar/strings.xml
deleted file mode 100644
index dd234d9..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ar/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"يمكنك إلغاء تثبيت هذا بعد اكتمال CTS\n\n لإلغاء تثبيته، يمكنك استخدام تطبيق Setting أو تنفيذ الأمر التالي:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-as/strings.xml b/tests/CarCtsDummyLauncher/res/values-as/strings.xml
deleted file mode 100644
index e4a1aec..0000000
--- a/tests/CarCtsDummyLauncher/res/values-as/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS সমাপ্ত হোৱাৰ পাছত এইটো আনইনষ্টল কৰক\n\n আনইনষ্টল কৰিবলৈ আপুনি Setting এপ্টো ব্যৱহাৰ কৰিব পাৰে অথবা তলৰ কামাণ্ডটো চলাব পাৰে:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTSৰ বাবে ডামী লঞ্চাৰ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-az/strings.xml b/tests/CarCtsDummyLauncher/res/values-az/strings.xml
deleted file mode 100644
index 882890f..0000000
--- a/tests/CarCtsDummyLauncher/res/values-az/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS bitdikdən sonra bunun quraşdırılmasını ləğv edin\n\n Quraşdırılmanı ləğv etmək üçün Ayarlama tətbiqini istifadə edə və ya bu əmri tətbiq edə bilərsiniz:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS üçün Şablon Başladıcı"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-b+sr+Latn/strings.xml b/tests/CarCtsDummyLauncher/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index 854f4d4..0000000
--- a/tests/CarCtsDummyLauncher/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Deinstalirajte ovo kada se CTS završi\n\n Da biste deinstalirali, možete da koristite aplikaciju Podešavanja ili pokrenete sledeću komandu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Primer pokretača za CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-be/strings.xml b/tests/CarCtsDummyLauncher/res/values-be/strings.xml
deleted file mode 100644
index 9e15bb2..0000000
--- a/tests/CarCtsDummyLauncher/res/values-be/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Выдаліце гэта пасля завяршэння CTS\n\n Каб выдаліць, можна скарыстаць праграму \"Налады\" ці запусціць наступную каманду:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Праграма тэставага запуску для CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-bg/strings.xml b/tests/CarCtsDummyLauncher/res/values-bg/strings.xml
deleted file mode 100644
index 339f884..0000000
--- a/tests/CarCtsDummyLauncher/res/values-bg/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Деинсталирайте след завършване на CTS\n\n За целта можете да използвате приложението „Настройки“ или да изпълните следната команда:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Фиктивен стартов панел за CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-bn/strings.xml b/tests/CarCtsDummyLauncher/res/values-bn/strings.xml
deleted file mode 100644
index e2a11bd..0000000
--- a/tests/CarCtsDummyLauncher/res/values-bn/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"সিটিএস শেষ হওয়ার পরে এটি আনইনস্টল করুন\n\nআনইনস্টল করতে সেটিং অ্যাপ ব্যবহার করুন অথবা এই কমান্ড ব্যবহার করুন:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"সিটিএসের জন্য ডামি লঞ্চার"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-bs/strings.xml b/tests/CarCtsDummyLauncher/res/values-bs/strings.xml
deleted file mode 100644
index 2ef3845..0000000
--- a/tests/CarCtsDummyLauncher/res/values-bs/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Deinstalirajte ovo nakon što CTS završi\n\n Za deinstaliranje, možete koristiti aplikaciju Postavke ili pokrenuti sljedeću komandu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Testni pokretač za CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ca/strings.xml b/tests/CarCtsDummyLauncher/res/values-ca/strings.xml
deleted file mode 100644
index 44789d6..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ca/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstal·la quan finalitzi el CTS\n\n Per desinstal·lar, pots utilitzar l\'aplicació Configuració o executar l\'ordre següent:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher per a CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-cs/strings.xml b/tests/CarCtsDummyLauncher/res/values-cs/strings.xml
deleted file mode 100644
index 08ef387..0000000
--- a/tests/CarCtsDummyLauncher/res/values-cs/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Po skončení testu CTS položku odinstalujte\n\n Odinstalovat ji lze pomocí aplikace Nastavení nebo následujícího příkazu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Zkušební spouštěč pro testy CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-da/strings.xml b/tests/CarCtsDummyLauncher/res/values-da/strings.xml
deleted file mode 100644
index cc485df..0000000
--- a/tests/CarCtsDummyLauncher/res/values-da/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Afinstaller, når CTS er afsluttet \n\n Du kan afinstallere i appen Indstillinger eller ved at køre følgende kommando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Teststarter til CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-de/strings.xml b/tests/CarCtsDummyLauncher/res/values-de/strings.xml
deleted file mode 100644
index bfc68f0..0000000
--- a/tests/CarCtsDummyLauncher/res/values-de/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Deinstallieren, nachdem die CTS-Tests abgeschlossen sind\n\n Du kannst dies über die App \"Einstellungen\" deinstallieren oder den folgenden Befehl ausführen:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher für CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-el/strings.xml b/tests/CarCtsDummyLauncher/res/values-el/strings.xml
deleted file mode 100644
index ae6482e..0000000
--- a/tests/CarCtsDummyLauncher/res/values-el/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Απεγκατάσταση αυτού του στοιχείου μετά την ολοκλήρωση του CTS\n\n Για να το απεγκαταστήσετε, μπορείτε να χρησιμοποιήσετε την εφαρμογή Ρυθμίσεις ή να εκτελέσετε την ακόλουθη εντολή:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Εικονική εφαρμογή εκκίνησης για CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-en-rAU/strings.xml b/tests/CarCtsDummyLauncher/res/values-en-rAU/strings.xml
deleted file mode 100644
index 623d10a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishes\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-en-rCA/strings.xml b/tests/CarCtsDummyLauncher/res/values-en-rCA/strings.xml
deleted file mode 100644
index 623d10a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishes\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-en-rGB/strings.xml b/tests/CarCtsDummyLauncher/res/values-en-rGB/strings.xml
deleted file mode 100644
index 623d10a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishes\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-en-rIN/strings.xml b/tests/CarCtsDummyLauncher/res/values-en-rIN/strings.xml
deleted file mode 100644
index 623d10a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishes\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-en-rXC/strings.xml b/tests/CarCtsDummyLauncher/res/values-en-rXC/strings.xml
deleted file mode 100644
index a35d467..0000000
--- a/tests/CarCtsDummyLauncher/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishs\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-es-rUS/strings.xml b/tests/CarCtsDummyLauncher/res/values-es-rUS/strings.xml
deleted file mode 100644
index ab63dea..0000000
--- a/tests/CarCtsDummyLauncher/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstalar cuando finalice CTS\n\n Para desinstalar, puedes usar la app de Configuración o ejecutar el siguiente comando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Launcher ficticio para CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-es/strings.xml b/tests/CarCtsDummyLauncher/res/values-es/strings.xml
deleted file mode 100644
index a7623bc..0000000
--- a/tests/CarCtsDummyLauncher/res/values-es/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstala este launcher una vez que CTS termine.\n\n Para ello, usa la aplicación Ajustes o ejecuta el siguiente comando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher para CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-et/strings.xml b/tests/CarCtsDummyLauncher/res/values-et/strings.xml
deleted file mode 100644
index 1a37e66..0000000
--- a/tests/CarCtsDummyLauncher/res/values-et/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstallige see pärast CTS-i lõppu\n\n Desinstallimiseks võite kasutada rakendust Seaded või käitada järgmise käsu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS-i fiktiivne käivitusprogramm"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-eu/strings.xml b/tests/CarCtsDummyLauncher/res/values-eu/strings.xml
deleted file mode 100644
index 66f5528..0000000
--- a/tests/CarCtsDummyLauncher/res/values-eu/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTSk amaitzen duenean, desinstalatu hau\n\n Desinstalatzeko, Ezarpenak aplikazioa erabil dezakezu, edo agindu hau exekutatu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTSrako adibide gisako abiarazlea"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-fa/strings.xml b/tests/CarCtsDummyLauncher/res/values-fa/strings.xml
deleted file mode 100644
index 1d4855a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-fa/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"بعد از پایان CTS، این مورد را حذف نصب کنید\n\n برای حذف نصب، میتوانید از برنامه «تنظیمات» استفاده کنید و فرمان زیر را اجرا کنید:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"راهانداز ساختگی برای CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-fi/strings.xml b/tests/CarCtsDummyLauncher/res/values-fi/strings.xml
deleted file mode 100644
index c28091b..0000000
--- a/tests/CarCtsDummyLauncher/res/values-fi/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Poista tämä, kun CTS on tehty\n\n Voit poistaa tämän asetussovelluksessa tai seuraavalla komennolla:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS:n näköiskäynnistin"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-fr-rCA/strings.xml b/tests/CarCtsDummyLauncher/res/values-fr-rCA/strings.xml
deleted file mode 100644
index b8b162a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Désinstallez le lanceur factice à l\'achèvement de la suite de tests de compatibilité.\n\n Pour le désinstaller, vous pouvez utiliser l\'application Paramètres ou exécuter la commande suivantes :\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Lanceur factice pour suite de tests de compatibilité"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-fr/strings.xml b/tests/CarCtsDummyLauncher/res/values-fr/strings.xml
deleted file mode 100644
index 13017f0..0000000
--- a/tests/CarCtsDummyLauncher/res/values-fr/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Désinstaller à la fin de CTS\n\n Pour désinstaller, utilisez l\'application Paramètres ou exécutez la commande suivante :\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Lanceur factice pour CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-gl/strings.xml b/tests/CarCtsDummyLauncher/res/values-gl/strings.xml
deleted file mode 100644
index 3e1f39b..0000000
--- a/tests/CarCtsDummyLauncher/res/values-gl/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Efectúa a desinstalación despois de que CTS remate\n\n Para facelo podes usar a aplicación Configuración ou ben executar o seguinte comando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Menú de aplicacións de proba para CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-gu/strings.xml b/tests/CarCtsDummyLauncher/res/values-gu/strings.xml
deleted file mode 100644
index b86e692..0000000
--- a/tests/CarCtsDummyLauncher/res/values-gu/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS સમાપ્ત થાય તે પછી આને અનઇન્સ્ટૉલ કરો\n\n અનઇન્સ્ટૉલ કરવા માટે, તમે સેટિંગ ઍપનો ઉપયોગ કરી શકો છો અથવા નીચે આપેલો આદેશ ચલાવી શકો છો:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS માટે ડમી લૉન્ચર"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-hi/strings.xml b/tests/CarCtsDummyLauncher/res/values-hi/strings.xml
deleted file mode 100644
index 7ef08e7..0000000
--- a/tests/CarCtsDummyLauncher/res/values-hi/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstall this after CTS finishs\n\n To uninstall, you can use Setting app or run the following command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-hr/strings.xml b/tests/CarCtsDummyLauncher/res/values-hr/strings.xml
deleted file mode 100644
index 4ab9f2c..0000000
--- a/tests/CarCtsDummyLauncher/res/values-hr/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Deinstalirajte ovo nakon što CTS završi\n\n Za deinstalaciju možete upotrijebiti aplikaciju Postavke ili izvršiti naredbu \n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Model pokretača za CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-hu/strings.xml b/tests/CarCtsDummyLauncher/res/values-hu/strings.xml
deleted file mode 100644
index a047d40..0000000
--- a/tests/CarCtsDummyLauncher/res/values-hu/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Távolítsa el ezt, miután a CTS lefutott\n\n Az eltávolításhoz használhatja a Beállítások alkalmazást, vagy futtathatja a következő parancsot:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy indító CTS-hez"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-hy/strings.xml b/tests/CarCtsDummyLauncher/res/values-hy/strings.xml
deleted file mode 100644
index e016afb..0000000
--- a/tests/CarCtsDummyLauncher/res/values-hy/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Ապատեղադրեք սա, երբ CTS-ն ավարտի գործողությունը\n\nԱպատեղադրելու համար դուք կարող եք օգտագործել «Կարգավորումներ» հավելվածը կամ տալ հետևյալ հրահանգը՝\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS-ի գործարկիչի օրինակ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-in/strings.xml b/tests/CarCtsDummyLauncher/res/values-in/strings.xml
deleted file mode 100644
index f5d64ef..0000000
--- a/tests/CarCtsDummyLauncher/res/values-in/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Uninstal ini setelah CTS selesai\n\n Untuk meng-uninstal, Anda dapat menggunakan aplikasi Setelan atau menjalankan command berikut:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Peluncur Dummy untuk CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-is/strings.xml b/tests/CarCtsDummyLauncher/res/values-is/strings.xml
deleted file mode 100644
index 3c727aa..0000000
--- a/tests/CarCtsDummyLauncher/res/values-is/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Fjarlægja þetta þegar CTS lýkur\n\n Til að fjarlægja geturðu notað stillingarforritið eða keyrt eftirfarandi skipun:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Staðgengilsræsiforrit fyrir CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-it/strings.xml b/tests/CarCtsDummyLauncher/res/values-it/strings.xml
deleted file mode 100644
index 3a59445..0000000
--- a/tests/CarCtsDummyLauncher/res/values-it/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Disinstalla al termine di CTS.\n\n Per la disinstallazione, puoi usare l\'app Impostazioni o eseguire il comando seguente:\n adb uninstall com.android.car.dummylauncher."</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-iw/strings.xml b/tests/CarCtsDummyLauncher/res/values-iw/strings.xml
deleted file mode 100644
index bed29ba..0000000
--- a/tests/CarCtsDummyLauncher/res/values-iw/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"יש להסיר את ההתקנה הזו לאחר סיום ה-CTS\n\n כדי להסיר את ההתקנה, אפשר להשתמש באפליקציית ההגדרות או להריץ את הפקודה הבאה:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"מרכז אפליקציות מדומה ל-CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ja/strings.xml b/tests/CarCtsDummyLauncher/res/values-ja/strings.xml
deleted file mode 100644
index c70d88b..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ja/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS の終了後にこのランチャーをアンインストールしてください\n\nアンインストールするには、設定アプリを使用するか、以下のコマンドを実行してください。\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS のダミー ランチャー"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ka/strings.xml b/tests/CarCtsDummyLauncher/res/values-ka/strings.xml
deleted file mode 100644
index e6005e0..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ka/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS-ის დასრულების შემდეგ მოხდეს ამის დეინსტალაცია\n\n დეინსტალაციისთვის შეგიძლიათ გამოიყენოთ პარამეტრების აპი ან გაუშვათ შემდეგი ბრძანება:\n adb დეინსტალაცია com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"ფიქტიური გამშვები CTS-ისთვის"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-kk/strings.xml b/tests/CarCtsDummyLauncher/res/values-kk/strings.xml
deleted file mode 100644
index ab44d32..0000000
--- a/tests/CarCtsDummyLauncher/res/values-kk/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS біткен соң, мұны жойып тастаңыз.\n\n Жою үшін \"Параметр\" қолданбасын пайдалана аласыз немесе мына пәрменді іске қосыңыз:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS-ке арналған жалған Launcher"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-km/strings.xml b/tests/CarCtsDummyLauncher/res/values-km/strings.xml
deleted file mode 100644
index 47522bf..0000000
--- a/tests/CarCtsDummyLauncher/res/values-km/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"លុបវា បន្ទាប់ពី CTS បញ្ចប់ \n\n ដើម្បីលុប អ្នកអាចប្រើកម្មវិធីការកំណត់ ឬដំណើរការការបញ្ជាខាងក្រោម៖\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher សម្រាប់ CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-kn/strings.xml b/tests/CarCtsDummyLauncher/res/values-kn/strings.xml
deleted file mode 100644
index 88dbce0..0000000
--- a/tests/CarCtsDummyLauncher/res/values-kn/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS ಪೂರ್ಣಗೊಂಡ ನಂತರ ಇದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ\n\n ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು, ನೀವು ಸೆಟ್ಟಿಂಗ್ ಆ್ಯಪ್ ಬಳಸಬಹುದು ಅಥವಾ ಈ ಕಮಾಂಡ್ ಅನ್ನು ರನ್ ಮಾಡಬಹುದು:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS ಗಾಗಿ ನಕಲಿ ಲಾಂಚರ್"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ko/strings.xml b/tests/CarCtsDummyLauncher/res/values-ko/strings.xml
deleted file mode 100644
index ff5e7bf..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ko/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS 완료 후 제거\n\n 제거하려면 설정 앱을 사용하거나 다음 명령어를 실행하세요.\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS용 더미 런처"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ky/strings.xml b/tests/CarCtsDummyLauncher/res/values-ky/strings.xml
deleted file mode 100644
index ec18815..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ky/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Муну CTS аяктагандан кийин чыгарып салыңыз\n\n Чыгарып салуу үчүн Жөндөө колдонмосун пайдаланыңыз же төмөнкү буйрукту аткарыңыз:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS үчүн Dummy Launcher"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-lo/strings.xml b/tests/CarCtsDummyLauncher/res/values-lo/strings.xml
deleted file mode 100644
index 9b95d4f..0000000
--- a/tests/CarCtsDummyLauncher/res/values-lo/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"ຖອນການຕິດຕັ້ງສິ່ງນີ້ຫຼັງຈາກ CTS ສຳເລັດ\n\n ເພື່ອຖອນການຕິດຕັ້ງ, ທ່ານສາມາດໃຊ້ແອັບການຕັ້ງຄ່າ ຫຼື ເປີດຄຳສັ່ງຕໍ່ໄປນີ້:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"ຕົວເປີດໃຊ້ຈຳລອງສຳລັບ CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-lt/strings.xml b/tests/CarCtsDummyLauncher/res/values-lt/strings.xml
deleted file mode 100644
index 0f9d084..0000000
--- a/tests/CarCtsDummyLauncher/res/values-lt/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Pašalinkite ją, kai bus baigtas CTS testas\n\n Norėdami pašalinti, galite naudoti Nustatymų programą arba vykdyti nurodytą komandą:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS skirta netikra paleidimo priemonė"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-lv/strings.xml b/tests/CarCtsDummyLauncher/res/values-lv/strings.xml
deleted file mode 100644
index fe31198..0000000
--- a/tests/CarCtsDummyLauncher/res/values-lv/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Atinstalējiet palaišanas programmu, kad ir pabeigts CTS tests\n\n Lai to atinstalētu, varat izmantot lietotni Iestatījumi vai izpildīt tālāk norādīto komandu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Neīsta CTS palaišanas programma"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-mk/strings.xml b/tests/CarCtsDummyLauncher/res/values-mk/strings.xml
deleted file mode 100644
index c04d67b..0000000
--- a/tests/CarCtsDummyLauncher/res/values-mk/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Деинсталирајте го ова откако CTS ќе заврши\n\n За деинсталирање, може да ја користите апликацијата Setting или да ја извршите следнава наредба:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Лажен стартер за CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ml/strings.xml b/tests/CarCtsDummyLauncher/res/values-ml/strings.xml
deleted file mode 100644
index 53ffaae..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ml/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS കഴിഞ്ഞതിനുശേഷം ഇത് അൺഇൻസ്റ്റാൾ ചെയ്യുക\n\n അൺഇൻസ്റ്റാൾ ചെയ്യാൻ, ക്രമീകരണ ആപ്പ് ഉപയോഗിക്കുകയോ ഇനിപ്പറയുന്ന കമാൻഡ് പിന്തുടരുകയോ ചെയ്യുക:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS-നുള്ള ഡമ്മി ലോഞ്ചർ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-mn/strings.xml b/tests/CarCtsDummyLauncher/res/values-mn/strings.xml
deleted file mode 100644
index 605843a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-mn/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Үүнийг CTS-г дууссаны дараа устгана уу\n\n Устгахын тулд та Тохиргооны аппыг ашиглах эсвэл дараах тушаалыг ажиллуулж болно:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS-н хуурмаг хувьсагчийн эхлүүлэгч"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-mr/strings.xml b/tests/CarCtsDummyLauncher/res/values-mr/strings.xml
deleted file mode 100644
index d86f2fc..0000000
--- a/tests/CarCtsDummyLauncher/res/values-mr/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS पूर्ण झाल्यावर हे अनइंस्टॉल करा\n\n अनइंस्टॉल करण्यासाठी, तुम्ही सेटिंग अॅप वापरू शकता किंवा खालील कमांड रन करू शकता:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS साठी बनावटी लाँचर"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ms/strings.xml b/tests/CarCtsDummyLauncher/res/values-ms/strings.xml
deleted file mode 100644
index b6e96d6..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ms/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Nyahpasang item ini setelah CTS selesai\n\n Untuk menyahpasang, anda boleh menggunakan apl Tetapan atau menjalankan perintah berikut:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Pelancar Semu untuk CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-my/strings.xml b/tests/CarCtsDummyLauncher/res/values-my/strings.xml
deleted file mode 100644
index a09826a..0000000
--- a/tests/CarCtsDummyLauncher/res/values-my/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS ပြီးဆုံးပါက ဤအရာကို ပရိုဂရမ်ဖယ်ရှားပါ\n\n ပရိုဂရမ်ဖယ်ရှားရန်အတွက် \'ဆက်တင်\' အက်ပ်ကို အသုံးပြုပါ (သို့) အောက်ပါ ကွန်မန်းကို လုပ်ဆောင်ပါ-\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS အတွက် နမူနာ Launcher"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-nb/strings.xml b/tests/CarCtsDummyLauncher/res/values-nb/strings.xml
deleted file mode 100644
index 5754eac..0000000
--- a/tests/CarCtsDummyLauncher/res/values-nb/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Avinstaller dette etter at CTS er fullført\n\n For å avinstallere kan du bruke Innstillinger-appen eller kjøre denne kommandoen:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy-appoversikt for CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-nl/strings.xml b/tests/CarCtsDummyLauncher/res/values-nl/strings.xml
deleted file mode 100644
index b059708..0000000
--- a/tests/CarCtsDummyLauncher/res/values-nl/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Verwijder dit nadat CTS is voltooid\n\n Je kunt dit verwijderen via de app Instellingen of met de volgende opdracht:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy-launcher voor CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-or/strings.xml b/tests/CarCtsDummyLauncher/res/values-or/strings.xml
deleted file mode 100644
index 46b51b4..0000000
--- a/tests/CarCtsDummyLauncher/res/values-or/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପରେ ଏହାକୁ ଅନ୍ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ \n\n ଅନ୍ଇନ୍ଷ୍ଟଲ୍ କରିବା ପାଇଁ, ଆପଣ ସେଟିଂ ଆପ୍ ବ୍ୟବହାର କରିପାରିବେ ବା ନିମ୍ନୋକ୍ତ କମାଣ୍ଡ ଚଲାନ୍ତୁ:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS ପାଇଁ ଲଞ୍ଚର୍ର ନକଲ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-pa/strings.xml b/tests/CarCtsDummyLauncher/res/values-pa/strings.xml
deleted file mode 100644
index 35f0d6d..0000000
--- a/tests/CarCtsDummyLauncher/res/values-pa/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS ਪੂਰਾ ਹੋਮ ਤੋਂ ਬਾਅਦ ਇਸਨੂੰ ਅਣਸਥਾਪਤ ਕਰੋ\n\n ਅਣਸਥਾਪਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਸੈਟਿੰਗ ਐਪ ਵਰਤ ਸਕਦੇ ਹੋ ਜਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਆਦੇਸ਼ ਚਲਾ ਸਕਦੇ ਹੋ:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS ਲਈ ਕਲਪਿਤ ਲਾਂਚਰ"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-pl/strings.xml b/tests/CarCtsDummyLauncher/res/values-pl/strings.xml
deleted file mode 100644
index 1dc7789..0000000
--- a/tests/CarCtsDummyLauncher/res/values-pl/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Odinstaluj ten element po zakończeniu działania CTS\n\n Aby to zrobić, możesz użyć aplikacji Ustawienia lub uruchomić polecenie:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Testowy program uruchamiający dla CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-pt-rPT/strings.xml b/tests/CarCtsDummyLauncher/res/values-pt-rPT/strings.xml
deleted file mode 100644
index fa96ef1..0000000
--- a/tests/CarCtsDummyLauncher/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstale após a conclusão do CTS\n\n Para desinstalar, pode utilizar a aplicação Definições ou executar o seguinte comando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher para CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-pt/strings.xml b/tests/CarCtsDummyLauncher/res/values-pt/strings.xml
deleted file mode 100644
index 0f5060b..0000000
--- a/tests/CarCtsDummyLauncher/res/values-pt/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Desinstale depois que o CTS terminar\n\n Para desinstalar, use o app Config. ou execute o seguinte comando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Tela de início de teste do CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ro/strings.xml b/tests/CarCtsDummyLauncher/res/values-ro/strings.xml
deleted file mode 100644
index 7edcdf0..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ro/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Dezinstalați după finalizarea CTS\n\n Pentru a dezinstala, puteți să folosiți aplicația Setare sau să rulați următoarea comandă:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Lansator fals pentru CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ru/strings.xml b/tests/CarCtsDummyLauncher/res/values-ru/strings.xml
deleted file mode 100644
index 40d73af..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ru/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Удалите его после завершения CTS.\n\nЭто можно сделать в приложении \"Настройки\" или с помощью следующей команды:\nadb uninstall com.android.car.dummylauncher."</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher для CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-si/strings.xml b/tests/CarCtsDummyLauncher/res/values-si/strings.xml
deleted file mode 100644
index 10a76e9..0000000
--- a/tests/CarCtsDummyLauncher/res/values-si/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS අවසන් වූ පසුව මෙය අස්ථාපනය කරන්න\n\n අස්ථාපනය කිරීමට, ඔබට සැකසීම් යෙදුම භාවිතයට හෝ පහත විධානය ධාවනය කිරීමට හැකිය:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS සඳහා ව්යාජ දියත්කරණය"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sk/strings.xml b/tests/CarCtsDummyLauncher/res/values-sk/strings.xml
deleted file mode 100644
index 318fa54..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sk/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Po dokončení CTS túto položku odinštalujte.\n\n Môžete to urobiť pomocou aplikácie Nastavenia alebo spustením nasledujúceho príkazu:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher pre CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sl/strings.xml b/tests/CarCtsDummyLauncher/res/values-sl/strings.xml
deleted file mode 100644
index 1be8ce8..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sl/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Odmestite to, ko se CTS dokonča.\n\n Če želite odmestiti, lahko uporabite aplikacijo Nastavitve ali zaženete ta ukaz:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Poskusni zaganjalnik za CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sq/strings.xml b/tests/CarCtsDummyLauncher/res/values-sq/strings.xml
deleted file mode 100644
index f7a6fa3..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sq/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Çinstaloje këtë pasi CTS të përfundojë\n\n Për ta instaluar, mund të përdorësh aplikacionin \"Cilësimet\" ose ekzekuto komandën e mëposhtme:\n dhe çinstalo com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Nisës fiktiv për CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sr/strings.xml b/tests/CarCtsDummyLauncher/res/values-sr/strings.xml
deleted file mode 100644
index b7de527..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sr/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Деинсталирајте ово када се CTS заврши\n\n Да бисте деинсталирали, можете да користите апликацију Подешавања или покренете следећу команду:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Пример покретача за CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sv/strings.xml b/tests/CarCtsDummyLauncher/res/values-sv/strings.xml
deleted file mode 100644
index b66e845..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sv/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Avinstallera detta när CTS-körningen är klar\n\n Du kan avinstallera med inställningsappen eller använda följande kommando:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Översiktsplatshållare för CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-sw/strings.xml b/tests/CarCtsDummyLauncher/res/values-sw/strings.xml
deleted file mode 100644
index d2f6a90..0000000
--- a/tests/CarCtsDummyLauncher/res/values-sw/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Ondoa hii CTS ikishamaliza\n\n Ili uondoe, unaweza kutumia programu ya Mipangilio au utekeleze amri ifuatayo:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Kifungua \"Dummy\" cha CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-te/strings.xml b/tests/CarCtsDummyLauncher/res/values-te/strings.xml
deleted file mode 100644
index 623b71c..0000000
--- a/tests/CarCtsDummyLauncher/res/values-te/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS పూర్తయిన తరువాత దీన్ని అన్ఇన్స్టాల్ చేయండి \n\n అన్ఇన్స్టాల్ చేయడానికి , మీరు సెట్టింగ్ యాప్ను ఉపయోగించవచ్చు లేదా కింది ఆదేశాన్ని అమలు చేయవచ్చు:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS కోసం డమ్మీ లాంచర్"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-th/strings.xml b/tests/CarCtsDummyLauncher/res/values-th/strings.xml
deleted file mode 100644
index c675e1e..0000000
--- a/tests/CarCtsDummyLauncher/res/values-th/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"ถอนการติดตั้งหลังจากที่ CTS ดำเนินการเสร็จเรียบร้อย\n\n หากต้องการถอนการติดตั้ง ให้ใช้แอปการตั้งค่าหรือเรียกใช้คำสั่ง\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Launcher จำลองสำหรับ CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-tl/strings.xml b/tests/CarCtsDummyLauncher/res/values-tl/strings.xml
deleted file mode 100644
index 320c959..0000000
--- a/tests/CarCtsDummyLauncher/res/values-tl/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"I-uninstall ito kapag tapos na ang CTS\n\n Para i-uninstall, puwede mong gamitin ang app na Setting o patakbuhin ang sumusunod na command:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy na Launcher para sa CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-tr/strings.xml b/tests/CarCtsDummyLauncher/res/values-tr/strings.xml
deleted file mode 100644
index e6dd989..0000000
--- a/tests/CarCtsDummyLauncher/res/values-tr/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS tamamlandıktan sonra bunu kaldırın\n\n Kaldırmak için Ayar uygulamasını kullanabilir ve şu komutu çalıştırabilirsiniz:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS için Kukla Başlatıcı"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-uk/strings.xml b/tests/CarCtsDummyLauncher/res/values-uk/strings.xml
deleted file mode 100644
index 2ea9300..0000000
--- a/tests/CarCtsDummyLauncher/res/values-uk/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Видаліть, коли тестування CTS завершиться\n\n Для цього перейдіть у додаток Налаштування або запустіть таку команду:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Dummy Launcher для CTS"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-ur/strings.xml b/tests/CarCtsDummyLauncher/res/values-ur/strings.xml
deleted file mode 100644
index 518da33..0000000
--- a/tests/CarCtsDummyLauncher/res/values-ur/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS مکمل ہونے کے بعد اَن انسٹال کریں\n\n اَن انسٹال کرنے کیلئے، آپ ایپ کی ترتیب کا استعمال کر سکتے ہیں یا مندرجہ ذیل کمانڈ چلا سکتے ہیں:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS کیلئے ڈمی لانچر"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-uz/strings.xml b/tests/CarCtsDummyLauncher/res/values-uz/strings.xml
deleted file mode 100644
index 1639a4c..0000000
--- a/tests/CarCtsDummyLauncher/res/values-uz/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"CTS tamomlangach buni oʻchirib tashlang\n\nSozlamalar ilovasi orqali yoki quyidagi buyruq yordamida oʻchirib tashlash mumkin:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS uchun namunaviy launcher"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-vi/strings.xml b/tests/CarCtsDummyLauncher/res/values-vi/strings.xml
deleted file mode 100644
index e866ed2..0000000
--- a/tests/CarCtsDummyLauncher/res/values-vi/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Gỡ cài đặt trình chạy này sau khi Gói thử nghiệm khả năng tương thích (CTS) hoàn tất\n\n Để gỡ cài đặt, bạn có thể dùng ứng dụng Cài đặt hoặc chạy lệnh sau:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Trình chạy giả cho Gói thử nghiệm khả năng tương thích (CTS)"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-zh-rCN/strings.xml b/tests/CarCtsDummyLauncher/res/values-zh-rCN/strings.xml
deleted file mode 100644
index 08560a3..0000000
--- a/tests/CarCtsDummyLauncher/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"在 CTS 完成后卸载虚拟启动器\n\n要卸载虚拟启动器,您可以使用“设置”应用或运行以下命令:\nadb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"适用于 CTS 的虚拟启动器"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-zh-rHK/strings.xml b/tests/CarCtsDummyLauncher/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 7d654ab..0000000
--- a/tests/CarCtsDummyLauncher/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"在完成 CTS 後解除安裝\n\n如要解除安裝,您可以使用「設定」應用程式或執行以下指令:\n adb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"CTS 虛擬啟動器"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-zh-rTW/strings.xml b/tests/CarCtsDummyLauncher/res/values-zh-rTW/strings.xml
deleted file mode 100644
index fa00adc..0000000
--- a/tests/CarCtsDummyLauncher/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"請在 CTS 完成後解除安裝 Dummy Launcher\n\n你可以透過「設定」應用程式或執行以下命令來解除安裝:\nadb uninstall com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"適用於 CTS 的 Dummy Launcher"</string>
-</resources>
diff --git a/tests/CarCtsDummyLauncher/res/values-zu/strings.xml b/tests/CarCtsDummyLauncher/res/values-zu/strings.xml
deleted file mode 100644
index d3be9cd..0000000
--- a/tests/CarCtsDummyLauncher/res/values-zu/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2019 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="launcher_activity_message" msgid="6204844030446459585">"Khipha lokhu ngemuva kokuthi i-CTS iqede\n\n Ukuze ukhiphe, ungasebenzisa uhlelo lokusebenza lwesilungiselelo noma uqalise umyalo olandelayo:\n i-adb ikhipha i-com.android.car.dummylauncher"</string>
- <string name="app_name" msgid="1129651585636850259">"Isiqalisi se-dummy se-CTS"</string>
-</resources>
diff --git a/tests/CarDeveloperOptions/res/values-be/strings.xml b/tests/CarDeveloperOptions/res/values-be/strings.xml
index 2f108c2..7168a02 100644
--- a/tests/CarDeveloperOptions/res/values-be/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-be/strings.xml
@@ -2051,7 +2051,7 @@
<string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Слыхавы апарат"</string>
<string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"Няма падключаных слыхавых апаратаў"</string>
<string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"Дадаць слыхавыя апараты"</string>
- <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"Каб спалучыць слыхавы апарат, націсніце на яго назву на наступным экране."</string>
+ <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"Каб спалучыць слыхавы апарат, націсн. на яго на наступ. экране."</string>
<string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"Пераканайцеся, што слыхавы апарат знаходзіцца ў рэжыме спалучэння."</string>
<string name="accessibility_hearingaid_active_device_summary" msgid="6081382497207168885">"Прылада <xliff:g id="DEVICE_NAME">%1$s</xliff:g> актыўная"</string>
<!-- no translation found for show_number_hearingaid_count (7906547154695855096) -->
@@ -2072,8 +2072,8 @@
<string name="accessibility_vibration_summary_medium" msgid="3141272492346527298">"Уключана умераная вібрацыя пры выкліках і атрыманні апавяшчэнняў"</string>
<string name="accessibility_vibration_summary_high" msgid="4188677504368202861">"Уключана моцная вібрацыя пры выкліках і атрыманні апавяшчэнняў"</string>
<string name="accessibility_vibration_intensity_off" msgid="4427927348723998194">"Выключана"</string>
- <string name="accessibility_vibration_intensity_low" msgid="8250688473513963211">"Слабая"</string>
- <string name="accessibility_vibration_intensity_medium" msgid="2249931147940383011">"Умераная"</string>
+ <string name="accessibility_vibration_intensity_low" msgid="8250688473513963211">"Слабы"</string>
+ <string name="accessibility_vibration_intensity_medium" msgid="2249931147940383011">"Умераны"</string>
<string name="accessibility_vibration_intensity_high" msgid="7850793704772123134">"Моцная"</string>
<string name="accessibility_menu_item_settings" msgid="6809813639403725032">"Налады"</string>
<string name="accessibility_feature_state_on" msgid="8649102771420898911">"Уключана"</string>
diff --git a/tests/CarDeveloperOptions/res/values-kn/strings.xml b/tests/CarDeveloperOptions/res/values-kn/strings.xml
index 8ae851f..5d2c787 100644
--- a/tests/CarDeveloperOptions/res/values-kn/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-kn/strings.xml
@@ -3280,7 +3280,7 @@
<string name="notification_channels_other" msgid="1615988645667411530">"ಇತರೆ"</string>
<!-- no translation found for notification_group_summary (3744856747513344999) -->
<string name="no_channels" msgid="8884254729302501652">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಗಳನ್ನು ಈ ಅಪ್ಲಿಕೇಶನ್ ಪೋಸ್ಟ್ ಮಾಡಿಲ್ಲ"</string>
- <string name="app_settings_link" msgid="8465287765715790984">"ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="app_settings_link" msgid="8465287765715790984">"ಆ್ಯಪ್ನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="app_notification_listing_summary_zero" msgid="4047782719487686699">"ಎಲ್ಲ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
<!-- no translation found for app_notification_listing_summary_others (1161774065480666519) -->
<!-- no translation found for deleted_channels (7741359084299446208) -->
diff --git a/tests/CarDeveloperOptions/res/values-uz/strings.xml b/tests/CarDeveloperOptions/res/values-uz/strings.xml
index 0128033..5da1193 100644
--- a/tests/CarDeveloperOptions/res/values-uz/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-uz/strings.xml
@@ -3296,7 +3296,7 @@
<string name="notification_channels_other" msgid="1615988645667411530">"Boshqa"</string>
<!-- no translation found for notification_group_summary (3744856747513344999) -->
<string name="no_channels" msgid="8884254729302501652">"Bu ilova hech qanday bildirishnoma joylamagan"</string>
- <string name="app_settings_link" msgid="8465287765715790984">"Boshqa sozlamalar ilovada"</string>
+ <string name="app_settings_link" msgid="8465287765715790984">"Ilovadagi boshqa sozlamalar"</string>
<string name="app_notification_listing_summary_zero" msgid="4047782719487686699">"Barcha ilovalar uchun yoniq"</string>
<!-- no translation found for app_notification_listing_summary_others (1161774065480666519) -->
<!-- no translation found for deleted_channels (7741359084299446208) -->
diff --git a/tests/CarDeveloperOptions/res/values-vi/strings.xml b/tests/CarDeveloperOptions/res/values-vi/strings.xml
index 2b76a0f..b6259f3 100644
--- a/tests/CarDeveloperOptions/res/values-vi/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-vi/strings.xml
@@ -2020,7 +2020,7 @@
<string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"Con trỏ chuột lớn"</string>
<string name="accessibility_disable_animations" msgid="8378441317115710009">"Xóa hiệu ứng động"</string>
<string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"Âm thanh đơn âm"</string>
- <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Kết hợp kênh khi phát âm thanh"</string>
+ <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Kết hợp các kênh khi phát âm thanh"</string>
<string name="accessibility_toggle_master_balance_title" msgid="8723492001092647562">"Cân bằng âm thanh"</string>
<string name="accessibility_toggle_master_balance_left_label" msgid="8531986342666527970">"Bên trái"</string>
<string name="accessibility_toggle_master_balance_right_label" msgid="7757024572140589558">"Bên phải"</string>
diff --git a/tests/MultiDisplaySecondaryHomeTestLauncher/AndroidManifest.xml b/tests/MultiDisplaySecondaryHomeTestLauncher/AndroidManifest.xml
index d336672..e4d48ab 100644
--- a/tests/MultiDisplaySecondaryHomeTestLauncher/AndroidManifest.xml
+++ b/tests/MultiDisplaySecondaryHomeTestLauncher/AndroidManifest.xml
@@ -36,6 +36,4 @@
</intent-filter>
</activity>
</application>
-
-
</manifest>
diff --git a/tests/MultiDisplaySecondaryHomeTestLauncher/res/layout/app_picker_layout.xml b/tests/MultiDisplaySecondaryHomeTestLauncher/res/layout/app_picker_layout.xml
index e6c6b1e..bdc7b62 100644
--- a/tests/MultiDisplaySecondaryHomeTestLauncher/res/layout/app_picker_layout.xml
+++ b/tests/MultiDisplaySecondaryHomeTestLauncher/res/layout/app_picker_layout.xml
@@ -27,8 +27,10 @@
android:visibility="invisible">
<LinearLayout
+ android:id="@+id/FloatingSheetHeader"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:layout_marginTop = "@dimen/app_grid_margin_top"
android:layout_marginStart="@dimen/app_grid_margin_left"
android:layout_marginEnd="@dimen/app_grid_margin_right"
android:orientation="vertical">
diff --git a/tests/MultiDisplaySecondaryHomeTestLauncher/src/com/android/car/multidisplay/launcher/LauncherActivity.java b/tests/MultiDisplaySecondaryHomeTestLauncher/src/com/android/car/multidisplay/launcher/LauncherActivity.java
index d106343..5f51817 100644
--- a/tests/MultiDisplaySecondaryHomeTestLauncher/src/com/android/car/multidisplay/launcher/LauncherActivity.java
+++ b/tests/MultiDisplaySecondaryHomeTestLauncher/src/com/android/car/multidisplay/launcher/LauncherActivity.java
@@ -67,7 +67,9 @@
private Spinner mDisplaySpinner;
private ArrayAdapter<DisplayItem> mDisplayAdapter;
private int mSelectedDisplayId = Display.INVALID_DISPLAY;
+ private View mRootView;
private View mScrimView;
+ private View mAppDrawerHeader;
private AppListAdapter mAppListAdapter;
private AppListAdapter mPinnedAppListAdapter;
private CircularRevealCardView mAppDrawerView;
@@ -81,10 +83,21 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ mRootView = findViewById(R.id.RootView);
mScrimView = findViewById(R.id.Scrim);
mAppDrawerView = findViewById(R.id.FloatingSheet);
- mFab = findViewById(R.id.FloatingActionButton);
+ // get system insets and apply padding accordingly to the content view
+ mRootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+ mRootView.setOnApplyWindowInsetsListener((v, insets) -> {
+ mRootView.setPadding(0, 0, 0, insets.getSystemWindowInsetBottom());
+ mAppDrawerHeader = findViewById(R.id.FloatingSheetHeader);
+ mAppDrawerHeader.setPadding(0, insets.getSystemWindowInsetTop(), 0, 0);
+ return insets.consumeSystemWindowInsets();
+ });
+
+ mFab = findViewById(R.id.FloatingActionButton);
mFab.setOnClickListener((View v) -> {
showAppDrawer(true);
});
diff --git a/tests/MultiDisplayTest/Android.mk b/tests/MultiDisplayTest/Android.mk
new file mode 100644
index 0000000..c5c7ce0
--- /dev/null
+++ b/tests/MultiDisplayTest/Android.mk
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2019 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.
+#
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := samples
+
+# Only compile source java files in this apk.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := MultiDisplayTest
+
+LOCAL_SDK_VERSION := current
+
+LOCAL_DEX_PREOPT := false
+
+LOCAL_STATIC_ANDROID_LIBRARIES += \
+ androidx.lifecycle_lifecycle-livedata \
+ androidx.lifecycle_lifecycle-viewmodel \
+ androidx.car_car-cluster
+
+include $(BUILD_PACKAGE)
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/MultiDisplayTest/AndroidManifest.xml b/tests/MultiDisplayTest/AndroidManifest.xml
new file mode 100644
index 0000000..cb294b3
--- /dev/null
+++ b/tests/MultiDisplayTest/AndroidManifest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<!-- Declare the contents of this Android application. The namespace
+ attribute brings in the Android platform namespace, and the package
+ supplies a unique name for the application. When writing your
+ own application, the package name must be changed from "com.example.*"
+ to come from a domain that you own or have control over. -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.car.multidisplaytest">
+ <application android:label="MD Test">
+ <activity android:name="MDTest"
+ android:label="@string/app_title_always"
+ android:documentLaunchMode="always"
+ android:theme="@style/MainActivityTheme">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
+
diff --git a/tests/MultiDisplayTest/res/drawable/border.xml b/tests/MultiDisplayTest/res/drawable/border.xml
new file mode 100644
index 0000000..088c31b
--- /dev/null
+++ b/tests/MultiDisplayTest/res/drawable/border.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners
+ android:bottomRightRadius="5dp"
+ android:bottomLeftRadius="5dp"
+ android:topLeftRadius="5dp"
+ android:topRightRadius="5dp"/>
+ <stroke
+ android:width="2dip"
+ android:color="#212121" />
+</shape>
\ No newline at end of file
diff --git a/tests/MultiDisplayTest/res/drawable/ic_close_white.xml b/tests/MultiDisplayTest/res/drawable/ic_close_white.xml
new file mode 100644
index 0000000..4187755
--- /dev/null
+++ b/tests/MultiDisplayTest/res/drawable/ic_close_white.xml
@@ -0,0 +1,24 @@
+<!--
+ Copyright (C) 2019 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24.0dp"
+ android:height="24.0dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M19.000000,6.400000l-1.400000,-1.400000 -5.600000,5.600000 -5.600000,-5.600000 -1.400000,1.400000 5.600000,5.600000 -5.600000,5.600000 1.400000,1.400000 5.600000,-5.600000 5.600000,5.600000 1.400000,-1.400000 -5.600000,-5.600000z"
+ android:fillColor="#FFFFFFFF"/>
+</vector>
\ No newline at end of file
diff --git a/tests/MultiDisplayTest/res/layout/activity_main.xml b/tests/MultiDisplayTest/res/layout/activity_main.xml
new file mode 100644
index 0000000..e741c32
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/activity_main.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<!-- We use this container to place kitchen app fragments. It insets the fragment contents -->
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <Button
+ android:id="@+id/menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginBottom="10dp"
+ android:background="@android:color/background_light"
+ android:text="Hide Test Menu"
+ android:textSize="30sp"
+ android:padding="15dp"/>
+
+ <FrameLayout
+ android:id="@+id/menu_content"
+ android:layout_alignParentStart="true"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/menu_button"
+ android:visibility="gone"/>
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/menu"
+ android:layout_below="@id/menu_button"
+ android:layout_alignParentStart="true"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+</RelativeLayout>
diff --git a/tests/MultiDisplayTest/res/layout/draw.xml b/tests/MultiDisplayTest/res/layout/draw.xml
new file mode 100644
index 0000000..4bb1fa9
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/draw.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019 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.
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#000000"
+ android:orientation="vertical" >
+
+ <com.google.android.car.multidisplaytest.draw.CanvasView
+ android:id="@+id/drawCanvas"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+ <Button
+ android:id="@+id/clearButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|center"
+ android:text="Clear Canvas" />
+</FrameLayout>
diff --git a/tests/MultiDisplayTest/res/layout/input_type_test.xml b/tests/MultiDisplayTest/res/layout/input_type_test.xml
new file mode 100644
index 0000000..c23926f
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/input_type_test.xml
@@ -0,0 +1,613 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent">
+
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:weightSum="2">
+ <Button
+ style="@style/Button"
+ android:id="@+id/clearButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="clear"/>
+ </LinearLayout>
+
+ <LinearLayout
+ style="@style/SectionContainer"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:layout_weight="1">
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:fillViewport="true">
+ <TextView
+ android:id="@+id/ime_watchdog"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textSize="18sp"
+ android:text="@string/no_results"/>
+ </ScrollView>
+ </LinearLayout>
+
+ <ScrollView
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:layout_weight="1">
+
+ <LinearLayout
+ android:id="@+id/inputViewGroup"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Test Input Focus:"/>
+
+ <EditText
+ android:id="@+id/testEditText"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="text"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Plain Text:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="text"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Date:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="date"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Date Time:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="datetime"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Number:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="number"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Number Decimal:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="numberDecimal"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Number Password:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="numberPassword"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Number Signed:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="numberSigned"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Auto Complete:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textAutoComplete"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Auto Correct:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textAutoCorrect"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Cap Characters:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textCapCharacters"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Cap Sentences:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textCapSentences"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Cap Words:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textCapWords"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Email Address:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textEmailAddress"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Email Subject:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textEmailSubject"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Filter:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textFilter"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="IME Multiline:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textImeMultiLine"
+ android:singleLine="false"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Long Message:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textLongMessage"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="MultiLine:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textMultiLine"
+ android:singleLine="false"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="No Suggestions:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textNoSuggestions"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Password:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textPassword"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Person Name:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textPersonName"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Phonetic:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textPhonetic"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Postal Address:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textPostalAddress"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Short Message:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textShortMessage"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="URI:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textUri"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Visible Password:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textVisiblePassword"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Web Edit Text:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textWebEditText"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Web Email Address:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textWebEmailAddress"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="@dimen/inputTypeMarginLeft"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Web Password:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="textWebPassword"
+ android:singleLine="true"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Phone:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="phone"
+ android:singleLine="true"/>
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/inputTypeTextSize"
+ android:text="Time:"/>
+
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="6"
+ android:inputType="time"
+ android:singleLine="true"/>
+ </LinearLayout>
+ </LinearLayout>
+ </ScrollView>
+</LinearLayout>
diff --git a/tests/MultiDisplayTest/res/layout/list_item.xml b/tests/MultiDisplayTest/res/layout/list_item.xml
new file mode 100644
index 0000000..4f97c2c
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/list_item.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@android:id/text1"
+ android:paddingTop="2dip"
+ android:paddingBottom="3dip"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:textSize="24sp" />
diff --git a/tests/MultiDisplayTest/res/layout/menu_item.xml b/tests/MultiDisplayTest/res/layout/menu_item.xml
new file mode 100644
index 0000000..be681b6
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/menu_item.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingBottom="5dp">
+
+ <Button
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="30sp"/>
+</LinearLayout>
diff --git a/tests/MultiDisplayTest/res/layout/present_fragment.xml b/tests/MultiDisplayTest/res/layout/present_fragment.xml
new file mode 100644
index 0000000..7f64456
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/present_fragment.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<!-- Demonstrates an activity that shows content on secondary displays using
+ the android.app.Presentation class.
+ See corresponding Java code PresentationActivity.java. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <!-- Message to show to use. -->
+ <TextView android:id="@+id/text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:gravity="center_vertical|center_horizontal"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="@string/presentation_introduction"/>
+
+ <!-- A checkbox to toggle between showing all displays or only presentation displays. -->
+ <CheckBox android:id="@+id/show_all_displays"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:text="@string/presentation_show_all_displays" />
+
+ <!-- List that will show information about all connected displays. -->
+ <ListView android:id="@+id/display_list"
+ android:layout_width="match_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1" />
+</LinearLayout>
diff --git a/tests/MultiDisplayTest/res/layout/touch_points.xml b/tests/MultiDisplayTest/res/layout/touch_points.xml
new file mode 100644
index 0000000..f2b2e1f
--- /dev/null
+++ b/tests/MultiDisplayTest/res/layout/touch_points.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ <com.google.android.car.multidisplaytest.touch.TouchPointView
+ android:id="@+id/touch_point_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+</RelativeLayout>
diff --git a/tests/MultiDisplayTest/res/values/dimens.xml b/tests/MultiDisplayTest/res/values/dimens.xml
new file mode 100644
index 0000000..99a2f85
--- /dev/null
+++ b/tests/MultiDisplayTest/res/values/dimens.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<resources>
+ <dimen name="inputTypeMarginLeft">50dp</dimen>
+ <dimen name="inputTypeTextSize">24sp</dimen>
+ <dimen name="overview_icon_size">72dp</dimen>
+</resources>
diff --git a/tests/MultiDisplayTest/res/values/strings.xml b/tests/MultiDisplayTest/res/values/strings.xml
new file mode 100644
index 0000000..24fb4f9
--- /dev/null
+++ b/tests/MultiDisplayTest/res/values/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<resources>
+ <string name="app_title_always" translatable="false">MDTest</string>
+ <string name="section_header_watchdog" translatable="false">Watchdog</string>
+ <string name="no_results" translatable="false">No Results</string>
+ <string name="presentation_introduction" translatable="false">Fragment that uses a
+ Presentation and the DisplayManager to show content on other Displays.\n
+ Selecting a Display will open a Presentation on it</string>
+ <string name="presentation_show_all_displays" translatable="false">Show all displays</string>
+</resources>
diff --git a/tests/MultiDisplayTest/res/values/styles.xml b/tests/MultiDisplayTest/res/values/styles.xml
new file mode 100644
index 0000000..c15c870
--- /dev/null
+++ b/tests/MultiDisplayTest/res/values/styles.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019, 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.
+*/
+-->
+<resources>
+ <style name="OverviewButton">
+ <item name="android:layout_width">@dimen/overview_icon_size</item>
+ <item name="android:layout_height">@dimen/overview_icon_size</item>
+ <item name="android:padding">6dp</item>
+ <item name="android:scaleType">fitCenter</item>
+ <item name="android:clickable">true</item>
+ </style>
+
+ <style name="MainActivityTheme" parent="android:Theme.DeviceDefault.NoActionBar">
+ </style>
+
+ <style name="SectionContainer">
+ <!-- Customize your theme here. -->
+ <item name="android:background">@drawable/border</item>
+ <item name="android:padding">3dp</item>
+ <item name="android:layout_margin">5dp</item>
+ </style>
+
+ <style name="Button">
+ <item name="android:layout_margin">5dp</item>
+ </style>
+
+</resources>
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/MDTest.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/MDTest.java
new file mode 100644
index 0000000..57e2834
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/MDTest.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.car.multidisplaytest.draw.DrawTestFragment;
+import com.google.android.car.multidisplaytest.ime.InputTestFragment;
+import com.google.android.car.multidisplaytest.touch.TouchTestFragment;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Mostly copied from EmbeddedKitchenSinkApp with modifications on Fragments
+ */
+public class MDTest extends FragmentActivity {
+ private static final String TAG = MDTest.class.getSimpleName();
+ private FragmentManager mFragmentManager;
+ private Button mMenuButton;
+ private RecyclerView mMenu;
+ private View mMenuContent;
+
+ private interface ClickHandler {
+ void onClick();
+ }
+
+ private abstract class MenuEntry implements ClickHandler {
+ abstract String getText();
+ }
+
+ private final class FragmentMenuEntry<T extends Fragment> extends MenuEntry {
+ private final class MenuFragment<T extends Fragment> {
+ private final Class<T> mClazz;
+ private T mMenuFragment = null;
+
+ MenuFragment(Class<T> clazz) {
+ mClazz = clazz;
+ }
+
+ T getFragment() {
+ if (mMenuFragment == null) {
+ try {
+ mMenuFragment = mClazz.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ Log.e(TAG, "unable to create fragment", e);
+ }
+ }
+ return mMenuFragment;
+ }
+ }
+
+ private final String mText;
+ private final MenuFragment<T> mFragment;
+
+ FragmentMenuEntry(String text, Class<T> clazz) {
+ mText = text;
+ mFragment = new MenuFragment<>(clazz);
+ }
+
+ @Override
+ String getText() {
+ return mText;
+ }
+
+ @Override
+ public void onClick() {
+ Fragment fragment = mFragment.getFragment();
+ if (fragment != null) {
+ mFragmentManager.beginTransaction()
+ .replace(R.id.menu_content, fragment)
+ .commit();
+ // MDTest.this.showFragment(fragment);
+ toggleMenuVisibility();
+ } else {
+ Log.e(TAG, "cannot show fragment for " + getText());
+ }
+ }
+ }
+
+ // list of test fragments
+ private final List<MenuEntry> mMenuEntries = Arrays.asList(
+ new FragmentMenuEntry("Touch test", TouchTestFragment.class),
+ new FragmentMenuEntry("IME test", InputTestFragment.class),
+ new FragmentMenuEntry("Draw test", DrawTestFragment.class)
+ );
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ mMenuContent = findViewById(R.id.menu_content);
+
+ mMenu = findViewById(R.id.menu);
+ mMenu.setAdapter(new MenuAdapter(this));
+ mMenu.setLayoutManager(new GridLayoutManager(this, 3));
+
+ mMenuButton = findViewById(R.id.menu_button);
+ mMenuButton.setOnClickListener(view -> toggleMenuVisibility());
+ Log.i(TAG, "Creating MDTest activity view");
+ mFragmentManager = MDTest.this.getSupportFragmentManager();
+ onNewIntent(getIntent());
+ }
+
+ private void toggleMenuVisibility() {
+ boolean menuVisible = mMenu.getVisibility() == View.VISIBLE;
+ mMenu.setVisibility(menuVisible ? View.GONE : View.VISIBLE);
+ mMenuContent.setVisibility(menuVisible ? View.VISIBLE : View.GONE);
+ mMenuButton.setText(menuVisible ? "Show Test Menu" : "Hide Test Menu");
+ }
+
+ private final class MenuAdapter extends RecyclerView.Adapter<ItemViewHolder> {
+ private final LayoutInflater mLayoutInflator;
+
+ MenuAdapter(Context context) {
+ mLayoutInflator = LayoutInflater.from(context);
+ }
+
+ @Override
+ public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = mLayoutInflator.inflate(R.layout.menu_item, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ItemViewHolder holder, int position) {
+ holder.mTitle.setText(mMenuEntries.get(position).getText());
+ holder.mTitle.setOnClickListener(v -> mMenuEntries.get(position).onClick());
+ }
+
+ @Override
+ public int getItemCount() {
+ return mMenuEntries.size();
+ }
+ }
+
+ private final class ItemViewHolder extends RecyclerView.ViewHolder {
+ private TextView mTitle;
+
+ ItemViewHolder(View itemView) {
+ super(itemView);
+ mTitle = itemView.findViewById(R.id.title);
+ }
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/CanvasView.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/CanvasView.java
new file mode 100644
index 0000000..594f654
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/CanvasView.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.draw;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+public class CanvasView extends View {
+ private static final float TOLERANCE = 5.0f;
+
+ private final Paint mPaint;
+ private final Path mPath;
+ private float mX;
+ private float mY;
+
+ public CanvasView(Context c, AttributeSet attrs) {
+ super(c, attrs);
+
+ mPath = new Path();
+ mPaint = new Paint();
+ mPaint.setStyle(Paint.Style.STROKE);
+ mPaint.setStrokeJoin(Paint.Join.ROUND);
+ mPaint.setStrokeWidth(4f);
+ mPaint.setColor(Color.WHITE);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawPath(mPath, mPaint);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ float x = event.getX();
+ float y = event.getY();
+
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ downTouch(x, y);
+ invalidate();
+ break;
+ case MotionEvent.ACTION_MOVE:
+ moveTouch(x, y);
+ invalidate();
+ break;
+ case MotionEvent.ACTION_UP:
+ upTouch();
+ invalidate();
+ break;
+ }
+ return true;
+ }
+
+ public void clearCanvas() {
+ mPath.reset();
+ invalidate();
+ }
+
+ private void moveTouch(float x, float y) {
+ float dx = Math.abs(x - mX);
+ float dy = Math.abs(y - mY);
+ if (dx >= TOLERANCE || dy >= TOLERANCE) {
+ // use mid-point as the control point of the bezier curve to make a smooth line
+ // eg. when forming curve between three non-aligned consecutive points
+ mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
+ mX = x;
+ mY = y;
+ }
+ }
+
+ private void downTouch(float x, float y) {
+ mPath.moveTo(x, y);
+ mX = x;
+ mY = y;
+ }
+
+ private void upTouch() {
+ mPath.lineTo(mX, mY);
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/DrawTestFragment.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/DrawTestFragment.java
new file mode 100644
index 0000000..b6c322a
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/draw/DrawTestFragment.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.draw;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.multidisplaytest.R;
+
+public class DrawTestFragment extends Fragment {
+ private CanvasView mCanvas;
+ private Button mClearButton;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
+ View view = inflater.inflate(R.layout.draw, container, false);
+
+ mCanvas = view.findViewById(R.id.drawCanvas);
+ mClearButton = view.findViewById(R.id.clearButton);
+ setClearButtonListener();
+
+ return view;
+ }
+
+ private void setClearButtonListener() {
+ mClearButton.setOnClickListener(view -> mCanvas.clearCanvas());
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/InputTestFragment.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/InputTestFragment.java
new file mode 100644
index 0000000..05751d6
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/InputTestFragment.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.ime;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputConnection;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.multidisplaytest.R;
+
+/**
+ * Modified from GarageModeTestApp;
+ * Including coping Watchdog.java and Logger.java
+ */
+public class InputTestFragment extends Fragment {
+ private static final String TAG = InputTestFragment.class.getSimpleName();
+
+ private Button mClearButton;
+ private EditText mTestEditText;
+ private InputMethodManager mInputManager;
+ private InputConnection mInputConnection;
+ private TextView mWatchdogTextView;
+ private ViewGroup mInputViewGroup;
+ private Watchdog mWatchdog;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
+ View view = inflater.inflate(R.layout.input_type_test, container, false);
+ setViewsFromFragment(view);
+ setListners();
+
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ Log.d(TAG, "Resuming watchdog");
+
+ mWatchdog = new Watchdog(mWatchdogTextView);
+ mWatchdog.start();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+
+ Log.d(TAG, "Pausing watchdog");
+
+ if (mWatchdog != null) {
+ mWatchdog.stop();
+ mWatchdog = null;
+ }
+ }
+
+ private void setViewsFromFragment(View view) {
+ mWatchdogTextView = view.findViewById(R.id.ime_watchdog);
+ mInputManager = (InputMethodManager) getActivity()
+ .getSystemService(Context.INPUT_METHOD_SERVICE);
+ mInputViewGroup = view.findViewById(R.id.inputViewGroup);
+ mClearButton = view.findViewById(R.id.clearButton);
+ // Log this EditText view's input focus to test for input connection with IME
+ mTestEditText = view.findViewById(R.id.testEditText);
+ }
+
+ private void setListners() {
+ mClearButton.setOnClickListener(view -> onClearButtonClick());
+ mInputViewGroup.setOnTouchListener((view, event) -> {
+ if (event.getActionMasked() == MotionEvent.ACTION_UP) {
+ if (mWatchdog != null) {
+ boolean activeState = mInputManager.isActive();
+ boolean acceptingState = mInputManager.isAcceptingText();
+ String logMessage = String.format("IME states: Active - %b, AcceptingText - %b",
+ activeState, acceptingState);
+ mWatchdog.logEvent(logMessage);
+ }
+ }
+ return true;
+ });
+
+ mTestEditText.setOnFocusChangeListener((view, hasFocus) -> {
+ if (mWatchdog != null) {
+ if (hasFocus) {
+ mWatchdog.logEvent("EditText view has input connection with IME");
+ } else {
+ mWatchdog.logEvent("EditText view doesn't have input connection with IME");
+ }
+ }
+ });
+ }
+
+ private void onClearButtonClick() {
+ if (mWatchdog != null) {
+ mWatchdog.logEvent("Clear botton test...");
+ mWatchdog.start();
+ }
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/Watchdog.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/Watchdog.java
new file mode 100644
index 0000000..80d63ee
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/ime/Watchdog.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.ime;
+
+import android.os.Handler;
+import android.util.Log;
+import android.widget.TextView;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * Copied from GarageModeTestApp
+ * Use Handler to send and process messages in a queue
+ * Potentially use for multi-thread
+ */
+public final class Watchdog {
+ private static final String TAG = Watchdog.class.getSimpleName();
+ // wait before trying to get new message from the queue and post it
+ private static final Integer DELAY = 500; // in millisecond
+ private static final Integer MAXQSIZE = 10000;
+
+ private final TextView mView;
+ private final ArrayList<String> mEvents;
+
+ private Handler mWatchdogHandler;
+ private Runnable mRefreshLoop;
+
+ Watchdog(TextView view) {
+ mView = view;
+ mEvents = new ArrayList<>();
+ }
+
+ public void logEvent(String s) {
+ Date date = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("[yyyy-MM-dd hh:mm:ss]");
+ mEvents.add(0, dateFormat.format(date) + " " + s);
+
+ if (mEvents.size() > MAXQSIZE) {
+ mEvents.remove(mEvents.size() - 1);
+ }
+ }
+
+ public synchronized void refresh() {
+ mView.setText(String.join("\n", mEvents));
+ }
+
+ public void start() {
+ Log.d(TAG, "Starting Watchdog");
+ mEvents.clear();
+ mWatchdogHandler = new Handler();
+ mRefreshLoop = () -> {
+ refresh();
+ mWatchdogHandler.postDelayed(mRefreshLoop, DELAY);
+ };
+ mWatchdogHandler.postDelayed(mRefreshLoop, DELAY);
+ }
+
+ public void stop() {
+ Log.d(TAG, "Stopping Watchdog");
+ mWatchdogHandler.removeCallbacks(mRefreshLoop);
+ mWatchdogHandler = null;
+ mRefreshLoop = null;
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchPointView.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchPointView.java
new file mode 100644
index 0000000..77980d0
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchPointView.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.touch;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Point;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Copied from EmbeddedKitchenSinkApp
+ * Show touch points as circles; allow multiple touch points
+ * Set LOG_ONLY = false to test on physical device.
+ */
+public class TouchPointView extends View {
+ private static final String TAG = TouchPointView.class.getSimpleName();
+ private static final boolean LOG_ONLY = false;
+ private static final int[] COLORS = {
+ Color.RED,
+ Color.GREEN,
+ Color.BLUE,
+ Color.YELLOW,
+ Color.MAGENTA,
+ Color.BLACK,
+ Color.DKGRAY
+ };
+
+ private final List<Finger> mFingers;
+ private final Paint mPaint;
+
+ public TouchPointView(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public TouchPointView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ mFingers = new ArrayList<Finger>();
+
+ mPaint = new Paint();
+ mPaint.setStyle(Paint.Style.FILL);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (LOG_ONLY) {
+ logTouchEvents(event);
+ return true;
+ }
+ mFingers.clear();
+ if (event.getActionMasked() == MotionEvent.ACTION_UP) {
+ invalidate();
+ return true;
+ }
+ for (int i = 0; i < event.getPointerCount(); i++) {
+ int pointerId = event.getPointerId(i);
+ int pointerIndex = event.findPointerIndex(pointerId);
+ Finger finger = new Finger();
+ finger.point = new Point((int) event.getX(pointerIndex),
+ (int) event.getY(pointerIndex));
+ finger.pointerId = pointerId;
+
+ mFingers.add(finger);
+ }
+ invalidate();
+ return true;
+ }
+
+ private void logTouchEvents(MotionEvent event) {
+ if (event.getActionMasked() != MotionEvent.ACTION_UP) {
+ return;
+ }
+
+ for (int i = 0; i < event.getPointerCount(); i++) {
+ int pointerId = event.getPointerId(i);
+ int pointerIndex = event.findPointerIndex(pointerId);
+ long downTime = event.getDownTime();
+ long eventTime = event.getEventTime();
+ Log.d(TAG, "TouchUp [x=" + event.getX(pointerIndex) + ", y=" + event.getY(pointerIndex)
+ + " , pointerId=" + pointerId + ", pointerIndex=" + pointerIndex + ", duration="
+ + (eventTime - downTime) + "]");
+ }
+ }
+
+ @Override
+ public void onDraw(Canvas canvas) {
+ if (LOG_ONLY) {
+ return;
+ }
+ int radius = canvas.getWidth() / 100;
+ for (Finger finger: mFingers) {
+ Point point = finger.point;
+ int color = COLORS[finger.pointerId % COLORS.length];
+ mPaint.setColor(color);
+ canvas.drawCircle(point.x, point.y, radius, mPaint);
+ }
+ }
+
+ private static final class Finger {
+ public Point point;
+ public int pointerId;
+ }
+}
diff --git a/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchTestFragment.java b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchTestFragment.java
new file mode 100644
index 0000000..5341435
--- /dev/null
+++ b/tests/MultiDisplayTest/src/com/google/android/car/multidisplaytest/touch/TouchTestFragment.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2019 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.car.multidisplaytest.touch;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.multidisplaytest.R;
+
+public class TouchTestFragment extends Fragment {
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
+ View view = inflater.inflate(R.layout.touch_points, container, false);
+
+ return view;
+ }
+}
diff --git a/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java b/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
index ab5c271..58bf088 100644
--- a/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
+++ b/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
@@ -307,6 +307,9 @@
@Override
public void refreshDisplayBrightness() {}
+
+ @Override
+ public void reconfigureSecondaryDisplays() {}
}
private class PowerStatePropertyHandler implements VehicleHalPropertyHandler {
diff --git a/tests/carservice_test/src/com/android/car/MockedCarTestBase.java b/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
index 44e07b2..894c402 100644
--- a/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
+++ b/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
@@ -311,6 +311,9 @@
@Override
public void refreshDisplayBrightness() {}
+
+ @Override
+ public void reconfigureSecondaryDisplays() {}
}
static final class MockIOInterface implements IOInterface {
diff --git a/tests/carservice_test/src/com/android/car/garagemode/GarageModeServiceTest.java b/tests/carservice_test/src/com/android/car/garagemode/GarageModeServiceTest.java
index 91059fc..83f2c87 100644
--- a/tests/carservice_test/src/com/android/car/garagemode/GarageModeServiceTest.java
+++ b/tests/carservice_test/src/com/android/car/garagemode/GarageModeServiceTest.java
@@ -18,6 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -61,7 +62,7 @@
when(mMockController.isGarageModeActive()).thenReturn(true);
mService.dump(mMockPrintWriter);
- verify(mMockPrintWriter).println(mCaptorString.capture());
+ verify(mMockPrintWriter, atLeastOnce()).println(mCaptorString.capture());
List<String> strings = mCaptorString.getAllValues();
assertThat(strings.get(0)).isEqualTo("GarageModeInProgress true");
}
diff --git a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
index 382d7ad..fa82f90 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
@@ -296,6 +296,9 @@
@Override
public void refreshDisplayBrightness() {}
+
+ @Override
+ public void reconfigureSecondaryDisplays() {}
}
private static final class MockSystemStateInterface implements SystemStateInterface {
diff --git a/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceInfoTest.java b/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceInfoTest.java
index 3045276..8174add 100644
--- a/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceInfoTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceInfoTest.java
@@ -43,7 +43,7 @@
@Test
public void multipleHashTags() {
exception.expect(IllegalArgumentException.class);
- VendorServiceInfo.parse(SERVICE_NAME + "#user=system#bind=true");
+ VendorServiceInfo.parse(SERVICE_NAME + "#user=system#bind=bind");
}
@Test
@@ -64,6 +64,7 @@
assertThat(info.getIntent().getComponent())
.isEqualTo(ComponentName.unflattenFromString(SERVICE_NAME));
assertThat(info.shouldBeBound()).isFalse();
+ assertThat(info.shouldBeStartedInForeground()).isFalse();
assertThat(info.isSystemUserService()).isTrue();
assertThat(info.isForegroundUserService()).isTrue();
assertThat(info.shouldStartOnUnlock()).isTrue();
@@ -71,16 +72,25 @@
@Test
public void startService() {
- VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME + "#bind=false");
+ VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME + "#bind=start");
assertThat(info.shouldBeBound()).isFalse();
+ assertThat(info.shouldBeStartedInForeground()).isFalse();
assertThat(info.getIntent().getComponent())
.isEqualTo(ComponentName.unflattenFromString(SERVICE_NAME));
}
@Test
public void bindService() {
- VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME + "#bind=true");
+ VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME + "#bind=bind");
assertThat(info.shouldBeBound()).isTrue();
+ assertThat(info.shouldBeStartedInForeground()).isFalse();
+ }
+
+ @Test
+ public void startServiceInForeground() {
+ VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME + "#bind=startForeground");
+ assertThat(info.shouldBeBound()).isFalse();
+ assertThat(info.shouldBeStartedInForeground()).isTrue();
}
@Test
@@ -131,7 +141,7 @@
@Test
public void allArgs() {
VendorServiceInfo info = VendorServiceInfo.parse(SERVICE_NAME
- + "#bind=true,user=foreground,trigger=userUnlocked");
+ + "#bind=bind,user=foreground,trigger=userUnlocked");
assertThat(info.getIntent().getComponent())
.isEqualTo(ComponentName.unflattenFromString(SERVICE_NAME));
assertThat(info.shouldBeBound()).isTrue();