Merge "Don't hard code the colors of media button" into qt-qpr1-dev am: 6445eaf5a0
Change-Id: If91d75b2d42d8604914dd98b3ccabf34e9c1f3b3
diff --git a/EncryptionRunner/AndroidManifest.xml b/EncryptionRunner/AndroidManifest.xml
deleted file mode 100644
index 3ebdf42..0000000
--- a/EncryptionRunner/AndroidManifest.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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- package="android.car.encryptionrunner" >
- <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="23" />
-</manifest>
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/DummyEncryptionRunner.java b/EncryptionRunner/src/android/car/encryptionrunner/DummyEncryptionRunner.java
deleted file mode 100644
index 5b63dbc..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/DummyEncryptionRunner.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import android.annotation.IntDef;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * An encryption runner that doesn't actually do encryption. Useful for debugging. Do not use in
- * production environments.
- */
-@VisibleForTesting
-public class DummyEncryptionRunner implements EncryptionRunner {
-
- private static final String KEY = "key";
- private static final byte[] DUMMY_MESSAGE = "Dummy Message".getBytes();
- @VisibleForTesting
- public static final String INIT = "init";
- @VisibleForTesting
- public static final String INIT_RESPONSE = "initResponse";
- @VisibleForTesting
- public static final String CLIENT_RESPONSE = "clientResponse";
- public static final String VERIFICATION_CODE = "1234";
-
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({Mode.UNKNOWN, Mode.CLIENT, Mode.SERVER})
- private @interface Mode {
-
- int UNKNOWN = 0;
- int CLIENT = 1;
- int SERVER = 2;
- }
-
- private boolean mIsReconnect;
- private boolean mInitReconnectVerification;
- private Key mCurrentDummyKey;
- @Mode
- private int mMode;
- @HandshakeMessage.HandshakeState
- private int mState;
-
- @Override
- public HandshakeMessage initHandshake() {
- checkRunnerIsNew();
- mMode = Mode.CLIENT;
- mState = HandshakeMessage.HandshakeState.IN_PROGRESS;
- return HandshakeMessage.newBuilder()
- .setHandshakeState(mState)
- .setNextMessage(INIT.getBytes())
- .build();
- }
-
- @Override
- public HandshakeMessage respondToInitRequest(byte[] initializationRequest)
- throws HandshakeException {
- checkRunnerIsNew();
- mMode = Mode.SERVER;
- if (!new String(initializationRequest).equals(INIT)) {
- throw new HandshakeException("Unexpected initialization request");
- }
- mState = HandshakeMessage.HandshakeState.IN_PROGRESS;
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.IN_PROGRESS)
- .setNextMessage(INIT_RESPONSE.getBytes())
- .build();
- }
-
- private void checkRunnerIsNew() {
- if (mState != HandshakeMessage.HandshakeState.UNKNOWN) {
- throw new IllegalStateException("runner already initialized.");
- }
- }
-
- @Override
- public HandshakeMessage continueHandshake(byte[] response) throws HandshakeException {
- if (mState != HandshakeMessage.HandshakeState.IN_PROGRESS) {
- throw new HandshakeException("not waiting for response but got one");
- }
- switch (mMode) {
- case Mode.SERVER:
- if (!CLIENT_RESPONSE.equals(new String(response))) {
- throw new HandshakeException("unexpected response: " + new String(response));
- }
- mState = HandshakeMessage.HandshakeState.VERIFICATION_NEEDED;
- if (mIsReconnect) {
- verifyPin();
- mState = HandshakeMessage.HandshakeState.RESUMING_SESSION;
- }
- return HandshakeMessage.newBuilder()
- .setVerificationCode(VERIFICATION_CODE)
- .setHandshakeState(mState)
- .build();
- case Mode.CLIENT:
- if (!INIT_RESPONSE.equals(new String(response))) {
- throw new HandshakeException("unexpected response: " + new String(response));
- }
- mState = HandshakeMessage.HandshakeState.VERIFICATION_NEEDED;
- if (mIsReconnect) {
- verifyPin();
- mState = HandshakeMessage.HandshakeState.RESUMING_SESSION;
- }
- return HandshakeMessage.newBuilder()
- .setHandshakeState(mState)
- .setNextMessage(CLIENT_RESPONSE.getBytes())
- .setVerificationCode(VERIFICATION_CODE)
- .build();
- default:
- throw new IllegalStateException("unexpected role: " + mMode);
- }
- }
-
- @Override
- public HandshakeMessage authenticateReconnection(byte[] message, byte[] previousKey)
- throws HandshakeException {
- mCurrentDummyKey = new DummyKey();
- // Blindly verify the reconnection because this is a dummy encryption runner.
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.FINISHED)
- .setKey(mCurrentDummyKey)
- .setNextMessage(mInitReconnectVerification ? null : DUMMY_MESSAGE)
- .build();
- }
-
- @Override
- public HandshakeMessage initReconnectAuthentication(byte[] previousKey)
- throws HandshakeException {
- mInitReconnectVerification = true;
- mState = HandshakeMessage.HandshakeState.RESUMING_SESSION;
- return HandshakeMessage.newBuilder()
- .setHandshakeState(mState)
- .setNextMessage(DUMMY_MESSAGE)
- .build();
- }
-
- @Override
- public Key keyOf(byte[] serialized) {
- return new DummyKey();
- }
-
- @Override
- public HandshakeMessage verifyPin() throws HandshakeException {
- if (mState != HandshakeMessage.HandshakeState.VERIFICATION_NEEDED) {
- throw new IllegalStateException("asking to verify pin, state = " + mState);
- }
- mState = HandshakeMessage.HandshakeState.FINISHED;
- return HandshakeMessage.newBuilder().setKey(new DummyKey()).setHandshakeState(
- mState).build();
- }
-
- @Override
- public void invalidPin() {
- mState = HandshakeMessage.HandshakeState.INVALID;
- }
-
- @Override
- public void setIsReconnect(boolean isReconnect) {
- mIsReconnect = isReconnect;
- }
-
- private class DummyKey implements Key {
- @Override
- public byte[] asBytes() {
- return KEY.getBytes();
- }
-
- @Override
- public byte[] encryptData(byte[] data) {
- return data;
- }
-
- @Override
- public byte[] decryptData(byte[] encryptedData) {
- return encryptedData;
- }
-
- @Override
- public byte[] getUniqueSession() {
- return KEY.getBytes();
- }
- }
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunner.java b/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunner.java
deleted file mode 100644
index f0a34b2..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunner.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import android.annotation.NonNull;
-
-/**
- * A generalized interface that allows for generating shared secrets as well as encrypting
- * messages.
- *
- * To use this interface:
- *
- * <p>1. As a client.
- *
- * {@code
- * HandshakeMessage initialClientMessage = clientRunner.initHandshake();
- * sendToServer(initialClientMessage.getNextMessage());
- * byte message = getServerResponse();
- * HandshakeMessage message = clientRunner.continueHandshake(message);
- * }
- *
- * <p>If it is a first-time connection,
- *
- * {@code message.getHandshakeState()} should be VERIFICATION_NEEDED, show user the verification
- * code and ask to verify.
- * After user confirmed, {@code HandshakeMessage lastMessage = clientRunner.verifyPin();} otherwise
- * {@code clientRunner.invalidPin(); }
- *
- * Use {@code lastMessage.getKey()} to get the key for encryption.
- *
- * <p>If it is a reconnection,
- *
- * {@code message.getHandshakeState()} should be RESUMING_SESSION, PIN has been verified blindly,
- * send the authentication message over to server, then authenticate the message from server.
- *
- * {@code
- * clientMessage = clientRunner.initReconnectAuthentication(previousKey)
- * sendToServer(clientMessage.getNextMessage());
- * HandshakeMessage lastMessage = clientRunner.authenticateReconnection(previousKey, message)
- * }
- *
- * {@code lastMessage.getHandshakeState()} should be FINISHED if reconnection handshake is done.
- *
- * <p>2. As a server.
- *
- * {@code
- * byte[] initialMessage = getClientMessageBytes();
- * HandshakeMessage message = serverRunner.respondToInitRequest(initialMessage);
- * sendToClient(message.getNextMessage());
- * byte[] clientMessage = getClientResponse();
- * HandshakeMessage message = serverRunner.continueHandshake(clientMessage);}
- *
- * <p>if it is a first-time connection,
- *
- * {@code message.getHandshakeState()} should be VERIFICATION_NEEDED, show user the verification
- * code and ask to verify.
- * After PIN is confirmed, {@code HandshakeMessage lastMessage = serverRunner.verifyPin}, otherwise
- * {@code clientRunner.invalidPin(); }
- * Use {@code lastMessage.getKey()} to get the key for encryption.
- *
- * <p>If it is a reconnection,
- *
- * {@code message.getHandshakeState()} should be RESUMING_SESSION,PIN has been verified blindly,
- * waiting for client message.
- * After client message been received,
- * {@code serverMessage = serverRunner.authenticateReconnection(previousKey, message);
- * sendToClient(serverMessage.getNextMessage());}
- * {@code serverMessage.getHandshakeState()} should be FINISHED if reconnection handshake is done.
- *
- * Also see {@link EncryptionRunnerTest} for examples.
- */
-public interface EncryptionRunner {
-
- String TAG = "EncryptionRunner";
-
- /**
- * Starts an encryption handshake.
- *
- * @return A handshake message with information about the handshake that is started.
- */
- @NonNull
- HandshakeMessage initHandshake();
-
- /**
- * Starts an encryption handshake where the device that is being communicated with already
- * initiated the request.
- *
- * @param initializationRequest the bytes that the other device sent over.
- * @return a handshake message with information about the handshake.
- * @throws HandshakeException if initialization request is invalid.
- */
- @NonNull
- HandshakeMessage respondToInitRequest(@NonNull byte[] initializationRequest)
- throws HandshakeException;
-
- /**
- * Continues a handshake after receiving another response from the connected device.
- *
- * @param response the response from the other device.
- * @return a message that can be used to continue the handshake.
- * @throws HandshakeException if unexpected bytes in response.
- */
- @NonNull
- HandshakeMessage continueHandshake(@NonNull byte[] response) throws HandshakeException;
-
- /**
- * Verifies the pin shown to the user. The result is the next handshake message and will
- * typically contain an encryption key.
- *
- * @throws HandshakeException if not in state to verify pin.
- */
- @NonNull
- HandshakeMessage verifyPin() throws HandshakeException;
-
- /**
- * Notifies the encryption runner that the user failed to validate the pin. After calling this
- * method the runner should not be used, and will throw exceptions.
- */
- void invalidPin();
-
- /**
- * Verifies the reconnection message.
- *
- * <p>The message passed to this method should have been generated by
- * {@link #initReconnectAuthentication(byte[] previousKey)}.
- *
- * <p>If the message is valid, then a {@link HandshakeMessage} will be returned that contains
- * the encryption key and a handshake message which can be used to verify the other side of the
- * connection.
- *
- * @param previousKey previously stored key.
- * @param message message from the client
- * @return a handshake message with an encryption key if verification succeed.
- * @throws HandshakeException if the message does not match.
- */
- @NonNull
- HandshakeMessage authenticateReconnection(@NonNull byte[] message, @NonNull byte[] previousKey)
- throws HandshakeException;
-
- /**
- * Initiates the reconnection verification by generating a message that should be sent to the
- * device that is being reconnected to.
- *
- * @param previousKey previously stored key.
- * @return a handshake message with client's message which will be sent to server.
- * @throws HandshakeException when get encryption key's unique session fail.
- */
- @NonNull
- HandshakeMessage initReconnectAuthentication(@NonNull byte[] previousKey)
- throws HandshakeException;
-
- /**
- * De-serializes a previously serialized key generated by an instance of this encryption runner.
- *
- * @param serialized the serialized bytes of the key.
- * @return the Key object used for encryption.
- */
- @NonNull
- Key keyOf(@NonNull byte[] serialized);
-
- /**
- * Set the signal if it is a reconnection process.
- *
- * @param isReconnect {@code true} if it is a reconnect.
- */
- void setIsReconnect(boolean isReconnect);
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java b/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java
deleted file mode 100644
index 156abd8..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-/**
- * Factory that creates encryption runner.
- */
-public class EncryptionRunnerFactory {
-
- private EncryptionRunnerFactory() {
- // prevent instantiation.
- }
-
- /**
- * Creates a new {@link EncryptionRunner}.
- */
- public static EncryptionRunner newRunner() {
- return new Ukey2EncryptionRunner();
- }
-
- /**
- * Creates a new {@link EncryptionRunner} one that doesn't actually do encryption but is useful
- * for testing.
- */
- @VisibleForTesting
- public static EncryptionRunner newDummyRunner() {
- return new DummyEncryptionRunner();
- }
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeException.java b/EncryptionRunner/src/android/car/encryptionrunner/HandshakeException.java
deleted file mode 100644
index 185a21c..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-/**
- * Exception indicating an error during a Handshake of EncryptionRunner.
- */
-public class HandshakeException extends Exception {
-
- HandshakeException(String message) {
- super(message);
- }
-
- HandshakeException(Exception e) {
- super(e);
- }
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java b/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java
deleted file mode 100644
index fa6705d..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import android.annotation.IntDef;
-import android.annotation.Nullable;
-import android.text.TextUtils;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * During an {@link EncryptionRunner} handshake process, these are the messages returned as part
- * of each step.
- */
-public class HandshakeMessage {
-
- /**
- * States for handshake progress.
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({HandshakeState.UNKNOWN, HandshakeState.IN_PROGRESS, HandshakeState.VERIFICATION_NEEDED,
- HandshakeState.FINISHED, HandshakeState.INVALID, HandshakeState.RESUMING_SESSION,})
- public @interface HandshakeState {
- /**
- * The initial state, this value is not expected to be returned.
- */
- int UNKNOWN = 0;
- /**
- * The handshake is in progress.
- */
- int IN_PROGRESS = 1;
- /**
- * The handshake is complete, but verification of the code is needed.
- */
- int VERIFICATION_NEEDED = 2;
- /**
- * The handshake is complete.
- */
- int FINISHED = 3;
- /**
- * The handshake is complete and not successful.
- */
- int INVALID = 4;
- /**
- * The handshake is complete, but extra verification is needed.
- */
- int RESUMING_SESSION = 5;
- }
-
- @HandshakeState
- private final int mHandshakeState;
- private final Key mKey;
- private final byte[] mNextMessage;
- private final String mVerificationCode;
-
- /**
- * @return Returns a builder for {@link HandshakeMessage}.
- */
- public static Builder newBuilder() {
- return new Builder();
- }
-
- /**
- * Use the builder;
- */
- private HandshakeMessage(
- @HandshakeState int handshakeState,
- @Nullable Key key,
- @Nullable byte[] nextMessage,
- @Nullable String verificationCode) {
- mHandshakeState = handshakeState;
- mKey = key;
- mNextMessage = nextMessage;
- mVerificationCode = verificationCode;
- }
-
- /**
- * Returns the next message to send in a handshake.
- */
- @Nullable
- public byte[] getNextMessage() {
- return mNextMessage == null ? null : mNextMessage.clone();
- }
-
- /**
- * Returns the state of the handshake.
- */
- @HandshakeState
- public int getHandshakeState() {
- return mHandshakeState;
- }
-
- /**
- * Returns the encryption key that can be used to encrypt data.
- */
- @Nullable
- public Key getKey() {
- return mKey;
- }
-
- /**
- * Returns a verification code to show to the user.
- */
- @Nullable
- public String getVerificationCode() {
- return mVerificationCode;
- }
-
- static class Builder {
- @HandshakeState
- int mHandshakeState;
- Key mKey;
- byte[] mNextMessage;
- String mVerificationCode;
-
- Builder setHandshakeState(@HandshakeState int handshakeState) {
- mHandshakeState = handshakeState;
- return this;
- }
-
- Builder setKey(@Nullable Key key) {
- mKey = key;
- return this;
- }
-
- Builder setNextMessage(@Nullable byte[] nextMessage) {
- mNextMessage = nextMessage == null ? null : nextMessage.clone();
- return this;
- }
-
- Builder setVerificationCode(@Nullable String verificationCode) {
- mVerificationCode = verificationCode;
- return this;
- }
-
- HandshakeMessage build() {
- if (mHandshakeState == HandshakeState.UNKNOWN) {
- throw new IllegalStateException("must set handshake state before calling build");
- }
- if (mHandshakeState == HandshakeState.VERIFICATION_NEEDED
- && TextUtils.isEmpty(mVerificationCode)) {
- throw new IllegalStateException(
- "if state is verification needed, must have verification code");
- }
- return new HandshakeMessage(mHandshakeState, mKey, mNextMessage, mVerificationCode);
- }
-
- }
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/Key.java b/EncryptionRunner/src/android/car/encryptionrunner/Key.java
deleted file mode 100644
index 2e32858..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/Key.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import android.annotation.NonNull;
-
-import java.security.NoSuchAlgorithmException;
-import java.security.SignatureException;
-
-/**
- * Represents a serializable encryption key.
- */
-public interface Key {
- /**
- * Returns a serialized encryption key.
- */
- @NonNull
- byte[] asBytes();
-
- /**
- * Encrypts data using this key.
- *
- * @param data the data to be encrypted
- * @return the encrypted data.
- */
- @NonNull
- byte[] encryptData(@NonNull byte[] data);
-
- /**
- * Decrypts data using this key.
- *
- * @param encryptedData The encrypted data.
- * @return decrypted data.
- * @throws SignatureException if encrypted data is not properly signed.
- */
- @NonNull
- byte[] decryptData(@NonNull byte[] encryptedData) throws SignatureException;
-
- /**
- * Returns a cryptographic digest of the key.
- *
- * @throws NoSuchAlgorithmException when a unique session can not be created.
- */
- @NonNull
- byte[] getUniqueSession() throws NoSuchAlgorithmException;
-}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java b/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java
deleted file mode 100644
index 904d5c2..0000000
--- a/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * 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 android.car.encryptionrunner;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.util.Log;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import com.google.security.cryptauth.lib.securegcm.D2DConnectionContext;
-import com.google.security.cryptauth.lib.securegcm.Ukey2Handshake;
-import com.google.security.cryptauth.lib.securemessage.CryptoOps;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.security.InvalidKeyException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SignatureException;
-
-import javax.crypto.spec.SecretKeySpec;
-
-/**
- * An {@link EncryptionRunner} that uses Ukey2 as the underlying implementation.
- */
-public class Ukey2EncryptionRunner implements EncryptionRunner {
-
- private static final Ukey2Handshake.HandshakeCipher CIPHER =
- Ukey2Handshake.HandshakeCipher.P256_SHA512;
- private static final int RESUME_HMAC_LENGTH = 32;
- private static final byte[] RESUME = "RESUME".getBytes();
- private static final byte[] SERVER = "SERVER".getBytes();
- private static final byte[] CLIENT = "CLIENT".getBytes();
- private static final int AUTH_STRING_LENGTH = 6;
-
- @IntDef({Mode.UNKNOWN, Mode.CLIENT, Mode.SERVER})
- private @interface Mode {
- int UNKNOWN = 0;
- int CLIENT = 1;
- int SERVER = 2;
- }
-
- private Ukey2Handshake mUkey2client;
- private boolean mRunnerIsInvalid;
- private Key mCurrentKey;
- private byte[] mCurrentUniqueSesion;
- private byte[] mPrevUniqueSesion;
- private boolean mIsReconnect;
- private boolean mInitReconnectionVerification;
- @Mode
- private int mMode = Mode.UNKNOWN;
-
- @Override
- public HandshakeMessage initHandshake() {
- checkRunnerIsNew();
- mMode = Mode.CLIENT;
- try {
- mUkey2client = Ukey2Handshake.forInitiator(CIPHER);
- return HandshakeMessage.newBuilder()
- .setHandshakeState(getHandshakeState())
- .setNextMessage(mUkey2client.getNextHandshakeMessage())
- .build();
- } catch (com.google.security.cryptauth.lib.securegcm.HandshakeException e) {
- Log.e(TAG, "unexpected exception", e);
- throw new RuntimeException(e);
- }
-
- }
-
- @Override
- public void setIsReconnect(boolean isReconnect) {
- mIsReconnect = isReconnect;
- }
-
- @Override
- public HandshakeMessage respondToInitRequest(byte[] initializationRequest)
- throws HandshakeException {
- checkRunnerIsNew();
- mMode = Mode.SERVER;
- try {
- if (mUkey2client != null) {
- throw new IllegalStateException("Cannot reuse encryption runners, "
- + "this one is already initialized");
- }
- mUkey2client = Ukey2Handshake.forResponder(CIPHER);
- mUkey2client.parseHandshakeMessage(initializationRequest);
- return HandshakeMessage.newBuilder()
- .setHandshakeState(getHandshakeState())
- .setNextMessage(mUkey2client.getNextHandshakeMessage())
- .build();
-
- } catch (com.google.security.cryptauth.lib.securegcm.HandshakeException
- | Ukey2Handshake.AlertException e) {
- throw new HandshakeException(e);
- }
- }
-
- private void checkRunnerIsNew() {
- if (mUkey2client != null) {
- throw new IllegalStateException("This runner is already initialized.");
- }
- }
-
-
- @Override
- public HandshakeMessage continueHandshake(byte[] response) throws HandshakeException {
- checkInitialized();
- try {
- if (mUkey2client.getHandshakeState() != Ukey2Handshake.State.IN_PROGRESS) {
- throw new IllegalStateException("handshake is not in progress, state ="
- + mUkey2client.getHandshakeState());
- }
- mUkey2client.parseHandshakeMessage(response);
-
- // Not obvious from ukey2 api, but getting the next message can change the state.
- // calling getNext message might go from in progress to verification needed, on
- // the assumption that we already send this message to the peer.
- byte[] nextMessage = null;
- if (mUkey2client.getHandshakeState() == Ukey2Handshake.State.IN_PROGRESS) {
- nextMessage = mUkey2client.getNextHandshakeMessage();
- }
- String verificationCode = null;
- if (mUkey2client.getHandshakeState() == Ukey2Handshake.State.VERIFICATION_NEEDED) {
- // getVerificationString() needs to be called before verifyPin().
- verificationCode = generateReadablePairingCode(
- mUkey2client.getVerificationString(AUTH_STRING_LENGTH));
- if (mIsReconnect) {
- HandshakeMessage handshakeMessage = verifyPin();
- return HandshakeMessage.newBuilder()
- .setHandshakeState(handshakeMessage.getHandshakeState())
- .setNextMessage(nextMessage)
- .build();
- }
- }
- return HandshakeMessage.newBuilder()
- .setHandshakeState(getHandshakeState())
- .setNextMessage(nextMessage)
- .setVerificationCode(verificationCode)
- .build();
- } catch (com.google.security.cryptauth.lib.securegcm.HandshakeException
- | Ukey2Handshake.AlertException e) {
- throw new HandshakeException(e);
- }
- }
-
- /**
- * Returns a human-readable pairing code string generated from the verification bytes. Converts
- * each byte into a digit with a simple modulo.
- *
- * <p>This should match the implementation in the iOS and Android client libraries.
- */
- @VisibleForTesting
- String generateReadablePairingCode(byte[] verificationCode) {
- StringBuilder outString = new StringBuilder();
- for (byte b : verificationCode) {
- int unsignedInt = Byte.toUnsignedInt(b);
- int digit = unsignedInt % 10;
- outString.append(digit);
- }
-
- return outString.toString();
- }
-
- private static class UKey2Key implements Key {
-
- private final D2DConnectionContext mConnectionContext;
-
- UKey2Key(@NonNull D2DConnectionContext connectionContext) {
- this.mConnectionContext = connectionContext;
- }
-
- @Override
- public byte[] asBytes() {
- return mConnectionContext.saveSession();
- }
-
- @Override
- public byte[] encryptData(byte[] data) {
- return mConnectionContext.encodeMessageToPeer(data);
- }
-
- @Override
- public byte[] decryptData(byte[] encryptedData) throws SignatureException {
- return mConnectionContext.decodeMessageFromPeer(encryptedData);
- }
-
- @Override
- public byte[] getUniqueSession() throws NoSuchAlgorithmException {
- return mConnectionContext.getSessionUnique();
- }
- }
-
- @Override
- public HandshakeMessage verifyPin() throws HandshakeException {
- checkInitialized();
- mUkey2client.verifyHandshake();
- int state = getHandshakeState();
- try {
- mCurrentKey = new UKey2Key(mUkey2client.toConnectionContext());
- } catch (com.google.security.cryptauth.lib.securegcm.HandshakeException e) {
- throw new HandshakeException(e);
- }
- return HandshakeMessage.newBuilder()
- .setHandshakeState(state)
- .setKey(mCurrentKey)
- .build();
- }
-
- /**
- * <p>After getting message from the other device, authenticate the message with the previous
- * stored key.
- *
- * If current device inits the reconnection authentication by calling {@code
- * initReconnectAuthentication} and sends the message to the other device, the other device
- * will call {@code authenticateReconnection()} with the received message and send its own
- * message back to the init device. The init device will call {@code
- * authenticateReconnection()} on the received message, but do not need to set the next
- * message.
- */
- @Override
- public HandshakeMessage authenticateReconnection(byte[] message, byte[] previousKey)
- throws HandshakeException {
- if (!mIsReconnect) {
- throw new HandshakeException(
- "Reconnection authentication requires setIsReconnect(true)");
- }
- if (mCurrentKey == null) {
- throw new HandshakeException("Current key is null, make sure verifyPin() is called.");
- }
- if (message.length != RESUME_HMAC_LENGTH) {
- mRunnerIsInvalid = true;
- throw new HandshakeException("Failing because (message.length =" + message.length
- + ") is not equal to " + RESUME_HMAC_LENGTH);
- }
- try {
- mCurrentUniqueSesion = mCurrentKey.getUniqueSession();
- mPrevUniqueSesion = keyOf(previousKey).getUniqueSession();
- } catch (NoSuchAlgorithmException e) {
- throw new HandshakeException(e);
- }
- switch (mMode) {
- case Mode.SERVER:
- if (!MessageDigest.isEqual(
- message, computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, CLIENT))) {
- mRunnerIsInvalid = true;
- throw new HandshakeException("Reconnection authentication failed.");
- }
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.FINISHED)
- .setKey(mCurrentKey)
- .setNextMessage(mInitReconnectionVerification ? null
- : computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, SERVER))
- .build();
- case Mode.CLIENT:
- if (!MessageDigest.isEqual(
- message, computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, SERVER))) {
- mRunnerIsInvalid = true;
- throw new HandshakeException("Reconnection authentication failed.");
- }
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.FINISHED)
- .setKey(mCurrentKey)
- .setNextMessage(mInitReconnectionVerification ? null
- : computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, CLIENT))
- .build();
- default:
- throw new IllegalStateException(
- "Encountered unexpected role during authenticateReconnection: " + mMode);
- }
- }
-
- /**
- * Both client and server can call this method to send authentication message to the other
- * device.
- */
- @Override
- public HandshakeMessage initReconnectAuthentication(byte[] previousKey)
- throws HandshakeException {
- if (!mIsReconnect) {
- throw new HandshakeException(
- "Reconnection authentication requires setIsReconnect(true).");
- }
- if (mCurrentKey == null) {
- throw new HandshakeException("Current key is null, make sure verifyPin() is called.");
- }
- mInitReconnectionVerification = true;
- try {
- mCurrentUniqueSesion = mCurrentKey.getUniqueSession();
- mPrevUniqueSesion = keyOf(previousKey).getUniqueSession();
- } catch (NoSuchAlgorithmException e) {
- throw new HandshakeException(e);
- }
- switch (mMode) {
- case Mode.SERVER:
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.RESUMING_SESSION)
- .setNextMessage(computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, SERVER))
- .build();
- case Mode.CLIENT:
- return HandshakeMessage.newBuilder()
- .setHandshakeState(HandshakeMessage.HandshakeState.RESUMING_SESSION)
- .setNextMessage(computeMAC(mPrevUniqueSesion, mCurrentUniqueSesion, CLIENT))
- .build();
- default:
- throw new IllegalStateException(
- "Encountered unexpected role during authenticateReconnection: " + mMode);
- }
- }
-
- @HandshakeMessage.HandshakeState
- private int getHandshakeState() {
- checkInitialized();
- switch (mUkey2client.getHandshakeState()) {
- case ALREADY_USED:
- case ERROR:
- throw new IllegalStateException("unexpected error state");
- case FINISHED:
- if (mIsReconnect) {
- return HandshakeMessage.HandshakeState.RESUMING_SESSION;
- }
- return HandshakeMessage.HandshakeState.FINISHED;
- case IN_PROGRESS:
- return HandshakeMessage.HandshakeState.IN_PROGRESS;
- case VERIFICATION_IN_PROGRESS:
- case VERIFICATION_NEEDED:
- return HandshakeMessage.HandshakeState.VERIFICATION_NEEDED;
- default:
- throw new IllegalStateException("unexpected handshake state");
- }
- }
-
- @Override
- public Key keyOf(byte[] serialized) {
- return new UKey2Key(D2DConnectionContext.fromSavedSession(serialized));
- }
-
- @Override
- public void invalidPin() {
- mRunnerIsInvalid = true;
- }
-
- private UKey2Key checkIsUkey2Key(Key key) {
- if (!(key instanceof UKey2Key)) {
- throw new IllegalArgumentException("wrong key type");
- }
- return (UKey2Key) key;
- }
-
- private void checkInitialized() {
- if (mUkey2client == null) {
- throw new IllegalStateException("runner not initialized");
- }
- if (mRunnerIsInvalid) {
- throw new IllegalStateException("runner has been invalidated");
- }
- }
-
- @Nullable
- private byte[] computeMAC(byte[] previous, byte[] next, byte[] info) {
- try {
- SecretKeySpec inputKeyMaterial = new SecretKeySpec(
- concatByteArrays(previous, next), "" /* key type is just plain raw bytes */);
- return CryptoOps.hkdf(inputKeyMaterial, RESUME, info);
- } catch (NoSuchAlgorithmException | InvalidKeyException e) {
- // Does not happen in practice
- Log.e(TAG, "Compute MAC failed");
- return null;
- }
- }
-
- private static byte[] concatByteArrays(@NonNull byte[] a, @NonNull byte[] b) {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- try {
- outputStream.write(a);
- outputStream.write(b);
- } catch (IOException e) {
- return new byte[0];
- }
- return outputStream.toByteArray();
- }
-}
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index a810f8e..f8d8dac 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -2,7 +2,7 @@
checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
ktlint_hook = ${REPO_ROOT}/prebuilts/ktlint/ktlint.py -f ${PREUPLOAD_FILES}
chassis_current_hook = car-ui-lib/tests/apitest/auto-generate-resources.py --sha ${PREUPLOAD_COMMIT} --compare
-chassis_findviewbyid_check = car-ui-lib/findviewbyid-preupload-hook.sh
+
[Builtin Hooks]
commit_msg_changeid_field = true
commit_msg_test_field = true
diff --git a/android-car-lib/Android.mk b/android-car-lib/Android.mk
deleted file mode 100644
index a7cd0b3..0000000
--- a/android-car-lib/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (C) 2015 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_AAPT2_ONLY := true
-
-LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
- android-car:android-car.aar
-
-include $(BUILD_MULTI_PREBUILT)
diff --git a/android-car-lib/android-car-lib.mk b/android-car-lib/android-car-lib.mk
deleted file mode 100644
index 419daab..0000000
--- a/android-car-lib/android-car-lib.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Include this make file to build your application with car ui.
-# This only applied to app which is not CarActivity based but wants to use car-ui.
-#
-# Make sure to include it after you've set all your desired LOCAL variables.
-# Note that you must explicitly set your LOCAL_RESOURCE_DIR before including this file.
-#
-# For example:
-#
-# LOCAL_RESOURCE_DIR := \
-# $(LOCAL_PATH)/res
-#
-# In your .mk file, include the items in the following order, to ensure the prebuilt
-# static libraries are included in the correct order.
-#
-# include vendor/auto/embedded/prebuilts/android-car-lib/car-lib.mk
-# include $(BUILD_PACKAGE)
-# include vendor/auto/embedded/prebuilts/android-car-lib/Android.mk
-
-# Check that LOCAL_RESOURCE_DIR is defined
-ifeq (,$(LOCAL_RESOURCE_DIR))
-$(error LOCAL_RESOURCE_DIR must be defined)
-endif
-
-LOCAL_STATIC_JAVA_AAR_LIBRARIES += android-car
-
-# Work around limitations of AAR prebuilts
-LOCAL_RESOURCE_DIR += packages/apps/Car/libs/android-car-lib/res
-
-# Include support-v7-appcompat, if not already included
-ifeq (,$(findstring android-support-v7-appcompat,$(LOCAL_STATIC_JAVA_LIBRARIES)))
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v7-appcompat
-endif
-
-# Include support-v7-recyclerview, if not already included
-ifeq (,$(findstring android-support-v7-recyclerview,$(LOCAL_STATIC_JAVA_LIBRARIES)))
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v7-recyclerview
-endif
-
-# Include support-v7-cardview, if not already included
-ifeq (,$(findstring android-support-v7-cardview,$(LOCAL_STATIC_JAVA_LIBRARIES)))
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v7-cardview
-endif
-
-# Include support-design, if not already included
-ifeq (,$(findstring android-support-design,$(LOCAL_STATIC_JAVA_LIBRARIES)))
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-design
-endif
-
-# Include support-v4, if not already included
-ifeq (,$(findstring android-support-v4,$(LOCAL_STATIC_JAVA_LIBRARIES)))
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v4
-endif
diff --git a/android-car-lib/android-car.aar b/android-car-lib/android-car.aar
deleted file mode 100644
index ff03a9c..0000000
--- a/android-car-lib/android-car.aar
+++ /dev/null
Binary files differ
diff --git a/android-car-lib/car-release.aar b/android-car-lib/car-release.aar
deleted file mode 100644
index ff03a9c..0000000
--- a/android-car-lib/car-release.aar
+++ /dev/null
Binary files differ
diff --git a/android-car-lib/res/anim/fade_in_trans_left.xml b/android-car-lib/res/anim/fade_in_trans_left.xml
deleted file mode 100644
index 2d6bab5..0000000
--- a/android-car-lib/res/anim/fade_in_trans_left.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:duration="@android:integer/config_shortAnimTime">
- <translate
- android:interpolator="@android:interpolator/decelerate_quint"
- android:fromXDelta="-10%p"
- android:toXDelta="0" />
-
- <alpha
- android:fromAlpha="0.2"
- android:toAlpha="1"
- android:interpolator="@android:interpolator/decelerate_quint" />
-</set>
diff --git a/android-car-lib/res/anim/fade_in_trans_left_layout_anim.xml b/android-car-lib/res/anim/fade_in_trans_left_layout_anim.xml
deleted file mode 100644
index e7660db..0000000
--- a/android-car-lib/res/anim/fade_in_trans_left_layout_anim.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<layoutAnimation
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:animation="@anim/fade_in_trans_left"
- android:delay="0%"
- android:animationOrder="normal" />
diff --git a/android-car-lib/res/anim/fade_in_trans_right.xml b/android-car-lib/res/anim/fade_in_trans_right.xml
deleted file mode 100644
index 5cbeb59..0000000
--- a/android-car-lib/res/anim/fade_in_trans_right.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:duration="@android:integer/config_shortAnimTime">
- <translate
- android:interpolator="@android:interpolator/decelerate_quint"
- android:fromXDelta="10%p"
- android:toXDelta="0" />
-
- <alpha
- android:fromAlpha="0.2"
- android:toAlpha="1"
- android:interpolator="@android:interpolator/decelerate_quint" />
-</set>
diff --git a/android-car-lib/res/anim/fade_in_trans_right_layout_anim.xml b/android-car-lib/res/anim/fade_in_trans_right_layout_anim.xml
deleted file mode 100644
index b76de23..0000000
--- a/android-car-lib/res/anim/fade_in_trans_right_layout_anim.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<layoutAnimation
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:animation="@anim/fade_in_trans_right"
- android:delay="0%"
- android:animationOrder="normal" />
diff --git a/android-car-lib/res/anim/lock_out_message_bar.xml b/android-car-lib/res/anim/lock_out_message_bar.xml
deleted file mode 100644
index e70a4ef..0000000
--- a/android-car-lib/res/anim/lock_out_message_bar.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<set
- xmlns:android="http://schemas.android.com/apk/res/android" >
- <objectAnimator
- android:duration="@integer/speed_bump_lock_out_duration_ms"
- android:propertyName="pathData"
- android:valueFrom="M 96.5,48.5 c 0.0,26.5096740723 -21.4903259277,48.0 -48.0,48.0 c 0.0,0.0 -384.0,0.0 -384.0,0.0 c -26.5096740723,0.0 -48.0,-21.4903259277 -48.0,-48.0 c 0.0,-26.5096740723 21.4903259277,-48.0 48.0,-48.0 c 0.0,0.0 384.0,0.0 384.0,0.0 c 26.5096740723,0.0 48.0,21.4903411865 48.0,48.0 Z"
- android:valueTo="M 480.5,48.5 c 0.0,26.5096740723 -21.4903259277,48.0 -48.0,48.0 c 0.0,0.0 -384.0,0.0 -384.0,0.0 c -26.5096740723,0.0 -48.0,-21.4903259277 -48.0,-48.0 c 0.0,-26.5096740723 21.4903259277,-48.0 48.0,-48.0 c 0.0,0.0 384.0,0.0 384.0,0.0 c 26.5096740723,0.0 48.0,21.4903259277 48.0,48.0 Z"
- android:valueType="pathType"
- android:interpolator="@interpolator/speed_bump_interpolator" />
-</set>
diff --git a/android-car-lib/res/anim/lock_out_message_bg_color_change.xml b/android-car-lib/res/anim/lock_out_message_bg_color_change.xml
deleted file mode 100644
index 6d56ff4..0000000
--- a/android-car-lib/res/anim/lock_out_message_bg_color_change.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<set
- xmlns:android="http://schemas.android.com/apk/res/android" >
- <objectAnimator
- android:startOffset="@integer/speed_bump_lock_out_color_change_start_delay_ms"
- android:duration="@integer/speed_bump_lock_out_color_change_ms"
- android:propertyName="fillColor"
- android:valueFrom="#FF029AE5"
- android:valueTo="#FF26994B"
- android:interpolator="@android:interpolator/linear" />
-</set>
diff --git a/android-car-lib/res/anim/lock_out_message_in.xml b/android-car-lib/res/anim/lock_out_message_in.xml
deleted file mode 100644
index aae3d17..0000000
--- a/android-car-lib/res/anim/lock_out_message_in.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <alpha
- android:fromAlpha="0"
- android:toAlpha="1.0"
- android:fillEnabled="true"
- android:fillBefore="true"
- android:fillAfter="true"
- android:interpolator="@android:interpolator/accelerate_quint"
- android:duration="@integer/speed_bump_fade_duration_ms"/>
- <translate
- android:fromYDelta="100%"
- android:toYDelta="0%"
- android:fillEnabled="true"
- android:fillBefore="true"
- android:fillAfter="true"
- android:interpolator="@android:interpolator/linear_out_slow_in"
- android:duration="@integer/speed_bump_translate_y_duration_ms"/>
-</set>
diff --git a/android-car-lib/res/anim/lock_out_message_out.xml b/android-car-lib/res/anim/lock_out_message_out.xml
deleted file mode 100644
index 3044d0a..0000000
--- a/android-car-lib/res/anim/lock_out_message_out.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Copyright (C) 2018 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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <alpha
- android:fromAlpha="1.0"
- android:toAlpha="0"
- android:fillEnabled="true"
- android:fillBefore="true"
- android:fillAfter="true"
- android:interpolator="@android:interpolator/accelerate_quint"
- android:duration="@integer/speed_bump_fade_duration_ms"/>
-</set>
diff --git a/android-car-lib/res/drawable/car_action_button_activated_ring_foreground.xml b/android-car-lib/res/drawable/car_action_button_activated_ring_foreground.xml
deleted file mode 100644
index cf9570b..0000000
--- a/android-car-lib/res/drawable/car_action_button_activated_ring_foreground.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<selector
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_activated="true">
- <shape
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <stroke
- android:color="@color/car_tint"
- android:width="@dimen/car_action_bar_activation_ring_stroke_width">
- </stroke>
- <size
- android:height="@dimen/car_action_bar_activation_ring_radius"
- android:width="@dimen/car_action_bar_activation_ring_radius"/>
- </shape>
- </item>
- <!--Yes, this is a load-bearing invisible circle.-->
- <!--Android doesn't remeasure foregrounds when state_activated changes, -->
- <!--so we need a default drawable with the same size as the one we actually want to draw-->
- <item>
- <shape
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <stroke
- android:color="#00000000"
- android:width="@dimen/car_action_bar_activation_ring_stroke_width">
- </stroke>
- <size
- android:height="@dimen/car_action_bar_activation_ring_radius"
- android:width="@dimen/car_action_bar_activation_ring_radius"/>
- </shape>
- </item>
-</selector>
diff --git a/android-car-lib/res/drawable/car_action_button_background.xml b/android-car-lib/res/drawable/car_action_button_background.xml
deleted file mode 100644
index 27e97e3..0000000
--- a/android-car-lib/res/drawable/car_action_button_background.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<inset xmlns:android="http://schemas.android.com/apk/res/android"
- android:inset="@dimen/car_action_button_ripple_inset" >
- <ripple android:color="@color/car_card_ripple_background" />
-</inset>
diff --git a/android-car-lib/res/drawable/car_borderless_button_text_color.xml b/android-car-lib/res/drawable/car_borderless_button_text_color.xml
deleted file mode 100644
index 27f79f0..0000000
--- a/android-car-lib/res/drawable/car_borderless_button_text_color.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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.
--->
-<!-- Default text colors for car buttons when enabled/disabled. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:color="@color/car_grey_700" android:state_enabled="false"/>
- <item android:color="?android:attr/colorButtonNormal"/>
-</selector>
diff --git a/android-car-lib/res/drawable/car_button_background.xml b/android-car-lib/res/drawable/car_button_background.xml
deleted file mode 100644
index 58aa739..0000000
--- a/android-car-lib/res/drawable/car_button_background.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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.
--->
-<!-- Default background styles for car buttons when enabled/disabled. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_enabled="false">
- <shape android:shape="rectangle">
- <corners android:radius="@dimen/car_button_radius"/>
- <solid android:color="@color/car_grey_300"/>
- </shape>
- </item>
- <item>
- <shape android:shape="rectangle">
- <corners android:radius="@dimen/car_button_radius"/>
- <solid android:color="?android:attr/colorButtonNormal"/>
- </shape>
- </item>
-</selector>
diff --git a/android-car-lib/res/drawable/car_button_text_color.xml b/android-car-lib/res/drawable/car_button_text_color.xml
deleted file mode 100644
index bb8c681..0000000
--- a/android-car-lib/res/drawable/car_button_text_color.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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.
--->
-<!-- Default text colors for car buttons when enabled/disabled. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:color="@color/car_grey_700" android:state_enabled="false"/>
- <item android:color="@color/car_action1"/>
-</selector>
diff --git a/android-car-lib/res/drawable/car_card_ripple_background.xml b/android-car-lib/res/drawable/car_card_ripple_background.xml
deleted file mode 100644
index ca20e0f..0000000
--- a/android-car-lib/res/drawable/car_card_ripple_background.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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.
- -->
-<ripple
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/car_card_ripple_background">
- <item
- android:id="@android:id/mask"
- android:drawable="@android:color/white" />
-</ripple>
diff --git a/android-car-lib/res/drawable/car_card_ripple_background_day.xml b/android-car-lib/res/drawable/car_card_ripple_background_day.xml
deleted file mode 100644
index 880ff7a..0000000
--- a/android-car-lib/res/drawable/car_card_ripple_background_day.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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.
- -->
-<ripple
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/car_card_ripple_background_dark">
- <item
- android:id="@android:id/mask"
- android:drawable="@android:color/white" />
-</ripple>
diff --git a/android-car-lib/res/drawable/car_card_ripple_background_inverse.xml b/android-car-lib/res/drawable/car_card_ripple_background_inverse.xml
deleted file mode 100644
index e063e2c..0000000
--- a/android-car-lib/res/drawable/car_card_ripple_background_inverse.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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.
- -->
-<ripple
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/car_card_ripple_background_inverse" >
- <item
- android:id="@android:id/mask"
- android:drawable="@android:color/white" />
-</ripple>
diff --git a/android-car-lib/res/drawable/car_card_ripple_background_night.xml b/android-car-lib/res/drawable/car_card_ripple_background_night.xml
deleted file mode 100644
index 5d4f2c6..0000000
--- a/android-car-lib/res/drawable/car_card_ripple_background_night.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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.
- -->
-<ripple
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/car_card_ripple_background_light">
- <item
- android:id="@android:id/mask"
- android:drawable="@android:color/white" />
-</ripple>
diff --git a/android-car-lib/res/drawable/car_card_rounded_background.xml b/android-car-lib/res/drawable/car_card_rounded_background.xml
deleted file mode 100644
index 594705b..0000000
--- a/android-car-lib/res/drawable/car_card_rounded_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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">
- <solid android:color="@color/car_card"/>
- <corners
- android:radius="@dimen/car_radius_3"/>
-</shape>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_card_rounded_bottom_background.xml b/android-car-lib/res/drawable/car_card_rounded_bottom_background.xml
deleted file mode 100644
index 35dba13..0000000
--- a/android-car-lib/res/drawable/car_card_rounded_bottom_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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">
- <solid android:color="@color/car_card"/>
- <corners
- android:bottomRightRadius="@dimen/car_radius_3"
- android:bottomLeftRadius="@dimen/car_radius_3"/>
-</shape>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_card_rounded_top_background.xml b/android-car-lib/res/drawable/car_card_rounded_top_background.xml
deleted file mode 100644
index dfb5622..0000000
--- a/android-car-lib/res/drawable/car_card_rounded_top_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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">
- <solid android:color="@color/car_card"/>
- <corners
- android:topRightRadius="@dimen/car_radius_3"
- android:topLeftRadius="@dimen/car_radius_3"/>
-</shape>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_drawer_list_item_background.xml b/android-car-lib/res/drawable/car_drawer_list_item_background.xml
deleted file mode 100644
index c5fc36b..0000000
--- a/android-car-lib/res/drawable/car_drawer_list_item_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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.
- -->
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/car_card_ripple_background">
- <item android:id="@android:id/mask">
- <color android:color="#ffffffff" />
- </item>
-</ripple>
diff --git a/android-car-lib/res/drawable/car_list_divider.xml b/android-car-lib/res/drawable/car_list_divider.xml
deleted file mode 100644
index 14a5ce1..0000000
--- a/android-car-lib/res/drawable/car_list_divider.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-
-<!-- Drawable of dividers used in lists -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <size android:height="@dimen/car_list_divider_height"/>
- <solid android:color="@color/car_list_divider"/>
-</shape>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_list_divider_dark.xml b/android-car-lib/res/drawable/car_list_divider_dark.xml
deleted file mode 100644
index 4760623..0000000
--- a/android-car-lib/res/drawable/car_list_divider_dark.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<!-- Drawable of dividers used in lists -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <size android:height="@dimen/car_list_divider_height"/>
- <solid android:color="@color/car_list_divider_dark"/>
-</shape>
diff --git a/android-car-lib/res/drawable/car_list_divider_light.xml b/android-car-lib/res/drawable/car_list_divider_light.xml
deleted file mode 100644
index 07b52dd..0000000
--- a/android-car-lib/res/drawable/car_list_divider_light.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<!-- Drawable of dividers used in lists -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <size android:height="@dimen/car_list_divider_height"/>
- <solid android:color="@color/car_list_divider_light"/>
-</shape>
diff --git a/android-car-lib/res/drawable/car_scrollbar_thumb.xml b/android-car-lib/res/drawable/car_scrollbar_thumb.xml
deleted file mode 100644
index 42aaebf..0000000
--- a/android-car-lib/res/drawable/car_scrollbar_thumb.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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">
- <solid android:color="@color/car_scrollbar_thumb" />
- <corners android:radius="@dimen/car_radius_5"/>
-</shape>
diff --git a/android-car-lib/res/drawable/car_seekbar_thumb.xml b/android-car-lib/res/drawable/car_seekbar_thumb.xml
deleted file mode 100644
index a5c4910..0000000
--- a/android-car-lib/res/drawable/car_seekbar_thumb.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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="oval">
- <solid android:color="@color/car_accent" />
- <size
- android:width="@dimen/car_seekbar_thumb_size"
- android:height="@dimen/car_seekbar_thumb_size" />
-</shape>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_seekbar_track.xml b/android-car-lib/res/drawable/car_seekbar_track.xml
deleted file mode 100644
index 05700c2..0000000
--- a/android-car-lib/res/drawable/car_seekbar_track.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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
- -->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@android:id/background">
- <shape android:shape="line">
- <stroke
- android:width="@dimen/car_seekbar_height"
- android:color="@color/car_seekbar_track_background" />
- </shape>
- </item>
- <item android:id="@android:id/progress">
- <clip>
- <shape android:shape="line">
- <stroke
- android:width="@dimen/car_seekbar_height"
- android:color="@color/car_accent" />
- </shape>
- </clip>
- </item>
-</layer-list>
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/ic_down.xml b/android-car-lib/res/drawable/ic_down.xml
deleted file mode 100644
index cd486c1..0000000
--- a/android-car-lib/res/drawable/ic_down.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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="76dp"
- android:height="76dp"
- android:viewportWidth="76.0"
- android:viewportHeight="76.0">
- <path
- android:pathData="M38,0.96C17.01,0.96 0,17.75 0,38.47C0,59.18 17.01,75.97 38,75.97C58.99,75.97 76,59.18 76,38.47C76,17.75 58.99,0.96 38,0.96M38,3.3C57.64,3.3 73.62,19.08 73.62,38.47C73.62,57.85 57.64,73.63 38,73.63C18.36,73.63 2.38,57.86 2.38,38.47C2.38,19.08 18.36,3.3 38,3.3"
- android:strokeColor="#00000000"
- android:fillColor="#212121"
- android:strokeWidth="1"/>
- <path
- android:pathData="M26.63,31.09l11.37,11.08l11.37,-11.08l3.5,3.42l-14.87,14.5l-14.87,-14.5z"
- android:strokeColor="#00000000"
- android:fillColor="#212121"
- android:strokeWidth="1"/>
-</vector>
diff --git a/android-car-lib/res/drawable/ic_list_view_disable.xml b/android-car-lib/res/drawable/ic_list_view_disable.xml
deleted file mode 100644
index 8649423..0000000
--- a/android-car-lib/res/drawable/ic_list_view_disable.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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="176dp"
- android:height="176dp"
- android:viewportWidth="176.0"
- android:viewportHeight="176.0">
- <path
- android:pathData="M88.99,55.55l15.71,15.71l46.13,0l0,-15.71z"
- android:fillColor="#212121"/>
- <path
- android:pathData="M25.19,119.06h66.5v15.71h-66.5z"
- android:fillColor="#212121"/>
- <path
- android:pathData="M114.58,103.35l-15.71,-15.71l-0.12,0l-16.38,-16.38l0.12,0l-15.71,-15.71l-0.12,0l-30.29,-30.29l-11.11,11.11l19.19,19.18l-19.28,0l0,15.71l34.98,0l16.39,16.38l-51.37,0l0,15.71l67.08,0l47.38,47.39l11.11,-11.11l-36.28,-36.28z"
- android:fillColor="#212121"/>
- <path
- android:pathData="M136.79,103.35l14.04,0l0,-15.71l-29.74,0z"
- android:fillColor="#212121"/>
-</vector>
diff --git a/android-car-lib/res/drawable/ic_overflow.xml b/android-car-lib/res/drawable/ic_overflow.xml
deleted file mode 100644
index eda306c..0000000
--- a/android-car-lib/res/drawable/ic_overflow.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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="56dp"
- android:height="56dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
-
- <group
- android:translateX="-0.750000"
- android:translateY="-0.750000">
- <path
- android:strokeWidth="1"
- android:pathData="M 0.75 24.75 L 24.75 24.75 L 24.75 0.75 L 0.75 0.75 Z" />
- <path
- android:fillColor="#000000"
- android:strokeWidth="1"
- android:pathData="M12.75,10.1666667 C13.4604167,10.1666667 14.0416667,9.58541667 14.0416667,8.875
-C14.0416667,8.16458333 13.4604167,7.58333333 12.75,7.58333333
-C12.0395833,7.58333333 11.4583333,8.16458333 11.4583333,8.875
-C11.4583333,9.58541667 12.0395833,10.1666667 12.75,10.1666667 L12.75,10.1666667
-Z M12.75,11.4583333 C12.0395833,11.4583333 11.4583333,12.0395833
-11.4583333,12.75 C11.4583333,13.4604167 12.0395833,14.0416667 12.75,14.0416667
-C13.4604167,14.0416667 14.0416667,13.4604167 14.0416667,12.75
-C14.0416667,12.0395833 13.4604167,11.4583333 12.75,11.4583333 L12.75,11.4583333
-Z M12.75,15.3333333 C12.0395833,15.3333333 11.4583333,15.9145833
-11.4583333,16.625 C11.4583333,17.3354167 12.0395833,17.9166667 12.75,17.9166667
-C13.4604167,17.9166667 14.0416667,17.3354167 14.0416667,16.625
-C14.0416667,15.9145833 13.4604167,15.3333333 12.75,15.3333333 L12.75,15.3333333
-Z" />
- </group>
-</vector>
diff --git a/android-car-lib/res/drawable/ic_up.xml b/android-car-lib/res/drawable/ic_up.xml
deleted file mode 100644
index ec18410..0000000
--- a/android-car-lib/res/drawable/ic_up.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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="76dp"
- android:height="76dp"
- android:viewportWidth="76.0"
- android:viewportHeight="76.0">
- <path
- android:pathData="M38,75.04C58.99,75.04 76,58.27 76,37.57C76,16.88 58.99,0.11 38,0.11C17.01,0.11 0,16.88 0,37.57C0,58.27 17.01,75.04 38,75.04M38,72.7C18.36,72.7 2.38,56.94 2.38,37.57C2.38,18.21 18.36,2.45 38,2.45C57.64,2.45 73.62,18.21 73.62,37.57C73.62,56.94 57.64,72.7 38,72.7"
- android:strokeColor="#00000000"
- android:fillColor="#212121"
- android:strokeWidth="1"/>
- <path
- android:pathData="M49.37,44.9l-11.37,-11.08l-11.37,11.08l-3.5,-3.42l14.87,-14.5l14.87,14.5z"
- android:strokeColor="#00000000"
- android:fillColor="#212121"
- android:strokeWidth="1"/>
-</vector>
diff --git a/android-car-lib/res/drawable/lock_out_message_animation.xml b/android-car-lib/res/drawable/lock_out_message_animation.xml
deleted file mode 100644
index 42cea41..0000000
--- a/android-car-lib/res/drawable/lock_out_message_animation.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<animated-vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:drawable="@drawable/lock_out_message_background" >
- <target
- android:name="bar_mask"
- android:animation="@anim/lock_out_message_bar" />
- <target
- android:name="bar_path"
- android:animation="@anim/lock_out_message_bg_color_change" />
-</animated-vector>
diff --git a/android-car-lib/res/drawable/lock_out_message_background.xml b/android-car-lib/res/drawable/lock_out_message_background.xml
deleted file mode 100644
index 26b559b..0000000
--- a/android-car-lib/res/drawable/lock_out_message_background.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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="480dp"
- android:viewportWidth="480"
- android:height="96dp"
- android:viewportHeight="96" >
- <group
- android:name="base"
- android:translateX="240"
- android:translateY="48"
- android:scaleX="0.994"
- android:scaleY="0.994" >
- <group
- android:name="base_pivot"
- android:translateX="-240"
- android:translateY="-47" >
- <group
- android:name="base"
- android:scaleY="0.99" >
- <path
- android:name="base_path"
- android:pathData="M 480.0,48.0 c 0.0,26.5096740723 -21.4903259277,48.0 -48.0,48.0 c 0.0,0.0 -384.0,0.0 -384.0,0.0 c -26.5096740723,0.0 -48.0,-21.4903259277 -48.0,-48.0 c 0.0,-26.5096740723 21.4903259277,-48.0 48.0,-48.0 c 0.0,0.0 384.0,0.0 384.0,0.0 c 26.5096740723,0.0 48.0,21.4903259277 48.0,48.0 Z"
- android:fillColor="@color/speed_bump_background" />
- </group>
- </group>
- </group>
- <group
- android:name="bar"
- android:translateX="240"
- android:translateY="48" >
- <group
- android:name="bar_pivot"
- android:translateX="-240"
- android:translateY="-48" >
- <clip-path
- android:name="bar_mask"
- android:pathData="M 96.5,48.5 c 0.0,26.5096740723 -21.4903259277,48.0 -48.0,48.0 c 0.0,0.0 -384.0,0.0 -384.0,0.0 c -26.5096740723,0.0 -48.0,-21.4903259277 -48.0,-48.0 c 0.0,-26.5096740723 21.4903259277,-48.0 48.0,-48.0 c 0.0,0.0 384.0,0.0 384.0,0.0 c 26.5096740723,0.0 48.0,21.4903411865 48.0,48.0 Z" />
- <group
- android:name="base" >
- <path
- android:name="bar_path"
- android:pathData="M 480.0,48.0 c 0.0,26.5096740723 -21.4903259277,48.0 -48.0,48.0 c 0.0,0.0 -384.0,0.0 -384.0,0.0 c -26.5096740723,0.0 -48.0,-21.4903259277 -48.0,-48.0 c 0.0,-26.5096740723 21.4903259277,-48.0 48.0,-48.0 c 0.0,0.0 384.0,0.0 384.0,0.0 c 26.5096740723,0.0 48.0,21.4903259277 48.0,48.0 Z"
- android:fillColor="#FF029AE5" />
- </group>
- </group>
- </group>
-</vector>
diff --git a/android-car-lib/res/drawable/speed_bump_scrim.xml b/android-car-lib/res/drawable/speed_bump_scrim.xml
deleted file mode 100644
index aacea49..0000000
--- a/android-car-lib/res/drawable/speed_bump_scrim.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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" >
- <gradient
- android:type="linear"
- android:startColor="@android:color/transparent"
- android:endColor="#8d000000"
- android:angle="270"/>
-</shape>
diff --git a/android-car-lib/res/interpolator/speed_bump_interpolator.xml b/android-car-lib/res/interpolator/speed_bump_interpolator.xml
deleted file mode 100644
index ec7e694..0000000
--- a/android-car-lib/res/interpolator/speed_bump_interpolator.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<pathInterpolator
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:pathData="M 0.0,0.0 c 1.0,0.535553908162 0.961348094524,0.999999995867 1.0,1.0" />
diff --git a/android-car-lib/res/layout/action_bar.xml b/android-car-lib/res/layout/action_bar.xml
deleted file mode 100644
index 431a2a8..0000000
--- a/android-car-lib/res/layout/action_bar.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<androidx.cardview.widget.CardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/action_bar_wrapper"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:elevation="@dimen/car_action_bar_elevation"
- app:cardCornerRadius="@dimen/car_radius_3">
-
- <LinearLayout
- android:id="@+id/rows_container"
- android:orientation="vertical"
- android:animateLayoutChanges="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <LinearLayout
- android:orientation="horizontal"
- android:visibility="gone"
- android:clipChildren="false"
- android:layout_width="match_parent"
- android:layout_height="@dimen/car_action_bar_height">
- </LinearLayout>
-
- <LinearLayout
- android:orientation="horizontal"
- android:clipChildren="false"
- android:layout_width="match_parent"
- android:layout_height="@dimen/car_action_bar_height">
- </LinearLayout>
-
- </LinearLayout>
-
-</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/android-car-lib/res/layout/action_bar_button.xml b/android-car-lib/res/layout/action_bar_button.xml
deleted file mode 100644
index e9d2370..0000000
--- a/android-car-lib/res/layout/action_bar_button.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-<ImageButton style="@style/Widget.Car.Button.ActionBar" />
diff --git a/android-car-lib/res/layout/action_bar_slot.xml b/android-car-lib/res/layout/action_bar_slot.xml
deleted file mode 100644
index 804e356..0000000
--- a/android-car-lib/res/layout/action_bar_slot.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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="0dp"
- android:layout_height="@dimen/car_action_bar_button_height"
- android:layout_weight="1"
- android:visibility="visible"
- android:foregroundGravity="center"
- android:clipChildren="false"
- android:foreground="@drawable/car_action_button_activated_ring_foreground">
-</FrameLayout>
\ No newline at end of file
diff --git a/android-car-lib/res/layout/car_alert_dialog.xml b/android-car-lib/res/layout/car_alert_dialog.xml
deleted file mode 100644
index d9b52a5..0000000
--- a/android-car-lib/res/layout/car_alert_dialog.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<!-- Note: the width is 0dp because ColumnCardView will automatically set a width based
- on the number of columns it should take up. See ColumnCardView for more details. -->
-<androidx.car.widget.ColumnCardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_gravity="center"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:elevation="@dimen/car_dialog_elevation"
- app:cardBackgroundColor="?attr/dialogBackgroundColor"
- app:cardCornerRadius="@dimen/car_radius_3">
-
- <LinearLayout
- android:id="@+id/content_view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/car_keyline_1"
- android:layout_marginEnd="@dimen/car_keyline_1"
- android:paddingTop="@dimen/car_padding_4"
- android:paddingBottom="@dimen/car_padding_4"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="@dimen/car_dialog_header_height"
- android:gravity="center_vertical|start"
- android:visibility="gone"
- style="?attr/dialogTitleStyle" />
-
- <TextView
- android:id="@+id/body"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="gone"
- style="?attr/dialogBodyStyle" />
-
- <LinearLayout
- android:id="@+id/button_panel"
- android:layout_width="match_parent"
- android:layout_height="@dimen/car_dialog_action_bar_height"
- android:layout_marginTop="@dimen/car_padding_2"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:visibility="gone">
-
- <Button
- android:id="@+id/positive_button"
- android:layout_marginEnd="@dimen/car_padding_4"
- android:layout_width="wrap_content"
- android:minWidth="0dp"
- android:padding="0dp"
- android:textColor="@color/car_accent"
- android:visibility="gone"
- style="?attr/dialogButtonStyle" />
-
- <Button
- android:id="@+id/negative_button"
- android:layout_width="wrap_content"
- android:minWidth="0dp"
- android:padding="0dp"
- android:textColor="@color/car_accent"
- android:visibility="gone"
- style="?attr/dialogButtonStyle" />
- </LinearLayout>
- </LinearLayout>
-</androidx.car.widget.ColumnCardView>
diff --git a/android-car-lib/res/layout/car_drawer.xml b/android-car-lib/res/layout/car_drawer.xml
deleted file mode 100644
index 0629862..0000000
--- a/android-car-lib/res/layout/car_drawer.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<androidx.car.moderator.SpeedBumpView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/drawer_content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_marginEnd="@dimen/car_drawer_margin_end"
- android:background="?attr/drawerBackgroundColor"
- android:paddingTop="@dimen/car_app_bar_height" >
-
- <androidx.car.widget.PagedListView
- android:id="@+id/drawer_list"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:listEndMargin="@dimen/car_drawer_margin_end"
- app:gutter="start"
- style="?attr/drawerListStyle" />
-
- <ProgressBar
- android:id="@+id/drawer_progress"
- android:layout_width="@dimen/car_drawer_progress_bar_size"
- android:layout_height="@dimen/car_drawer_progress_bar_size"
- android:layout_gravity="center"
- android:indeterminate="true"
- android:visibility="gone" />
-</androidx.car.moderator.SpeedBumpView>
diff --git a/android-car-lib/res/layout/car_drawer_activity.xml b/android-car-lib/res/layout/car_drawer_activity.xml
deleted file mode 100644
index 1648d09..0000000
--- a/android-car-lib/res/layout/car_drawer_activity.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<androidx.coordinatorlayout.widget.CoordinatorLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <androidx.drawerlayout.widget.DrawerLayout
- android:id="@+id/drawer_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <!-- The main content view. Fragments will be added here. -->
- <androidx.car.moderator.SpeedBumpView
- android:id="@+id/content_frame"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:layout_behavior="@string/appbar_scrolling_view_behavior" />
-
- <include
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- layout="@layout/car_drawer" />
- </androidx.drawerlayout.widget.DrawerLayout>
-
- <android.support.design.widget.AppBarLayout
- android:id="@+id/appbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:fitsSystemWindows="true">
- <!-- The min height of the Toolbar needs to be set to ensure that the icons in it
- are vertically centered. -->
- <androidx.car.widget.ClickThroughToolbar
- android:id="@+id/car_toolbar"
- android:layout_width="match_parent"
- android:layout_height="@dimen/car_app_bar_height"
- android:layout_gravity="center_vertical"
- android:minHeight="@dimen/car_app_bar_height"
- style="@style/Widget.Car.Toolbar" />
- </android.support.design.widget.AppBarLayout>
-</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/android-car-lib/res/layout/car_drawer_list_item_empty.xml b/android-car-lib/res/layout/car_drawer_list_item_empty.xml
deleted file mode 100644
index d078a32..0000000
--- a/android-car-lib/res/layout/car_drawer_list_item_empty.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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:id="@+id/container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_marginStart="16dp"
- android:focusable="false"
- android:orientation="vertical"
- android:background="@drawable/car_drawer_list_item_background" >
- <FrameLayout
- android:id="@+id/icon_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:visibility="visible">
- <ImageView
- android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="48dp"
- android:layout_marginBottom="22dp" />
- </FrameLayout>
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginEnd="16dp"
- android:gravity="center"
- android:textAppearance="?attr/drawerItemTitleTextAppearance" />
-</LinearLayout>
diff --git a/android-car-lib/res/layout/car_drawer_list_item_normal.xml b/android-car-lib/res/layout/car_drawer_list_item_normal.xml
deleted file mode 100644
index a400c5a..0000000
--- a/android-car-lib/res/layout/car_drawer_list_item_normal.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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:layout_width="match_parent"
- android:layout_height="@dimen/car_double_line_list_item_height"
- android:focusable="true"
- android:orientation="horizontal"
- android:background="@drawable/car_drawer_list_item_background" >
- <ImageView
- android:id="@+id/icon"
- android:layout_width="@dimen/car_drawer_list_item_icon_size"
- android:layout_height="@dimen/car_drawer_list_item_icon_size"
- android:layout_marginEnd="@dimen/car_drawer_list_item_icon_end_margin"
- android:layout_gravity="center_vertical"
- android:scaleType="centerCrop" />
- <LinearLayout
- android:id="@+id/text_container"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_gravity="center_vertical"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="@dimen/car_text_vertical_margin"
- android:maxLines="1"
- android:textAppearance="?attr/drawerItemTitleTextAppearance" />
- <TextView
- android:id="@+id/text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="end"
- android:maxLines="1"
- android:textAppearance="?attr/drawerItemBodyTextAppearance" />
- </LinearLayout>
- <ImageView
- android:id="@+id/end_icon"
- android:layout_width="@dimen/car_drawer_list_item_end_icon_size"
- android:layout_height="@dimen/car_drawer_list_item_end_icon_size"
- android:scaleType="fitCenter"
- android:layout_marginEnd="@dimen/car_drawer_list_item_end_margin"
- android:layout_gravity="center_vertical" />
-</LinearLayout>
diff --git a/android-car-lib/res/layout/car_drawer_list_item_small.xml b/android-car-lib/res/layout/car_drawer_list_item_small.xml
deleted file mode 100644
index 7ccf72b..0000000
--- a/android-car-lib/res/layout/car_drawer_list_item_small.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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:layout_width="match_parent"
- android:layout_height="@dimen/car_single_line_list_item_height"
- android:focusable="true"
- android:orientation="horizontal"
- android:background="@drawable/car_drawer_list_item_background" >
- <ImageView
- android:id="@+id/icon"
- android:layout_width="@dimen/car_drawer_list_item_small_icon_size"
- android:layout_height="@dimen/car_drawer_list_item_small_icon_size"
- android:layout_marginEnd="@dimen/car_drawer_list_item_icon_end_margin"
- android:layout_gravity="center_vertical"
- android:scaleType="centerCrop" />
- <TextView
- android:id="@+id/title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_gravity="center_vertical"
- android:layout_marginBottom="@dimen/car_text_vertical_margin"
- android:maxLines="1"
- android:textAppearance="?attr/drawerItemTitleTextAppearance" />
- <ImageView
- android:id="@+id/end_icon"
- android:layout_width="@dimen/car_drawer_list_item_end_icon_size"
- android:layout_height="@dimen/car_drawer_list_item_end_icon_size"
- android:scaleType="fitCenter"
- android:layout_marginEnd="@dimen/car_drawer_list_item_end_margin"
- android:layout_gravity="center_vertical"/>
-</LinearLayout>
diff --git a/android-car-lib/res/layout/car_list_dialog.xml b/android-car-lib/res/layout/car_list_dialog.xml
deleted file mode 100644
index c3ff1bf..0000000
--- a/android-car-lib/res/layout/car_list_dialog.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/container"
- android:background="@android:color/transparent"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
-
- <!-- Note: the width is 0dp because ColumnCardView will automatically set a width based
- on the number of columns it should take up. See ColumnCardView for more details. -->
- <androidx.car.widget.ColumnCardView
- android:layout_gravity="center"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/car_padding_4"
- android:layout_marginBottom="@dimen/car_padding_4"
- android:elevation="@dimen/car_dialog_elevation"
- app:cardBackgroundColor="?attr/dialogBackgroundColor"
- app:cardCornerRadius="@dimen/car_radius_3">
-
- <!-- Hide the scrollbar for this PagedListView because it will be implemented by
- @id/scrollbar. -->
- <androidx.car.widget.PagedListView
- android:id="@+id/list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:theme="?attr/dialogListTheme"
- app:gutter="none"
- app:dividerStartMargin="@dimen/car_keyline_1"
- app:dividerEndMargin="@dimen/car_keyline_1"
- app:showPagedListViewDivider="true"
- app:scrollBarEnabled="false" />
- </androidx.car.widget.ColumnCardView>
-
- <!-- Putting this as the last child for highest z-index. It is also clickable to reduce
- the chance of clicks on the buttons accidentally dismissing the dialog. -->
- <androidx.car.widget.PagedScrollBarView
- android:id="@+id/scrollbar"
- android:layout_width="@dimen/car_margin"
- android:layout_height="match_parent"
- android:layout_marginTop="@dimen/car_padding_4"
- android:layout_marginBottom="@dimen/car_padding_4"
- android:layout_gravity="start|top"
- android:clickable="true"
- android:visibility="invisible" />
-</FrameLayout>
diff --git a/android-car-lib/res/layout/car_list_item_seekbar_content.xml b/android-car-lib/res/layout/car_list_item_seekbar_content.xml
deleted file mode 100644
index 2e3b165..0000000
--- a/android-car-lib/res/layout/car_list_item_seekbar_content.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 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:id="@+id/container"
- android:layout_width="wrap_content"
- android:layout_height="match_parent">
-
- <!-- This layout should only be used by class SeekbarListItem, as it requires layout params
- being set programmatically depending on item data/view configuration. -->
-
- <!-- Primary Action. -->
- <ImageView
- android:id="@+id/primary_icon"
- android:layout_width="@dimen/car_single_line_list_item_height"
- android:layout_height="@dimen/car_single_line_list_item_height"/>
-
- <!-- Slider and text. -->
- <LinearLayout
- android:id="@+id/seek_bar_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView
- android:id="@+id/text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <SeekBar
- android:id="@+id/seek_bar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:splitTrack="false"
- style="@style/Widget.Car.SeekBar"/>
- </LinearLayout>
-
- <!-- Supplemental action. -->
- <ImageView
- android:id="@+id/supplemental_icon"
- android:layout_width="@dimen/car_primary_icon_size"
- android:layout_height="@dimen/car_primary_icon_size"
- android:scaleType="fitCenter"/>
- <View
- android:id="@+id/supplemental_icon_divider"
- android:layout_width="@dimen/car_vertical_line_divider_width"
- android:layout_height="@dimen/car_vertical_line_divider_height"
- android:background="@color/car_list_divider"/>
-</RelativeLayout>
diff --git a/android-car-lib/res/layout/car_list_item_text_content.xml b/android-car-lib/res/layout/car_list_item_text_content.xml
deleted file mode 100644
index a85a31e..0000000
--- a/android-car-lib/res/layout/car_list_item_text_content.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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:id="@+id/container"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:foreground="@drawable/car_card_ripple_background">
- <!-- Primary Action. -->
- <ImageView
- android:id="@+id/primary_icon"
- android:layout_width="@dimen/car_single_line_list_item_height"
- android:layout_height="@dimen/car_single_line_list_item_height"/>
-
- <!-- Text. -->
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:ellipsize="end"/>
- <TextView
- android:id="@+id/body"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
-
- <!-- Supplemental action(s) - only one of the following groups should be visible. -->
- <!-- End icon with divider. -->
- <View
- android:id="@+id/supplemental_icon_divider"
- android:layout_centerVertical="true"
- android:layout_toStartOf="@id/supplemental_icon"
- android:layout_marginEnd="@dimen/car_padding_4"
- style="@style/CarListVerticalDivider"/>
- <ImageView
- android:id="@+id/supplemental_icon"
- android:layout_centerVertical="true"
- android:layout_width="@dimen/car_primary_icon_size"
- android:layout_height="@dimen/car_primary_icon_size"
- android:layout_alignParentEnd="true"
- android:layout_marginEnd="@dimen/car_keyline_1"
- android:scaleType="fitCenter"/>
-
- <!-- Switch with divider. -->
- <View
- android:id="@+id/switch_divider"
- android:layout_centerVertical="true"
- android:layout_toStartOf="@id/switch_widget"
- android:layout_marginEnd="@dimen/car_padding_4"
- style="@style/CarListVerticalDivider"/>
- <Switch
- android:id="@+id/switch_widget"
- android:layout_centerVertical="true"
- android:layout_width="@dimen/car_primary_icon_size"
- android:layout_height="@dimen/car_primary_icon_size"
- android:layout_alignParentEnd="true"
- android:layout_marginEnd="@dimen/car_keyline_1"
- style="@android:style/Widget.Material.CompoundButton.Switch"/>
-
- <!-- Up to 2 action buttons with dividers. -->
- <View
- android:id="@+id/action2_divider"
- android:layout_centerVertical="true"
- android:layout_toStartOf="@id/action2"
- android:layout_marginEnd="@dimen/car_padding_4"
- style="@style/CarListVerticalDivider"/>
- <Button
- android:id="@+id/action2"
- android:layout_centerVertical="true"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toStartOf="@id/action1_divider"
- android:layout_marginEnd="@dimen/car_padding_4"
- android:ellipsize="end"
- android:maxLength="@integer/car_borderless_button_text_length_limit"
- android:maxLines="1"
- android:background="@color/car_card"
- android:foreground="@drawable/car_card_ripple_background"
- style="?android:attr/borderlessButtonStyle"/>
- <View
- android:id="@+id/action1_divider"
- android:layout_centerVertical="true"
- android:layout_toStartOf="@id/action1"
- android:layout_marginEnd="@dimen/car_padding_4"
- style="@style/CarListVerticalDivider"/>
- <Button
- android:id="@+id/action1"
- android:layout_centerVertical="true"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentEnd="true"
- android:layout_marginEnd="@dimen/car_keyline_1"
- android:ellipsize="end"
- android:maxLength="@integer/car_borderless_button_text_length_limit"
- android:maxLines="1"
- android:background="@color/car_card"
- android:foreground="@drawable/car_card_ripple_background"
- style="?android:attr/borderlessButtonStyle"/>
-</RelativeLayout>
diff --git a/android-car-lib/res/layout/car_paged_recycler_view.xml b/android-car-lib/res/layout/car_paged_recycler_view.xml
deleted file mode 100644
index 360d9a2..0000000
--- a/android-car-lib/res/layout/car_paged_recycler_view.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recycler_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
-
- <!-- Putting this as the last child so that it can intercept any touch events on the
- scroll buttons. -->
- <androidx.car.widget.PagedScrollBarView
- android:id="@+id/paged_scroll_view"
- android:layout_width="@dimen/car_margin"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/car_padding_4"
- android:paddingTop="@dimen/car_padding_4"
- android:visibility="invisible" />
-</FrameLayout>
diff --git a/android-car-lib/res/layout/car_paged_scrollbar_buttons.xml b/android-car-lib/res/layout/car_paged_scrollbar_buttons.xml
deleted file mode 100644
index b126b48..0000000
--- a/android-car-lib/res/layout/car_paged_scrollbar_buttons.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 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:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center"
- android:gravity="center"
- android:orientation="vertical">
-
- <ImageView
- android:id="@+id/page_up"
- android:layout_width="@dimen/car_scroll_bar_button_size"
- android:layout_height="@dimen/car_scroll_bar_button_size"
- android:background="@drawable/car_card_ripple_background"
- android:focusable="false"
- android:hapticFeedbackEnabled="false"
- android:src="@drawable/ic_up" />
-
- <FrameLayout
- android:id="@+id/filler"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:layout_marginBottom="@dimen/car_padding_2"
- android:layout_marginTop="@dimen/car_padding_2" >
-
- <View
- android:id="@+id/scrollbar_thumb"
- android:layout_width="@dimen/car_scroll_bar_thumb_width"
- android:layout_height="0dp"
- android:layout_gravity="center_horizontal"
- android:background="@drawable/car_scrollbar_thumb" />
- </FrameLayout>
-
- <ImageView
- android:id="@+id/page_down"
- android:layout_width="@dimen/car_scroll_bar_button_size"
- android:layout_height="@dimen/car_scroll_bar_button_size"
- android:background="@drawable/car_card_ripple_background"
- android:focusable="false"
- android:hapticFeedbackEnabled="false"
- android:src="@drawable/ic_down" />
-</LinearLayout>
diff --git a/android-car-lib/res/layout/car_toolbar.xml b/android-car-lib/res/layout/car_toolbar.xml
deleted file mode 100644
index 3926896..0000000
--- a/android-car-lib/res/layout/car_toolbar.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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="@dimen/car_app_bar_height">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/car_toolbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- style="@style/Widget.Car.Toolbar" />
-</FrameLayout>
diff --git a/android-car-lib/res/layout/lock_out_message.xml b/android-car-lib/res/layout/lock_out_message.xml
deleted file mode 100644
index 220e1f3..0000000
--- a/android-car-lib/res/layout/lock_out_message.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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:id="@+id/lock_out_message_container"
- android:background="@drawable/speed_bump_scrim"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="bottom"
- android:visibility="gone">
-
- <ImageView
- android:id="@+id/lock_out_drawable"
- android:layout_width="wrap_content"
- android:layout_height="@dimen/speed_bump_lock_out_message_height"
- android:layout_gravity="center"
- android:layout_marginBottom="@dimen/speed_bump_lock_out_drawable_margin_bottom"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:src="@drawable/lock_out_message_animation"/>
-
- <!-- Align this TextView against the lock_out_drawable to ensure that the latter will wrap
- this TextView. -->
- <TextView
- android:id="@+id/lock_out_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@style/TextAppearance.Car.Body1"
- android:layout_alignStart="@id/lock_out_drawable"
- android:layout_alignEnd="@id/lock_out_drawable"
- android:layout_alignTop="@id/lock_out_drawable"
- android:layout_alignBottom="@id/lock_out_drawable"
- android:gravity="center"
- android:text="@string/speed_bump_lockout_message"/>
-</RelativeLayout>
diff --git a/android-car-lib/res/values-af/values-af.xml b/android-car-lib/res/values-af/values-af.xml
deleted file mode 100644
index ed25d1d..0000000
--- a/android-car-lib/res/values-af/values-af.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Konsentreer op die pad"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-af/values.xml b/android-car-lib/res/values-af/values.xml
deleted file mode 100644
index 7990a8e..0000000
--- a/android-car-lib/res/values-af/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Vou knoppie in/uit"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Konsentreer op die pad"</string>
-</resources>
diff --git a/android-car-lib/res/values-am/values-am.xml b/android-car-lib/res/values-am/values-am.xml
deleted file mode 100644
index 529a04e..0000000
--- a/android-car-lib/res/values-am/values-am.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"መንገዱ ላይ ያተኩሩ"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-am/values.xml b/android-car-lib/res/values-am/values.xml
deleted file mode 100644
index 8bd9ce9..0000000
--- a/android-car-lib/res/values-am/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"አዝራርን ዘርጋ/ሰብስብ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"መንገዱ ላይ ያተኩሩ"</string>
-</resources>
diff --git a/android-car-lib/res/values-ar/values-ar.xml b/android-car-lib/res/values-ar/values-ar.xml
deleted file mode 100644
index 3d64213..0000000
--- a/android-car-lib/res/values-ar/values-ar.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"ركِّز في الطريق"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ar/values.xml b/android-car-lib/res/values-ar/values.xml
deleted file mode 100644
index a05692c..0000000
--- a/android-car-lib/res/values-ar/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"زر التوسيع/التصغير"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ركِّز في الطريق."</string>
-</resources>
diff --git a/android-car-lib/res/values-as/values.xml b/android-car-lib/res/values-as/values.xml
deleted file mode 100644
index db2bb2f..0000000
--- a/android-car-lib/res/values-as/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"সম্প্ৰসাৰণ/সংকোচন বুটাম"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"মনোযোগেৰে গাড়ী চলাওক"</string>
-</resources>
diff --git a/android-car-lib/res/values-az/values-az.xml b/android-car-lib/res/values-az/values-az.xml
deleted file mode 100644
index b5b0f12..0000000
--- a/android-car-lib/res/values-az/values-az.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Diqqətinizi yola yönəldin"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-az/values.xml b/android-car-lib/res/values-az/values.xml
deleted file mode 100644
index 822f446..0000000
--- a/android-car-lib/res/values-az/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Düyməni genişləndirin/yığcamlaşdırın"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Diqqətinizi yola yönəldin"</string>
-</resources>
diff --git a/android-car-lib/res/values-b+sr+Latn/values-b+sr+Latn.xml b/android-car-lib/res/values-b+sr+Latn/values-b+sr+Latn.xml
deleted file mode 100644
index 97332eb..0000000
--- a/android-car-lib/res/values-b+sr+Latn/values-b+sr+Latn.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Fokusirajte se na put"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-b+sr+Latn/values.xml b/android-car-lib/res/values-b+sr+Latn/values.xml
deleted file mode 100644
index 1da562a..0000000
--- a/android-car-lib/res/values-b+sr+Latn/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Dugme Proširi/skupi"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Fokusirajte se na put"</string>
-</resources>
diff --git a/android-car-lib/res/values-be/values-be.xml b/android-car-lib/res/values-be/values-be.xml
deleted file mode 100644
index cd54ef9..0000000
--- a/android-car-lib/res/values-be/values-be.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Увага на дарогу"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-be/values.xml b/android-car-lib/res/values-be/values.xml
deleted file mode 100644
index a33ac9b..0000000
--- a/android-car-lib/res/values-be/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Кнопка \"Разгарнуць/згарнуць\""</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Увага на дарогу"</string>
-</resources>
diff --git a/android-car-lib/res/values-bg/values-bg.xml b/android-car-lib/res/values-bg/values-bg.xml
deleted file mode 100644
index 90f73ad..0000000
--- a/android-car-lib/res/values-bg/values-bg.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Съсредоточете се върху пътя"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-bg/values.xml b/android-car-lib/res/values-bg/values.xml
deleted file mode 100644
index 18a283d..0000000
--- a/android-car-lib/res/values-bg/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Бутон за разгъване/свиване"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Съсредоточете се върху пътя"</string>
-</resources>
diff --git a/android-car-lib/res/values-bn/values-bn.xml b/android-car-lib/res/values-bn/values-bn.xml
deleted file mode 100644
index 8a7d235..0000000
--- a/android-car-lib/res/values-bn/values-bn.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"মনোযোগ দিয়ে গাড়ি চালান"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-bn/values.xml b/android-car-lib/res/values-bn/values.xml
deleted file mode 100644
index ad4f5a0..0000000
--- a/android-car-lib/res/values-bn/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"বোতামটি বড় করুন/আড়াল করুন"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"মনোযোগ দিয়ে গাড়ি চালান"</string>
-</resources>
diff --git a/android-car-lib/res/values-bs/values-bs.xml b/android-car-lib/res/values-bs/values-bs.xml
deleted file mode 100644
index 5cb1759..0000000
--- a/android-car-lib/res/values-bs/values-bs.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Fokusirajte se na cestu"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-bs/values.xml b/android-car-lib/res/values-bs/values.xml
deleted file mode 100644
index f9b4431..0000000
--- a/android-car-lib/res/values-bs/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Dugme proširi/suzi"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Fokusirajte se na cestu"</string>
-</resources>
diff --git a/android-car-lib/res/values-ca/values-ca.xml b/android-car-lib/res/values-ca/values-ca.xml
deleted file mode 100644
index 2c1c31a..0000000
--- a/android-car-lib/res/values-ca/values-ca.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentra\'t en la carretera"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ca/values.xml b/android-car-lib/res/values-ca/values.xml
deleted file mode 100644
index c9133a5..0000000
--- a/android-car-lib/res/values-ca/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botó per desplegar o replegar"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentra\'t en la carretera"</string>
-</resources>
diff --git a/android-car-lib/res/values-cs/values-cs.xml b/android-car-lib/res/values-cs/values-cs.xml
deleted file mode 100644
index 7bd877c..0000000
--- a/android-car-lib/res/values-cs/values-cs.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Soustřeďte se na silnici"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-cs/values.xml b/android-car-lib/res/values-cs/values.xml
deleted file mode 100644
index aad6789..0000000
--- a/android-car-lib/res/values-cs/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Tlačítko rozbalení/sbalení"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Soustřeďte se na silnici"</string>
-</resources>
diff --git a/android-car-lib/res/values-da/values-da.xml b/android-car-lib/res/values-da/values-da.xml
deleted file mode 100644
index 54f7632..0000000
--- a/android-car-lib/res/values-da/values-da.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Hold øjnene på vejen"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-da/values.xml b/android-car-lib/res/values-da/values.xml
deleted file mode 100644
index fb82413..0000000
--- a/android-car-lib/res/values-da/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Knappen Udvid/skjul"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Hold øjnene på vejen"</string>
-</resources>
diff --git a/android-car-lib/res/values-de/values-de.xml b/android-car-lib/res/values-de/values-de.xml
deleted file mode 100644
index d0a35b5..0000000
--- a/android-car-lib/res/values-de/values-de.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Achte auf den Verkehr"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-de/values.xml b/android-car-lib/res/values-de/values.xml
deleted file mode 100644
index fb8e1c5..0000000
--- a/android-car-lib/res/values-de/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Schaltfläche zum Maximieren/Minimieren"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Achte auf den Verkehr"</string>
-</resources>
diff --git a/android-car-lib/res/values-el/values-el.xml b/android-car-lib/res/values-el/values-el.xml
deleted file mode 100644
index 52758b1..0000000
--- a/android-car-lib/res/values-el/values-el.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Επικεντρωθείτε στον δρόμο"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-el/values.xml b/android-car-lib/res/values-el/values.xml
deleted file mode 100644
index e17e8f4..0000000
--- a/android-car-lib/res/values-el/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Κουμπί ανάπτυξης/σύμπτυξης"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Επικεντρωθείτε στον δρόμο"</string>
-</resources>
diff --git a/android-car-lib/res/values-en-rAU/values-en-rAU.xml b/android-car-lib/res/values-en-rAU/values-en-rAU.xml
deleted file mode 100644
index 14ebe5f..0000000
--- a/android-car-lib/res/values-en-rAU/values-en-rAU.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Focus on the road"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-en-rAU/values.xml b/android-car-lib/res/values-en-rAU/values.xml
deleted file mode 100644
index b950788..0000000
--- a/android-car-lib/res/values-en-rAU/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Expand/collapse button"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Focus on the road"</string>
-</resources>
diff --git a/android-car-lib/res/values-en-rCA/values-en-rCA.xml b/android-car-lib/res/values-en-rCA/values-en-rCA.xml
deleted file mode 100644
index 14ebe5f..0000000
--- a/android-car-lib/res/values-en-rCA/values-en-rCA.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Focus on the road"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-en-rCA/values.xml b/android-car-lib/res/values-en-rCA/values.xml
deleted file mode 100644
index b950788..0000000
--- a/android-car-lib/res/values-en-rCA/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Expand/collapse button"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Focus on the road"</string>
-</resources>
diff --git a/android-car-lib/res/values-en-rGB/values-en-rGB.xml b/android-car-lib/res/values-en-rGB/values-en-rGB.xml
deleted file mode 100644
index 14ebe5f..0000000
--- a/android-car-lib/res/values-en-rGB/values-en-rGB.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Focus on the road"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-en-rGB/values.xml b/android-car-lib/res/values-en-rGB/values.xml
deleted file mode 100644
index b950788..0000000
--- a/android-car-lib/res/values-en-rGB/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Expand/collapse button"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Focus on the road"</string>
-</resources>
diff --git a/android-car-lib/res/values-en-rIN/values-en-rIN.xml b/android-car-lib/res/values-en-rIN/values-en-rIN.xml
deleted file mode 100644
index 14ebe5f..0000000
--- a/android-car-lib/res/values-en-rIN/values-en-rIN.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Focus on the road"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-en-rIN/values.xml b/android-car-lib/res/values-en-rIN/values.xml
deleted file mode 100644
index b950788..0000000
--- a/android-car-lib/res/values-en-rIN/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Expand/collapse button"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Focus on the road"</string>
-</resources>
diff --git a/android-car-lib/res/values-en-rXC/values-en-rXC.xml b/android-car-lib/res/values-en-rXC/values-en-rXC.xml
deleted file mode 100644
index 2644d8a..0000000
--- a/android-car-lib/res/values-en-rXC/values-en-rXC.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Focus on the road"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-en-rXC/values.xml b/android-car-lib/res/values-en-rXC/values.xml
deleted file mode 100644
index 1d1d116..0000000
--- a/android-car-lib/res/values-en-rXC/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Expand/collapse button"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Focus on the road"</string>
-</resources>
diff --git a/android-car-lib/res/values-es-rUS/values-es-rUS.xml b/android-car-lib/res/values-es-rUS/values-es-rUS.xml
deleted file mode 100644
index e5ecf44..0000000
--- a/android-car-lib/res/values-es-rUS/values-es-rUS.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concéntrate en el camino"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-es-rUS/values.xml b/android-car-lib/res/values-es-rUS/values.xml
deleted file mode 100644
index 0a3e9a8..0000000
--- a/android-car-lib/res/values-es-rUS/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botón Expandir/contraer"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concéntrate en el camino"</string>
-</resources>
diff --git a/android-car-lib/res/values-es/values-es.xml b/android-car-lib/res/values-es/values-es.xml
deleted file mode 100644
index 2af260c..0000000
--- a/android-car-lib/res/values-es/values-es.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Céntrate en la carretera"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-es/values.xml b/android-car-lib/res/values-es/values.xml
deleted file mode 100644
index a175812..0000000
--- a/android-car-lib/res/values-es/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botón para mostrar u ocultar"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Céntrate en la carretera"</string>
-</resources>
diff --git a/android-car-lib/res/values-et/values-et.xml b/android-car-lib/res/values-et/values-et.xml
deleted file mode 100644
index 30fce07..0000000
--- a/android-car-lib/res/values-et/values-et.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Keskenduge teele"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-et/values.xml b/android-car-lib/res/values-et/values.xml
deleted file mode 100644
index 18e9283..0000000
--- a/android-car-lib/res/values-et/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Nupp Laienda/Ahenda"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Keskenduge teele"</string>
-</resources>
diff --git a/android-car-lib/res/values-eu/values-eu.xml b/android-car-lib/res/values-eu/values-eu.xml
deleted file mode 100644
index 65513d4..0000000
--- a/android-car-lib/res/values-eu/values-eu.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Jarri arreta errepidean"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-eu/values.xml b/android-car-lib/res/values-eu/values.xml
deleted file mode 100644
index 4e2c741..0000000
--- a/android-car-lib/res/values-eu/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Zabaltzeko/Tolesteko botoia"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Jarri arreta errepidean"</string>
-</resources>
diff --git a/android-car-lib/res/values-fa/values-fa.xml b/android-car-lib/res/values-fa/values-fa.xml
deleted file mode 100644
index f683363..0000000
--- a/android-car-lib/res/values-fa/values-fa.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"روی جاده تمرکز داشته باشید"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-fa/values.xml b/android-car-lib/res/values-fa/values.xml
deleted file mode 100644
index 319b857..0000000
--- a/android-car-lib/res/values-fa/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"دکمه بزرگ کردن/کوچک کردن"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"روی جاده تمرکز داشته باشید"</string>
-</resources>
diff --git a/android-car-lib/res/values-fi/values-fi.xml b/android-car-lib/res/values-fi/values-fi.xml
deleted file mode 100644
index b7223be..0000000
--- a/android-car-lib/res/values-fi/values-fi.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Pidä katse tiessä"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-fi/values.xml b/android-car-lib/res/values-fi/values.xml
deleted file mode 100644
index 7e917d2..0000000
--- a/android-car-lib/res/values-fi/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Laajennus- ja tiivistyspainike"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Pidä katse tiessä"</string>
-</resources>
diff --git a/android-car-lib/res/values-fr-rCA/values-fr-rCA.xml b/android-car-lib/res/values-fr-rCA/values-fr-rCA.xml
deleted file mode 100644
index 79e44c5..0000000
--- a/android-car-lib/res/values-fr-rCA/values-fr-rCA.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentrez-vous sur la route"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-fr-rCA/values.xml b/android-car-lib/res/values-fr-rCA/values.xml
deleted file mode 100644
index e44d8cb..0000000
--- a/android-car-lib/res/values-fr-rCA/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Bouton Développer/Réduire"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentrez-vous sur la route"</string>
-</resources>
diff --git a/android-car-lib/res/values-fr/values-fr.xml b/android-car-lib/res/values-fr/values-fr.xml
deleted file mode 100644
index 79e44c5..0000000
--- a/android-car-lib/res/values-fr/values-fr.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentrez-vous sur la route"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-fr/values.xml b/android-car-lib/res/values-fr/values.xml
deleted file mode 100644
index e44d8cb..0000000
--- a/android-car-lib/res/values-fr/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Bouton Développer/Réduire"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentrez-vous sur la route"</string>
-</resources>
diff --git a/android-car-lib/res/values-gl/values-gl.xml b/android-car-lib/res/values-gl/values-gl.xml
deleted file mode 100644
index d024b93..0000000
--- a/android-car-lib/res/values-gl/values-gl.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Céntrate na estrada"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-gl/values.xml b/android-car-lib/res/values-gl/values.xml
deleted file mode 100644
index 9b09422..0000000
--- a/android-car-lib/res/values-gl/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botón despregar/contraer"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Céntrate na estrada"</string>
-</resources>
diff --git a/android-car-lib/res/values-gu/values-gu.xml b/android-car-lib/res/values-gu/values-gu.xml
deleted file mode 100644
index 6b0f8d5..0000000
--- a/android-car-lib/res/values-gu/values-gu.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"રસ્તા પર ફોકસ કરો"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-gu/values.xml b/android-car-lib/res/values-gu/values.xml
deleted file mode 100644
index 8735563..0000000
--- a/android-car-lib/res/values-gu/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"વિસ્તાર કરો/સંકુચિત કરો બટન"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"રસ્તા પર ફોકસ કરો"</string>
-</resources>
diff --git a/android-car-lib/res/values-h1752dp-v13/values-h1752dp-v13.xml b/android-car-lib/res/values-h1752dp-v13/values-h1752dp-v13.xml
deleted file mode 100644
index 9eb87ed..0000000
--- a/android-car-lib/res/values-h1752dp-v13/values-h1752dp-v13.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_action1_size">32sp</dimen>
- <dimen name="car_app_bar_height">112dp</dimen>
- <dimen name="car_avatar_size">96dp</dimen>
- <dimen name="car_body1_size">40sp</dimen>
- <dimen name="car_body2_size">32sp</dimen>
- <dimen name="car_card_action_bar_height">96dp</dimen>
- <dimen name="car_card_header_height">96dp</dimen>
- <dimen name="car_headline1_size">56sp</dimen>
- <dimen name="car_headline2_size">50sp</dimen>
- <dimen name="car_label1_size">32sp</dimen>
- <dimen name="car_primary_icon_size">56dp</dimen>
- <dimen name="car_secondary_icon_size">36dp</dimen>
- <dimen name="car_single_line_list_item_height">128dp</dimen>
- <dimen name="car_slide_up_menu_initial_height">128dp</dimen>
- <dimen name="car_sub_header_height">96dp</dimen>
- <dimen name="car_title2_size">40sp</dimen>
- <dimen name="car_touch_target_size">96dp</dimen>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-h668dp-v13/values-h668dp-v13.xml b/android-car-lib/res/values-h668dp-v13/values-h668dp-v13.xml
deleted file mode 100644
index 127e094..0000000
--- a/android-car-lib/res/values-h668dp-v13/values-h668dp-v13.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_app_bar_height">96dp</dimen>
- <dimen name="car_drawer_list_item_end_icon_size">56dp</dimen>
- <dimen name="car_drawer_list_item_icon_size">108dp</dimen>
- <dimen name="car_drawer_list_item_small_icon_size">56dp</dimen>
- <dimen name="car_headline2_size">36sp</dimen>
- <dimen name="car_padding_2">16dp</dimen>
- <dimen name="car_padding_3">28dp</dimen>
- <dimen name="car_padding_4">32dp</dimen>
- <dimen name="car_padding_5">64dp</dimen>
- <dimen name="car_padding_6">96dp</dimen>
- <dimen name="car_scroll_bar_button_size">76dp</dimen>
- <dimen name="car_single_line_list_item_height">116dp</dimen>
- <dimen name="car_slide_up_menu_initial_height">116dp</dimen>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-hi/values-hi.xml b/android-car-lib/res/values-hi/values-hi.xml
deleted file mode 100644
index 5430f04..0000000
--- a/android-car-lib/res/values-hi/values-hi.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"सड़क पर ध्यान दें"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-hi/values.xml b/android-car-lib/res/values-hi/values.xml
deleted file mode 100644
index d2cb5f8..0000000
--- a/android-car-lib/res/values-hi/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"बड़ा/छोटा करने वाला बटन"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"सड़क पर ध्यान दें"</string>
-</resources>
diff --git a/android-car-lib/res/values-hr/values-hr.xml b/android-car-lib/res/values-hr/values-hr.xml
deleted file mode 100644
index dc7be15..0000000
--- a/android-car-lib/res/values-hr/values-hr.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Usredotočite se na cestu"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-hr/values.xml b/android-car-lib/res/values-hr/values.xml
deleted file mode 100644
index d279d04..0000000
--- a/android-car-lib/res/values-hr/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Gumb za proširivanje/sažimanje"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Usredotočite se na cestu"</string>
-</resources>
diff --git a/android-car-lib/res/values-hu/values-hu.xml b/android-car-lib/res/values-hu/values-hu.xml
deleted file mode 100644
index 1e7ff2c..0000000
--- a/android-car-lib/res/values-hu/values-hu.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Figyeljen az útra"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-hu/values.xml b/android-car-lib/res/values-hu/values.xml
deleted file mode 100644
index e009ab8..0000000
--- a/android-car-lib/res/values-hu/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Gomb kibontása/összecsukása"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Figyeljen az útra"</string>
-</resources>
diff --git a/android-car-lib/res/values-hy/values-hy.xml b/android-car-lib/res/values-hy/values-hy.xml
deleted file mode 100644
index 54ba33e..0000000
--- a/android-car-lib/res/values-hy/values-hy.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Հետևեք ճանապարհին"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-hy/values.xml b/android-car-lib/res/values-hy/values.xml
deleted file mode 100644
index 05a225d..0000000
--- a/android-car-lib/res/values-hy/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"«Ընդարձակել/ծալել» կոճակ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Հետևեք ճանապարհին"</string>
-</resources>
diff --git a/android-car-lib/res/values-in/values-in.xml b/android-car-lib/res/values-in/values-in.xml
deleted file mode 100644
index 25b10ed..0000000
--- a/android-car-lib/res/values-in/values-in.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Konsentrasi saat mengemudi"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-in/values.xml b/android-car-lib/res/values-in/values.xml
deleted file mode 100644
index 33e98c8..0000000
--- a/android-car-lib/res/values-in/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Tombol luaskan/ciutkan"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Konsentrasi saat mengemudi"</string>
-</resources>
diff --git a/android-car-lib/res/values-is/values-is.xml b/android-car-lib/res/values-is/values-is.xml
deleted file mode 100644
index c48d73b..0000000
--- a/android-car-lib/res/values-is/values-is.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Einbeittu þér að akstrinum"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-is/values.xml b/android-car-lib/res/values-is/values.xml
deleted file mode 100644
index 8db74e8..0000000
--- a/android-car-lib/res/values-is/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Hnappur til að stækka/minnka"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Einbeittu þér að akstrinum"</string>
-</resources>
diff --git a/android-car-lib/res/values-it/values-it.xml b/android-car-lib/res/values-it/values-it.xml
deleted file mode 100644
index 64780ad..0000000
--- a/android-car-lib/res/values-it/values-it.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentrati sulla strada"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-it/values.xml b/android-car-lib/res/values-it/values.xml
deleted file mode 100644
index 42e9fb6..0000000
--- a/android-car-lib/res/values-it/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Pulsante Espandi/Comprimi"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentrati sulla strada"</string>
-</resources>
diff --git a/android-car-lib/res/values-iw/values-iw.xml b/android-car-lib/res/values-iw/values-iw.xml
deleted file mode 100644
index 3af92b7..0000000
--- a/android-car-lib/res/values-iw/values-iw.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"עליך להתמקד בכביש"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-iw/values.xml b/android-car-lib/res/values-iw/values.xml
deleted file mode 100644
index 9a5d0d9..0000000
--- a/android-car-lib/res/values-iw/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"לחצן הרחבה וכיווץ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"עליך להתמקד בכביש"</string>
-</resources>
diff --git a/android-car-lib/res/values-ja/values-ja.xml b/android-car-lib/res/values-ja/values-ja.xml
deleted file mode 100644
index 598f61f..0000000
--- a/android-car-lib/res/values-ja/values-ja.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"運転に集中してください"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ja/values.xml b/android-car-lib/res/values-ja/values.xml
deleted file mode 100644
index 004bc89..0000000
--- a/android-car-lib/res/values-ja/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"展開 / 折りたたみボタン"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"運転に集中してください"</string>
-</resources>
diff --git a/android-car-lib/res/values-ka/values-ka.xml b/android-car-lib/res/values-ka/values-ka.xml
deleted file mode 100644
index 0e5a161..0000000
--- a/android-car-lib/res/values-ka/values-ka.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"კონცენტრირდით გზაზე"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ka/values.xml b/android-car-lib/res/values-ka/values.xml
deleted file mode 100644
index fa26c0c..0000000
--- a/android-car-lib/res/values-ka/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ღილაკის გაშლა/ჩაკეცვა"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"კონცენტრირდით გზაზე"</string>
-</resources>
diff --git a/android-car-lib/res/values-kk/values-kk.xml b/android-car-lib/res/values-kk/values-kk.xml
deleted file mode 100644
index b70f1db..0000000
--- a/android-car-lib/res/values-kk/values-kk.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Жолға назар аударыңыз"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-kk/values.xml b/android-car-lib/res/values-kk/values.xml
deleted file mode 100644
index a90524b..0000000
--- a/android-car-lib/res/values-kk/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"\"Жаю/Жию\" түймесі"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Жолға назар аударыңыз"</string>
-</resources>
diff --git a/android-car-lib/res/values-km/values-km.xml b/android-car-lib/res/values-km/values-km.xml
deleted file mode 100644
index b550049..0000000
--- a/android-car-lib/res/values-km/values-km.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"ផ្តោតលើការបើកបរ"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-km/values.xml b/android-car-lib/res/values-km/values.xml
deleted file mode 100644
index 8fc71c6..0000000
--- a/android-car-lib/res/values-km/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ប៊ូតុងពង្រីក/បង្រួម"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ផ្តោតលើការបើកបរ"</string>
-</resources>
diff --git a/android-car-lib/res/values-kn/values-kn.xml b/android-car-lib/res/values-kn/values-kn.xml
deleted file mode 100644
index cf77bf0..0000000
--- a/android-car-lib/res/values-kn/values-kn.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"ರಸ್ತೆಯ ಮೇಲೆ ಗಮನಹರಿಸಿ"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-kn/values.xml b/android-car-lib/res/values-kn/values.xml
deleted file mode 100644
index dea965f..0000000
--- a/android-car-lib/res/values-kn/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ವಿಸ್ತರಿಸಿ/ಕುಗ್ಗಿಸಿ ಬಟನ್"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ರಸ್ತೆಯ ಮೇಲೆ ಗಮನಹರಿಸಿ"</string>
-</resources>
diff --git a/android-car-lib/res/values-ko/values-ko.xml b/android-car-lib/res/values-ko/values-ko.xml
deleted file mode 100644
index 5564a12..0000000
--- a/android-car-lib/res/values-ko/values-ko.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"도로 상황에 집중하세요."</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ko/values.xml b/android-car-lib/res/values-ko/values.xml
deleted file mode 100644
index 62f39d1..0000000
--- a/android-car-lib/res/values-ko/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"펼치기/접기 버튼"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"도로 상황에 집중하세요."</string>
-</resources>
diff --git a/android-car-lib/res/values-ky/values-ky.xml b/android-car-lib/res/values-ky/values-ky.xml
deleted file mode 100644
index eb5b9dc..0000000
--- a/android-car-lib/res/values-ky/values-ky.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Жолго көңүл буруңуз"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ky/values.xml b/android-car-lib/res/values-ky/values.xml
deleted file mode 100644
index 5a48f45..0000000
--- a/android-car-lib/res/values-ky/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Жайып көрсөтүү/жыйыштыруу баскычы"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Жолго көңүл буруңуз"</string>
-</resources>
diff --git a/android-car-lib/res/values-lo/values-lo.xml b/android-car-lib/res/values-lo/values-lo.xml
deleted file mode 100644
index 332f827..0000000
--- a/android-car-lib/res/values-lo/values-lo.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"ຕັ້ງໃຈຂັບລົດ"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-lo/values.xml b/android-car-lib/res/values-lo/values.xml
deleted file mode 100644
index 96a8c09..0000000
--- a/android-car-lib/res/values-lo/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ປຸ່ມຂະຫຍາຍ/ຫຍໍ້ລົງ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ຕັ້ງໃຈຂັບລົດ"</string>
-</resources>
diff --git a/android-car-lib/res/values-lt/values-lt.xml b/android-car-lib/res/values-lt/values-lt.xml
deleted file mode 100644
index cad45a9..0000000
--- a/android-car-lib/res/values-lt/values-lt.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Sutelkite dėmesį į kelią"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-lt/values.xml b/android-car-lib/res/values-lt/values.xml
deleted file mode 100644
index d77e8b0..0000000
--- a/android-car-lib/res/values-lt/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Mygtukas „Išskleisti / sutraukti“"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Sutelkite dėmesį į kelią"</string>
-</resources>
diff --git a/android-car-lib/res/values-lv/values-lv.xml b/android-car-lib/res/values-lv/values-lv.xml
deleted file mode 100644
index fa8b02b..0000000
--- a/android-car-lib/res/values-lv/values-lv.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Pievērsieties autovadīšanai"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-lv/values.xml b/android-car-lib/res/values-lv/values.xml
deleted file mode 100644
index a29444b..0000000
--- a/android-car-lib/res/values-lv/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Izvēršanas/sakļaušanas poga"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Pievērsieties ceļam"</string>
-</resources>
diff --git a/android-car-lib/res/values-mk/values-mk.xml b/android-car-lib/res/values-mk/values-mk.xml
deleted file mode 100644
index a1fec3e..0000000
--- a/android-car-lib/res/values-mk/values-mk.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Фокусирајте се на патот"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-mk/values.xml b/android-car-lib/res/values-mk/values.xml
deleted file mode 100644
index ae4ceb5..0000000
--- a/android-car-lib/res/values-mk/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Копче за проширување/собирање"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Фокусирајте се на патот"</string>
-</resources>
diff --git a/android-car-lib/res/values-ml/values-ml.xml b/android-car-lib/res/values-ml/values-ml.xml
deleted file mode 100644
index 0301e61..0000000
--- a/android-car-lib/res/values-ml/values-ml.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"റോഡിൽ ശ്രദ്ധിക്കുക"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ml/values.xml b/android-car-lib/res/values-ml/values.xml
deleted file mode 100644
index 5399293..0000000
--- a/android-car-lib/res/values-ml/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"വികസിപ്പിക്കുക/ചുരുക്കുക ബട്ടൺ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"റോഡിൽ ശ്രദ്ധിക്കുക"</string>
-</resources>
diff --git a/android-car-lib/res/values-mn/values-mn.xml b/android-car-lib/res/values-mn/values-mn.xml
deleted file mode 100644
index 3d2a53f..0000000
--- a/android-car-lib/res/values-mn/values-mn.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Зам дээр төвлөрөх"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-mn/values.xml b/android-car-lib/res/values-mn/values.xml
deleted file mode 100644
index abe78f1..0000000
--- a/android-car-lib/res/values-mn/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Дэлгэх/буулгах товчлуур"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Зам дээр анхаарлаа төвлөрүүлэх"</string>
-</resources>
diff --git a/android-car-lib/res/values-mr/values-mr.xml b/android-car-lib/res/values-mr/values-mr.xml
deleted file mode 100644
index 9f9dfa7..0000000
--- a/android-car-lib/res/values-mr/values-mr.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"रस्त्यावर फोकस करा"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-mr/values.xml b/android-car-lib/res/values-mr/values.xml
deleted file mode 100644
index 77e890f..0000000
--- a/android-car-lib/res/values-mr/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"बटण विस्तृत करा/कोलॅप्स करा"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"रस्त्यावर फोकस करा"</string>
-</resources>
diff --git a/android-car-lib/res/values-ms/values-ms.xml b/android-car-lib/res/values-ms/values-ms.xml
deleted file mode 100644
index f5e24b5..0000000
--- a/android-car-lib/res/values-ms/values-ms.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Beri tumpuan pada jalan raya"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ms/values.xml b/android-car-lib/res/values-ms/values.xml
deleted file mode 100644
index d04485b..0000000
--- a/android-car-lib/res/values-ms/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Butang kembangkan/runtuhkan"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Beri tumpuan pada jalan raya"</string>
-</resources>
diff --git a/android-car-lib/res/values-my/values-my.xml b/android-car-lib/res/values-my/values-my.xml
deleted file mode 100644
index 617468e..0000000
--- a/android-car-lib/res/values-my/values-my.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"လမ်းကို အာရုံစိုက်ရန်"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-my/values.xml b/android-car-lib/res/values-my/values.xml
deleted file mode 100644
index be8c9fc..0000000
--- a/android-car-lib/res/values-my/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ချဲ့ရန်/လျှော့ပြရန် ခလုတ်"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"လမ်းပေါ်တွင် အာရုံစိုက်ပါ"</string>
-</resources>
diff --git a/android-car-lib/res/values-nb/values-nb.xml b/android-car-lib/res/values-nb/values-nb.xml
deleted file mode 100644
index 7f50f78..0000000
--- a/android-car-lib/res/values-nb/values-nb.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Fokuser på veien"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-nb/values.xml b/android-car-lib/res/values-nb/values.xml
deleted file mode 100644
index 5575a1a..0000000
--- a/android-car-lib/res/values-nb/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Vis/skjul-knapp"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Fokuser på veien"</string>
-</resources>
diff --git a/android-car-lib/res/values-ne/values-ne.xml b/android-car-lib/res/values-ne/values-ne.xml
deleted file mode 100644
index 91acb81..0000000
--- a/android-car-lib/res/values-ne/values-ne.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"सडकमा ध्यान केन्द्रित गर्नु…"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ne/values.xml b/android-car-lib/res/values-ne/values.xml
deleted file mode 100644
index b366be2..0000000
--- a/android-car-lib/res/values-ne/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"विस्तृत/संक्षिप्त गर्ने बटन"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"सडकमा ध्यान केन्द्रित गर्नुहोस्"</string>
-</resources>
diff --git a/android-car-lib/res/values-night-v8/values-night-v8.xml b/android-car-lib/res/values-night-v8/values-night-v8.xml
deleted file mode 100644
index e9a243a..0000000
--- a/android-car-lib/res/values-night-v8/values-night-v8.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <color name="car_accent">@color/car_accent_light</color>
- <color name="car_action1">@color/car_action1_light</color>
- <color name="car_body1">@color/car_body1_light</color>
- <color name="car_body2">@color/car_body2_light</color>
- <color name="car_body3">@color/car_body3_light</color>
- <color name="car_body4">@color/car_body4_light</color>
- <color name="car_card">@color/car_card_dark</color>
- <color name="car_card_inverse">@color/car_card_light</color>
- <color name="car_card_ripple_background">@color/car_card_ripple_background_light</color>
- <color name="car_card_ripple_background_inverse">@color/car_card_ripple_background_dark</color>
- <color name="car_headline1">@color/car_headline1_light</color>
- <color name="car_headline2">@color/car_headline2_light</color>
- <color name="car_headline3">@color/car_headline3_light</color>
- <color name="car_headline4">@color/car_headline4_light</color>
- <color name="car_label1">@color/car_label1_light</color>
- <color name="car_list_divider">@color/car_list_divider_light</color>
- <color name="car_list_divider_inverse">@color/car_list_divider_dark</color>
- <color name="car_scrollbar_thumb">@color/car_scrollbar_thumb_light</color>
- <color name="car_scrollbar_thumb_inverse">@color/car_scrollbar_thumb_dark</color>
- <color name="car_tint">@color/car_tint_light</color>
- <color name="car_tint_inverse">@color/car_tint_dark</color>
- <color name="car_title">@color/car_title_light</color>
- <color name="car_title2">@color/car_title2_light</color>
- <color name="speed_bump_background">#FF4C4C4C</color>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-nl/values-nl.xml b/android-car-lib/res/values-nl/values-nl.xml
deleted file mode 100644
index 756b53d..0000000
--- a/android-car-lib/res/values-nl/values-nl.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Houd je aandacht op de weg"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-nl/values.xml b/android-car-lib/res/values-nl/values.xml
deleted file mode 100644
index de8f173..0000000
--- a/android-car-lib/res/values-nl/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Knop voor uitvouwen/samenvouwen"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Houd je aandacht op de weg"</string>
-</resources>
diff --git a/android-car-lib/res/values-or/values.xml b/android-car-lib/res/values-or/values.xml
deleted file mode 100644
index 1836305..0000000
--- a/android-car-lib/res/values-or/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ବିସ୍ତାର/ସଂକୋଚନ ବଟନ୍"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ରାସ୍ତା ଉପରେ ଧ୍ୟାନରଖନ୍ତୁ"</string>
-</resources>
diff --git a/android-car-lib/res/values-pa/values-pa.xml b/android-car-lib/res/values-pa/values-pa.xml
deleted file mode 100644
index 8aec306..0000000
--- a/android-car-lib/res/values-pa/values-pa.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"ਸੜਕ \'ਤੇ ਧਿਆਨ ਦਿਓ"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-pa/values.xml b/android-car-lib/res/values-pa/values.xml
deleted file mode 100644
index c4369d3..0000000
--- a/android-car-lib/res/values-pa/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ਵਿਸਤਾਰ ਕਰੋ ਜਾਂ ਸਮੇਟੋ ਬਟਨ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"ਸੜਕ \'ਤੇ ਧਿਆਨ ਦਿਓ"</string>
-</resources>
diff --git a/android-car-lib/res/values-pl/values-pl.xml b/android-car-lib/res/values-pl/values-pl.xml
deleted file mode 100644
index 32a3af6..0000000
--- a/android-car-lib/res/values-pl/values-pl.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Skup się na drodze"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-pl/values.xml b/android-car-lib/res/values-pl/values.xml
deleted file mode 100644
index 0373349..0000000
--- a/android-car-lib/res/values-pl/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Przycisk zwijania/rozwijania"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Skup się na drodze"</string>
-</resources>
diff --git a/android-car-lib/res/values-pt-rBR/values-pt-rBR.xml b/android-car-lib/res/values-pt-rBR/values-pt-rBR.xml
deleted file mode 100644
index 01c5f31..0000000
--- a/android-car-lib/res/values-pt-rBR/values-pt-rBR.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Foco na estrada"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-pt-rPT/values-pt-rPT.xml b/android-car-lib/res/values-pt-rPT/values-pt-rPT.xml
deleted file mode 100644
index 9cc59bc..0000000
--- a/android-car-lib/res/values-pt-rPT/values-pt-rPT.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentre-se na estrada."</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-pt-rPT/values.xml b/android-car-lib/res/values-pt-rPT/values.xml
deleted file mode 100644
index 85c248a..0000000
--- a/android-car-lib/res/values-pt-rPT/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botão Expandir/reduzir"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentre-se na estrada"</string>
-</resources>
diff --git a/android-car-lib/res/values-pt/values-pt.xml b/android-car-lib/res/values-pt/values-pt.xml
deleted file mode 100644
index 01c5f31..0000000
--- a/android-car-lib/res/values-pt/values-pt.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Foco na estrada"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-pt/values.xml b/android-car-lib/res/values-pt/values.xml
deleted file mode 100644
index 8d7071d..0000000
--- a/android-car-lib/res/values-pt/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Botão \"Expandir/Recolher\""</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Foco na estrada"</string>
-</resources>
diff --git a/android-car-lib/res/values-ro/values-ro.xml b/android-car-lib/res/values-ro/values-ro.xml
deleted file mode 100644
index 72b3ef7..0000000
--- a/android-car-lib/res/values-ro/values-ro.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Concentrați-vă asupra drumului"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ro/values.xml b/android-car-lib/res/values-ro/values.xml
deleted file mode 100644
index 4a40973..0000000
--- a/android-car-lib/res/values-ro/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Butonul de extindere/restrângere"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Concentrați-vă asupra drumului"</string>
-</resources>
diff --git a/android-car-lib/res/values-ru/values-ru.xml b/android-car-lib/res/values-ru/values-ru.xml
deleted file mode 100644
index 96f1b8f..0000000
--- a/android-car-lib/res/values-ru/values-ru.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Следите за дорогой"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ru/values.xml b/android-car-lib/res/values-ru/values.xml
deleted file mode 100644
index 82def43..0000000
--- a/android-car-lib/res/values-ru/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Кнопка \"Развернуть/свернуть\""</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Следите за дорогой"</string>
-</resources>
diff --git a/android-car-lib/res/values-si/values-si.xml b/android-car-lib/res/values-si/values-si.xml
deleted file mode 100644
index 53aeba6..0000000
--- a/android-car-lib/res/values-si/values-si.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"මාර්ගයට අවධානය යොමු කරන්න"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-si/values.xml b/android-car-lib/res/values-si/values.xml
deleted file mode 100644
index d841b61..0000000
--- a/android-car-lib/res/values-si/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"දිග හැරීමේ/හැකිළීමේ බොත්තම"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"මාර්ගයට අවධානය යොමු කරන්න"</string>
-</resources>
diff --git a/android-car-lib/res/values-sk/values-sk.xml b/android-car-lib/res/values-sk/values-sk.xml
deleted file mode 100644
index 20634da..0000000
--- a/android-car-lib/res/values-sk/values-sk.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Sústreďte sa na cestu"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sk/values.xml b/android-car-lib/res/values-sk/values.xml
deleted file mode 100644
index cd78105..0000000
--- a/android-car-lib/res/values-sk/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Tlačidlo rozbalenia/zbalenia"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Sústreďte sa na cestu"</string>
-</resources>
diff --git a/android-car-lib/res/values-sl/values-sl.xml b/android-car-lib/res/values-sl/values-sl.xml
deleted file mode 100644
index 6a8dd70..0000000
--- a/android-car-lib/res/values-sl/values-sl.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Glejte na cesto"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sl/values.xml b/android-car-lib/res/values-sl/values.xml
deleted file mode 100644
index db5e068..0000000
--- a/android-car-lib/res/values-sl/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Gumb za razširitev/strnitev"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Glejte na cesto"</string>
-</resources>
diff --git a/android-car-lib/res/values-sq/values-sq.xml b/android-car-lib/res/values-sq/values-sq.xml
deleted file mode 100644
index 2079f47..0000000
--- a/android-car-lib/res/values-sq/values-sq.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Përqendrohu te rruga"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sq/values.xml b/android-car-lib/res/values-sq/values.xml
deleted file mode 100644
index e72a586..0000000
--- a/android-car-lib/res/values-sq/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Butoni i zgjerimit/palosjes"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Përqendrohu te rruga"</string>
-</resources>
diff --git a/android-car-lib/res/values-sr/values-sr.xml b/android-car-lib/res/values-sr/values-sr.xml
deleted file mode 100644
index 428dcc6..0000000
--- a/android-car-lib/res/values-sr/values-sr.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Фокусирајте се на пут"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sr/values.xml b/android-car-lib/res/values-sr/values.xml
deleted file mode 100644
index 2c6b1ea..0000000
--- a/android-car-lib/res/values-sr/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Дугме Прошири/скупи"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Фокусирајте се на пут"</string>
-</resources>
diff --git a/android-car-lib/res/values-sv/values-sv.xml b/android-car-lib/res/values-sv/values-sv.xml
deleted file mode 100644
index b63afe6..0000000
--- a/android-car-lib/res/values-sv/values-sv.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Fokusera på körningen"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sv/values.xml b/android-car-lib/res/values-sv/values.xml
deleted file mode 100644
index d7a7ca4..0000000
--- a/android-car-lib/res/values-sv/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Knappen Utöka/komprimera"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Fokusera på körningen"</string>
-</resources>
diff --git a/android-car-lib/res/values-sw/values-sw.xml b/android-car-lib/res/values-sw/values-sw.xml
deleted file mode 100644
index 4b3d68a..0000000
--- a/android-car-lib/res/values-sw/values-sw.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Tia makini barabarani"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-sw/values.xml b/android-car-lib/res/values-sw/values.xml
deleted file mode 100644
index dfb951c..0000000
--- a/android-car-lib/res/values-sw/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Kitufe cha kupanua/kukunja"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Makinika barabarani"</string>
-</resources>
diff --git a/android-car-lib/res/values-ta/values-ta.xml b/android-car-lib/res/values-ta/values-ta.xml
deleted file mode 100644
index 0718f29..0000000
--- a/android-car-lib/res/values-ta/values-ta.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"வாகனம் ஓட்டும்போது கவனம் தேவை"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ta/values.xml b/android-car-lib/res/values-ta/values.xml
deleted file mode 100644
index 2a7bf98..0000000
--- a/android-car-lib/res/values-ta/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"விரிவாக்குவதற்கான/சுருக்குவதற்கான பட்டன்"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"வாகனம் ஓட்டும்போது கவனம் தேவை"</string>
-</resources>
diff --git a/android-car-lib/res/values-te/values-te.xml b/android-car-lib/res/values-te/values-te.xml
deleted file mode 100644
index c4d7d3e..0000000
--- a/android-car-lib/res/values-te/values-te.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"రహదారిపై దృష్టి ఉంచండి"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-te/values.xml b/android-car-lib/res/values-te/values.xml
deleted file mode 100644
index 082ee94..0000000
--- a/android-car-lib/res/values-te/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"విస్తరించు/కుదించు బటన్"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"రహదారిపై దృష్టి ఉంచండి"</string>
-</resources>
diff --git a/android-car-lib/res/values-th/values-th.xml b/android-car-lib/res/values-th/values-th.xml
deleted file mode 100644
index e3fb94f..0000000
--- a/android-car-lib/res/values-th/values-th.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"จดจ่อกับถนน"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-th/values.xml b/android-car-lib/res/values-th/values.xml
deleted file mode 100644
index 4c7f8ce..0000000
--- a/android-car-lib/res/values-th/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"ปุ่มขยาย/ยุบ"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"จดจ่อกับถนน"</string>
-</resources>
diff --git a/android-car-lib/res/values-tl/values-tl.xml b/android-car-lib/res/values-tl/values-tl.xml
deleted file mode 100644
index 332c15c..0000000
--- a/android-car-lib/res/values-tl/values-tl.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Tumuon sa kalsada"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-tl/values.xml b/android-car-lib/res/values-tl/values.xml
deleted file mode 100644
index 674ffb1..0000000
--- a/android-car-lib/res/values-tl/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Button na i-expand/i-collapse"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Tumuon sa kalsada"</string>
-</resources>
diff --git a/android-car-lib/res/values-tr/values-tr.xml b/android-car-lib/res/values-tr/values-tr.xml
deleted file mode 100644
index 5f66ef3..0000000
--- a/android-car-lib/res/values-tr/values-tr.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Dikkatinizi yola verin"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-tr/values.xml b/android-car-lib/res/values-tr/values.xml
deleted file mode 100644
index dde5e18..0000000
--- a/android-car-lib/res/values-tr/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Genişlet/daralt düğmesi"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Dikkatinizi yola verin"</string>
-</resources>
diff --git a/android-car-lib/res/values-uk/values-uk.xml b/android-car-lib/res/values-uk/values-uk.xml
deleted file mode 100644
index 472d178..0000000
--- a/android-car-lib/res/values-uk/values-uk.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Зосередьтеся на дорозі"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-uk/values.xml b/android-car-lib/res/values-uk/values.xml
deleted file mode 100644
index e277cc5..0000000
--- a/android-car-lib/res/values-uk/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Кнопка \"Розгорнути або згорнути\""</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Зосередьтеся на дорозі"</string>
-</resources>
diff --git a/android-car-lib/res/values-ur/values-ur.xml b/android-car-lib/res/values-ur/values-ur.xml
deleted file mode 100644
index 6f13ae2..0000000
--- a/android-car-lib/res/values-ur/values-ur.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"سڑک پر توجہ مرکوز کریں"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-ur/values.xml b/android-car-lib/res/values-ur/values.xml
deleted file mode 100644
index 70659bf..0000000
--- a/android-car-lib/res/values-ur/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"پھیلائیں/سکیڑیں بٹن"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"سڑک پر توجہ مرکوز کریں"</string>
-</resources>
diff --git a/android-car-lib/res/values-uz/values-uz.xml b/android-car-lib/res/values-uz/values-uz.xml
deleted file mode 100644
index cb5f3aa..0000000
--- a/android-car-lib/res/values-uz/values-uz.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Diqqatingizni yo‘lga qarating"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-uz/values.xml b/android-car-lib/res/values-uz/values.xml
deleted file mode 100644
index e9c7755..0000000
--- a/android-car-lib/res/values-uz/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Yoyish/yig‘ish tugmasi"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Diqqatingizni yo‘lga qarating"</string>
-</resources>
diff --git a/android-car-lib/res/values-vi/values-vi.xml b/android-car-lib/res/values-vi/values-vi.xml
deleted file mode 100644
index cecbeac..0000000
--- a/android-car-lib/res/values-vi/values-vi.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Tập trung vào đường đi"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-vi/values.xml b/android-car-lib/res/values-vi/values.xml
deleted file mode 100644
index 070849e..0000000
--- a/android-car-lib/res/values-vi/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Nút mở rộng/thu gọn"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Tập trung vào đường đi"</string>
-</resources>
diff --git a/android-car-lib/res/values-w1280dp-v13/values-w1280dp-v13.xml b/android-car-lib/res/values-w1280dp-v13/values-w1280dp-v13.xml
deleted file mode 100644
index e5d29e6..0000000
--- a/android-car-lib/res/values-w1280dp-v13/values-w1280dp-v13.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_keyline_4">182dp</dimen>
- <dimen name="car_keyline_4_neg">-182dp</dimen>
- <dimen name="car_margin">148dp</dimen>
- <integer name="car_dialog_column_number">8</integer>
- <integer name="column_card_default_column_span">8</integer>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-w1920dp-v13/values-w1920dp-v13.xml b/android-car-lib/res/values-w1920dp-v13/values-w1920dp-v13.xml
deleted file mode 100644
index bcffcfa..0000000
--- a/android-car-lib/res/values-w1920dp-v13/values-w1920dp-v13.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_gutter_size">32dp</dimen>
- <dimen name="car_keyline_1">48dp</dimen>
- <dimen name="car_keyline_1_keyline_3_diff">104dp</dimen>
- <dimen name="car_keyline_1_neg">-48dp</dimen>
- <dimen name="car_keyline_3">152dp</dimen>
- <dimen name="car_keyline_3_neg">-152dp</dimen>
- <dimen name="car_margin">192dp</dimen>
- <integer name="car_column_number">16</integer>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-w690dp-v13/values-w690dp-v13.xml b/android-car-lib/res/values-w690dp-v13/values-w690dp-v13.xml
deleted file mode 100644
index 19864c5..0000000
--- a/android-car-lib/res/values-w690dp-v13/values-w690dp-v13.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_margin">112dp</dimen>
- <integer name="car_column_number">12</integer>
- <integer name="car_dialog_column_number">10</integer>
- <integer name="car_slide_up_menu_column_number">12</integer>
- <integer name="column_card_default_column_span">12</integer>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-w930dp-v13/values-w930dp-v13.xml b/android-car-lib/res/values-w930dp-v13/values-w930dp-v13.xml
deleted file mode 100644
index 363170c..0000000
--- a/android-car-lib/res/values-w930dp-v13/values-w930dp-v13.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="car_gutter_size">24dp</dimen>
- <dimen name="car_keyline_1">32dp</dimen>
- <dimen name="car_keyline_1_keyline_3_diff">96dp</dimen>
- <dimen name="car_keyline_1_neg">-32dp</dimen>
- <dimen name="car_keyline_2">108dp</dimen>
- <dimen name="car_keyline_2_neg">-108dp</dimen>
- <dimen name="car_keyline_3">128dp</dimen>
- <dimen name="car_keyline_3_neg">-128dp</dimen>
- <dimen name="car_keyline_4">168dp</dimen>
- <dimen name="car_keyline_4_neg">-168dp</dimen>
- <integer name="car_dialog_column_number">10</integer>
- <integer name="column_card_default_column_span">10</integer>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-zh-rCN/values-zh-rCN.xml b/android-car-lib/res/values-zh-rCN/values-zh-rCN.xml
deleted file mode 100644
index e3ac7a1..0000000
--- a/android-car-lib/res/values-zh-rCN/values-zh-rCN.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"请专心驾驶"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-zh-rCN/values.xml b/android-car-lib/res/values-zh-rCN/values.xml
deleted file mode 100644
index 5347850..0000000
--- a/android-car-lib/res/values-zh-rCN/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"“展开”/“收起”按钮"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"请专心驾驶"</string>
-</resources>
diff --git a/android-car-lib/res/values-zh-rHK/values-zh-rHK.xml b/android-car-lib/res/values-zh-rHK/values-zh-rHK.xml
deleted file mode 100644
index 37107e1..0000000
--- a/android-car-lib/res/values-zh-rHK/values-zh-rHK.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"請專心駕駛"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-zh-rHK/values.xml b/android-car-lib/res/values-zh-rHK/values.xml
deleted file mode 100644
index b190714..0000000
--- a/android-car-lib/res/values-zh-rHK/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"展開/收合按鈕"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"請專心駕駛"</string>
-</resources>
diff --git a/android-car-lib/res/values-zh-rTW/values-zh-rTW.xml b/android-car-lib/res/values-zh-rTW/values-zh-rTW.xml
deleted file mode 100644
index 37107e1..0000000
--- a/android-car-lib/res/values-zh-rTW/values-zh-rTW.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"請專心駕駛"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-zh-rTW/values.xml b/android-car-lib/res/values-zh-rTW/values.xml
deleted file mode 100644
index b190714..0000000
--- a/android-car-lib/res/values-zh-rTW/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"展開/收合按鈕"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"請專心駕駛"</string>
-</resources>
diff --git a/android-car-lib/res/values-zu/values-zu.xml b/android-car-lib/res/values-zu/values-zu.xml
deleted file mode 100644
index 1f93364..0000000
--- a/android-car-lib/res/values-zu/values-zu.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string msgid="5405697774899378511" name="speed_bump_lockout_message">"Gxila emgwaqweni"</string>
-</resources>
\ No newline at end of file
diff --git a/android-car-lib/res/values-zu/values.xml b/android-car-lib/res/values-zu/values.xml
deleted file mode 100644
index 0646429..0000000
--- a/android-car-lib/res/values-zu/values.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="action_bar_expand_collapse_button" msgid="2901704611804567760">"Inkinobho yokunweba/ukugoqa"</string>
- <string name="speed_bump_lockout_message" msgid="4050134640025645838">"Gxila emgwaqeni"</string>
-</resources>
diff --git a/android-car-lib/res/values/values.xml b/android-car-lib/res/values/values.xml
deleted file mode 100644
index 0ae2c80..0000000
--- a/android-car-lib/res/values/values.xml
+++ /dev/null
@@ -1,546 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <color name="car_accent">@color/car_accent_dark</color>
- <color name="car_accent_dark">@color/car_teal_700</color>
- <color name="car_accent_light">@color/car_teal_200</color>
- <color name="car_action1">@color/car_action1_dark</color>
- <color name="car_action1_dark">@color/car_grey_50</color>
- <color name="car_action1_light">@color/car_grey_900</color>
- <color name="car_blue_300">#ff91a7ff</color>
- <color name="car_blue_500">#ff5677fc</color>
- <color name="car_blue_grey_800">#ff37474F</color>
- <color name="car_blue_grey_900">#ff263238</color>
- <color name="car_body1">@color/car_body1_dark</color>
- <color name="car_body1_dark">@color/car_grey_900</color>
- <color name="car_body1_light">@color/car_grey_100</color>
- <color name="car_body2">@color/car_body2_dark</color>
- <color name="car_body2_dark">@color/car_grey_650</color>
- <color name="car_body2_light">@color/car_grey_300</color>
- <color name="car_body3">@color/car_body3_dark</color>
- <color name="car_body3_dark">@android:color/black</color>
- <color name="car_body3_light">@android:color/white</color>
- <color name="car_body4">@color/car_body4_dark</color>
- <color name="car_body4_dark">@android:color/black</color>
- <color name="car_body4_light">@android:color/white</color>
- <color name="car_card">@color/car_card_light</color>
- <color name="car_card_dark">@color/car_dark_blue_grey_700</color>
- <color name="car_card_inverse">@color/car_card_dark</color>
- <color name="car_card_light">@color/car_grey_50</color>
- <color name="car_card_ripple_background">@color/car_card_ripple_background_dark</color>
- <color name="car_card_ripple_background_dark">#8F000000</color>
- <color name="car_card_ripple_background_inverse">@color/car_card_ripple_background_light</color>
- <color name="car_card_ripple_background_light">#27ffffff</color>
- <color name="car_dark_blue_grey_1000">#ff090c0f</color>
- <color name="car_dark_blue_grey_600">#ff1d272d</color>
- <color name="car_dark_blue_grey_700">#ff172026</color>
- <color name="car_dark_blue_grey_800">#ff11181d</color>
- <color name="car_dark_blue_grey_900">#ff0c1013</color>
- <color name="car_green_500">#ff0f9d58</color>
- <color name="car_green_700">#ff0b8043</color>
- <color name="car_grey_100">#fff5f5f5</color>
- <color name="car_grey_1000">#cc000000</color>
- <color name="car_grey_200">#ffeeeeee</color>
- <color name="car_grey_300">#ffe0e0e0</color>
- <color name="car_grey_400">#ffbdbdbd</color>
- <color name="car_grey_50">#fffafafa</color>
- <color name="car_grey_500">#ff9e9e9e</color>
- <color name="car_grey_600">#ff757575</color>
- <color name="car_grey_650">#ff6B6B6B</color>
- <color name="car_grey_700">#ff616161</color>
- <color name="car_grey_800">#ff424242</color>
- <color name="car_grey_900">#ff212121</color>
- <color name="car_headline1">@color/car_headline1_dark</color>
- <color name="car_headline1_dark">@color/car_grey_800</color>
- <color name="car_headline1_light">@color/car_grey_100</color>
- <color name="car_headline2">@color/car_headline2_dark</color>
- <color name="car_headline2_dark">@color/car_grey_900</color>
- <color name="car_headline2_light">@color/car_grey_100</color>
- <color name="car_headline3">@color/car_headline3_dark</color>
- <color name="car_headline3_dark">@color/car_grey_900</color>
- <color name="car_headline3_light">@android:color/white</color>
- <color name="car_headline4">@color/car_headline4_dark</color>
- <color name="car_headline4_dark">@android:color/black</color>
- <color name="car_headline4_light">@android:color/white</color>
- <color name="car_highlight">@color/car_highlight_light</color>
- <color name="car_highlight_dark">@color/car_teal_200</color>
- <color name="car_highlight_light">@color/car_teal_700</color>
- <color name="car_indigo_800">#ff283593</color>
- <color name="car_label1">@color/car_label1_dark</color>
- <color name="car_label1_dark">@color/car_grey_900</color>
- <color name="car_label1_light">@color/car_grey_50</color>
- <color name="car_light_blue_300">#ff4fc3f7</color>
- <color name="car_light_blue_500">#ff03A9F4</color>
- <color name="car_light_blue_600">#ff039be5</color>
- <color name="car_light_blue_700">#ff0288d1</color>
- <color name="car_light_blue_800">#ff0277bd</color>
- <color name="car_light_blue_900">#ff01579b</color>
- <color name="car_list_divider">@color/car_list_divider_dark</color>
- <color name="car_list_divider_dark">#1f000000</color>
- <color name="car_list_divider_inverse">@color/car_list_divider_light</color>
- <color name="car_list_divider_light">#1fffffff</color>
- <color name="car_list_header">@color/car_blue_500</color>
- <color name="car_red_400">#ffe06055</color>
- <color name="car_red_500">#ffdb4437</color>
- <color name="car_red_500a">#ffd50000</color>
- <color name="car_red_700">#ffc53929</color>
- <color name="car_scrollbar_thumb">@color/car_scrollbar_thumb_dark</color>
- <color name="car_scrollbar_thumb_dark">#7f0b0f12</color>
- <color name="car_scrollbar_thumb_inverse">@color/car_scrollbar_thumb_light</color>
- <color name="car_scrollbar_thumb_light">#99ffffff</color>
- <color name="car_seekbar_track_background">@color/car_seekbar_track_background_dark</color>
- <color name="car_seekbar_track_background_dark">@color/car_grey_700</color>
- <color name="car_seekbar_track_background_inverse"> @color/car_seekbar_track_background_light
- </color>
- <color name="car_seekbar_track_background_light">@color/car_grey_400</color>
- <color name="car_teal_200">#ff80cbc4</color>
- <color name="car_teal_700">#ff00796b</color>
- <color name="car_tint">@color/car_tint_dark</color>
- <color name="car_tint_dark">@color/car_grey_900</color>
- <color name="car_tint_inverse">@color/car_tint_light</color>
- <color name="car_tint_light">@color/car_grey_50</color>
- <color name="car_title">@color/car_title_dark</color>
- <color name="car_title2">@color/car_title2_dark</color>
- <color name="car_title2_dark">@color/car_grey_900</color>
- <color name="car_title2_light">@color/car_grey_100</color>
- <color name="car_title_dark">@color/car_grey_900</color>
- <color name="car_title_light">@color/car_grey_100</color>
- <color name="car_white_1000">#1effffff</color>
- <color name="car_yellow_500">#fff4b400</color>
- <color name="car_yellow_800">#ffee8100</color>
- <color name="speed_bump_background">#FFD0D0D0</color>
- <declare-styleable name="ActionBar"><attr format="integer" name="columns"/></declare-styleable>
- <declare-styleable name="CarTheme"><attr format="reference" name="carDialogTheme"/><attr format="reference" name="pagedListViewStyle"/><attr format="reference" name="listItemStyle"/><attr format="color" name="dialogBackgroundColor"/><attr format="reference" name="dialogTitleStyle"/><attr format="reference" name="dialogBodyStyle"/><attr format="reference" name="dialogButtonStyle"/><attr format="reference" name="dialogListTheme"/><attr format="color" name="drawerBackgroundColor"/><attr format="color" name="drawerOpenHeaderColor"/><attr format="color" name="drawerClosedHeaderColor"/><attr format="reference" name="drawerItemTitleTextAppearance"/><attr format="reference" name="drawerItemBodyTextAppearance"/><attr format="reference" name="drawerListStyle"/></declare-styleable>
- <declare-styleable name="ClickThroughToolbar"><attr format="boolean" name="clickThrough"/></declare-styleable>
- <declare-styleable name="ColumnCardView"><attr format="integer" name="columnSpan"/></declare-styleable>
- <declare-styleable name="DrawerArrowDrawable"><attr format="color" name="carArrowColor"/><attr format="boolean" name="carArrowAnimate"/><attr format="dimension" name="carArrowSize"/><attr format="dimension" name="carArrowHeadLength"/><attr format="dimension" name="carArrowShaftLength"/><attr format="dimension" name="carArrowThickness"/><attr format="dimension" name="carMenuBarSpacing"/><attr format="dimension" name="carMenuBarThickness"/></declare-styleable>
- <declare-styleable name="ListItem"><attr format="color" name="listItemBackgroundColor"/><attr format="reference" name="listItemTitleTextAppearance"/><attr format="reference" name="listItemBodyTextAppearance"/></declare-styleable>
- <declare-styleable name="PagedListView"><attr format="boolean" name="offsetScrollBar"/><attr format="enum" name="gutter">
-
- <enum name="none" value="0"/>
-
- <enum name="start" value="1"/>
-
- <enum name="end" value="2"/>
-
- <enum name="both" value="3"/>
- </attr><attr format="dimension" name="gutterSize"/><attr format="boolean" name="scrollBarEnabled"/><attr format="dimension" name="scrollBarTopMargin"/><attr format="dimension" name="scrollBarContainerWidth"/><attr format="boolean" name="showPagedListViewDivider"/><attr format="reference" name="alignDividerStartTo"/><attr format="reference" name="alignDividerEndTo"/><attr format="dimension" name="dividerStartMargin"/><attr format="dimension" name="dividerEndMargin"/><attr format="color" name="listDividerColor"/><attr format="dimension" name="listEndMargin"/><attr format="dimension" name="itemSpacing"/><attr format="reference" name="upButtonIcon"/><attr format="reference" name="downButtonIcon"/><attr format="reference" name="listContentTopOffset"/><attr format="enum" name="dayNightStyle">
-
- <enum name="auto" value="0"/>
-
- <enum name="auto_inverse" value="1"/>
-
- <enum name="force_night" value="2"/>
-
- <enum name="force_day" value="3"/>
- </attr></declare-styleable>
- <dimen name="app_header_height">96dp</dimen>
- <dimen name="car_action1_size">26sp</dimen>
- <dimen name="car_action_bar_activation_ring_radius">64dp</dimen>
- <dimen name="car_action_bar_activation_ring_stroke_width">3dp</dimen>
- <dimen name="car_action_bar_button_height">128dp</dimen>
- <dimen name="car_action_bar_button_ripple_radius">48dp</dimen>
- <dimen name="car_action_bar_button_width">128dp</dimen>
- <dimen name="car_action_bar_buttons_space">@dimen/car_padding_4</dimen>
- <dimen name="car_action_bar_elevation">2dp</dimen>
- <dimen name="car_action_bar_height">128dp</dimen>
- <dimen name="car_action_bar_touch_ripple_size">38dp</dimen>
- <dimen name="car_action_button_icon_inset">24dp</dimen>
- <dimen name="car_action_button_ripple_inset">16dp</dimen>
- <dimen name="car_alpha_jump_button_size">@dimen/car_scroll_bar_button_size</dimen>
- <dimen name="car_app_bar_default_elevation">8dp</dimen>
- <dimen name="car_app_bar_height">80dp</dimen>
- <dimen name="car_arrow_head_length">18dp</dimen>
- <dimen name="car_arrow_shaft_length">34dp</dimen>
- <dimen name="car_arrow_size">96dp</dimen>
- <dimen name="car_arrow_thickness">3dp</dimen>
- <dimen name="car_avatar_size">56dp</dimen>
- <dimen name="car_body1_size">32sp</dimen>
- <dimen name="car_body2_size">26sp</dimen>
- <dimen name="car_body3_size">16sp</dimen>
- <dimen name="car_body4_size">14sp</dimen>
- <dimen name="car_body5_size">18sp</dimen>
- <dimen name="car_borderless_button_horizontal_padding">0dp</dimen>
- <dimen name="car_button_height">56dp</dimen>
- <dimen name="car_button_horizontal_padding">@dimen/car_padding_4</dimen>
- <dimen name="car_button_min_width">158dp</dimen>
- <dimen name="car_button_radius">@dimen/car_radius_1</dimen>
- <dimen name="car_card_action_bar_height">76dp</dimen>
- <dimen name="car_card_header_height">76dp</dimen>
- <dimen name="car_dialog_action_bar_height">@dimen/car_card_action_bar_height</dimen>
- <dimen name="car_dialog_elevation">16dp</dimen>
- <dimen name="car_dialog_header_height">@dimen/car_card_header_height</dimen>
- <dimen name="car_double_line_list_item_height">@dimen/car_single_line_list_item_height</dimen>
- <dimen name="car_drawer_list_item_end_icon_size">56dp</dimen>
- <dimen name="car_drawer_list_item_end_margin">32dp</dimen>
- <dimen name="car_drawer_list_item_icon_end_margin">32dp</dimen>
- <dimen name="car_drawer_list_item_icon_size">64dp</dimen>
- <dimen name="car_drawer_list_item_small_icon_size">56dp</dimen>
- <dimen name="car_drawer_margin_end">96dp</dimen>
- <dimen name="car_drawer_progress_bar_size">48dp</dimen>
- <dimen name="car_gutter_size">16dp</dimen>
- <dimen name="car_headline1_size">45sp</dimen>
- <dimen name="car_headline2_size">32sp</dimen>
- <dimen name="car_headline3_size">24sp</dimen>
- <dimen name="car_headline4_size">20sp</dimen>
- <dimen name="car_keyline_1">24dp</dimen>
- <dimen name="car_keyline_1_keyline_3_diff">88dp</dimen>
- <dimen name="car_keyline_1_neg">-24dp</dimen>
- <dimen name="car_keyline_2">96dp</dimen>
- <dimen name="car_keyline_2_neg">-96dp</dimen>
- <dimen name="car_keyline_3">112dp</dimen>
- <dimen name="car_keyline_3_neg">-112dp</dimen>
- <dimen name="car_keyline_4">148dp</dimen>
- <dimen name="car_keyline_4_neg">-148dp</dimen>
- <dimen name="car_label1_size">26sp</dimen>
- <dimen name="car_last_card_peek_amount">16dp</dimen>
- <dimen name="car_list_divider_height">1dp</dimen>
- <dimen name="car_margin">20dp</dimen>
- <dimen name="car_menu_bar_length">40dp</dimen>
- <dimen name="car_menu_bar_spacing">6dp</dimen>
- <dimen name="car_padding_0">4dp</dimen>
- <dimen name="car_padding_1">10dp</dimen>
- <dimen name="car_padding_2">12dp</dimen>
- <dimen name="car_padding_3">16dp</dimen>
- <dimen name="car_padding_4">20dp</dimen>
- <dimen name="car_padding_5">40dp</dimen>
- <dimen name="car_padding_6">64dp</dimen>
- <dimen name="car_primary_icon_size">44dp</dimen>
- <dimen name="car_progress_bar_height">@dimen/car_seekbar_height</dimen>
- <dimen name="car_radius_1">4dp</dimen>
- <dimen name="car_radius_2">8dp</dimen>
- <dimen name="car_radius_3">16dp</dimen>
- <dimen name="car_radius_5">100dp</dimen>
- <dimen name="car_sample_row_height">128dp</dimen>
- <dimen name="car_scroll_bar_button_size">56dp</dimen>
- <dimen name="car_scroll_bar_thumb_width">6dp</dimen>
- <dimen name="car_secondary_icon_size">24dp</dimen>
- <dimen name="car_seekbar_height">6dp</dimen>
- <dimen name="car_seekbar_thumb_size">20dp</dimen>
- <dimen name="car_seekbar_thumb_stroke">1dp</dimen>
- <dimen name="car_single_line_list_item_height">96dp</dimen>
- <dimen name="car_slide_down_menu_initial_height">@dimen/car_slide_up_menu_initial_height</dimen>
- <dimen name="car_slide_up_menu_initial_height">76dp</dimen>
- <dimen name="car_sub_header_height">76dp</dimen>
- <dimen name="car_text_input_line_height">2dp</dimen>
- <dimen name="car_text_vertical_margin">2dp</dimen>
- <dimen name="car_title2_size">32sp</dimen>
- <dimen name="car_title_size">32sp</dimen>
- <dimen name="car_touch_target_size">76dp</dimen>
- <dimen name="car_vertical_line_divider_height">60dp</dimen>
- <dimen name="car_vertical_line_divider_width">1dp</dimen>
- <dimen name="speed_bump_lock_out_drawable_margin_bottom">8dp</dimen>
- <dimen name="speed_bump_lock_out_message_height">96dp</dimen>
- <integer name="car_action_bar_collapse_anim_duration">233</integer>
- <integer name="car_action_bar_expand_anim_duration">333</integer>
- <integer name="car_borderless_button_text_length_limit">20</integer>
- <integer name="car_column_number">4</integer>
- <integer name="car_dialog_column_number">10</integer>
- <integer name="car_list_item_text_length_limit">120</integer>
- <integer name="car_slide_up_menu_column_number">4</integer>
- <integer name="column_card_default_column_span">4</integer>
- <integer name="speed_bump_fade_duration_ms">167</integer>
- <integer name="speed_bump_lock_out_color_change_ms">500</integer>
- <integer name="speed_bump_lock_out_color_change_start_delay_ms">5433</integer>
- <integer name="speed_bump_lock_out_duration_ms">5933</integer>
- <integer name="speed_bump_translate_y_duration_ms">300</integer>
- <string name="action_bar_expand_collapse_button">Expand/collapse button</string>
- <string name="car_drawer_close" translatable="false">Close drawer</string>
- <string name="car_drawer_open" translatable="false">Open drawer</string>
- <string name="ellipsis" translatable="false">…</string>
- <string name="speed_bump_lockout_message">Focus on the road</string>
- <style name="CarListVerticalDivider">
- <item name="android:layout_width">@dimen/car_vertical_line_divider_width</item>
- <item name="android:layout_height">@dimen/car_vertical_line_divider_height</item>
- <item name="android:layout_marginStart">@dimen/car_padding_4</item>
- <item name="android:background">@color/car_list_divider</item>
- </style>
- <style name="TextAppearance.Car" parent="TextAppearance.AppCompat"/>
- <style name="TextAppearance.Car.Body1">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_body1_size</item>
- <item name="android:textColor">@color/car_body1</item>
- </style>
- <style name="TextAppearance.Car.Body1.Dark">
- <item name="android:textColor">@color/car_body2_dark</item>
- </style>
- <style name="TextAppearance.Car.Body1.Light">
- <item name="android:textColor">@color/car_body1_light</item>
- </style>
- <style name="TextAppearance.Car.Body2">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_body2_size</item>
- <item name="android:textColor">@color/car_body2</item>
- </style>
- <style name="TextAppearance.Car.Body2.Dark">
- <item name="android:textColor">@color/car_body2_dark</item>
- </style>
- <style name="TextAppearance.Car.Body2.Light">
- <item name="android:textColor">@color/car_body2_light</item>
- </style>
- <style name="TextAppearance.Car.Body3">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_body3_size</item>
- <item name="android:textColor">@color/car_body3</item>
- </style>
- <style name="TextAppearance.Car.Body4">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_body4_size</item>
- <item name="android:textColor">@color/car_body4</item>
- </style>
- <style name="TextAppearance.Car.Headline1">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_headline1_size</item>
- <item name="android:textColor">@color/car_headline1</item>
- </style>
- <style name="TextAppearance.Car.Headline1.Dark">
- <item name="android:textColor">@color/car_headline1_dark</item>
- </style>
- <style name="TextAppearance.Car.Headline1.Light">
- <item name="android:textColor">@color/car_headline1_light</item>
- </style>
- <style name="TextAppearance.Car.Headline2">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_headline2_size</item>
- <item name="android:textColor">@color/car_headline2</item>
- </style>
- <style name="TextAppearance.Car.Headline3">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_headline3_size</item>
- <item name="android:textColor">@color/car_headline3</item>
- </style>
- <style name="TextAppearance.Car.Headline4">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_headline4_size</item>
- <item name="android:textColor">@color/car_headline4</item>
- </style>
- <style name="TextAppearance.Car.Hint" parent="TextAppearance.Car.Body2"/>
- <style name="TextAppearance.Car.Label1">
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_label1_size</item>
- <item name="android:textColor">@color/car_label1</item>
- </style>
- <style name="TextAppearance.Car.Title">
- <item name="android:fontFamily">sans-serif-medium</item>
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_title_size</item>
- <item name="android:textColor">@color/car_title</item>
- </style>
- <style name="TextAppearance.Car.Title.Dark">
- <item name="android:textColor">@color/car_title_dark</item>
- </style>
- <style name="TextAppearance.Car.Title.Light">
- <item name="android:textColor">@color/car_title_light</item>
- </style>
- <style name="TextAppearance.Car.Title2">
- <item name="android:fontFamily">sans-serif-medium</item>
- <item name="android:textStyle">normal</item>
- <item name="android:textSize">@dimen/car_title2_size</item>
- <item name="android:textColor">@color/car_title2</item>
- </style>
- <style name="TextAppearance.Car.Title2.Dark">
- <item name="android:textColor">@color/car_title2_dark</item>
- </style>
- <style name="TextAppearance.Car.Title2.Light">
- <item name="android:textColor">@color/car_title2_light</item>
- </style>
- <style name="Theme.Car.Dark.Dialog" parent="Theme.Car.Dialog">
- <item name="dialogButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="dialogBackgroundColor">@color/car_card_dark</item>
- <item name="dialogListTheme">@style/Theme.Car.Light.List.DarkItems</item>
- <item name="dialogTitleStyle">@style/Widget.Car.Dialog.Title.Light</item>
- <item name="dialogBodyStyle">@style/Widget.Car.Dialog.Body.Light</item>
- </style>
- <style name="Theme.Car.Dark.Dialog.Alert" parent="Theme.Car.Dialog.Alert">
- <item name="android:background">@color/car_card_dark</item>
- <item name="android:listDividerAlertDialog">@drawable/car_list_divider_light</item>
- <item name="android:textColorPrimary">@color/car_body2_light</item>
- <item name="android:windowTitleStyle">@style/Widget.Car.Dialog.Title.Light</item>
- </style>
- <style name="Theme.Car.Dark.NoActionBar" parent="Theme.Car.NoActionBar">
- <item name="android:alertDialogTheme">@style/Theme.Car.Dark.Dialog.Alert</item>
- <item name="alertDialogTheme">@style/Theme.Car.Dark.Dialog.Alert</item>
- <item name="carDialogTheme">@style/Theme.Car.Dark.Dialog</item>
- <item name="pagedListViewStyle">@style/Widget.Car.Light.List.LightDivider</item>
- <item name="listItemStyle">@style/Widget.Car.ListItem.Dark</item>
- </style>
- <style name="Theme.Car.Dark.NoActionBar.Drawer">
- <item name="drawerArrowStyle">@style/Widget.Car.DrawerArrowToggle</item>
- <item name="drawerBackgroundColor">@color/car_card_dark</item>
- <item name="drawerOpenHeaderColor">@color/car_title2_light</item>
- <item name="drawerClosedHeaderColor">@color/car_title2_light</item>
- <item name="drawerItemTitleTextAppearance">@style/TextAppearance.Car.Body1.Light</item>
- <item name="drawerItemBodyTextAppearance">@style/TextAppearance.Car.Body2.Light</item>
- <item name="drawerListStyle">@style/Widget.Car.Light.List.LightDivider</item>
- </style>
- <style name="Theme.Car.Dialog" parent="Theme.AppCompat.Dialog">
- <item name="android:windowIsTranslucent">true</item>
- <item name="android:windowBackground">@android:color/transparent</item>
- <item name="dialogButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="dialogBackgroundColor">@color/car_card</item>
- <item name="dialogListTheme">@style/Theme.Car.List</item>
- <item name="dialogTitleStyle">@style/Widget.Car.Dialog.Title</item>
- <item name="dialogBodyStyle">@style/Widget.Car.Dialog.Body</item>
- </style>
- <style name="Theme.Car.Dialog.Alert" parent="Theme.AppCompat.Dialog.Alert">
- <item name="android:background">@color/car_card</item>
- <item name="android:borderlessButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="android:colorButtonNormal">@color/car_accent</item>
- <item name="android:listDividerAlertDialog">@drawable/car_list_divider</item>
- <item name="android:textColorPrimary">@color/car_body2</item>
- <item name="android:windowTitleStyle">@style/Widget.Car.Dialog.Title</item>
- <item name="buttonBarNeutralButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="buttonBarNegativeButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="buttonBarPositiveButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- </style>
- <style name="Theme.Car.Light.Dialog.Alert" parent="Theme.Car.Dialog.Alert">
- <item name="android:background">@color/car_card_light</item>
- <item name="android:listDividerAlertDialog">@drawable/car_list_divider_dark</item>
- <item name="android:textColorPrimary">@color/car_body2_dark</item>
- <item name="android:windowTitleStyle">@style/Widget.Car.Dialog.Title.Dark</item>
- </style>
- <style name="Theme.Car.Light.List" parent="Theme.Car.List">
- <item name="pagedListViewStyle">@style/Widget.Car.Light.List.LightDivider</item>
- </style>
- <style name="Theme.Car.Light.List.DarkItems">
- <item name="listItemStyle">@style/Widget.Car.ListItem.Dark</item>
- </style>
- <style name="Theme.Car.Light.NoActionBar" parent="Theme.Car.NoActionBar"/>
- <style name="Theme.Car.Light.NoActionBar.Drawer" parent="Theme.Car.NoActionBar.Drawer"/>
- <style name="Theme.Car.List" parent="android:Theme">
- <item name="pagedListViewStyle">@style/Widget.Car.List</item>
- <item name="listItemStyle">@style/Widget.Car.ListItem</item>
- </style>
- <style name="Theme.Car.NoActionBar" parent="Theme.AppCompat.NoActionBar">
- <item name="android:colorAccent">@color/car_accent</item>
- <item name="android:colorButtonNormal">@color/car_accent</item>
- <item name="android:buttonStyle">@style/Widget.Car.Button</item>
- <item name="android:borderlessButtonStyle">@style/Widget.Car.Button.Borderless.Colored</item>
- <item name="android:progressBarStyleHorizontal">@style/Widget.Car.ProgressBar.Horizontal</item>
- <item name="android:textColorHint">@color/car_body2</item>
- <item name="android:editTextStyle">@style/Widget.Car.EditText</item>
- <item name="android:editTextColor">@color/car_body1</item>
- <item name="android:colorControlNormal">@color/car_body2</item>
- <item name="carDialogTheme">@style/Theme.Car.Dialog</item>
- <item name="pagedListViewStyle">@style/Widget.Car.List</item>
- <item name="listItemStyle">@style/Widget.Car.ListItem</item>
- </style>
- <style name="Theme.Car.NoActionBar.Drawer">
- <item name="drawerArrowStyle">@style/Widget.Car.DrawerArrowToggle</item>
- <item name="drawerBackgroundColor">@color/car_card</item>
- <item name="drawerOpenHeaderColor">@color/car_title2</item>
- <item name="drawerClosedHeaderColor">@color/car_title2_light</item>
- <item name="drawerItemTitleTextAppearance">@style/TextAppearance.Car.Body1</item>
- <item name="drawerItemBodyTextAppearance">@style/TextAppearance.Car.Body2</item>
- <item name="drawerListStyle">@style/Widget.Car.List</item>
- </style>
- <style name="Widget.Car.Button" parent="Widget.AppCompat.Button">
- <item name="android:fontFamily">sans-serif-medium</item>
- <item name="android:layout_height">@dimen/car_button_height</item>
- <item name="android:minWidth">@dimen/car_button_min_width</item>
- <item name="android:paddingStart">@dimen/car_button_horizontal_padding</item>
- <item name="android:paddingEnd">@dimen/car_button_horizontal_padding</item>
- <item name="android:textSize">@dimen/car_action1_size</item>
- <item name="android:background">@drawable/car_button_background</item>
- <item name="android:textColor">@drawable/car_button_text_color</item>
- </style>
- <style name="Widget.Car.Button.ActionBar">
- <item name="android:scaleType">fitCenter</item>
- <item name="android:padding">@dimen/car_action_button_icon_inset</item>
- <item name="android:background">@drawable/car_action_button_background</item>
- <item name="android:tint">@color/car_tint</item>
- </style>
- <style name="Widget.Car.Button.Borderless.Colored" parent="Widget.AppCompat.Button.Borderless.Colored">
- <item name="android:fontFamily">sans-serif-medium</item>
- <item name="android:layout_height">@dimen/car_button_height</item>
- <item name="android:minWidth">@dimen/car_button_min_width</item>
- <item name="android:paddingStart">@dimen/car_borderless_button_horizontal_padding</item>
- <item name="android:paddingEnd">@dimen/car_borderless_button_horizontal_padding</item>
- <item name="android:textSize">@dimen/car_action1_size</item>
- <item name="android:textColor">@drawable/car_borderless_button_text_color</item>
- </style>
- <style name="Widget.Car.Button.Borderless.Colored.Dark">
- <item name="android:textColor">@drawable/car_borderless_button_text_color</item>
- </style>
- <style name="Widget.Car.Button.Borderless.Colored.Light">
- <item name="android:textColor">@drawable/car_borderless_button_text_color</item>
- </style>
- <style name="Widget.Car.Dark.List" parent="Widget.Car.List">
- <item name="dayNightStyle">force_day</item>
- </style>
- <style name="Widget.Car.Dark.List.LightDivider">
- <item name="listDividerColor">@color/car_list_divider_light</item>
- </style>
- <style name="Widget.Car.Dialog" parent="android:Widget"/>
- <style name="Widget.Car.Dialog.Body">
- <item name="android:textAppearance">@style/TextAppearance.Car.Body2</item>
- </style>
- <style name="Widget.Car.Dialog.Body.Dark">
- <item name="android:textAppearance">@style/TextAppearance.Car.Body2.Dark</item>
- </style>
- <style name="Widget.Car.Dialog.Body.Light">
- <item name="android:textAppearance">@style/TextAppearance.Car.Body2.Light</item>
- </style>
- <style name="Widget.Car.Dialog.Title">
- <item name="android:maxLines">1</item>
- <item name="android:textAppearance">@style/TextAppearance.Car.Title2</item>
- <item name="android:ellipsize">end</item>
- <item name="android:textAlignment">viewStart</item>
- </style>
- <style name="Widget.Car.Dialog.Title.Dark">
- <item name="android:textAppearance">@style/TextAppearance.Car.Title2.Dark</item>
- </style>
- <style name="Widget.Car.Dialog.Title.Light">
- <item name="android:textAppearance">@style/TextAppearance.Car.Title2.Light</item>
- </style>
- <style name="Widget.Car.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
- <item name="color">@color/car_title_light</item>
- <item name="spinBars">true</item>
- <item name="barLength">@dimen/car_menu_bar_length</item>
- <item name="thickness">@dimen/car_arrow_thickness</item>
- <item name="gapBetweenBars">@dimen/car_menu_bar_spacing</item>
- <item name="arrowShaftLength">@dimen/car_arrow_shaft_length</item>
- <item name="arrowHeadLength">@dimen/car_arrow_head_length</item>
- <item name="drawableSize">@dimen/car_arrow_size</item>
- </style>
- <style name="Widget.Car.EditText" parent="Widget.AppCompat.EditText">
- <item name="android:textColor">?attr/editTextColor</item>
- <item name="android:textAppearance">@style/TextAppearance.Car.Body1</item>
- </style>
- <style name="Widget.Car.Light.List" parent="Widget.Car.List">
- <item name="dayNightStyle">force_night</item>
- </style>
- <style name="Widget.Car.Light.List.LightDivider">
- <item name="listDividerColor">@color/car_list_divider_light</item>
- </style>
- <style name="Widget.Car.List" parent="android:Widget">
- <item name="dayNightStyle">auto</item>
- <item name="listDividerColor">@color/car_list_divider</item>
- </style>
- <style name="Widget.Car.List.Inverse">
- <item name="dayNightStyle">auto_inverse</item>
- <item name="listDividerColor">@color/car_list_divider_inverse</item>
- </style>
- <style name="Widget.Car.ListItem" parent="android:Widget">
- <item name="listItemBackgroundColor">@color/car_card</item>
- <item name="listItemTitleTextAppearance">@style/TextAppearance.Car.Body1</item>
- <item name="listItemBodyTextAppearance">@style/TextAppearance.Car.Body2</item>
- </style>
- <style name="Widget.Car.ListItem.Dark">
- <item name="listItemBackgroundColor">@color/car_card_dark</item>
- <item name="listItemTitleTextAppearance">@style/TextAppearance.Car.Body1.Light</item>
- <item name="listItemBodyTextAppearance">@style/TextAppearance.Car.Body2.Light</item>
- </style>
- <style name="Widget.Car.ProgressBar.Horizontal" parent="Widget.AppCompat.ProgressBar.Horizontal">
- <item name="android:minHeight">@dimen/car_progress_bar_height</item>
- <item name="android:maxHeight">@dimen/car_progress_bar_height</item>
- </style>
- <style name="Widget.Car.SeekBar" parent="Widget.AppCompat.SeekBar">
- <item name="android:progressDrawable">@drawable/car_seekbar_track</item>
- <item name="android:thumb">@drawable/car_seekbar_thumb</item>
- </style>
- <style name="Widget.Car.Toolbar" parent="Widget.AppCompat.Toolbar">
- <item name="titleTextAppearance">@style/TextAppearance.Car.Title.Light</item>
- <item name="contentInsetStart">@dimen/car_keyline_1</item>
- <item name="contentInsetEnd">@dimen/car_keyline_1</item>
- </style>
-</resources>
\ No newline at end of file
diff --git a/androidx-room/Android.bp b/androidx-room/Android.bp
index f9ac357..a1ff215 100644
--- a/androidx-room/Android.bp
+++ b/androidx-room/Android.bp
@@ -17,40 +17,40 @@
java_plugin {
name: "car-androidx-room-compiler",
static_libs: [
- "car-androidx-annotation-nodeps-bp",
- "car-androidx-room-common-nodeps-bp",
- "car-androidx-room-compiler-nodeps-bp",
+ "car-androidx-annotation-nodeps",
+ "car-androidx-room-common-nodeps",
+ "car-androidx-room-compiler-nodeps",
+ "car-androidx-room-migration-nodeps",
"car-androidx-room-compiler-tools-common-m2-deps",
- "car-androidx-room-migration-nodeps-bp",
+ "guava",
"kotlin-stdlib",
],
processor_class: "androidx.room.RoomProcessor",
- generates_api: true,
}
android_library_import {
- name: "car-androidx-room-runtime-nodeps-bp",
+ name: "car-androidx-room-runtime-nodeps",
aars: ["androidx.room/room-runtime-2.0.0-alpha1.aar"],
sdk_version: "current",
}
java_import {
- name: "car-androidx-room-common-nodeps-bp",
+ name: "car-androidx-room-common-nodeps",
jars: ["androidx.room/room-common-2.0.0-alpha1.jar"],
host_supported: true,
}
java_import_host {
- name: "car-androidx-room-compiler-nodeps-bp",
+ name: "car-androidx-room-compiler-nodeps",
jars: ["androidx.room/room-compiler-2.0.0-alpha1.jar"],
}
java_import_host {
- name: "car-androidx-room-migration-nodeps-bp",
+ name: "car-androidx-room-migration-nodeps",
jars: ["androidx.room/room-migration-2.0.0-alpha1.jar"],
}
java_import_host {
- name: "car-androidx-annotation-nodeps-bp",
+ name: "car-androidx-annotation-nodeps",
jars: ["annotation-1.0.0-alpha1.jar"],
}
diff --git a/androidx-room/Android.mk b/androidx-room/Android.mk
deleted file mode 100644
index 675dac8..0000000
--- a/androidx-room/Android.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# 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_PREBUILT_STATIC_JAVA_LIBRARIES := \
- car-androidx-room-runtime-nodeps:androidx.room/room-runtime-2.0.0-alpha1.aar \
- car-androidx-room-common-nodeps:androidx.room/room-common-2.0.0-alpha1.jar
-
-include $(BUILD_MULTI_PREBUILT)
-
-include $(CLEAR_VARS)
-
-COMMON_LIBS_PATH := ../../../../../prebuilts/tools/common/m2/repository
-
-LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
- car-androidx-room-common-nodeps:androidx.room/room-common-2.0.0-alpha1.jar \
- car-androidx-room-compiler-nodeps:androidx.room/room-compiler-2.0.0-alpha1.jar \
- car-androidx-room-migration-nodeps:androidx.room/room-migration-2.0.0-alpha1.jar \
- car-androidx-annotation-nodeps:annotation-1.0.0-alpha1.jar \
- car-antlr4-nodeps:$(COMMON_LIBS_PATH)/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar \
- car-apache-commons-codec-nodeps:$(COMMON_LIBS_PATH)/org/eclipse/tycho/tycho-bundles-external/0.18.1/eclipse/plugins/org.apache.commons.codec_1.4.0.v201209201156.jar \
- car-auto-common-nodeps:$(COMMON_LIBS_PATH)/com/google/auto/auto-common/0.9/auto-common-0.9.jar \
- car-javapoet-nodeps:$(COMMON_LIBS_PATH)/com/squareup/javapoet/1.8.0/javapoet-1.8.0.jar \
- car-jetbrains-annotations-nodeps:$(COMMON_LIBS_PATH)/org/jetbrains/annotations/13.0/annotations-13.0.jar \
- car-kotlin-metadata-nodeps:$(COMMON_LIBS_PATH)/me/eugeniomarletti/kotlin-metadata/1.2.1/kotlin-metadata-1.2.1.jar \
- car-sqlite-jdbc-nodeps:$(COMMON_LIBS_PATH)/org/xerial/sqlite-jdbc/3.20.1/sqlite-jdbc-3.20.1.jar
-
-include $(BUILD_HOST_PREBUILT)
diff --git a/car-apps-common/Android.bp b/car-apps-common/Android.bp
index 8c52089..b96cebd 100644
--- a/car-apps-common/Android.bp
+++ b/car-apps-common/Android.bp
@@ -14,7 +14,7 @@
//
android_library {
- name: "car-apps-common-bp",
+ name: "car-apps-common",
srcs: ["src/**/*.java"],
diff --git a/car-apps-common/Android.mk b/car-apps-common/Android.mk
deleted file mode 100644
index ce96f11..0000000
--- a/car-apps-common/Android.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Copyright (C) 2016 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_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-apps-common
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_STATIC_ANDROID_LIBRARIES += \
- androidx.annotation_annotation \
- androidx.cardview_cardview \
- androidx.interpolator_interpolator \
- androidx.lifecycle_lifecycle-common-java8 \
- androidx.lifecycle_lifecycle-extensions \
- androidx-constraintlayout_constraintlayout \
- androidx.recyclerview_recyclerview
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
- androidx-constraintlayout_constraintlayout-solver
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-ifeq (,$(ONE_SHOT_MAKEFILE))
- include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
diff --git a/car-apps-common/res/drawable-hdpi/ic_contact.png b/car-apps-common/res/drawable-hdpi/ic_contact.png
deleted file mode 100644
index c34e844..0000000
--- a/car-apps-common/res/drawable-hdpi/ic_contact.png
+++ /dev/null
Binary files differ
diff --git a/car-apps-common/res/drawable-mdpi/ic_contact.png b/car-apps-common/res/drawable-mdpi/ic_contact.png
deleted file mode 100644
index 9461076..0000000
--- a/car-apps-common/res/drawable-mdpi/ic_contact.png
+++ /dev/null
Binary files differ
diff --git a/car-apps-common/res/drawable-xhdpi/ic_contact.png b/car-apps-common/res/drawable-xhdpi/ic_contact.png
deleted file mode 100644
index fec660d..0000000
--- a/car-apps-common/res/drawable-xhdpi/ic_contact.png
+++ /dev/null
Binary files differ
diff --git a/car-apps-common/res/drawable-xxhdpi/ic_contact.png b/car-apps-common/res/drawable-xxhdpi/ic_contact.png
deleted file mode 100644
index 199fd7b..0000000
--- a/car-apps-common/res/drawable-xxhdpi/ic_contact.png
+++ /dev/null
Binary files differ
diff --git a/car-apps-common/res/values-zh-rCN/strings.xml b/car-apps-common/res/values-zh-rCN/strings.xml
index 899f786..2c14a4d 100644
--- a/car-apps-common/res/values-zh-rCN/strings.xml
+++ b/car-apps-common/res/values-zh-rCN/strings.xml
@@ -16,8 +16,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- no translation found for control_bar_expand_collapse_button (3420351169078117938) -->
- <skip />
+ <string name="control_bar_expand_collapse_button" msgid="3420351169078117938">"“展开”/“收起”按钮"</string>
<string name="car_drawer_open" msgid="2676372472514742324">"打开抽屉式导航栏"</string>
<string name="car_drawer_close" msgid="5329374630462464855">"关闭抽屉式导航栏"</string>
<string name="restricted_while_driving" msgid="2278031053760704437">"驾车时无法使用此功能。"</string>
diff --git a/car-apps-common/src/com/android/car/apps/common/AccountImageHelper.java b/car-apps-common/src/com/android/car/apps/common/AccountImageHelper.java
deleted file mode 100644
index 97286ce..0000000
--- a/car-apps-common/src/com/android/car/apps/common/AccountImageHelper.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.car.apps.common;
-
-import android.accounts.Account;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.Intent;
-import android.content.Intent.ShortcutIconResource;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.RawContacts;
-import android.text.TextUtils;
-
-/**
- * Utility functions for retrieving account pictures.
- * @hide
- */
-public final class AccountImageHelper {
-
- static final String[] CONTACT_PROJECTION_DATA = new String[] {
- ContactsContract.Data._ID,
- ContactsContract.Data.CONTACT_ID,
- ContactsContract.Data.RAW_CONTACT_ID,
- ContactsContract.Data.LOOKUP_KEY,
- ContactsContract.Data.PHOTO_URI,
- ContactsContract.Data.PHOTO_FILE_ID
- };
- static final String CONTACT_SELECTION =
- ContactsContract.CommonDataKinds.Email.ADDRESS + " LIKE ?";
-
- /**
- * Non instantiable.
- */
- private AccountImageHelper() {
- }
-
- /**
- * Tries to retrieve the Picture for the provided account, from the Contacts database.
- */
- public static String getAccountPictureUri(Context context, Account account) {
- // Look up this account in the contacts database.
-
- String[] selectionArgs = new String[] {
- account.name };
- Cursor c = null;
- long contactId = -1;
- String lookupKey = null;
- String photoUri = null;
- int photoFileId = 0;
- long rawContactId = 0;
- try {
- c = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI,
- CONTACT_PROJECTION_DATA, CONTACT_SELECTION, selectionArgs, null);
- if (c.moveToNext()) {
- contactId = c.getLong(1);
- rawContactId = c.getLong(2);
- lookupKey = c.getString(3);
- photoUri = c.getString(4);
- photoFileId = c.getInt(5);
- }
- } finally {
- if (c != null) {
- c.close();
- }
- }
-
- if (contactId != -1 && !TextUtils.isEmpty(lookupKey) && !TextUtils.isEmpty(photoUri)) {
- if (photoFileId == 0) {
- // Trigger a VIEW action on this photo, which will force the Contacts
- // Sync adapter to sync the HiRes version of the contact photo.
- syncContactHiResPhoto(context, rawContactId);
- }
- return photoUri;
- }
- return getDefaultPictureUri(context);
- }
-
- private static void syncContactHiResPhoto(Context context, long rawContactId) {
- final String serviceName = "com.google.android.syncadapters.contacts." +
- "SyncHighResPhotoIntentService";
- final String servicePackageName = "com.google.android.syncadapters.contacts";
- final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
- rawContactId);
- final Intent intent = new Intent();
- intent.setClassName(servicePackageName, serviceName);
- intent.setAction(Intent.ACTION_VIEW);
- intent.setDataAndType(uri, RawContacts.CONTENT_ITEM_TYPE);
- try {
- context.startService(intent);
- } catch (Exception e) {
-
- }
- }
-
- /**
- * Returns a default image to be used when an account has no picture associated with it.
- */
- public static String getDefaultPictureUri(Context context) {
- // TODO: get a better default image.
- ShortcutIconResource iconResource = new ShortcutIconResource();
- iconResource.packageName = context.getPackageName();
- iconResource.resourceName = context.getResources().getResourceName(
- R.drawable.ic_contact);
- return UriUtils.getShortcutIconResourceUri(iconResource).toString();
- }
-}
diff --git a/car-apps-common/src/com/android/car/apps/common/imaging/LocalImageFetcher.java b/car-apps-common/src/com/android/car/apps/common/imaging/LocalImageFetcher.java
index e8b245e..17f9f50 100644
--- a/car-apps-common/src/com/android/car/apps/common/imaging/LocalImageFetcher.java
+++ b/car-apps-common/src/com/android/car/apps/common/imaging/LocalImageFetcher.java
@@ -19,7 +19,6 @@
import android.annotation.UiThread;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.res.AssetFileDescriptor;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.ImageDecoder;
@@ -36,11 +35,8 @@
import com.android.car.apps.common.UriUtils;
import com.android.car.apps.common.util.CarAppsIOUtils;
-import libcore.io.IoUtils;
-
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.ref.WeakReference;
@@ -265,18 +261,8 @@
UriUtils.getIconResource(context, imageUri));
} else if (UriUtils.isContentUri(imageUri)) {
ContentResolver resolver = context.getContentResolver();
-
- // TODO(b/140959390): Remove the check once the bug is fixed in framework.
- if (!hasFile(resolver, imageUri)) {
- if (L_WARN) {
- Log.w(TAG, "File not found in uri: " + imageUri);
- }
- return null;
- }
-
ImageDecoder.Source src = ImageDecoder.createSource(resolver, imageUri);
return ImageDecoder.decodeDrawable(src, mOnHeaderDecodedListener);
-
} else if (mFlagRemoteImages) {
mAllocatorMode = ImageDecoder.ALLOCATOR_SOFTWARE; // Needed for canvas drawing.
URL url = new URL(imageUri.toString());
@@ -300,34 +286,6 @@
return null;
}
- private boolean hasFile(ContentResolver resolver, Uri uri) {
- AssetFileDescriptor assetFd = null;
- try {
- if (uri.getScheme() == ContentResolver.SCHEME_CONTENT) {
- assetFd = resolver.openTypedAssetFileDescriptor(uri, "image/*", null);
- } else {
- assetFd = resolver.openAssetFileDescriptor(uri, "r");
- }
- } catch (FileNotFoundException e) {
- // Some images cannot be opened as AssetFileDescriptors (e.g.bmp, ico). Open them
- // as InputStreams.
- try {
- InputStream is = resolver.openInputStream(uri);
- if (is != null) {
- IoUtils.closeQuietly(is);
- return true;
- }
- } catch (IOException exception) {
- return false;
- }
- }
- if (assetFd != null) {
- IoUtils.closeQuietly(assetFd);
- return true;
- }
- return false;
- }
-
@UiThread
@Override
protected void onPostExecute(Drawable drawable) {
diff --git a/car-apps-common/src/com/android/car/apps/common/util/CarPackageManagerUtils.java b/car-apps-common/src/com/android/car/apps/common/util/CarPackageManagerUtils.java
index 43e4381..bd3d23f 100644
--- a/car-apps-common/src/com/android/car/apps/common/util/CarPackageManagerUtils.java
+++ b/car-apps-common/src/com/android/car/apps/common/util/CarPackageManagerUtils.java
@@ -16,6 +16,7 @@
package com.android.car.apps.common.util;
+import android.app.PendingIntent;
import android.car.Car;
import android.car.CarNotConnectedException;
import android.car.content.pm.CarPackageManager;
@@ -60,6 +61,17 @@
}
/**
+ * Returns whether the given {@link PendingIntent} represents an activity that is distraction
+ * optimized.
+ */
+ public boolean isDistractionOptimized(@NonNull PendingIntent pendingIntent) {
+ if (mCarPackageManager != null) {
+ return mCarPackageManager.isPendingIntentDistractionOptimized(pendingIntent);
+ }
+ return false;
+ }
+
+ /**
* Returns true if the provided Activity is distraction optimized
*/
public boolean isDistractionOptimized(@NonNull ActivityInfo activityInfo) {
diff --git a/car-apps-common/src/com/android/car/apps/common/widget/PagedRecyclerView.java b/car-apps-common/src/com/android/car/apps/common/widget/PagedRecyclerView.java
index 2917967..ca8dfcf 100644
--- a/car-apps-common/src/com/android/car/apps/common/widget/PagedRecyclerView.java
+++ b/car-apps-common/src/com/android/car/apps/common/widget/PagedRecyclerView.java
@@ -340,6 +340,15 @@
}
@Override
+ public void scrollToPosition(int position) {
+ if (mScrollBarEnabled) {
+ mNestedRecyclerView.scrollToPosition(position);
+ } else {
+ super.scrollToPosition(position);
+ }
+ }
+
+ @Override
public void setAdapter(@Nullable Adapter adapter) {
mAdapter = adapter;
if (mScrollBarEnabled) {
diff --git a/car-apps-common/tests/Android.mk b/car-apps-common/tests/Android.mk
deleted file mode 100644
index 9f0a4e8..0000000
--- a/car-apps-common/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/car-apps-common/tests/robotests/Android.bp b/car-apps-common/tests/robotests/Android.bp
new file mode 100644
index 0000000..b81f0fc
--- /dev/null
+++ b/car-apps-common/tests/robotests/Android.bp
@@ -0,0 +1,32 @@
+//###########################################################
+// CarAppsCommon app just for Robolectric test target. #
+//###########################################################
+android_app {
+ name: "CarAppsCommon",
+
+ platform_apis: true,
+
+ privileged: true,
+
+ libs: ["android.car"],
+
+ static_libs: ["car-apps-common"],
+}
+
+//###############################################
+// Car Apps Common Robolectric test target. #
+//###############################################
+android_robolectric_test {
+ name: "CarAppsCommonRoboTests",
+
+ srcs: ["src/**/*.java"],
+
+ java_resource_dirs: ["config"],
+
+ // Include the testing libraries
+ libs: [
+ "android.car",
+ ],
+
+ instrumentation_for: "CarAppsCommon",
+}
diff --git a/car-apps-common/tests/robotests/Android.mk b/car-apps-common/tests/robotests/Android.mk
deleted file mode 100644
index 2438678..0000000
--- a/car-apps-common/tests/robotests/Android.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-############################################################
-# CarAppsCommon app just for Robolectric test target. #
-############################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := CarAppsCommon
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_JAVA_LIBRARIES := android.car
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-apps-common
-
-include $(BUILD_PACKAGE)
-
-################################################
-# Car Apps Common Robolectric test target. #
-################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarAppsCommonRoboTests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-# Include the testing libraries
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-
-LOCAL_INSTRUMENTATION_FOR := CarAppsCommon
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# Car Apps Common runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarAppsCommonRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- CarAppsCommonRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_TEST_PACKAGE := CarAppsCommon
-
-LOCAL_ROBOTEST_FILES := $(filter-out %/BaseRobolectricTest.java,\
- $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.))
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
diff --git a/car-apps-common/tests/robotests/config/robolectric.properties b/car-apps-common/tests/robotests/config/robolectric.properties
index fa63823..849e07f 100644
--- a/car-apps-common/tests/robotests/config/robolectric.properties
+++ b/car-apps-common/tests/robotests/config/robolectric.properties
@@ -13,5 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-manifest=packages/apps/Car/libs/car-apps-common/tests/robotests/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/car-apps-common/tests/robotests/src/com/android/car/apps/common/CarUxRestrictionsUtilTest.java b/car-apps-common/tests/robotests/src/com/android/car/apps/common/CarUxRestrictionsUtilTest.java
index 2cadad3..a450102 100755
--- a/car-apps-common/tests/robotests/src/com/android/car/apps/common/CarUxRestrictionsUtilTest.java
+++ b/car-apps-common/tests/robotests/src/com/android/car/apps/common/CarUxRestrictionsUtilTest.java
@@ -25,10 +25,8 @@
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class CarUxRestrictionsUtilTest {
private int[] mRestrictionsArray;
diff --git a/car-apps-common/tests/robotests/src/com/android/car/apps/common/TestConfig.java b/car-apps-common/tests/robotests/src/com/android/car/apps/common/TestConfig.java
deleted file mode 100644
index baf9b51..0000000
--- a/car-apps-common/tests/robotests/src/com/android/car/apps/common/TestConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.android.car.apps.common;
-
-public class TestConfig {
- public static final int SDK_VERSION = 23;
- public static final String MANIFEST_PATH =
- "packages/apps/Car/car-apps-common/AndroidManifest.xml";
-}
diff --git a/EncryptionRunner/Android.bp b/car-arch-common/Android.bp
similarity index 65%
copy from EncryptionRunner/Android.bp
copy to car-arch-common/Android.bp
index 54316ff..f8bcb94 100644
--- a/EncryptionRunner/Android.bp
+++ b/car-arch-common/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2018 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.
@@ -11,21 +12,21 @@
// 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.
+//
android_library {
- name: "EncryptionRunner-lib",
- min_sdk_version: "23",
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
- static_libs: [
- "ukey2",
- ],
- srcs: [
- "src/**/*.java",
- ],
- installable: true,
-}
+ name: "car-arch-common",
+ srcs: ["src/**/*.java"],
+
+ optimize: {
+ enabled: false,
+ },
+
+ static_libs: [
+ "androidx.lifecycle_lifecycle-extensions",
+ "androidx.lifecycle_lifecycle-common-java8",
+ "androidx.annotation_annotation",
+ "junit",
+ ],
+}
diff --git a/car-arch-common/Android.mk b/car-arch-common/Android.mk
deleted file mode 100644
index 712f170..0000000
--- a/car-arch-common/Android.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright (C) 2018 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_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-arch-common
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- androidx.lifecycle_lifecycle-extensions \
- androidx.lifecycle_lifecycle-common-java8 \
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- androidx.annotation_annotation \
- junit \
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-ifeq (,$(ONE_SHOT_MAKEFILE))
- include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
diff --git a/car-arch-common/tests/Android.mk b/car-arch-common/tests/Android.mk
deleted file mode 100644
index 0903c90..0000000
--- a/car-arch-common/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018 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)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/car-arch-common/tests/robotests/Android.bp b/car-arch-common/tests/robotests/Android.bp
new file mode 100644
index 0000000..dbe65bf
--- /dev/null
+++ b/car-arch-common/tests/robotests/Android.bp
@@ -0,0 +1,47 @@
+//
+// Copyright (C) 2018 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.
+//
+
+//###########################################################
+// CarArchCommon app just for Robolectric test target. #
+//###########################################################
+android_app {
+ name: "CarArchCommon",
+
+ platform_apis: true,
+
+ privileged: true,
+
+ static_libs: ["car-arch-common"],
+}
+
+//###############################################
+// Car Arch Common Robolectric test target. #
+//###############################################
+android_robolectric_test {
+ name: "CarArchCommonRoboTests",
+
+ srcs: ["src/**/*.java"],
+
+ java_resource_dirs: ["config"],
+
+ // Include the testing libraries
+ libs: [
+ "androidx.arch.core_core-runtime",
+ "androidx.arch.core_core-common",
+ ],
+
+ instrumentation_for: "CarArchCommon",
+}
diff --git a/car-arch-common/tests/robotests/Android.mk b/car-arch-common/tests/robotests/Android.mk
deleted file mode 100644
index 83ba038..0000000
--- a/car-arch-common/tests/robotests/Android.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Copyright (C) 2018 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)
-
-############################################################
-# CarArchCommon app just for Robolectric test target. #
-############################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := CarArchCommon
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-arch-common
-
-include $(BUILD_PACKAGE)
-
-################################################
-# Car Arch Common Robolectric test target. #
-################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarArchCommonRoboTests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-# Include the testing libraries
-LOCAL_JAVA_LIBRARIES := \
- androidx.arch.core_core-runtime \
- androidx.arch.core_core-common \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_INSTRUMENTATION_FOR := CarArchCommon
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# Car Arch Common runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarArchCommonRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- CarArchCommonRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_TEST_PACKAGE := CarArchCommon
-
-LOCAL_ROBOTEST_FILES := $(filter-out %/BaseRobolectricTest.java,\
- $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.))
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
diff --git a/car-arch-common/tests/robotests/config/robolectric.properties b/car-arch-common/tests/robotests/config/robolectric.properties
index 6b56350..4c863dc 100644
--- a/car-arch-common/tests/robotests/config/robolectric.properties
+++ b/car-arch-common/tests/robotests/config/robolectric.properties
@@ -13,5 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-manifest=packages/apps/Car/libs/car-arch-common/tests/robotests/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/car-arch-common/tests/robotests/src/com/android/car/arch/common/LiveDataFunctionsTest.java b/car-arch-common/tests/robotests/src/com/android/car/arch/common/LiveDataFunctionsTest.java
index d41db9f..cdcfcb0 100644
--- a/car-arch-common/tests/robotests/src/com/android/car/arch/common/LiveDataFunctionsTest.java
+++ b/car-arch-common/tests/robotests/src/com/android/car/arch/common/LiveDataFunctionsTest.java
@@ -42,7 +42,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
import java.util.Objects;
import java.util.function.BiFunction;
@@ -50,7 +49,6 @@
import java.util.function.Supplier;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class LiveDataFunctionsTest {
@Rule
diff --git a/car-arch-common/tests/robotests/src/com/android/car/arch/common/LoadingSwitchMapTest.java b/car-arch-common/tests/robotests/src/com/android/car/arch/common/LoadingSwitchMapTest.java
index fd3d883..d64a0c1 100644
--- a/car-arch-common/tests/robotests/src/com/android/car/arch/common/LoadingSwitchMapTest.java
+++ b/car-arch-common/tests/robotests/src/com/android/car/arch/common/LoadingSwitchMapTest.java
@@ -32,10 +32,8 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class LoadingSwitchMapTest {
@Rule
diff --git a/car-arch-common/tests/robotests/src/com/android/car/arch/common/TestConfig.java b/car-arch-common/tests/robotests/src/com/android/car/arch/common/TestConfig.java
deleted file mode 100644
index 1ae5174..0000000
--- a/car-arch-common/tests/robotests/src/com/android/car/arch/common/TestConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.arch.common;
-
-public class TestConfig {
- public static final int SDK_VERSION = 23;
- public static final String MANIFEST_PATH =
- "packages/apps/Car/car-arch-common/AndroidManifest.xml";
-}
diff --git a/car-assist-client-lib/src/com/android/car/assist/client/FallbackAssistant.java b/car-assist-client-lib/src/com/android/car/assist/client/FallbackAssistant.java
index db13ab1..fe8c5ae 100644
--- a/car-assist-client-lib/src/com/android/car/assist/client/FallbackAssistant.java
+++ b/car-assist-client-lib/src/com/android/car/assist/client/FallbackAssistant.java
@@ -115,7 +115,6 @@
}
List<CharSequence> messages = new ArrayList<>();
-
List<Message> messageList = Message.getMessagesFromBundleArray(messagesBundle);
if (messageList == null || messageList.isEmpty()) {
Log.w(TAG, "No messages could be extracted from the bundle");
diff --git a/EncryptionRunner/Android.bp b/car-broadcastradio-support/Android.bp
similarity index 65%
copy from EncryptionRunner/Android.bp
copy to car-broadcastradio-support/Android.bp
index 54316ff..cf0b1bb 100644
--- a/EncryptionRunner/Android.bp
+++ b/car-broadcastradio-support/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2018 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.
@@ -11,21 +12,22 @@
// 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.
+//
android_library {
- name: "EncryptionRunner-lib",
- min_sdk_version: "23",
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
- static_libs: [
- "ukey2",
- ],
- srcs: [
- "src/**/*.java",
- ],
- installable: true,
-}
+ name: "car-broadcastradio-support",
+ srcs: ["src/**/*.java"],
+ aidl: {
+ export_include_dirs: ["src"],
+ },
+ resource_dirs: ["res"],
+
+ optimize: {
+ enabled: false,
+ },
+
+ dist: {
+ targets: ["dist_files"],
+ },
+}
diff --git a/car-broadcastradio-support/Android.mk b/car-broadcastradio-support/Android.mk
deleted file mode 100644
index 67f37ef..0000000
--- a/car-broadcastradio-support/Android.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Copyright (C) 2018 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 := car-broadcastradio-support
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/src
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-LOCAL_USE_AAPT2 := true
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-ifeq ($(BOARD_IS_AUTOMOTIVE), true)
-$(call dist-for-goals,dist_files,$(full_classes_jar):$(LOCAL_MODULE).jar)
-endif
diff --git a/car-media-common/Android.bp b/car-media-common/Android.bp
new file mode 100644
index 0000000..8659d0a
--- /dev/null
+++ b/car-media-common/Android.bp
@@ -0,0 +1,40 @@
+//
+// Copyright (C) 2016 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.
+//
+
+android_library {
+ name: "car-media-common",
+
+ srcs: ["src/**/*.java"],
+
+ resource_dirs: ["res"],
+
+ optimize: {
+ enabled: false,
+ },
+
+ static_libs: [
+ "androidx.cardview_cardview",
+ "androidx.legacy_legacy-support-v4",
+ "androidx.recyclerview_recyclerview",
+ "androidx.mediarouter_mediarouter",
+ "androidx-constraintlayout_constraintlayout",
+ "car-apps-common",
+ "car-arch-common",
+ "androidx-constraintlayout_constraintlayout-solver",
+ ],
+
+ libs: ["android.car"],
+}
diff --git a/car-media-common/Android.mk b/car-media-common/Android.mk
deleted file mode 100644
index c5041c4..0000000
--- a/car-media-common/Android.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Copyright (C) 2016 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_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-media-common
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_STATIC_ANDROID_LIBRARIES += \
- androidx.cardview_cardview \
- androidx.legacy_legacy-support-v4 \
- androidx.recyclerview_recyclerview \
- androidx.mediarouter_mediarouter \
- androidx-constraintlayout_constraintlayout \
- car-apps-common \
- car-arch-common
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
- androidx-constraintlayout_constraintlayout-solver
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-media-common-disklrucache-target
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/disklrucache/SNAPSHOT/disklrucache-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-media-common-gifdecoder-target
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/gifdecoder/SNAPSHOT/gifdecoder-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-media-common-glide-target
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/glide/SNAPSHOT/glide-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-ifeq (,$(ONE_SHOT_MAKEFILE))
- include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
\ No newline at end of file
diff --git a/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModel.java b/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModel.java
index 5a4626a..a4636c2 100644
--- a/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModel.java
+++ b/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModel.java
@@ -37,31 +37,11 @@
public interface MediaBrowserViewModel {
/**
- * Possible states of the application UI
- */
- enum BrowseState {
- /** There is no content to show */
- EMPTY,
- /** We are still in the process of obtaining data */
- LOADING,
- /** Data has been loaded */
- LOADED,
- /** The content can't be shown due an error */
- ERROR
- }
-
- /**
* Returns a LiveData that emits the current package name of the browser's service component.
*/
LiveData<String> getPackageName();
/**
- * Returns a LiveData that emits the current {@link BrowseState}
- */
- LiveData<BrowseState> getBrowseState();
-
-
- /**
* Fetches the MediaItemMetadatas for the current browsed id, and the loading status of the
* fetch operation.
*
diff --git a/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModelImpl.java b/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModelImpl.java
index 7d47ba7..974639d 100644
--- a/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModelImpl.java
+++ b/car-media-common/src/com/android/car/media/common/browse/MediaBrowserViewModelImpl.java
@@ -33,7 +33,6 @@
import androidx.annotation.RestrictTo;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MediatorLiveData;
import androidx.lifecycle.MutableLiveData;
import com.android.car.arch.common.FutureData;
@@ -62,9 +61,6 @@
private final LiveData<FutureData<List<MediaItemMetadata>>> mSearchedMediaItems;
private final LiveData<FutureData<List<MediaItemMetadata>>> mBrowsedMediaItems;
-
- private final LiveData<BrowseState> mBrowseState;
-
private final LiveData<String> mPackageName;
MediaBrowserViewModelImpl(@NonNull Application application, boolean isRoot) {
@@ -94,39 +90,6 @@
(mediaBrowser == null || TextUtils.isEmpty(query))
? null
: new SearchedMediaItems(mediaBrowser, query)));
-
- mBrowseState = new MediatorLiveData<BrowseState>() {
- {
- setValue(BrowseState.EMPTY);
- addSource(mBrowsedMediaItems, items -> update());
- }
-
- private void update() {
- setValue(getState());
- }
-
- private BrowseState getState() {
- if (mBrowsedMediaItems.getValue() == null) {
- // Uninitialized
- return BrowseState.EMPTY;
- }
- if (mBrowsedMediaItems.getValue().isLoading()) {
- return BrowseState.LOADING;
- }
- List<MediaItemMetadata> items = mBrowsedMediaItems.getValue().getData();
- if (items == null) {
- // Normally this could be null if it hasn't been initialized, but in that case
- // isLoading would not be false, so this means it must have encountered an
- // error.
- return BrowseState.ERROR;
- }
- if (items.isEmpty()) {
- return BrowseState.EMPTY;
- }
- return BrowseState.LOADED;
- }
- };
-
}
private static MediaBrowserCompat requireConnected(@Nullable MediaBrowserCompat mediaBrowser) {
@@ -155,11 +118,6 @@
}
@Override
- public LiveData<BrowseState> getBrowseState() {
- return mBrowseState;
- }
-
- @Override
public LiveData<FutureData<List<MediaItemMetadata>>> getBrowsedMediaItems() {
return mBrowsedMediaItems;
}
diff --git a/car-media-common/src/com/android/car/media/common/source/MediaSourceViewModel.java b/car-media-common/src/com/android/car/media/common/source/MediaSourceViewModel.java
index 1d02209..1eb9fa5 100644
--- a/car-media-common/src/com/android/car/media/common/source/MediaSourceViewModel.java
+++ b/car-media-common/src/com/android/car/media/common/source/MediaSourceViewModel.java
@@ -28,7 +28,6 @@
import android.content.ComponentName;
import android.media.session.MediaController;
import android.os.Handler;
-import android.os.RemoteException;
import android.support.v4.media.MediaBrowserCompat;
import android.support.v4.media.session.MediaControllerCompat;
import android.support.v4.media.session.MediaSessionCompat;
@@ -104,13 +103,7 @@
@Override
public MediaControllerCompat getControllerForSession(
@Nullable MediaSessionCompat.Token token) {
- if (token == null) return null;
- try {
- return new MediaControllerCompat(application, token);
- } catch (RemoteException e) {
- Log.e(TAG, "Couldn't get MediaControllerCompat", e);
- return null;
- }
+ return token == null ? null : new MediaControllerCompat(application, token);
}
@Override
diff --git a/car-media-common/tests/Android.mk b/car-media-common/tests/Android.mk
deleted file mode 100644
index 0903c90..0000000
--- a/car-media-common/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018 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)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/car-media-common/tests/robotests/Android.bp b/car-media-common/tests/robotests/Android.bp
new file mode 100644
index 0000000..13e19f7
--- /dev/null
+++ b/car-media-common/tests/robotests/Android.bp
@@ -0,0 +1,37 @@
+
+
+//###########################################################
+// CarMediaCommon app just for Robolectric test target. #
+//###########################################################
+android_app {
+ name: "CarMediaCommon",
+
+ platform_apis: true,
+
+ privileged: true,
+
+ static_libs: [
+ "car-arch-common",
+ "car-media-common",
+ ],
+}
+
+//###############################################
+// Car Media Common Robolectric test target. #
+//###############################################
+android_robolectric_test {
+ name: "CarMediaCommonRoboTests",
+
+ srcs: ["src/**/*.java"],
+
+ java_resource_dirs: ["config"],
+
+ // Include the testing libraries
+ libs: [
+ "android.car",
+ "androidx.arch.core_core-runtime",
+ "androidx.arch.core_core-common",
+ ],
+
+ instrumentation_for: "CarMediaCommon",
+}
diff --git a/car-media-common/tests/robotests/Android.mk b/car-media-common/tests/robotests/Android.mk
deleted file mode 100644
index 342f5c0..0000000
--- a/car-media-common/tests/robotests/Android.mk
+++ /dev/null
@@ -1,74 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-############################################################
-# CarMediaCommon app just for Robolectric test target. #
-############################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := CarMediaCommon
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-arch-common \
- car-media-common
-
-include $(BUILD_PACKAGE)
-
-################################################
-# Car Media Common Robolectric test target. #
-################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarMediaCommonRoboTests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-# Include the testing libraries
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- androidx.arch.core_core-runtime \
- androidx.arch.core_core-common \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-
-LOCAL_INSTRUMENTATION_FOR := CarMediaCommon
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# Car Media Common runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarMediaCommonRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- CarMediaCommonRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_TEST_PACKAGE := CarMediaCommon
-
-LOCAL_ROBOTEST_FILES := $(filter-out %/BaseRobolectricTest.java,\
- $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.))
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
diff --git a/car-media-common/tests/robotests/AndroidManifest.xml b/car-media-common/tests/robotests/AndroidManifest.xml
index 63b3855..83a5e47 100644
--- a/car-media-common/tests/robotests/AndroidManifest.xml
+++ b/car-media-common/tests/robotests/AndroidManifest.xml
@@ -17,5 +17,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.car.media.common.robotests">
-
</manifest>
diff --git a/car-media-common/tests/robotests/config/robolectric.properties b/car-media-common/tests/robotests/config/robolectric.properties
index 715d744..4c863dc 100644
--- a/car-media-common/tests/robotests/config/robolectric.properties
+++ b/car-media-common/tests/robotests/config/robolectric.properties
@@ -13,5 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-manifest=packages/apps/Car/libs/car-media-common/tests/robotests/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/MediaItemMetadataTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/MediaItemMetadataTest.java
index 1373d4c..81f4066 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/MediaItemMetadataTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/MediaItemMetadataTest.java
@@ -23,10 +23,8 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class MediaItemMetadataTest {
private static final String EXTRA_METADATA = "metadata";
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/TestConfig.java b/car-media-common/tests/robotests/src/com/android/car/media/common/TestConfig.java
deleted file mode 100644
index 8e45ad3..0000000
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/TestConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.media.common;
-
-public class TestConfig {
- public static final int SDK_VERSION = 23;
- public static final String MANIFEST_PATH =
- "packages/apps/Car/car-media-common/AndroidManifest.xml";
-}
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/playback/PlaybackViewModelTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/playback/PlaybackViewModelTest.java
index 8eb6283..ad6cfe8 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/playback/PlaybackViewModelTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/playback/PlaybackViewModelTest.java
@@ -39,7 +39,6 @@
import com.android.car.arch.common.testing.InstantTaskExecutorRule;
import com.android.car.arch.common.testing.TestLifecycleOwner;
import com.android.car.media.common.MediaItemMetadata;
-import com.android.car.media.common.TestConfig;
import org.junit.Before;
import org.junit.Rule;
@@ -51,13 +50,11 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
import java.util.Collections;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class PlaybackViewModelTest {
@Rule
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/playback/ProgressLiveDataTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/playback/ProgressLiveDataTest.java
index fc4959c..991e4f2 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/playback/ProgressLiveDataTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/playback/ProgressLiveDataTest.java
@@ -27,7 +27,6 @@
import com.android.car.arch.common.testing.CaptureObserver;
import com.android.car.arch.common.testing.InstantTaskExecutorRule;
import com.android.car.arch.common.testing.TestLifecycleOwner;
-import com.android.car.media.common.TestConfig;
import org.junit.Before;
import org.junit.Rule;
@@ -37,13 +36,11 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLooper;
import java.util.concurrent.TimeUnit;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ProgressLiveDataTest {
private static final long START_TIME = 500L;
private static final long START_PROGRESS = 1000L;
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaBrowserConnectorTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaBrowserConnectorTest.java
index f955e47..0b9a786 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaBrowserConnectorTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaBrowserConnectorTest.java
@@ -30,7 +30,6 @@
import com.android.car.arch.common.testing.InstantTaskExecutorRule;
import com.android.car.arch.common.testing.TestLifecycleOwner;
-import com.android.car.media.common.TestConfig;
import org.junit.Before;
import org.junit.Rule;
@@ -42,14 +41,12 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class MediaBrowserConnectorTest {
@Rule
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourceViewModelTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourceViewModelTest.java
index b825fa1..4259c4a 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourceViewModelTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourceViewModelTest.java
@@ -36,7 +36,6 @@
import com.android.car.arch.common.testing.CaptureObserver;
import com.android.car.arch.common.testing.InstantTaskExecutorRule;
import com.android.car.arch.common.testing.TestLifecycleOwner;
-import com.android.car.media.common.TestConfig;
import org.junit.Before;
import org.junit.Rule;
@@ -46,10 +45,8 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class MediaSourceViewModelTest {
private static final String BROWSER_CONTROLLER_PACKAGE_NAME = "browser";
diff --git a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourcesLiveDataTest.java b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourcesLiveDataTest.java
index d9d4e82..35214c7 100644
--- a/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourcesLiveDataTest.java
+++ b/car-media-common/tests/robotests/src/com/android/car/media/common/source/MediaSourcesLiveDataTest.java
@@ -33,7 +33,6 @@
import com.android.car.arch.common.testing.InstantTaskExecutorRule;
import com.android.car.arch.common.testing.TestLifecycleOwner;
-import com.android.car.media.common.TestConfig;
import org.junit.Before;
import org.junit.Rule;
@@ -42,7 +41,6 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowPackageManager;
@@ -51,7 +49,6 @@
import java.util.stream.Collectors;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class MediaSourcesLiveDataTest {
@Rule
diff --git a/car-messenger-common/Android.bp b/car-messenger-common/Android.bp
index 19ed50f..8426cd4 100644
--- a/car-messenger-common/Android.bp
+++ b/car-messenger-common/Android.bp
@@ -30,7 +30,7 @@
static_libs: [
"android.car.userlib",
"androidx.legacy_legacy-support-v4",
- "car-apps-common-bp",
+ "car-apps-common",
"car-messenger-protos",
"connected-device-protos",
],
diff --git a/car-settings-lib/Android.mk b/car-settings-lib/Android.mk
deleted file mode 100644
index 9cddc18..0000000
--- a/car-settings-lib/Android.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2018 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_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-settings-lib
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- androidx.annotation_annotation \
- androidx.loader_loader
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_MIN_SDK_VERSION := 24
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# Use the following include to make our test apk.
-ifeq (,$(ONE_SHOT_MAKEFILE))
- include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
diff --git a/car-settings-lib/OWNERS b/car-settings-lib/OWNERS
deleted file mode 100644
index e8ed8af..0000000
--- a/car-settings-lib/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# People who can approve changes for submission.
-davidln@google.com
-rogerxue@google.com
-roshanagrawal@google.com
diff --git a/car-settings-lib/README.txt b/car-settings-lib/README.txt
deleted file mode 100644
index 8dcdb8a..0000000
--- a/car-settings-lib/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Library Project for Car settings.
-Intended for sharing related code between Car Settings and CarSetUpWizard.
\ No newline at end of file
diff --git a/car-settings-lib/res/values-af/strings.xml b/car-settings-lib/res/values-af/strings.xml
deleted file mode 100644
index 38a0e1b..0000000
--- a/car-settings-lib/res/values-af/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Voorgestel"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alle tale"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Veld kan nie leeg wees nie."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Ingevoerde gebruikernaam is ongeldig."</string>
-</resources>
diff --git a/car-settings-lib/res/values-am/strings.xml b/car-settings-lib/res/values-am/strings.xml
deleted file mode 100644
index 7aec3e0..0000000
--- a/car-settings-lib/res/values-am/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"የተጠቆሙ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ሁሉም ቋንቋዎች"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"መስክ ባዶ መሆን አይችልም።"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"የገባው ተጠቃሚ ስም የማይሠራ ነው።"</string>
-</resources>
diff --git a/car-settings-lib/res/values-ar/strings.xml b/car-settings-lib/res/values-ar/strings.xml
deleted file mode 100644
index 2fb7894..0000000
--- a/car-settings-lib/res/values-ar/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"اللغات المقترحة"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"جميع اللغات"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"يجب عدم ترك الحقل فارغًا."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"اسم المستخدم المُدخل غير صالح."</string>
-</resources>
diff --git a/car-settings-lib/res/values-as/strings.xml b/car-settings-lib/res/values-as/strings.xml
deleted file mode 100644
index 747e8ab..0000000
--- a/car-settings-lib/res/values-as/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"পৰামৰ্শ দিয়া ভাষা"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"সকলো ভাষা"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"এই খালী ঠাই পূৰ নকৰাকৈ এৰিব নোৱাৰি।"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"আপুনি দিয়া ব্য়ৱহাৰকাৰীৰ নাম মান্য় নহয়।"</string>
-</resources>
diff --git a/car-settings-lib/res/values-az/strings.xml b/car-settings-lib/res/values-az/strings.xml
deleted file mode 100644
index 29f7cfb..0000000
--- a/car-settings-lib/res/values-az/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Təklif edilmiş"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Bütün dillər"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Sahə boş ola bilməz."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Daxil edilən istifadəçi adı yanlışdır."</string>
-</resources>
diff --git a/car-settings-lib/res/values-b+sr+Latn/strings.xml b/car-settings-lib/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index c9450b1..0000000
--- a/car-settings-lib/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Predloženi"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Svi jezici"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Polje ne sme da bude prazno."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Korisničko ime koje ste uneli je nevažeće."</string>
-</resources>
diff --git a/car-settings-lib/res/values-be/strings.xml b/car-settings-lib/res/values-be/strings.xml
deleted file mode 100644
index 0a55864..0000000
--- a/car-settings-lib/res/values-be/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Прапанавана"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Усе мовы"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Поле не можа быць пустым."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Уведзена несапраўднае імя карыстальніка"</string>
-</resources>
diff --git a/car-settings-lib/res/values-bg/strings.xml b/car-settings-lib/res/values-bg/strings.xml
deleted file mode 100644
index 7427987..0000000
--- a/car-settings-lib/res/values-bg/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Предложени"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Всички езици"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Полето трябва да се попълни."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Въведеното потребителско име е невалидно."</string>
-</resources>
diff --git a/car-settings-lib/res/values-bn/strings.xml b/car-settings-lib/res/values-bn/strings.xml
deleted file mode 100644
index 2023f4f..0000000
--- a/car-settings-lib/res/values-bn/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"প্রস্তাবিত"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"সমস্ত ভাষা"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ক্ষেত্র খালি রাখা যাবে না।"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"প্রদান করা ব্যবহারকারীর নামটি সঠিক নয়।"</string>
-</resources>
diff --git a/car-settings-lib/res/values-bs/strings.xml b/car-settings-lib/res/values-bs/strings.xml
deleted file mode 100644
index adf86c9..0000000
--- a/car-settings-lib/res/values-bs/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Predloženo"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Svi jezici"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Polje ne može biti prazno."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Korisničko ime koje ste unijeli je nevažeće."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ca/strings.xml b/car-settings-lib/res/values-ca/strings.xml
deleted file mode 100644
index ee2b958..0000000
--- a/car-settings-lib/res/values-ca/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggerits"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Tots els idiomes"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"El camp no pot estar en blanc."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"El nom d\'usuari que has introduït no és vàlid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-cs/strings.xml b/car-settings-lib/res/values-cs/strings.xml
deleted file mode 100644
index fca045b..0000000
--- a/car-settings-lib/res/values-cs/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Navrženo"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Všechny jazyky"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Pole nesmí být prázdné."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Zadané uživatelské jméno není platné."</string>
-</resources>
diff --git a/car-settings-lib/res/values-da/strings.xml b/car-settings-lib/res/values-da/strings.xml
deleted file mode 100644
index 2a585cb..0000000
--- a/car-settings-lib/res/values-da/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Foreslået"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alle sprog"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Feltet må ikke være tomt."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Det brugernavn, du har angivet, er ugyldigt."</string>
-</resources>
diff --git a/car-settings-lib/res/values-de/strings.xml b/car-settings-lib/res/values-de/strings.xml
deleted file mode 100644
index a138ce7..0000000
--- a/car-settings-lib/res/values-de/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Vorgeschlagen"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alle Sprachen"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Das Feld darf nicht leer sein."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Der eingegebene Nutzername ist ungültig."</string>
-</resources>
diff --git a/car-settings-lib/res/values-el/strings.xml b/car-settings-lib/res/values-el/strings.xml
deleted file mode 100644
index 2496924..0000000
--- a/car-settings-lib/res/values-el/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Προτεινόμενες"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Όλες οι γλώσσες"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Το πεδίο δεν μπορεί να παραμείνει κενό."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Το όνομα χρήστη που καταχωρίστηκε είναι μη έγκυρο."</string>
-</resources>
diff --git a/car-settings-lib/res/values-en-rAU/strings.xml b/car-settings-lib/res/values-en-rAU/strings.xml
deleted file mode 100644
index 96a64e0..0000000
--- a/car-settings-lib/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggested"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"All languages"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Field can\'t be blank."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Username entered is invalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-en-rCA/strings.xml b/car-settings-lib/res/values-en-rCA/strings.xml
deleted file mode 100644
index 96a64e0..0000000
--- a/car-settings-lib/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggested"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"All languages"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Field can\'t be blank."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Username entered is invalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-en-rGB/strings.xml b/car-settings-lib/res/values-en-rGB/strings.xml
deleted file mode 100644
index 96a64e0..0000000
--- a/car-settings-lib/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggested"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"All languages"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Field can\'t be blank."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Username entered is invalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-en-rIN/strings.xml b/car-settings-lib/res/values-en-rIN/strings.xml
deleted file mode 100644
index 96a64e0..0000000
--- a/car-settings-lib/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggested"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"All languages"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Field can\'t be blank."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Username entered is invalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-en-rXC/strings.xml b/car-settings-lib/res/values-en-rXC/strings.xml
deleted file mode 100644
index 80192d2..0000000
--- a/car-settings-lib/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggested"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"All languages"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Field can’t be blank."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Username entered is invalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-es-rUS/strings.xml b/car-settings-lib/res/values-es-rUS/strings.xml
deleted file mode 100644
index 92eff9f..0000000
--- a/car-settings-lib/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugerencias"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Todos los idiomas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Este campo no puede quedar vacío."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"El nombre de usuario ingresado no es válido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-es/strings.xml b/car-settings-lib/res/values-es/strings.xml
deleted file mode 100644
index 0e70ac6..0000000
--- a/car-settings-lib/res/values-es/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugerencias"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Todos los idiomas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"El campo no puede estar vacío."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"El nombre de usuario introducido no es válido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-et/strings.xml b/car-settings-lib/res/values-et/strings.xml
deleted file mode 100644
index 0282368..0000000
--- a/car-settings-lib/res/values-et/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Soovitatud"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Kõik keeled"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Väli ei tohi olla tühi."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Sisestatud kasutajanimi on sobimatu."</string>
-</resources>
diff --git a/car-settings-lib/res/values-eu/strings.xml b/car-settings-lib/res/values-eu/strings.xml
deleted file mode 100644
index c8c0e10..0000000
--- a/car-settings-lib/res/values-eu/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Iradokitakoak"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Hizkuntza guztiak"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Eremuak ezin du hutsik egon."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Idatzitako erabiltzaile-izenak ez du balio."</string>
-</resources>
diff --git a/car-settings-lib/res/values-fa/strings.xml b/car-settings-lib/res/values-fa/strings.xml
deleted file mode 100644
index 3ce1002..0000000
--- a/car-settings-lib/res/values-fa/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"پیشنهادشده"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"همه زبانها"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"این فیلد نمیتواند خالی باشد."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"نام کاربری واردشده نامعتبر است."</string>
-</resources>
diff --git a/car-settings-lib/res/values-fi/strings.xml b/car-settings-lib/res/values-fi/strings.xml
deleted file mode 100644
index cb5f2c9..0000000
--- a/car-settings-lib/res/values-fi/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Ehdotettu"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Kaikki kielet"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Kenttä ei voi olla tyhjä."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Annettu käyttäjänimi on virheellinen."</string>
-</resources>
diff --git a/car-settings-lib/res/values-fr-rCA/strings.xml b/car-settings-lib/res/values-fr-rCA/strings.xml
deleted file mode 100644
index ee93f50..0000000
--- a/car-settings-lib/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggestions"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Toutes les langues"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Champ obligatoire."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Le nom d\'utilisateur entré n\'est pas valide."</string>
-</resources>
diff --git a/car-settings-lib/res/values-fr/strings.xml b/car-settings-lib/res/values-fr/strings.xml
deleted file mode 100644
index 250d38a..0000000
--- a/car-settings-lib/res/values-fr/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggestion"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Toutes les langues"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Champ obligatoire."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Le nom d\'utilisateur saisi est incorrect."</string>
-</resources>
diff --git a/car-settings-lib/res/values-gl/strings.xml b/car-settings-lib/res/values-gl/strings.xml
deleted file mode 100644
index e2a772a..0000000
--- a/car-settings-lib/res/values-gl/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Idiomas suxeridos"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Todos os idiomas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"O campo non pode estar en branco."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"O nome de usuario que introduciches non é válido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-gu/strings.xml b/car-settings-lib/res/values-gu/strings.xml
deleted file mode 100644
index 22826c7..0000000
--- a/car-settings-lib/res/values-gu/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"સૂચવેલા"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"બધી ભાષાઓ"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ફીલ્ડ ખાલી રાખી શકાય નહીં."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"દાખલ કરેલું વપરાશકર્તાનું નામ અમાન્ય છે."</string>
-</resources>
diff --git a/car-settings-lib/res/values-hi/strings.xml b/car-settings-lib/res/values-hi/strings.xml
deleted file mode 100644
index 042be3b..0000000
--- a/car-settings-lib/res/values-hi/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"सुझाए गए"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"सभी भाषाएं"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"नाम लिखने की जगह (फ़ील्ड) खाली नहीं रखी जा सकती."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"डाला गया उपयोगकर्ता नाम गलत है."</string>
-</resources>
diff --git a/car-settings-lib/res/values-hr/strings.xml b/car-settings-lib/res/values-hr/strings.xml
deleted file mode 100644
index c0a69ff..0000000
--- a/car-settings-lib/res/values-hr/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Predloženo"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Svi jezici"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Polje ne može biti prazno."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Uneseno korisničko ime nije važeće."</string>
-</resources>
diff --git a/car-settings-lib/res/values-hu/strings.xml b/car-settings-lib/res/values-hu/strings.xml
deleted file mode 100644
index 275ea75..0000000
--- a/car-settings-lib/res/values-hu/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Javasolt"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Minden nyelv"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"A mező nem lehet üres."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"A megadott felhasználónév érvénytelen."</string>
-</resources>
diff --git a/car-settings-lib/res/values-hy/strings.xml b/car-settings-lib/res/values-hy/strings.xml
deleted file mode 100644
index fcab9c7..0000000
--- a/car-settings-lib/res/values-hy/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Առաջարկվող"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Բոլոր լեզուները"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Դաշտը չի կարող դատարկ լինել:"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Մուտքագրված օգտանունն անվավեր է։"</string>
-</resources>
diff --git a/car-settings-lib/res/values-in/strings.xml b/car-settings-lib/res/values-in/strings.xml
deleted file mode 100644
index 51e4d3e..0000000
--- a/car-settings-lib/res/values-in/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Disarankan"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Semua bahasa"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Kolom harus diisi."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Nama pengguna yang dimasukkan tidak valid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-is/strings.xml b/car-settings-lib/res/values-is/strings.xml
deleted file mode 100644
index 3dffde3..0000000
--- a/car-settings-lib/res/values-is/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Tillögur"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Öll tungumál"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Reiturinn má ekki vera auður."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Ógilt notandanafn var slegið inn."</string>
-</resources>
diff --git a/car-settings-lib/res/values-it/strings.xml b/car-settings-lib/res/values-it/strings.xml
deleted file mode 100644
index 69e1425..0000000
--- a/car-settings-lib/res/values-it/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Suggerite"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Tutte le lingue"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Il campo non può essere vuoto."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Il nome utente inserito non è valido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-iw/strings.xml b/car-settings-lib/res/values-iw/strings.xml
deleted file mode 100644
index 180b3e8..0000000
--- a/car-settings-lib/res/values-iw/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"הצעות"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"כל השפות"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"חובה למלא את השדה."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"שם המשתמש שהוזן לא חוקי."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ja/strings.xml b/car-settings-lib/res/values-ja/strings.xml
deleted file mode 100644
index 6374217..0000000
--- a/car-settings-lib/res/values-ja/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"言語の候補"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"すべての言語"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"フィールドは空欄にできません。"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"入力されたユーザー名が無効です。"</string>
-</resources>
diff --git a/car-settings-lib/res/values-ka/strings.xml b/car-settings-lib/res/values-ka/strings.xml
deleted file mode 100644
index 6f93ba9..0000000
--- a/car-settings-lib/res/values-ka/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"რეკომენდებული"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ყველა ენა"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"არ შეიძლება ველი ცარიელი იყოს."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"მომხმარებლის სახელი არასწორადაა შეყვანილი."</string>
-</resources>
diff --git a/car-settings-lib/res/values-kk/strings.xml b/car-settings-lib/res/values-kk/strings.xml
deleted file mode 100644
index ebf2013..0000000
--- a/car-settings-lib/res/values-kk/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Ұсынылған"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Барлық тілдер"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Өріс бос болмауы керек."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Енгізілген пайдаланушы аты жарамсыз."</string>
-</resources>
diff --git a/car-settings-lib/res/values-km/strings.xml b/car-settings-lib/res/values-km/strings.xml
deleted file mode 100644
index 2274c4c..0000000
--- a/car-settings-lib/res/values-km/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"បានណែនាំ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ភាសាទាំងអស់"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"កន្លែងបញ្ចូលមិនអាចទទេឡើយ។"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ឈ្មោះអ្នកប្រើប្រាស់ដែលបានបញ្ចូលគឺមិនត្រឹមត្រូវទេ។"</string>
-</resources>
diff --git a/car-settings-lib/res/values-kn/strings.xml b/car-settings-lib/res/values-kn/strings.xml
deleted file mode 100644
index c5815cc..0000000
--- a/car-settings-lib/res/values-kn/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"ಸೂಚಿಸಲಾಗಿರುವುದು"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ಎಲ್ಲಾ ಭಾಷೆಗಳು"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ಕ್ಷೇತ್ರವು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ನಮೂದಿಸಿದ ಬಳಕೆದಾರರ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ko/strings.xml b/car-settings-lib/res/values-ko/strings.xml
deleted file mode 100644
index 1a818d9..0000000
--- a/car-settings-lib/res/values-ko/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"추천"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"모든 언어"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"입력란을 비워 둘 수 없습니다."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"입력한 사용자 이름이 올바르지 않습니다."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ky/strings.xml b/car-settings-lib/res/values-ky/strings.xml
deleted file mode 100644
index 03e5756..0000000
--- a/car-settings-lib/res/values-ky/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Сунушталган тилдер"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Бардык тилдер"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Талаа бош болбошу керек."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Киргизилген колдонуучунун аты жараксыз."</string>
-</resources>
diff --git a/car-settings-lib/res/values-lo/strings.xml b/car-settings-lib/res/values-lo/strings.xml
deleted file mode 100644
index 439bafa..0000000
--- a/car-settings-lib/res/values-lo/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"ແນະນຳ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ທຸກພາສາ"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ຊ່ອງຂໍ້ມູນບໍ່ສາມາດຫວ່າງເປົ່າໄດ້."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ຊື່ຜູ້ໃຊ້ທີ່ປ້ອນເຂົ້າບໍ່ຖືກຕ້ອງ."</string>
-</resources>
diff --git a/car-settings-lib/res/values-lt/strings.xml b/car-settings-lib/res/values-lt/strings.xml
deleted file mode 100644
index 3b3f481..0000000
--- a/car-settings-lib/res/values-lt/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Siūloma"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Visos kalbos"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Laukas negali būti tuščias."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Įvestas naudotojo vardas yra netinkamas."</string>
-</resources>
diff --git a/car-settings-lib/res/values-lv/strings.xml b/car-settings-lib/res/values-lv/strings.xml
deleted file mode 100644
index 856dcf4..0000000
--- a/car-settings-lib/res/values-lv/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Ieteiktās"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Visas valodas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Lauks nedrīkst būt tukšs."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Ievadītais lietotājvārds nav derīgs."</string>
-</resources>
diff --git a/car-settings-lib/res/values-mk/strings.xml b/car-settings-lib/res/values-mk/strings.xml
deleted file mode 100644
index f344b18..0000000
--- a/car-settings-lib/res/values-mk/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Предложени"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Сите јазици"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Полето не може да биде празно."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Внесеното корисничко име е неважечко."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ml/strings.xml b/car-settings-lib/res/values-ml/strings.xml
deleted file mode 100644
index afb887d..0000000
--- a/car-settings-lib/res/values-ml/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"നിര്ദ്ദേശിക്കുന്നവ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"എല്ലാ ഭാഷകളും"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ഫീൽഡ് ശൂന്യമായിടരുത്."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"നൽകിയ ഉപയോക്തൃ നാമം അസാധുവാണ്."</string>
-</resources>
diff --git a/car-settings-lib/res/values-mn/strings.xml b/car-settings-lib/res/values-mn/strings.xml
deleted file mode 100644
index d747c7b..0000000
--- a/car-settings-lib/res/values-mn/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Санал болгосон"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Бүх хэл"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Талбар хоосон байж болохгүй."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Оруулсан хэрэглэгчийн нэр буруу байна."</string>
-</resources>
diff --git a/car-settings-lib/res/values-mr/strings.xml b/car-settings-lib/res/values-mr/strings.xml
deleted file mode 100644
index f915f65..0000000
--- a/car-settings-lib/res/values-mr/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"सूचित"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"सर्व भाषा"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"फील्ड रिकामे असू शकत नाही."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"एंटर केलेले वापरकर्ता नाव चुकीचे आहे."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ms/strings.xml b/car-settings-lib/res/values-ms/strings.xml
deleted file mode 100644
index e67f995..0000000
--- a/car-settings-lib/res/values-ms/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Dicadangkan"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Semua bahasa"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Medan tidak boleh kosong."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Nama pengguna yang dimasukkan tidak sah."</string>
-</resources>
diff --git a/car-settings-lib/res/values-my/strings.xml b/car-settings-lib/res/values-my/strings.xml
deleted file mode 100644
index dd448fa..0000000
--- a/car-settings-lib/res/values-my/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"အကြံပြုထားသော"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ဘာသာစကားအားလုံး"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"အကွက်ကို ကွက်လပ်ထား၍ မရပါ။"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ထည့်ထားသော အသုံးပြုသူအမည် မမှန်ကန်ပါ။"</string>
-</resources>
diff --git a/car-settings-lib/res/values-nb/strings.xml b/car-settings-lib/res/values-nb/strings.xml
deleted file mode 100644
index 77dc43a..0000000
--- a/car-settings-lib/res/values-nb/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Foreslått"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alle språk"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Feltet må fylles ut."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Brukernavnet du skrev inn, er ugyldig."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ne/strings.xml b/car-settings-lib/res/values-ne/strings.xml
deleted file mode 100644
index 6d32ddc..0000000
--- a/car-settings-lib/res/values-ne/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"सुझाव दिइयो"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"सम्पूर्ण भाषाहरू"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"फिल्ड खाली हुन सक्दैन।"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"प्रविष्ट गरिएको प्रयोगकर्ता नाम अमान्य छ।"</string>
-</resources>
diff --git a/car-settings-lib/res/values-nl/strings.xml b/car-settings-lib/res/values-nl/strings.xml
deleted file mode 100644
index 25f84ef..0000000
--- a/car-settings-lib/res/values-nl/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Voorgesteld"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alle talen"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Veld mag niet leeg zijn."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"De ingevoerde gebruikersnaam is ongeldig."</string>
-</resources>
diff --git a/car-settings-lib/res/values-or/strings.xml b/car-settings-lib/res/values-or/strings.xml
deleted file mode 100644
index 3690ef6..0000000
--- a/car-settings-lib/res/values-or/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"ପରାମର୍ଶିତ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ସମସ୍ତ ଭାଷା"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ସ୍ଥାନକୁ ଖାଲି ଛାଡ଼ି ହେବନାହିଁ।"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ଲେଖାଯାଇଥିବା ଉପଯୋଗକର୍ତ୍ତାନାମଟି ଠିକ୍ ନାହିଁ।"</string>
-</resources>
diff --git a/car-settings-lib/res/values-pa/strings.xml b/car-settings-lib/res/values-pa/strings.xml
deleted file mode 100644
index c501aaf..0000000
--- a/car-settings-lib/res/values-pa/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"ਸੁਝਾਏ ਗਏ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ਖੇਤਰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ਦਾਖਲ ਕੀਤਾ ਗਿਆ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਵੈਧ ਹੈ।"</string>
-</resources>
diff --git a/car-settings-lib/res/values-pl/strings.xml b/car-settings-lib/res/values-pl/strings.xml
deleted file mode 100644
index 00bbad3..0000000
--- a/car-settings-lib/res/values-pl/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugerowane"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Wszystkie języki"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Pole nie może być puste."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Podana nazwa użytkownika jest nieprawidłowa."</string>
-</resources>
diff --git a/car-settings-lib/res/values-pt-rPT/strings.xml b/car-settings-lib/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 7ad6367..0000000
--- a/car-settings-lib/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugeridos"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Todos os idiomas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"O campo não pode estar em branco."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"O nome de utilizador introduzido é inválido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-pt/strings.xml b/car-settings-lib/res/values-pt/strings.xml
deleted file mode 100644
index ac5fb11..0000000
--- a/car-settings-lib/res/values-pt/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugeridos"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Todos os idiomas"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"O campo não pode ficar em branco."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"O nome de usuário informado é inválido."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ro/strings.xml b/car-settings-lib/res/values-ro/strings.xml
deleted file mode 100644
index b79ede1..0000000
--- a/car-settings-lib/res/values-ro/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugerate"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Toate limbile"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Câmpul trebuie completat."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Numele de utilizator introdus este nevalid."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ru/strings.xml b/car-settings-lib/res/values-ru/strings.xml
deleted file mode 100644
index d5f064c..0000000
--- a/car-settings-lib/res/values-ru/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Рекомендуемые"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Все языки"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Поле должно быть заполнено."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Указано недопустимое имя пользователя."</string>
-</resources>
diff --git a/car-settings-lib/res/values-si/strings.xml b/car-settings-lib/res/values-si/strings.xml
deleted file mode 100644
index 79e83f7..0000000
--- a/car-settings-lib/res/values-si/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"යෝජිත"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"සියලු භාෂා"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ක්ෂේත්රය හිස් විය නොහැක."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ඇතුළු කළ පරිශීලක නාමය අවලංගුය."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sk/strings.xml b/car-settings-lib/res/values-sk/strings.xml
deleted file mode 100644
index 7bf3819..0000000
--- a/car-settings-lib/res/values-sk/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Navrhované"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Všetky jazyky"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Pole nesmie byť prázdne."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Zadané používateľské meno je neplatné."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sl/strings.xml b/car-settings-lib/res/values-sl/strings.xml
deleted file mode 100644
index 5f46458..0000000
--- a/car-settings-lib/res/values-sl/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Predlagano"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Vsi jeziki"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Polje ne sme biti prazno."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Vneseno uporabniško ime ni veljavno."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sq/strings.xml b/car-settings-lib/res/values-sq/strings.xml
deleted file mode 100644
index 18cbe0f..0000000
--- a/car-settings-lib/res/values-sq/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Sugjeruar"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Të gjitha gjuhët"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Fusha nuk mund të lihet bosh."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Emri i përdoruesit që fute është i pavlefshëm."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sr/strings.xml b/car-settings-lib/res/values-sr/strings.xml
deleted file mode 100644
index 46b5008..0000000
--- a/car-settings-lib/res/values-sr/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Предложени"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Сви језици"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Поље не сме да буде празно."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Корисничко име које сте унели је неважеће."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sv/strings.xml b/car-settings-lib/res/values-sv/strings.xml
deleted file mode 100644
index d9e2309..0000000
--- a/car-settings-lib/res/values-sv/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Förslag"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Alla språk"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Fältet får inte vara tomt."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Du har angett ett ogiltigt användarnamn."</string>
-</resources>
diff --git a/car-settings-lib/res/values-sw/strings.xml b/car-settings-lib/res/values-sw/strings.xml
deleted file mode 100644
index dbe4958..0000000
--- a/car-settings-lib/res/values-sw/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Zinazopendekezwa"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Lugha zote"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Ni lazima ujaze sehemu hii"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Jina uliloweka la mtumiaji si sahihi."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ta/strings.xml b/car-settings-lib/res/values-ta/strings.xml
deleted file mode 100644
index e21d564..0000000
--- a/car-settings-lib/res/values-ta/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"பரிந்துரைகள்"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"எல்லா மொழிகளும்"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"புலம், வெறுமையாக இருக்கக்கூடாது."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"பயனர்பெயரைத் தவறாக உள்ளிட்டுள்ளீர்கள்."</string>
-</resources>
diff --git a/car-settings-lib/res/values-te/strings.xml b/car-settings-lib/res/values-te/strings.xml
deleted file mode 100644
index 38b470d..0000000
--- a/car-settings-lib/res/values-te/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"సూచించినవి"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"అన్ని భాషలు"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ఫీల్డ్ ఖాళీగా ఉండరాదు."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"నమోదు చేసిన వినియోగదారు పేరు చెల్లదు."</string>
-</resources>
diff --git a/car-settings-lib/res/values-th/strings.xml b/car-settings-lib/res/values-th/strings.xml
deleted file mode 100644
index 10ac43a..0000000
--- a/car-settings-lib/res/values-th/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"แนะนำ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"ทุกภาษา"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"ต้องกรอกข้อมูลในช่อง"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"ชื่อผู้ใช้ที่ป้อนไม่ถูกต้อง"</string>
-</resources>
diff --git a/car-settings-lib/res/values-tl/strings.xml b/car-settings-lib/res/values-tl/strings.xml
deleted file mode 100644
index 852721f..0000000
--- a/car-settings-lib/res/values-tl/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Iminumungkahi"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Lahat ng wika"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Hindi maaaring blangko ang field."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Invalid ang inilagay na username."</string>
-</resources>
diff --git a/car-settings-lib/res/values-tr/strings.xml b/car-settings-lib/res/values-tr/strings.xml
deleted file mode 100644
index bb7499e..0000000
--- a/car-settings-lib/res/values-tr/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Önerilen"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Tüm diller"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Alan boş olamaz."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Girilen kullanıcı adı geçersiz."</string>
-</resources>
diff --git a/car-settings-lib/res/values-uk/strings.xml b/car-settings-lib/res/values-uk/strings.xml
deleted file mode 100644
index 4429605..0000000
--- a/car-settings-lib/res/values-uk/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Пропонується"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Усі мови"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Поле не може бути порожнім."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Введене ім’я користувача недійсне."</string>
-</resources>
diff --git a/car-settings-lib/res/values-ur/strings.xml b/car-settings-lib/res/values-ur/strings.xml
deleted file mode 100644
index 64f8d4a..0000000
--- a/car-settings-lib/res/values-ur/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"تجویز کردہ"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"سبھی زبانیں"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"فیلڈ خالی نہیں رہ سکتی۔"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"درج کردہ صارف نام غلط ہے۔"</string>
-</resources>
diff --git a/car-settings-lib/res/values-uz/strings.xml b/car-settings-lib/res/values-uz/strings.xml
deleted file mode 100644
index 1947548..0000000
--- a/car-settings-lib/res/values-uz/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Taklif qilingan"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Barcha tillar"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Maydon bo‘sh qoldirilishi mumkin emas."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Kiritilgan foydalanuvchi nomi xato."</string>
-</resources>
diff --git a/car-settings-lib/res/values-vi/strings.xml b/car-settings-lib/res/values-vi/strings.xml
deleted file mode 100644
index 6dbc7d7..0000000
--- a/car-settings-lib/res/values-vi/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Ðược đề xuất"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Tất cả ngôn ngữ"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Không được để trống trường."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Tên người dùng đã nhập là không hợp lệ."</string>
-</resources>
diff --git a/car-settings-lib/res/values-zh-rCN/strings.xml b/car-settings-lib/res/values-zh-rCN/strings.xml
deleted file mode 100644
index f9462c5..0000000
--- a/car-settings-lib/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"建议"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"所有语言"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"此字段不能留空。"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"输入的用户名无效。"</string>
-</resources>
diff --git a/car-settings-lib/res/values-zh-rHK/strings.xml b/car-settings-lib/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 8c5d191..0000000
--- a/car-settings-lib/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"建議"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"所有語言"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"欄位不得留空。"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"輸入的使用者名稱無效。"</string>
-</resources>
diff --git a/car-settings-lib/res/values-zh-rTW/strings.xml b/car-settings-lib/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 8e9c84a..0000000
--- a/car-settings-lib/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"建議"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"所有語言"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"欄位不能空白。"</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"輸入的使用者名稱無效。"</string>
-</resources>
diff --git a/car-settings-lib/res/values-zu/strings.xml b/car-settings-lib/res/values-zu/strings.xml
deleted file mode 100644
index 2e55b3f..0000000
--- a/car-settings-lib/res/values-zu/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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="language_picker_list_suggested_header" msgid="8931437200168779395">"Okuphakanyisiwe"</string>
- <string name="language_picker_list_all_header" msgid="3907663373765943630">"Zonke izilimi"</string>
- <string name="name_input_blank_error" msgid="5460631644831377461">"Inkundla ayikwazi ukungabi nalutho."</string>
- <string name="name_input_invalid_error" msgid="8735081597199782922">"Igama lomsebenzisi elifakiwe alivumelekile."</string>
-</resources>
diff --git a/car-settings-lib/res/values/strings.xml b/car-settings-lib/res/values/strings.xml
deleted file mode 100644
index c9f76e7..0000000
--- a/car-settings-lib/res/values/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018 Google Inc.
-
- 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>
-
- <!-- Language picker list suggested locale header [CHAR LIMIT=40] -->
- <string name="language_picker_list_suggested_header">Suggested</string>
-
- <!-- Language picker list all other locales header [CHAR LIMIT=40] -->
- <string name="language_picker_list_all_header">All languages</string>
-
- <!-- An error message indicating that the name input field has been left blank and cannot be. [CHAR_LIMIT=50] -->
- <string name="name_input_blank_error">Field can\u2019t be blank.</string>
-
- <!-- An error message indicating that the name the user has entered is invalid. [CHAR_LIMIT=50] -->
- <string name="name_input_invalid_error">Username entered is invalid.</string>
-
-</resources>
\ No newline at end of file
diff --git a/car-settings-lib/src/com/android/car/settingslib/language/LanguagePickerUtils.java b/car-settings-lib/src/com/android/car/settingslib/language/LanguagePickerUtils.java
deleted file mode 100644
index ef5dc46..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/language/LanguagePickerUtils.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2018 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.language;
-
-import android.app.ActivityManager;
-import android.content.Context;
-import android.os.RemoteException;
-
-import androidx.annotation.Nullable;
-
-import com.android.internal.app.LocaleHelper;
-import com.android.internal.app.LocaleStore;
-import com.android.internal.app.SuggestedLocaleAdapter;
-
-import java.util.Locale;
-import java.util.Set;
-
-/**
- * Utility class that supports the language/locale picker flows.
- */
-public final class LanguagePickerUtils {
- /**
- * Creates an instance of {@link SuggestedLocaleAdapter} with a locale
- * {@link LocaleStore.LocaleInfo} that is scoped to a parent locale if a parent locale is
- * provided.
- */
- public static SuggestedLocaleAdapter createSuggestedLocaleAdapter(
- Context context,
- Set<LocaleStore.LocaleInfo> localeInfoSet,
- @Nullable LocaleStore.LocaleInfo parent) {
- boolean countryMode = (parent != null);
- Locale displayLocale = countryMode ? parent.getLocale() : Locale.getDefault();
- SuggestedLocaleAdapter adapter = new SuggestedLocaleAdapter(localeInfoSet, countryMode);
- LocaleHelper.LocaleInfoComparator comp =
- new LocaleHelper.LocaleInfoComparator(displayLocale, countryMode);
- adapter.sort(comp);
- adapter.setDisplayLocale(context, displayLocale);
- return adapter;
- }
-
- /**
- * Returns the locale from current system configuration, or the default locale if no system
- * locale is available.
- */
- public static Locale getConfiguredLocale() {
- try {
- Locale configLocale =
- ActivityManager.getService().getConfiguration().getLocales().get(0);
- return configLocale != null ? configLocale : Locale.getDefault();
- } catch (RemoteException e) {
- return Locale.getDefault();
- }
- }
-
- private LanguagePickerUtils() {}
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/language/LocaleSelectionListener.java b/car-settings-lib/src/com/android/car/settingslib/language/LocaleSelectionListener.java
deleted file mode 100644
index 2541bf8..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/language/LocaleSelectionListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2018 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.car.settingslib.language;
-
-import com.android.internal.app.LocaleStore;
-
-/**
- * Listener interface that facilitates notification of changes is locale selection.
- */
-public interface LocaleSelectionListener {
- /**
- * Called when a language choice has been selected.
- */
- void onLocaleSelected(LocaleStore.LocaleInfo localeInfo);
-
- /**
- * Called when a parent locale that has at least 2 child locales is selected. The
- * expectation here is what the PagedList in the LanguagePickerFragment will be updated to
- * display the child locales.
- */
- void onParentWithChildrenLocaleSelected(LocaleStore.LocaleInfo localeInfo);
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/loader/AsyncLoader.java b/car-settings-lib/src/com/android/car/settingslib/loader/AsyncLoader.java
deleted file mode 100644
index d706c3a..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/loader/AsyncLoader.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.loader;
-
-import android.annotation.Nullable;
-import android.content.Context;
-
-import androidx.loader.content.AsyncTaskLoader;
-
-/**
- * This class fills in some boilerplate for AsyncTaskLoader to actually load things.
- * Classes the extend {@link AsyncLoader} need to properly implement required methods expressed in
- * {@link AsyncTaskLoader}
- *
- * <p>Taken from {@link com.android.settingslib.utils.AsyncLoader}. Only change to extend from
- * support library {@link AsyncTaskLoader}
- *
- * @param <T> the data type to be loaded.
- */
-public abstract class AsyncLoader<T> extends AsyncTaskLoader<T> {
- @Nullable
- private T mResult;
-
- public AsyncLoader(Context context) {
- super(context);
- }
-
- @Override
- protected void onStartLoading() {
- if (mResult != null) {
- deliverResult(mResult);
- }
-
- if (takeContentChanged() || mResult == null) {
- forceLoad();
- }
- }
-
- @Override
- protected void onStopLoading() {
- cancelLoad();
- }
-
- @Override
- public void deliverResult(T data) {
- if (isReset()) {
- return;
- }
- mResult = data;
- if (isStarted()) {
- super.deliverResult(data);
- }
- }
-
- @Override
- protected void onReset() {
- super.onReset();
- onStopLoading();
- mResult = null;
- }
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/log/LoggerBase.java b/car-settings-lib/src/com/android/car/settingslib/log/LoggerBase.java
deleted file mode 100644
index 2d59899..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/log/LoggerBase.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2018 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.log;
-
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-
-/**
- * Helper class that wraps {@link Log} to log messages to logcat. The intended use for a Logger is
- * to include one per file, using the class.getSimpleName as the prefix, like this:
- * <pre> private static final Logger LOG = new Logger(MyClass.class); </pre>
- *
- * <p>
- * The logger will log statements in this format:
- * mTag: [PREFIX] MESSAGE
- *
- * <p>
- * Where mTag is defined by the subclass. This helps differentiate logs while staying within the
- * 23 character limit of the log mTag.
- *
- * <p>
- * When logging verbose and debug logs, the logs should either be guarded by {@code if (LOG.isV())},
- * or a constant if (DEBUG). That DEBUG constant should be false on any submitted code.
- */
-public abstract class LoggerBase {
- private final String mTag;
- private final String mPrefix;
-
- public LoggerBase(Class<?> cls) {
- this(cls.getSimpleName());
- }
-
- public LoggerBase(String prefix) {
- mTag = getTag();
- if (TextUtils.isEmpty(mTag)) {
- throw new IllegalStateException("Tag must be not null or empty");
- }
- if (mTag.length() > 23) {
- throw new IllegalStateException("Tag must be 23 characters or less");
- }
- mPrefix = "[" + prefix + "] ";
- }
-
- /**
- * Gets the tag that will be used in all logging calls.
- */
- @NonNull
- protected abstract String getTag();
-
- /**
- * Returns true when it is desired to force log all messages.
- */
- protected boolean forceAllLogging() {
- return false;
- }
-
- /**
- * Logs a {@link Log#VERBOSE} log message. Will only be logged if {@link Log#VERBOSE} is
- * loggable. This is a wrapper around {@link Log#v(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void v(String message) {
- if (isV()) {
- Log.v(mTag, mPrefix.concat(message));
- }
- }
-
- /**
- * Logs a {@link Log#VERBOSE} log message. Will only be logged if {@link Log#VERBOSE} is
- * loggable. This is a wrapper around {@link Log#v(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void v(String message, Throwable throwable) {
- if (isV()) {
- Log.v(mTag, mPrefix.concat(message), throwable);
- }
- }
-
- /**
- * Logs a {@link Log#DEBUG} log message. Will only be logged if {@link Log#DEBUG} is
- * loggable. This is a wrapper around {@link Log#d(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void d(String message) {
- if (isD()) {
- Log.d(mTag, mPrefix.concat(message));
- }
- }
-
- /**
- * Logs a {@link Log#DEBUG} log message. Will only be logged if {@link Log#DEBUG} is
- * loggable. This is a wrapper around {@link Log#d(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void d(String message, Throwable throwable) {
- if (isD()) {
- Log.d(mTag, mPrefix.concat(message), throwable);
- }
- }
-
- /**
- * Logs a {@link Log#INFO} log message. Will only be logged if {@link Log#INFO} is loggable.
- * This is a wrapper around {@link Log#i(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void i(String message) {
- if (isI()) {
- Log.i(mTag, mPrefix.concat(message));
- }
- }
-
- /**
- * Logs a {@link Log#INFO} log message. Will only be logged if {@link Log#INFO} is loggable.
- * This is a wrapper around {@link Log#i(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void i(String message, Throwable throwable) {
- if (isI()) {
- Log.i(mTag, mPrefix.concat(message), throwable);
- }
- }
-
- /**
- * Logs a {@link Log#WARN} log message. This is a wrapper around {@link Log#w(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void w(String message) {
- Log.w(mTag, mPrefix.concat(message));
- }
-
- /**
- * Logs a {@link Log#WARN} log message. This is a wrapper around
- * {@link Log#w(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void w(String message, Throwable throwable) {
- Log.w(mTag, mPrefix.concat(message), throwable);
- }
-
- /**
- * Logs a {@link Log#ERROR} log message. This is a wrapper around {@link Log#e(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void e(String message) {
- Log.e(mTag, mPrefix.concat(message));
- }
-
- /**
- * Logs a {@link Log#ERROR} log message. This is a wrapper around
- * {@link Log#e(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void e(String message, Throwable throwable) {
- Log.e(mTag, mPrefix.concat(message), throwable);
- }
-
- /**
- * Logs a "What a Terrible Failure" as an {@link Log#ASSERT} log message. This is a wrapper
- * around {@link Log#w(String, String)}.
- *
- * @param message The message you would like logged.
- */
- public void wtf(String message) {
- Log.wtf(mTag, mPrefix.concat(message));
- }
-
- /**
- * Logs a "What a Terrible Failure" as an {@link Log#ASSERT} log message. This is a wrapper
- * around {@link Log#wtf(String, String, Throwable)}.
- *
- * @param message The message you would like logged.
- * @param throwable An exception to log
- */
- public void wtf(String message, Throwable throwable) {
- Log.wtf(mTag, mPrefix.concat(message), throwable);
- }
-
- private boolean isV() {
- return Log.isLoggable(mTag, Log.VERBOSE) || forceAllLogging();
- }
-
- private boolean isD() {
- return Log.isLoggable(mTag, Log.DEBUG) || forceAllLogging();
- }
-
- private boolean isI() {
- return Log.isLoggable(mTag, Log.INFO) || forceAllLogging();
- }
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/util/ProfileNameSaver.java b/car-settings-lib/src/com/android/car/settingslib/util/ProfileNameSaver.java
deleted file mode 100644
index 8f7067c..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/util/ProfileNameSaver.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.util;
-
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract;
-import android.text.TextUtils;
-import android.util.Log;
-
-/**
- * Saves name as GIVEN_NAME on "Me" Profile. If "Me" contact does not exist, it's created.
- */
-public class ProfileNameSaver {
- private static final String TAG = "ProfileNameSaver";
- private static final Uri PROFILE_URI = ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI;
- private static final int INVALID_ID = -1;
-
- /**
- * The projection into the profiles database that retrieves just the id of a profile.
- */
- private static final String[] CONTACTS_PROJECTION =
- new String[]{ContactsContract.RawContacts._ID};
-
- /**
- * A projection into the profile data for one particular contact that includes the
- * contact's MIME type.
- */
- private static final String[] CONTACTS_PROFILE_PROJECTION = new String[]{
- ContactsContract.Data._ID,
- ContactsContract.Data.MIMETYPE};
-
- /**
- * A selection into the profiles database that queries for a MIME type.
- */
- private static final String CONTACT_MIME_QUERY = ContactsContract.Data.MIMETYPE + " = ?";
-
- /**
- * Updates the "Me" contact profile card with the given name as the first name of the
- * contact. If the "Me" contact does not exist, then one will be created.
- *
- * @param name The first name for the "Me" contact. If this value is {@code null} or
- * empty, then the contact will not be updated.
- */
- public static void updateMeContactWith(String name, ContentResolver contentResolver) {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "updateMeContactWith name=" + name);
- }
-
- if (TextUtils.isEmpty(name)) {
- return;
- }
-
- // Check if there is already an existing "me" contact.
- Cursor cursor = contentResolver.query(
- PROFILE_URI,
- CONTACTS_PROJECTION,
- /* selection= */ null,
- /* selectionArgs= */ null,
- /* sortOrder= */ null);
-
- if (cursor == null) {
- // Error in querying the content resolver, skip the update flow
- Log.e(TAG, "Received null from query to the \"me\" contact at " + PROFILE_URI);
- return;
- }
-
- long meRawContactId = -1; // no ID can be < 0
- boolean newContact = true;
- try {
- if (cursor.moveToFirst()) {
- meRawContactId = cursor.getLong(0);
- newContact = false; // An entry indicates that the "me" contact exists.
- }
- } finally {
- cursor.close();
- }
-
- ContentValues values = new ContentValues();
-
- if (newContact) {
- meRawContactId = ContentUris.parseId(contentResolver.insert(PROFILE_URI, values));
- }
-
- values.put(ContactsContract.Data.RAW_CONTACT_ID, meRawContactId);
- values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, name);
- values.put(ContactsContract.Data.MIMETYPE,
- ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
-
- long structuredNameId = getProfileItem(meRawContactId, contentResolver);
- if (newContact || structuredNameId == INVALID_ID) {
- contentResolver.insert(ContactsContract.Data.CONTENT_URI, values);
- } else {
- contentResolver.update(ContentUris.withAppendedId(
- ContactsContract.Data.CONTENT_URI, structuredNameId), values,
- /* where= */ null, /* selectionArgs= */ null);
- }
- }
-
- /**
- * Helper method to search for the first profile item of the type {@link
- * ContactsContract.CommonDataKinds.StructuredName#CONTENT_ITEM_TYPE}.
- *
- * @return The item's ID or {@link #INVALID_ID} if not found.
- */
- private static long getProfileItem(long profileContactId, ContentResolver contentResolver) {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "getProfileItem profileContactId=" + profileContactId);
- }
- Uri dataUri = ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI.buildUpon()
- .appendPath(String.valueOf(profileContactId))
- .appendPath(ContactsContract.RawContacts.Data.CONTENT_DIRECTORY)
- .build();
-
- Cursor cursor = contentResolver.query(
- dataUri,
- CONTACTS_PROFILE_PROJECTION,
- CONTACT_MIME_QUERY,
- new String[]{
- ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE},
- /* sortOrder= */ null);
-
- // Error in querying the content resolver.
- if (cursor == null) {
- Log.e(TAG, "Received null from query to the first profile item at " + dataUri);
- return INVALID_ID;
- }
-
- try {
- return cursor.moveToFirst() ? cursor.getLong(0) : INVALID_ID;
- } finally {
- cursor.close();
- }
- }
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/util/ResultCodes.java b/car-settings-lib/src/com/android/car/settingslib/util/ResultCodes.java
deleted file mode 100644
index 2ac5ef2..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/util/ResultCodes.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.util;
-
-import static android.app.Activity.RESULT_FIRST_USER;
-
-/**
- * Result code set shared between Settings and other Car components
- */
-public final class ResultCodes {
- public static final int RESULT_SKIP = RESULT_FIRST_USER;
- public static final int RESULT_NONE = RESULT_FIRST_USER + 1;
-}
diff --git a/car-settings-lib/src/com/android/car/settingslib/util/SettingsConstants.java b/car-settings-lib/src/com/android/car/settingslib/util/SettingsConstants.java
deleted file mode 100644
index cec6146..0000000
--- a/car-settings-lib/src/com/android/car/settingslib/util/SettingsConstants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.util;
-
-/**
- * Contains car specific settings constants.
- */
-public class SettingsConstants {
-
- public static final String USER_NAME_SET = "user_name_set";
-
-}
diff --git a/car-settings-lib/tests/Android.mk b/car-settings-lib/tests/Android.mk
deleted file mode 100644
index 0903c90..0000000
--- a/car-settings-lib/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018 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)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/car-settings-lib/tests/robotests/Android.mk b/car-settings-lib/tests/robotests/Android.mk
deleted file mode 100644
index 59e61b2..0000000
--- a/car-settings-lib/tests/robotests/Android.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-##################################################################
-# Car Settings Library app just for Robolectric test target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := CarSettingsLib
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-settings-lib
-
-include $(BUILD_PACKAGE)
-
-##################################################################
-# Car Settings Library Robolectric test target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarSettingsLibRoboTests
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-LOCAL_JAVA_LIBRARIES := \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt \
- android.car
-
-LOCAL_INSTRUMENTATION_FOR := CarSettingsLib
-
-LOCAL_MODULE_TAGS := optional
-
-# Generate test_config.properties
-include external/robolectric-shadows/gen_test_config.mk
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# Car Settings Library runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarSettingsLibRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- CarSettingsLibRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt \
- android.car
-
-LOCAL_TEST_PACKAGE := CarSettingsLib
-
-LOCAL_ROBOTEST_FILES := $(filter-out %/BaseRobolectricTest.java,\
- $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.))
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
\ No newline at end of file
diff --git a/car-settings-lib/tests/robotests/config/robolectric.properties b/car-settings-lib/tests/robotests/config/robolectric.properties
deleted file mode 100644
index 3626c87..0000000
--- a/car-settings-lib/tests/robotests/config/robolectric.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2018 Google Inc.
-#
-# 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.
-#
-sdk=NEWEST_SDK
\ No newline at end of file
diff --git a/car-settings-lib/tests/robotests/src/com/android/car/settingslib/log/LoggerBaseTest.java b/car-settings-lib/tests/robotests/src/com/android/car/settingslib/log/LoggerBaseTest.java
deleted file mode 100644
index 468c010..0000000
--- a/car-settings-lib/tests/robotests/src/com/android/car/settingslib/log/LoggerBaseTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2018 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settingslib.log;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/**
- * Tests {@link LoggerBase}
- */
-@RunWith(RobolectricTestRunner.class)
-public class LoggerBaseTest {
-
- @Rule
- public ExpectedException mExpectedException = ExpectedException.none();
-
- @Test
- public void testNullTag() {
- mExpectedException.expect(IllegalStateException.class);
- mExpectedException.expectMessage("Tag must be not null or empty");
- new NullTagLogger("NullLogger");
- }
-
- @Test
- public void testEmptyTag() {
- mExpectedException.expect(IllegalStateException.class);
- mExpectedException.expectMessage("Tag must be not null or empty");
- new EmptyTagLogger("EmptyTagLogger");
- }
-
- @Test
- public void testTooLongTag() {
- mExpectedException.expect(IllegalStateException.class);
- mExpectedException.expectMessage("Tag must be 23 characters or less");
- new TooLongTagLogger("TooLongTagLogger");
- }
-
- private class NullTagLogger extends LoggerBase {
-
- NullTagLogger(String prefix) {
- super(prefix);
- }
-
- @Override
- protected String getTag() {
- return null;
- }
- }
-
- private class EmptyTagLogger extends LoggerBase {
-
- EmptyTagLogger(String prefix) {
- super(prefix);
- }
-
- @Override
- protected String getTag() {
- return "";
- }
- }
-
- /**
- * A Logger with a tag that is 24 characters long.
- */
- private class TooLongTagLogger extends LoggerBase {
-
- TooLongTagLogger(String prefix) {
- super(prefix);
- }
-
- @Override
- protected String getTag() {
- return "LoremIpsumLoremIpsumLore";
- }
- }
-}
diff --git a/car-settings-lib/tests/robotests/src/com/android/car/settingslib/robolectric/BaseRobolectricTest.java b/car-settings-lib/tests/robotests/src/com/android/car/settingslib/robolectric/BaseRobolectricTest.java
deleted file mode 100644
index 280faea..0000000
--- a/car-settings-lib/tests/robotests/src/com/android/car/settingslib/robolectric/BaseRobolectricTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2018 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.car.settingslib.robolectric;
-
-import org.junit.Rule;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-/**
- * Base test for CarSettingsLib Robolectric tests.
- */
-public abstract class BaseRobolectricTest {
- // This rule automatically initializes any mocks created using the @Mock annotation
- @Rule
- public MockitoRule mMockitoRule = MockitoJUnit.rule();
-}
diff --git a/EncryptionRunner/Android.bp b/car-telephony-common/Android.bp
similarity index 63%
copy from EncryptionRunner/Android.bp
copy to car-telephony-common/Android.bp
index 54316ff..8f9318e 100644
--- a/EncryptionRunner/Android.bp
+++ b/car-telephony-common/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2018 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.
@@ -11,21 +12,26 @@
// 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.
+//
android_library {
- name: "EncryptionRunner-lib",
- min_sdk_version: "23",
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
- static_libs: [
- "ukey2",
- ],
- srcs: [
- "src/**/*.java",
- ],
- installable: true,
-}
+ name: "car-telephony-common",
+ srcs: ["src/**/*.java"],
+
+ resource_dirs: ["res"],
+
+ optimize: {
+ enabled: false,
+ },
+
+ static_libs: [
+ "androidx.legacy_legacy-support-v4",
+ "car-apps-common",
+ "glide-prebuilt",
+ "libphonenumber",
+ ],
+
+ libs: ["android.car"],
+
+}
diff --git a/car-telephony-common/Android.mk b/car-telephony-common/Android.mk
deleted file mode 100644
index 3a592d6..0000000
--- a/car-telephony-common/Android.mk
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Copyright (C) 2018 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_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-telephony-common
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_STATIC_ANDROID_LIBRARIES += \
- androidx.legacy_legacy-support-v4 \
- car-apps-common
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
- car-glide \
- car-glide-disklrucache \
- car-gifdecoder \
- libphonenumber
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-ifeq (,$(ONE_SHOT_MAKEFILE))
- include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
\ No newline at end of file
diff --git a/car-telephony-common/tests/Android.mk b/car-telephony-common/tests/Android.mk
deleted file mode 100644
index 0903c90..0000000
--- a/car-telephony-common/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018 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)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/car-telephony-common/tests/robotests/Android.bp b/car-telephony-common/tests/robotests/Android.bp
new file mode 100644
index 0000000..57bf759
--- /dev/null
+++ b/car-telephony-common/tests/robotests/Android.bp
@@ -0,0 +1,27 @@
+//###########################################################
+// car-telephony-common just for Robolectric test target. #
+//###########################################################
+android_app {
+ name: "CarTelephonyCommonForTesting",
+
+ platform_apis: true,
+
+ libs: ["android.car"],
+
+ privileged: true,
+
+ static_libs: ["car-telephony-common"],
+}
+
+//############################################################
+// car-telephony-common Robolectric test target. #
+//############################################################
+android_robolectric_test {
+ name: "CarTelephonyCommonRoboTests",
+
+ srcs: ["src/**/*.java"],
+
+ java_resource_dirs: ["config"],
+
+ instrumentation_for: "CarTelephonyCommonForTesting",
+}
diff --git a/car-telephony-common/tests/robotests/Android.mk b/car-telephony-common/tests/robotests/Android.mk
deleted file mode 100644
index e67530d..0000000
--- a/car-telephony-common/tests/robotests/Android.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-
-############################################################
-# car-telephony-common just for Robolectric test target. #
-############################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := CarTelephonyCommonForTesting
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_STATIC_ANDROID_LIBRARIES := car-telephony-common
-
-include $(BUILD_PACKAGE)
-
-#############################################################
-# car-telephony-common Robolectric test target. #
-#############################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarTelephonyCommonRoboTests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-# Include the testing libraries
-LOCAL_JAVA_LIBRARIES := \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_INSTRUMENTATION_FOR := CarTelephonyCommonForTesting
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# car-telephony-common runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarTelephonyCommonRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- CarTelephonyCommonRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-
-LOCAL_TEST_PACKAGE := CarTelephonyCommonForTesting
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
diff --git a/car-telephony-common/tests/robotests/config/robolectric.properties b/car-telephony-common/tests/robotests/config/robolectric.properties
index 9228597..fc4f8ca 100644
--- a/car-telephony-common/tests/robotests/config/robolectric.properties
+++ b/car-telephony-common/tests/robotests/config/robolectric.properties
@@ -11,5 +11,4 @@
# 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.
-manifest=packages/apps/Car/libs/car-telephony-common/tests/robotests/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/car-theme-lib/Android.bp b/car-theme-lib/Android.bp
index 990148c..30c780c 100644
--- a/car-theme-lib/Android.bp
+++ b/car-theme-lib/Android.bp
@@ -15,7 +15,7 @@
//
android_library {
- name: "car-theme-lib-bp",
+ name: "car-theme-lib",
srcs: ["src/**/*.java"],
@@ -26,5 +26,4 @@
optimize: {
enabled: false,
},
-
}
diff --git a/car-theme-lib/Android.mk b/car-theme-lib/Android.mk
deleted file mode 100644
index c22048c..0000000
--- a/car-theme-lib/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Copyright (C) 2018 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_USE_AAPT2 := true
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-theme-lib
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/car-ui-lib/Android.bp b/car-ui-lib/Android.bp
index f433c4c..023ffff 100644
--- a/car-ui-lib/Android.bp
+++ b/car-ui-lib/Android.bp
@@ -15,26 +15,22 @@
// limitations under the License.
android_library {
-
- name: "car-ui-lib-bp",
-
+ name: "car-ui-lib",
+ sdk_version: "system_current",
+ min_sdk_version: "14",
srcs: ["src/**/*.java"],
-
resource_dirs: ["res"],
-
optimize: {
enabled: false,
},
-
- libs: ["android.car"],
-
+ libs: ["android.car-stubs"],
static_libs: [
"androidx.annotation_annotation",
"androidx.appcompat_appcompat",
- "androidx.asynclayoutinflater_asynclayoutinflater",
"androidx-constraintlayout_constraintlayout",
"androidx.preference_preference",
"androidx.recyclerview_recyclerview",
"androidx-constraintlayout_constraintlayout-solver",
+ "androidx.asynclayoutinflater_asynclayoutinflater",
],
}
diff --git a/car-ui-lib/Android.mk b/car-ui-lib/Android.mk
index c67ea5c..9369f03 100644
--- a/car-ui-lib/Android.mk
+++ b/car-ui-lib/Android.mk
@@ -33,43 +33,6 @@
CAR_UI_GENERATE_RRO_SET := $(call my-dir)/generate_rros.mk
-# Build car-ui library
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_MODULE := car-ui-lib
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_STATIC_ANDROID_LIBRARIES += \
- androidx.annotation_annotation \
- androidx.appcompat_appcompat \
- androidx-constraintlayout_constraintlayout \
- androidx.preference_preference \
- androidx.recyclerview_recyclerview \
- androidx.asynclayoutinflater_asynclayoutinflater \
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
- androidx-constraintlayout_constraintlayout-solver \
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
ifeq (,$(ONE_SHOT_MAKEFILE))
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
diff --git a/car-ui-lib/build.gradle b/car-ui-lib/build.gradle
index 5b65956..f6f5fd0 100644
--- a/car-ui-lib/build.gradle
+++ b/car-ui-lib/build.gradle
@@ -35,6 +35,10 @@
google()
jcenter()
}
+ buildDir = "/tmp/car-ui-build/${rootProject.name}/${project.name}"
+ tasks.withType(JavaCompile) {
+ options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
+ }
}
// Library-level build file
@@ -71,5 +75,5 @@
api 'androidx.constraintlayout:constraintlayout:1.1.3'
api 'androidx.preference:preference:1.1.0'
api 'androidx.recyclerview:recyclerview:1.0.0'
- implementation files('../../../../../out/target/common/obj/JAVA_LIBRARIES/android.car_intermediates/classes-pre-proguard.jar')
+ implementation files('../../../../../out/target/common/obj/JAVA_LIBRARIES/android.car_intermediates/classes.jar')
}
diff --git a/car-ui-lib/findviewbyid-preupload-hook.sh b/car-ui-lib/findviewbyid-preupload-hook.sh
deleted file mode 100755
index 8b6dbfd..0000000
--- a/car-ui-lib/findviewbyid-preupload-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-if grep -rq "findViewById\|requireViewById" car-ui-lib/src/com/android/car/ui/toolbar/; then
- grep -r "findViewById\|requireViewById" car-ui-lib/src/com/android/car/ui/toolbar/;
- echo "Illegal use of findViewById or requireViewById in car-ui-lib. Please consider using CarUiUtils#findViewByRefId or CarUiUtils#requireViewByRefId" && false;
-fi
\ No newline at end of file
diff --git a/android-car-lib/res/drawable/car_card_background.xml b/car-ui-lib/res/color/car_ui_dialog_icon_color.xml
similarity index 75%
rename from android-car-lib/res/drawable/car_card_background.xml
rename to car-ui-lib/res/color/car_ui_dialog_icon_color.xml
index 7caa2ff..b6941aa 100644
--- a/android-car-lib/res/drawable/car_card_background.xml
+++ b/car-ui-lib/res/color/car_ui_dialog_icon_color.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- ~ Copyright (C) 2017 The Android Open Source Project
+ ~ Copyright (C) 2020 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.
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@color/car_card"/>
-</shape>
\ No newline at end of file
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="?android:attr/colorForeground"/>
+</selector>
\ No newline at end of file
diff --git a/car-ui-lib/res/drawable/car_ui_icon_add.xml b/car-ui-lib/res/drawable/car_ui_icon_add.xml
new file mode 100644
index 0000000..fc15d7e
--- /dev/null
+++ b/car-ui-lib/res/drawable/car_ui_icon_add.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 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.
+ -->
+<!-- Used in Carboard's toolbar. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="48dp"
+ android:height="48dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+<path
+ android:fillColor="@color/car_ui_toolbar_menu_item_icon_color"
+ android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
\ No newline at end of file
diff --git a/car-ui-lib/res/drawable/car_ui_icon_delete.xml b/car-ui-lib/res/drawable/car_ui_icon_delete.xml
new file mode 100644
index 0000000..c378868
--- /dev/null
+++ b/car-ui-lib/res/drawable/car_ui_icon_delete.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 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.
+ -->
+<!-- Used in Carboard's toolbar. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="48dp"
+ android:height="48dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+<path
+ android:fillColor="@color/car_ui_toolbar_menu_item_icon_color"
+ android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
+</vector>
\ No newline at end of file
diff --git a/car-ui-lib/res/drawable/car_ui_icon_edit.xml b/car-ui-lib/res/drawable/car_ui_icon_edit.xml
new file mode 100644
index 0000000..2a4f079
--- /dev/null
+++ b/car-ui-lib/res/drawable/car_ui_icon_edit.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 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.
+ -->
+<!-- Used in Carboard's toolbar. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="48dp"
+ android:height="48dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+<path
+ android:fillColor="@color/car_ui_toolbar_menu_item_icon_color"
+ android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
+</vector>
\ No newline at end of file
diff --git a/car-ui-lib/res/drawable/car_ui_icon_save.xml b/car-ui-lib/res/drawable/car_ui_icon_save.xml
new file mode 100644
index 0000000..f65682a
--- /dev/null
+++ b/car-ui-lib/res/drawable/car_ui_icon_save.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 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.
+ -->
+<!-- Used in Carboard's toolbar. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="48dp"
+ android:height="48dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+<path
+ android:fillColor="@color/car_ui_toolbar_menu_item_icon_color"
+ android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z"/>
+</vector>
diff --git a/car-settings-lib/tests/robotests/AndroidManifest.xml b/car-ui-lib/res/layout/car_ui_radio_button_preference_widget.xml
similarity index 63%
copy from car-settings-lib/tests/robotests/AndroidManifest.xml
copy to car-ui-lib/res/layout/car_ui_radio_button_preference_widget.xml
index dd1a985..d179a09 100644
--- a/car-settings-lib/tests/robotests/AndroidManifest.xml
+++ b/car-ui-lib/res/layout/car_ui_radio_button_preference_widget.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2018 Google Inc.
+ Copyright 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.
@@ -15,7 +15,11 @@
limitations under the License.
-->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.car.settingslib.robotests">
-
-</manifest>
+<RadioButton
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/radio_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clickable="false"
+ android:focusable="false"/>
diff --git a/car-ui-lib/res/layout/car_ui_seekbar_dialog.xml b/car-ui-lib/res/layout/car_ui_seekbar_dialog.xml
new file mode 100644
index 0000000..90124c4
--- /dev/null
+++ b/car-ui-lib/res/layout/car_ui_seekbar_dialog.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2020 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:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/seek_bar_text_top"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ style="@style/Preference.CarUi.DialogSeekBarPreference.TopText"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" >
+
+ <TextView
+ android:id="@+id/seek_bar_text_left"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="@style/Preference.CarUi.DialogSeekBarPreference.LeftText"/>
+
+ <SeekBar
+ android:id="@+id/seek_bar"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ style="@style/Preference.CarUi.DialogSeekBarPreference.Seekbar"/>
+
+ <TextView
+ android:id="@+id/seek_bar_text_right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="@style/Preference.CarUi.DialogSeekBarPreference.RightText"/>
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/car-ui-lib/res/layout/car_ui_two_action_preference.xml b/car-ui-lib/res/layout/car_ui_two_action_preference.xml
new file mode 100644
index 0000000..4ad6ce4
--- /dev/null
+++ b/car-ui-lib/res/layout/car_ui_two_action_preference.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2018 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:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/transparent"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall">
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?android:attr/selectableItemBackground"
+ android:clipToPadding="false"
+ android:gravity="start|center_vertical"
+ android:paddingBottom="@dimen/car_ui_preference_content_margin_bottom"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingTop="@dimen/car_ui_preference_content_margin_top">
+ <androidx.preference.internal.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/car_ui_preference_icon_size"
+ android:layout_height="@dimen/car_ui_preference_icon_size"
+ android:layout_marginEnd="@dimen/car_ui_preference_icon_margin_end"/>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:orientation="vertical">
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.CarUi.PreferenceTitle"/>
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.CarUi.PreferenceSummary"/>
+ </LinearLayout>
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/action_widget_container"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent">
+ <View
+ android:layout_width="@dimen/car_ui_divider_width"
+ android:layout_height="match_parent"
+ android:layout_marginBottom="@dimen/car_ui_preference_content_margin_bottom"
+ android:layout_marginTop="@dimen/car_ui_preference_content_margin_top"
+ style="@style/Preference.CarUi.Divider"/>
+ <!-- Preference should place its actual preference widget here. -->
+ <FrameLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:background="?android:attr/selectableItemBackground"
+ android:minWidth="?android:attr/listPreferredItemHeightSmall"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"/>
+ </LinearLayout>
+</LinearLayout>
diff --git a/car-ui-lib/res/values/attrs.xml b/car-ui-lib/res/values/attrs.xml
index 3b92fd6..3992428 100644
--- a/car-ui-lib/res/values/attrs.xml
+++ b/car-ui-lib/res/values/attrs.xml
@@ -124,6 +124,13 @@
<declare-styleable name="CarUiPreference">
<!-- Toggle for showing chevron -->
<attr name="showChevron" format="boolean" />
+ <!-- Show ripple when disabled preference is clicked -->
+ <attr name="showRippleOnDisabledPreference" format="boolean" />
+ </declare-styleable>
+
+ <declare-styleable name="CarUiTwoActionPreference">
+ <!-- Determines if the secondary action is initially shown -->
+ <attr name="actionShown" format="boolean"/>
</declare-styleable>
<!-- Theme attribute to specify a default style for all CarUiPreferences -->
diff --git a/car-ui-lib/res/values/colors.xml b/car-ui-lib/res/values/colors.xml
index 78d1ecc..7a12327 100644
--- a/car-ui-lib/res/values/colors.xml
+++ b/car-ui-lib/res/values/colors.xml
@@ -41,15 +41,6 @@
<!-- Preferences -->
- <color name="car_ui_preference_category_title_text_color">@color/car_ui_color_accent</color>
- <color name="car_ui_preference_summary_text_color">@color/car_ui_text_color_secondary</color>
- <color name="car_ui_preference_title_text_color">@color/car_ui_text_color_primary</color>
- <color name="car_ui_preference_edit_text_dialog_message_text_color">@color/car_ui_text_color_primary</color>
<color name="car_ui_preference_icon_color">@color/car_ui_text_color_primary</color>
- <color name="car_ui_preference_switch_track_text_color">@color/car_ui_text_color_primary</color>
-
- <!-- List item -->
- <color name="car_ui_list_item_header_text_color">@color/car_ui_color_accent</color>
- <color name="car_ui_list_item_title_text_color">@color/car_ui_text_color_primary</color>
- <color name="car_ui_list_item_body_text_color">@color/car_ui_text_color_secondary</color>
+ <color name="car_ui_preference_two_action_divider_color">#1fffffff</color>
</resources>
diff --git a/car-ui-lib/res/values/dimens.xml b/car-ui-lib/res/values/dimens.xml
index 3a77194..c4bf244 100644
--- a/car-ui-lib/res/values/dimens.xml
+++ b/car-ui-lib/res/values/dimens.xml
@@ -19,8 +19,6 @@
<dimen name="car_ui_touch_target_width">76dp</dimen>
<dimen name="car_ui_touch_target_height">76dp</dimen>
<dimen name="car_ui_primary_icon_size">44dp</dimen>
- <item name="car_ui_letter_spacing_body1" format="float" type="dimen">0.0</item>
- <item name="car_ui_letter_spacing_body3" format="float" type="dimen">0.0</item>
<!-- Horizontal margin between screen content and display border. In reference
implementation, this value matches the CarUiRecyclerView scrollbar width -->
@@ -142,10 +140,7 @@
<!-- Preferences -->
- <dimen name="car_ui_preference_category_text_size">24sp</dimen>
- <dimen name="car_ui_preference_summary_text_size">24sp</dimen>
- <dimen name="car_ui_preference_title_text_size">32sp</dimen>
- <dimen name="car_ui_preference_edit_text_dialog_message_text_size">24sp</dimen>
+ <dimen name="car_ui_divider_width">1dp</dimen>
<dimen name="car_ui_preference_content_margin_top">16dp</dimen>
<dimen name="car_ui_preference_content_margin_bottom">16dp</dimen>
@@ -166,11 +161,6 @@
<dimen name="car_ui_preference_edit_text_dialog_text_margin_start">24dp</dimen>
<dimen name="car_ui_preference_edit_text_dialog_text_margin_end">24dp</dimen>
- <dimen name="car_ui_preference_switch_text_size">30sp</dimen>
- <dimen name="car_ui_preference_switch_width">288dp</dimen>
- <dimen name="car_ui_preference_switch_width_half">144dp</dimen>
- <dimen name="car_ui_preference_switch_height">101dp</dimen>
-
<!-- Alert dialog -->
<dimen name="car_ui_dialog_edittext_height">50dp</dimen>
@@ -183,9 +173,6 @@
<!-- List item -->
- <dimen name="car_ui_list_item_header_text_size">24sp</dimen>
- <dimen name="car_ui_list_item_title_text_size">32sp</dimen>
- <dimen name="car_ui_list_item_body_text_size">24sp</dimen>
<dimen name="car_ui_list_item_height">116dp</dimen>
<dimen name="car_ui_list_item_header_height">76dp</dimen>
<dimen name="car_ui_list_item_header_start_inset">0dp</dimen>
diff --git a/car-ui-lib/res/values/strings.xml b/car-ui-lib/res/values/strings.xml
index a42068f..ebb72b1 100644
--- a/car-ui-lib/res/values/strings.xml
+++ b/car-ui-lib/res/values/strings.xml
@@ -44,11 +44,6 @@
<string name="car_ui_preference_switch_on">On</string>
<!-- Text to show when a preference switch is off. [CHAR_LIMIT=30] -->
<string name="car_ui_preference_switch_off">Off</string>
- <!-- Font family to use for preference category titles. [CHAR_LIMIT=NONE] -->
- <string name="car_ui_preference_category_title_font_family" translatable="false">sans-serif-medium</string>
-
- <!-- Font family to use for list item headers. [CHAR_LIMIT=NONE] -->
- <string name="car_ui_list_item_header_font_family" translatable="false">sans-serif-medium</string>
<!-- Text to show when no button is provided and a default button is used. -->
<string name="car_ui_alert_dialog_default_button" translatable="false">Close</string>
diff --git a/car-ui-lib/res/values/styles.xml b/car-ui-lib/res/values/styles.xml
index a242baf..807ff96 100644
--- a/car-ui-lib/res/values/styles.xml
+++ b/car-ui-lib/res/values/styles.xml
@@ -182,6 +182,10 @@
<item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item>
</style>
+ <style name="Preference.CarUi.Divider">
+ <item name="android:background">@color/car_ui_preference_two_action_divider_color</item>
+ </style>
+
<style name="Preference.CarUi.DropDown">
<item name="android:layout">@layout/car_ui_preference_dropdown</item>
</style>
@@ -203,6 +207,14 @@
<item name="showSeekBarValue">false</item>
</style>
+ <style name="Preference.CarUi.DialogSeekBarPreference"/>
+
+ <style name="Preference.CarUi.DialogSeekBarPreference.Seekbar"/>
+
+ <style name="Preference.CarUi.DialogSeekBarPreference.TopText"/>
+ <style name="Preference.CarUi.DialogSeekBarPreference.RightText"/>
+ <style name="Preference.CarUi.DialogSeekBarPreference.LeftText"/>
+
<style name="Preference.CarUi.SwitchPreference">
<item name="android:widgetLayout">@layout/car_ui_preference_widget_switch</item>
<item name="android:switchTextOn">@string/car_ui_preference_switch_on</item>
@@ -229,42 +241,38 @@
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
- <style name="TextAppearance.CarUi.PreferenceCategoryTitle">
- <item name="android:fontFamily">@string/car_ui_preference_category_title_font_family</item>
- <item name="android:textColor">@color/car_ui_preference_category_title_text_color</item>
- <item name="android:textSize">@dimen/car_ui_preference_category_text_size</item>
+ <style name="TextAppearance.CarUi.Body1">
+ <item name="android:textSize">32sp</item>
</style>
- <style name="TextAppearance.CarUi.PreferenceSummary">
- <item name="android:textColor">@color/car_ui_preference_summary_text_color</item>
- <item name="android:textSize">@dimen/car_ui_preference_summary_text_size</item>
+ <style name="TextAppearance.CarUi.Body3">
+ <item name="android:textSize">24sp</item>
</style>
- <style name="TextAppearance.CarUi.PreferenceTitle">
- <item name="android:textColor">@color/car_ui_preference_title_text_color</item>
- <item name="android:textSize">@dimen/car_ui_preference_title_text_size</item>
+ <style name="TextAppearance.CarUi.PreferenceCategoryTitle" parent="TextAppearance.CarUi.Body3">
+ <item name="android:fontFamily">sans-serif-medium</item>
+ <item name="android:textColor">@color/car_ui_color_accent</item>
</style>
- <style name="TextAppearance.CarUi.PreferenceEditTextDialogMessage">
- <item name="android:textColor">@color/car_ui_preference_edit_text_dialog_message_text_color</item>
- <item name="android:textSize">@dimen/car_ui_preference_edit_text_dialog_message_text_size</item>
+ <style name="TextAppearance.CarUi.PreferenceSummary" parent="TextAppearance.CarUi.Body3">
+ <item name="android:textColor">@color/car_ui_text_color_secondary</item>
</style>
+ <style name="TextAppearance.CarUi.PreferenceTitle" parent="TextAppearance.CarUi.Body1"/>
+
+ <style name="TextAppearance.CarUi.PreferenceEditTextDialogMessage" parent="TextAppearance.CarUi.Body3"/>
+
<style name="TextAppearance.CarUi.AlertDialog.Subtitle" parent="android:TextAppearance.DeviceDefault"/>
<style name="TextAppearance.CarUi.Widget" parent="android:TextAppearance.DeviceDefault.Widget"/>
<style name="TextAppearance.CarUi.Widget.Toolbar"/>
- <style name="TextAppearance.CarUi.Widget.Toolbar.Title">
+ <style name="TextAppearance.CarUi.Widget.Toolbar.Title" parent="TextAppearance.CarUi.Body1">
<item name="android:singleLine">true</item>
- <item name="android:textSize">32sp</item>
- <item name="android:letterSpacing">@dimen/car_ui_letter_spacing_body1</item>
</style>
- <style name="TextAppearance.CarUi.Widget.Toolbar.Tab">
- <item name="android:textSize">24sp</item>
- <item name="android:letterSpacing">@dimen/car_ui_letter_spacing_body3</item>
+ <style name="TextAppearance.CarUi.Widget.Toolbar.Tab" parent="TextAppearance.CarUi.Body3">
<item name="android:textColor">@color/car_ui_toolbar_tab_item_selector</item>
<item name="android:textStyle">normal</item>
<item name="android:textFontWeight">400</item>
@@ -274,20 +282,15 @@
<item name="android:textFontWeight">500</item>
</style>
- <style name="TextAppearance.CarUi.ListItem.Header">
- <item name="android:fontFamily">@string/car_ui_list_item_header_font_family</item>
- <item name="android:textColor">@color/car_ui_list_item_header_text_color</item>
- <item name="android:textSize">@dimen/car_ui_list_item_header_text_size</item>
+ <style name="TextAppearance.CarUi.ListItem.Header" parent="TextAppearance.CarUi.Body3">
+ <item name="android:fontFamily">sans-serif-medium</item>
+ <item name="android:textColor">@color/car_ui_color_accent</item>
</style>
- <style name="TextAppearance.CarUi.ListItem">
- <item name="android:textColor">@color/car_ui_list_item_title_text_color</item>
- <item name="android:textSize">@dimen/car_ui_list_item_title_text_size</item>
- </style>
+ <style name="TextAppearance.CarUi.ListItem" parent="TextAppearance.CarUi.Body1"/>
- <style name="TextAppearance.CarUi.ListItem.Body">
- <item name="android:textSize">@dimen/car_ui_list_item_body_text_size</item>
- <item name="android:textColor">@color/car_ui_list_item_body_text_color</item>
+ <style name="TextAppearance.CarUi.ListItem.Body" parent="TextAppearance.CarUi.Body3">
+ <item name="android:textColor">@color/car_ui_text_color_secondary</item>
</style>
</resources>
diff --git a/EncryptionRunner/Android.bp b/car-ui-lib/sharedlibrary/Android.bp
similarity index 63%
copy from EncryptionRunner/Android.bp
copy to car-ui-lib/sharedlibrary/Android.bp
index 54316ff..1abaa30 100644
--- a/EncryptionRunner/Android.bp
+++ b/car-ui-lib/sharedlibrary/Android.bp
@@ -1,4 +1,6 @@
-// Copyright (C) 2019 The Android Open Source Project
+
+//
+// Copyright (C) 2020 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.
@@ -12,20 +14,18 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-android_library {
- name: "EncryptionRunner-lib",
- min_sdk_version: "23",
- product_variables: {
- pdk: {
- enabled: false,
- },
+android_app {
+ name: "car-ui-lib-sharedlibrary",
+ visibility: [
+ "//packages/apps/Car/libs/car-ui-lib/tests/PaintBooth:__pkg__",
+ ],
+ platform_apis: true,
+ resource_dirs: ["res"],
+ aaptflags: ["--shared-lib"],
+ optimize: {
+ enabled: false,
},
static_libs: [
- "ukey2",
+ "car-ui-lib",
],
- srcs: [
- "src/**/*.java",
- ],
- installable: true,
}
-
diff --git a/car-settings-lib/AndroidManifest.xml b/car-ui-lib/sharedlibrary/AndroidManifest.xml
similarity index 69%
copy from car-settings-lib/AndroidManifest.xml
copy to car-ui-lib/sharedlibrary/AndroidManifest.xml
index 5c2e6c9..61b4515 100644
--- a/car-settings-lib/AndroidManifest.xml
+++ b/car-ui-lib/sharedlibrary/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2018 The Android Open Source Project
+ Copyright (C) 2020 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.
@@ -16,7 +16,11 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.car.settingslib">
- <uses-sdk android:minSdkVersion="24"/>
- <application />
-</manifest>
\ No newline at end of file
+ package="com.android.car.ui.sharedlibrary">
+ <uses-sdk
+ android:minSdkVersion="28"
+ android:targetSdkVersion="28" />
+ <application>
+ <library android:name="com.android.car.ui.sharedlibrary" />
+ </application>
+</manifest>
diff --git a/car-ui-lib/sharedlibrary/README.md b/car-ui-lib/sharedlibrary/README.md
new file mode 100644
index 0000000..21c6172
--- /dev/null
+++ b/car-ui-lib/sharedlibrary/README.md
@@ -0,0 +1,5 @@
+# Android Automotive 'Chassis' shared library
+Please refer to [Android Automotive 'Chassiss' library](../README.md)
+
+**Required**
+This module needs to be, and is included in PRODUCT_PACKAGES in vendor/auto/embeded/products/car.mk. It needs to be pre-installed with the system image.
\ No newline at end of file
diff --git a/car-ui-lib/sharedlibrary/res/values/overlayable.xml b/car-ui-lib/sharedlibrary/res/values/overlayable.xml
new file mode 100644
index 0000000..f89e281
--- /dev/null
+++ b/car-ui-lib/sharedlibrary/res/values/overlayable.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 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>
+ <overlayable name="CarUiOverlayableResources">
+ <policy type="public">
+ <item type="string" name="car_ui_dialog_preference_positive" />
+ <item type="attr" name="title" />
+ <item type="attr" name="logo" />
+ <item type="attr" name="numOfColumns" />
+ <item type="attr" name="layoutStyle" />
+
+ <!-- All app namespace attributes nees to be here go/rro-on-r -->
+ <item type="attr" name="layout_constraintTop_toTopOf" />
+ <item type="attr" name="layout_constraintTop_toBottomOf" />
+ <item type="attr" name="layout_constraintLeft_toLeftOf" />
+ <item type="attr" name="layout_constraintLeft_toRightOf" />
+ <item type="attr" name="layout_constraintBottom_toTopOf" />
+ <item type="attr" name="layout_constraintBottom_toBottomOf" />
+ <item type="attr" name="layout_constraintRight_toRightOf" />
+ <item type="attr" name="layout_constraintRight_toLeftOf" />
+ <item type="attr" name="layout_constraintGuide_begin" />
+ <item type="attr" name="layout_constraintVertical_chainStyle" />
+ </policy>
+ </overlayable>
+</resources>
\ No newline at end of file
diff --git a/car-ui-lib/sharedlibrary/res/values/public.xml b/car-ui-lib/sharedlibrary/res/values/public.xml
new file mode 100644
index 0000000..2612f2b
--- /dev/null
+++ b/car-ui-lib/sharedlibrary/res/values/public.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 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>
+ <!-- Any resource or attribute that is or can be referenced from RRO needs to be public go/rro-on-r -->
+
+ <!-- To add new resources to this file follow the following naming convention -->
+ <!-- 0cXXXX is used for styles -->
+ <!-- 0dXXXX is used for attributes -->
+ <!-- 0eXXXX is used for drawables -->
+ <!-- The first time that a resource type is seen, Android resource manager, assigns YY of the ID (0xXXYYXXXX) of the resouce to that type.
+ And you'll get a compile error if you use the same type with a different YY -->
+
+ <public type="style" name="Theme.CarUi" id="0x000c0000" />
+
+ <public type="attr" name="logo" id="0x000d0001" />
+ <public type="attr" name="state" id="0x000d0002" />
+ <public type="attr" name="title" id="0x000d0003" />
+ <public type="attr" name="layoutStyle" id="0x000d0004" />
+ <public type="attr" name="numOfColumns" id="0x000d0005" />
+ <public type="attr" name="layout_constraintTop_toTopOf" id="0x000d0006" />
+ <public type="attr" name="layout_constraintTop_toBottomOf" id="0x000d0007" />
+ <public type="attr" name="layout_constraintLeft_toLeftOf" id="0x000d0008" />
+ <public type="attr" name="layout_constraintBottom_toTopOf" id="0x000d0009" />
+ <public type="attr" name="layout_constraintBottom_toBottomOf" id="0x000d0010" />
+ <public type="attr" name="layout_constraintRight_toRightOf" id="0x000d0011" />
+ <public type="attr" name="search" id="0x000d0012" />
+ <public type="attr" name="settings" id="0x000d0013" />
+ <public type="attr" name="id" id="0x000d0014" />
+ <public type="attr" name="icon" id="0x000d0015" />
+ <public type="attr" name="onClick" id="0x000d0016" />
+ <public type="attr" name="checkable" id="0x000d0017" />
+ <public type="attr" name="uxRestrictions" id="0x000d0018" />
+ <public type="attr" name="singleLineTitle" id="0x000d0019" />
+ <public type="attr" name="useSimpleSummaryProvider" id="0x000d0020" />
+ <public type="attr" name="initialExpandedChildrenCount" id="0x000d0021" />
+ <public type="attr" name="enableCopying" id="0x000d0022" />
+
+ <public type="drawable" name="car_ui_activity_background" id="0x000e0000" />
+
+</resources>
\ No newline at end of file
diff --git a/car-ui-lib/src/com/android/car/ui/AlertDialogBuilder.java b/car-ui-lib/src/com/android/car/ui/AlertDialogBuilder.java
index 9b4d578..feafd99 100644
--- a/car-ui-lib/src/com/android/car/ui/AlertDialogBuilder.java
+++ b/car-ui-lib/src/com/android/car/ui/AlertDialogBuilder.java
@@ -22,6 +22,7 @@
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.text.InputFilter;
+import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
@@ -53,6 +54,7 @@
private CharSequence mTitle;
private CharSequence mSubtitle;
private Drawable mIcon;
+ private boolean mIconTinted;
public AlertDialogBuilder(Context context) {
// Resource id specified as 0 uses the parent contexts resolved value for alertDialogTheme.
@@ -150,7 +152,18 @@
*/
public AlertDialogBuilder setIcon(Drawable icon) {
mIcon = icon;
- mBuilder.setIcon(icon);
+ return this;
+ }
+
+ /**
+ * Whether the icon provided by {@link #setIcon(Drawable)} should be
+ * tinted with the default system color.
+ *
+ * @return this Builder object to allow for chaining of calls to set
+ * methods.
+ */
+ public AlertDialogBuilder setIconTinted(boolean tinted) {
+ mIconTinted = tinted;
return this;
}
@@ -158,8 +171,7 @@
* Set an icon as supplied by a theme attribute. e.g.
* {@link android.R.attr#alertDialogIcon}.
* <p>
- * Takes precedence over values set using {@link #setIcon(int)} or
- * {@link #setIcon(Drawable)}.
+ * Takes precedence over values set using {@link #setIcon(Drawable)}.
*
* @param attrId ID of a theme attribute that points to a drawable resource.
*/
@@ -594,21 +606,24 @@
/** Final steps common to both {@link #create()} and {@link #show()} */
private void prepareDialog() {
- if (mSubtitle != null) {
+ View customTitle = LayoutInflater.from(mContext).inflate(
+ R.layout.car_ui_alert_dialog_title_with_subtitle, null);
- View customTitle = LayoutInflater.from(mContext).inflate(
- R.layout.car_ui_alert_dialog_title_with_subtitle, null);
+ TextView mTitleView = customTitle.requireViewById(R.id.alertTitle);
+ TextView mSubtitleView = customTitle.requireViewById(R.id.alertSubtitle);
+ ImageView mIconView = customTitle.requireViewById(R.id.icon);
- TextView mTitleView = customTitle.requireViewById(R.id.alertTitle);
- TextView mSubtitleView = customTitle.requireViewById(R.id.alertSubtitle);
- ImageView mIconView = customTitle.requireViewById(R.id.icon);
-
- mTitleView.setText(mTitle);
- mSubtitleView.setText(mSubtitle);
- mIconView.setImageDrawable(mIcon);
- mIconView.setVisibility(mIcon != null ? View.VISIBLE : View.GONE);
- mBuilder.setCustomTitle(customTitle);
+ mTitleView.setText(mTitle);
+ mTitleView.setVisibility(TextUtils.isEmpty(mTitle) ? View.GONE : View.VISIBLE);
+ mSubtitleView.setText(mSubtitle);
+ mSubtitleView.setVisibility(TextUtils.isEmpty(mSubtitle) ? View.GONE : View.VISIBLE);
+ mIconView.setImageDrawable(mIcon);
+ mIconView.setVisibility(mIcon != null ? View.VISIBLE : View.GONE);
+ if (mIconTinted) {
+ mIconView.setImageTintList(
+ mContext.getColorStateList(R.color.car_ui_dialog_icon_color));
}
+ mBuilder.setCustomTitle(customTitle);
if (!mNeutralButtonSet && !mNegativeButtonSet && !mPositiveButtonSet) {
String mDefaultButtonText = mContext.getString(
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiEditTextPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiEditTextPreference.java
index 4480714..8774491 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/CarUiEditTextPreference.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiEditTextPreference.java
@@ -18,8 +18,11 @@
import android.content.Context;
import android.util.AttributeSet;
+import android.view.View;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
+import androidx.preference.PreferenceViewHolder;
import com.android.car.ui.R;
@@ -53,6 +56,18 @@
mContext = context;
}
+ protected void setTwoActionLayout() {
+ setLayoutResource(R.layout.car_ui_two_action_preference);
+ }
+
+ /**
+ * Returns the widget container if {@link #setTwoActionLayout) was called, otherwise null.
+ */
+ @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
+ public View getWidgetActionContainer(PreferenceViewHolder holder) {
+ return holder.findViewById(R.id.action_widget_container);
+ }
+
@Override
public void onAttached() {
super.onAttached();
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiMultiSelectListPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiMultiSelectListPreference.java
index 4752082..bc626a0 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/CarUiMultiSelectListPreference.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiMultiSelectListPreference.java
@@ -52,6 +52,11 @@
mContext = context;
}
+ /**
+ * This is to make getSelectedItems() visible from other classes in
+ * com.android.car.ui.preference.
+ */
+ @Override
protected boolean[] getSelectedItems() {
return super.getSelectedItems();
}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiPreference.java
index 5db22cf..f50e03d 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/CarUiPreference.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiPreference.java
@@ -18,20 +18,30 @@
import android.content.Context;
import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Toast;
import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
import com.android.car.ui.R;
+import com.android.car.ui.utils.CarUiUtils;
/**
* This class extends the base {@link Preference} class. Adds the support to add a drawable icon to
* the preference if there is one of fragment, intent or onPreferenceClickListener set.
*/
-public class CarUiPreference extends Preference {
+public class CarUiPreference extends Preference implements IDisabledPreferenceCallback {
private Context mContext;
private boolean mShowChevron;
+ private String mMessageToShowWhenDisabledPreferenceClicked;
+
+ private boolean mShouldShowRippleOnDisabledPreference;
+ private Drawable mBackground;
+ private View mPreference;
public CarUiPreference(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
@@ -61,6 +71,18 @@
defStyleRes);
mShowChevron = a.getBoolean(R.styleable.CarUiPreference_showChevron, true);
+ mShouldShowRippleOnDisabledPreference = a.getBoolean(
+ R.styleable.CarUiPreference_showRippleOnDisabledPreference, false);
+ }
+
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ boolean viewEnabled = isEnabled();
+ mPreference = holder.itemView;
+ mBackground = CarUiUtils.setPreferenceViewEnabled(viewEnabled, holder.itemView, mBackground,
+ mShouldShowRippleOnDisabledPreference);
}
@Override
@@ -80,7 +102,38 @@
}
}
+ /**
+ * This is similar to {@link Preference#performClick()} with the only difference that we do not
+ * return when view is not enabled.
+ */
+ @Override
+ @SuppressWarnings("RestrictTo")
+ public void performClick() {
+ if (isEnabled()) {
+ super.performClick();
+ } else if (mMessageToShowWhenDisabledPreferenceClicked != null
+ && !mMessageToShowWhenDisabledPreferenceClicked.isEmpty()) {
+ Toast.makeText(mContext, mMessageToShowWhenDisabledPreferenceClicked,
+ Toast.LENGTH_LONG).show();
+ }
+ }
+
public void setShowChevron(boolean showChevron) {
mShowChevron = showChevron;
}
+
+ /**
+ * Sets the ripple on the disabled preference.
+ */
+ @Override
+ public void setShouldShowRippleOnDisabledPreference(boolean showRipple) {
+ mShouldShowRippleOnDisabledPreference = showRipple;
+ CarUiUtils.updateRippleStateOnDisabledPreference(isEnabled(),
+ mShouldShowRippleOnDisabledPreference, mBackground, mPreference);
+ }
+
+ @Override
+ public void setMessageToShowWhenDisabledPreferenceClicked(String message) {
+ mMessageToShowWhenDisabledPreferenceClicked = message;
+ }
}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiRadioButtonPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiRadioButtonPreference.java
new file mode 100644
index 0000000..288ec95
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiRadioButtonPreference.java
@@ -0,0 +1,64 @@
+/*
+ * 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.android.car.ui.preference;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.RadioButton;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.preference.TwoStatePreference;
+
+import com.android.car.ui.R;
+
+/** A preference which shows a radio button at the start of the preference. */
+public class CarUiRadioButtonPreference extends TwoStatePreference {
+
+ public CarUiRadioButtonPreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public CarUiRadioButtonPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public CarUiRadioButtonPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public CarUiRadioButtonPreference(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ setLayoutResource(R.layout.car_ui_preference);
+ setWidgetLayoutResource(R.layout.car_ui_radio_button_preference_widget);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ RadioButton radioButton = (RadioButton) holder.findViewById(R.id.radio_button);
+ radioButton.setChecked(isChecked());
+ }
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiSeekBarDialogPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiSeekBarDialogPreference.java
new file mode 100644
index 0000000..71d3d81
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiSeekBarDialogPreference.java
@@ -0,0 +1,262 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.preference;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+import androidx.preference.DialogPreference;
+
+import com.android.car.ui.R;
+
+/** A class implements some basic methods of a seekbar dialog preference. */
+public class CarUiSeekBarDialogPreference extends DialogPreference
+ implements IDialogFragmentCallbacks {
+
+ private int mSeekBarProgress;
+ private SeekBar mSeekBar;
+
+ private int mSeekBarTopTextViewVisibility;
+ private TextView mSeekBarTopTextView;
+ private String mSeekBarTopText;
+
+ private int mSeekBarLeftTextViewVisibility;
+ private TextView mSeekBarLeftTextView;
+ private String mSeekBarLeftText;
+
+ private int mSeekBarRightTextViewVisibility;
+ private TextView mSeekBarRightTextView;
+ private String mSeekBarRightText;
+
+ private SeekBar.OnSeekBarChangeListener mOnSeekBarChangeListener;
+ private int mMaxProgress = 100;
+
+ public CarUiSeekBarDialogPreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public CarUiSeekBarDialogPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public CarUiSeekBarDialogPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public CarUiSeekBarDialogPreference(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ setDialogLayoutResource(R.layout.car_ui_seekbar_dialog);
+ setPositiveButtonText(R.string.car_ui_dialog_preference_positive);
+ setNegativeButtonText(R.string.car_ui_dialog_preference_negative);
+ }
+
+ @Override
+ public void onAttached() {
+ super.onAttached();
+ mSeekBarProgress = getPersistedInt(0);
+ }
+
+ @Override
+ public void onBindDialogView(View view) {
+ mSeekBar = view.findViewById(R.id.seek_bar);
+ mSeekBarTopTextView = view.findViewById(R.id.seek_bar_text_top);
+ mSeekBarLeftTextView = view.findViewById(R.id.seek_bar_text_left);
+ mSeekBarRightTextView = view.findViewById(R.id.seek_bar_text_right);
+
+ setProgress(mSeekBarProgress);
+
+ setSeekBarTopTextViewVisibility(mSeekBarTopTextViewVisibility);
+ setSeekBarTopTextViewText(mSeekBarTopText);
+
+ setSeekBarLeftTextViewVisibility(mSeekBarLeftTextViewVisibility);
+ setSeekBarLeftTextViewText(mSeekBarLeftText);
+
+ setSeekBarRightTextViewVisibility(mSeekBarRightTextViewVisibility);
+ setSeekBarRightTextViewText(mSeekBarRightText);
+
+ setMaxProgress(mMaxProgress);
+ setOnSeekBarChangeListener(mOnSeekBarChangeListener);
+ }
+
+ /**
+ * Get the progress bar's current level of progress. Return 0 when the progress bar is in
+ * indeterminate mode.
+ */
+ public int getProgress() {
+ if (mSeekBar != null) {
+ return mSeekBar.getProgress();
+ }
+ return mSeekBarProgress;
+ }
+
+ /**
+ * Sets the current progress to the specified value.
+ */
+ public void setProgress(int progress) {
+ if (mSeekBar != null) {
+ mSeekBar.setProgress(progress);
+ }
+ mSeekBarProgress = progress;
+ }
+
+ @Override
+ public void onDialogClosed(boolean positiveResult) {
+ if (positiveResult) {
+ mSeekBarProgress = mSeekBar.getProgress();
+ persistInt(mSeekBarProgress);
+ notifyChanged();
+ }
+
+ mSeekBarTopTextView = null;
+ mSeekBarRightTextView = null;
+ mSeekBarLeftTextView = null;
+ mSeekBar = null;
+ }
+
+ /**
+ * Sets the text view visibility on top of the seekbar.
+ */
+ public void setSeekBarTopTextViewVisibility(int visibility) {
+ if (mSeekBarTopTextView != null) {
+ mSeekBarTopTextView.setVisibility(visibility);
+ }
+ mSeekBarTopTextViewVisibility = visibility;
+ }
+
+ /**
+ * Gets the text on top of the seekbar.
+ */
+ public String getSeekBarTopTextViewText() {
+ if (mSeekBarTopTextView != null) {
+ return mSeekBarTopTextView.getText().toString();
+ }
+ return mSeekBarTopText;
+ }
+
+ /**
+ * Sets the text on top of the seekbar.
+ */
+ public void setSeekBarTopTextViewText(String text) {
+ if (mSeekBarTopTextView != null) {
+ mSeekBarTopTextView.setText(text);
+ }
+ mSeekBarTopText = text;
+ }
+
+ /**
+ * Sets the text view visibility on left of the seekbar.
+ */
+ public void setSeekBarLeftTextViewVisibility(int visibility) {
+ if (mSeekBarLeftTextView != null) {
+ mSeekBarLeftTextView.setVisibility(visibility);
+ }
+ mSeekBarLeftTextViewVisibility = visibility;
+ }
+
+ /**
+ * Gets the text on left of the seekbar.
+ */
+ public String getSeekBarLeftTextViewText() {
+ if (mSeekBarLeftTextView != null) {
+ return mSeekBarLeftTextView.getText().toString();
+ }
+ return mSeekBarLeftText;
+ }
+
+ /**
+ * Sets the text on Left of the seekbar.
+ */
+ public void setSeekBarLeftTextViewText(String text) {
+ if (mSeekBarLeftTextView != null) {
+ mSeekBarLeftTextView.setText(text);
+ }
+ mSeekBarLeftText = text;
+ }
+
+
+ /**
+ * Sets the text view visibility on right of the seekbar.
+ */
+ public void setSeekBarRightTextViewVisibility(int visibility) {
+ if (mSeekBarRightTextView != null) {
+ mSeekBarRightTextView.setVisibility(visibility);
+ }
+ mSeekBarRightTextViewVisibility = visibility;
+ }
+
+ /**
+ * Gets the text on right of the seekbar.
+ */
+ public String getSeekBarRightTextViewText() {
+ if (mSeekBarRightTextView != null) {
+ return mSeekBarRightTextView.getText().toString();
+ }
+ return mSeekBarRightText;
+ }
+
+
+ /**
+ * Sets the text on right of the seekbar.
+ */
+ public void setSeekBarRightTextViewText(String text) {
+ if (mSeekBarRightTextView != null) {
+ mSeekBarRightTextView.setText(text);
+ }
+ mSeekBarRightText = text;
+ }
+
+ /**
+ * Sets a listener to receive notifications of changes to the SeekBar's progress level. Also
+ * provides notifications of when the user starts and stops a touch gesture within the SeekBar.
+ *
+ * @param listener The seek bar notification listener
+ * @see SeekBar.OnSeekBarChangeListener
+ */
+ public void setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener listener) {
+ if (mSeekBar != null) {
+ mSeekBar.setOnSeekBarChangeListener(listener);
+ }
+ mOnSeekBarChangeListener = listener;
+ }
+
+ /** Get the upper range of the progress bar */
+ public int getMaxProgress() {
+ if (mSeekBar != null) {
+ return mSeekBar.getMax();
+ }
+ return mMaxProgress;
+ }
+
+ /** Set the upper range of the progress bar */
+ public void setMaxProgress(int maxProgress) {
+ if (mSeekBar != null) {
+ mSeekBar.setMax(maxProgress);
+ }
+ mMaxProgress = maxProgress;
+ }
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiSwitchPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiSwitchPreference.java
new file mode 100644
index 0000000..6f39364
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiSwitchPreference.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.preference;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Toast;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.preference.SwitchPreference;
+
+import com.android.car.ui.R;
+import com.android.car.ui.utils.CarUiUtils;
+
+/**
+ * This class extends the base {@link SwitchPreference} class. Adds the functionality to show
+ * message when preference is disabled.
+ */
+public class CarUiSwitchPreference extends SwitchPreference implements IDisabledPreferenceCallback {
+
+ private String mMessageToShowWhenDisabledPreferenceClicked;
+
+ private boolean mShouldShowRippleOnDisabledPreference;
+ private Drawable mBackground;
+ private View mPreference;
+ private Context mContext;
+
+ public CarUiSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init(context, attrs);
+ }
+
+ public CarUiSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ public CarUiSwitchPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public CarUiSwitchPreference(Context context) {
+ super(context);
+ init(context, null);
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ mContext = context;
+ TypedArray preferenceAttributes = getContext().obtainStyledAttributes(attrs,
+ R.styleable.CarUiPreference);
+ mShouldShowRippleOnDisabledPreference = preferenceAttributes.getBoolean(
+ R.styleable.CarUiPreference_showRippleOnDisabledPreference, false);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ mPreference = holder.itemView;
+ mBackground = CarUiUtils.setPreferenceViewEnabled(isEnabled(), holder.itemView, mBackground,
+ mShouldShowRippleOnDisabledPreference);
+ }
+
+ /**
+ * This is similar to {@link Preference#performClick()} with the only difference that we do not
+ * return when view is not enabled.
+ */
+ @Override
+ @SuppressWarnings("RestrictTo")
+ public void performClick() {
+ if (isEnabled()) {
+ super.performClick();
+ } else if (mMessageToShowWhenDisabledPreferenceClicked != null
+ && !mMessageToShowWhenDisabledPreferenceClicked.isEmpty()) {
+ Toast.makeText(mContext, mMessageToShowWhenDisabledPreferenceClicked,
+ Toast.LENGTH_LONG).show();
+ }
+ }
+
+ /**
+ * Sets the ripple on the disabled preference.
+ */
+ @Override
+ public void setShouldShowRippleOnDisabledPreference(boolean showRipple) {
+ mShouldShowRippleOnDisabledPreference = showRipple;
+ CarUiUtils.updateRippleStateOnDisabledPreference(isEnabled(),
+ mShouldShowRippleOnDisabledPreference, mBackground, mPreference);
+ }
+
+ @Override
+ public void setMessageToShowWhenDisabledPreferenceClicked(String message) {
+ mMessageToShowWhenDisabledPreferenceClicked = message;
+ }
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/CarUiTwoActionPreference.java b/car-ui-lib/src/com/android/car/ui/preference/CarUiTwoActionPreference.java
new file mode 100644
index 0000000..a96cef1
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/CarUiTwoActionPreference.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.preference;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.car.ui.R;
+
+/**
+ * A preference which can perform two actions. The secondary action is shown by default.
+ * {@link #showAction(boolean)} may be used to manually set the visibility of the action.
+ */
+public class CarUiTwoActionPreference extends CarUiPreference {
+
+ private boolean mIsActionShown;
+
+ public CarUiTwoActionPreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init(attrs);
+ }
+
+ public CarUiTwoActionPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(attrs);
+ }
+
+ public CarUiTwoActionPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(attrs);
+ }
+
+ public CarUiTwoActionPreference(Context context) {
+ super(context);
+ init(/* attrs= */ null);
+ }
+
+ /**
+ * Sets the custom two action preference layout and attributes.
+ * Check {@link #setLayoutResource} for layout requirements.
+ */
+ private void init(AttributeSet attrs) {
+ setLayoutResource(R.layout.car_ui_two_action_preference);
+ TypedArray preferenceAttributes = getContext().obtainStyledAttributes(attrs,
+ R.styleable.CarUiTwoActionPreference);
+ mIsActionShown = preferenceAttributes.getBoolean(
+ R.styleable.CarUiTwoActionPreference_actionShown, true);
+ setShowChevron(false);
+ }
+
+ /**
+ * Sets whether the secondary action is visible in the preference.
+ *
+ * @param isShown {@code true} if the secondary action should be shown.
+ */
+ public void showAction(boolean isShown) {
+ mIsActionShown = isShown;
+ notifyChanged();
+ }
+
+ /** Returns {@code true} if action is shown. */
+ public boolean isActionShown() {
+ return mIsActionShown;
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ View actionContainer = holder.findViewById(R.id.action_widget_container);
+ View widgetFrame = holder.findViewById(android.R.id.widget_frame);
+ if (mIsActionShown) {
+ actionContainer.setVisibility(View.VISIBLE);
+ onBindWidgetFrame(widgetFrame);
+ } else {
+ actionContainer.setVisibility(View.GONE);
+ }
+ }
+
+ /**
+ * Binds the created View for the second action.
+ *
+ * <p>This is a good place to set properties on any custom view.
+ *
+ * @param widgetFrame The widget frame which controls the 2nd action.
+ */
+ protected void onBindWidgetFrame(View widgetFrame) {
+ }
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/IDialogFragmentCallbacks.java b/car-ui-lib/src/com/android/car/ui/preference/IDialogFragmentCallbacks.java
new file mode 100644
index 0000000..6cd3e15
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/IDialogFragmentCallbacks.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.ui.preference;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.view.View;
+
+import androidx.preference.DialogPreference;
+
+/**
+ * Interface for preferences to handle their own dialogs.
+ *
+ * A {@link androidx.preference.Preference} should implement this, and its {@link DialogPreference}
+ * will call these methods on the Preference.
+ */
+public interface IDialogFragmentCallbacks extends DialogInterface.OnClickListener {
+
+ /** See {@link CarUiDialogFragment#onPrepareDialogBuilder(AlertDialog.Builder)}. */
+ default void onPrepareDialogBuilder(AlertDialog.Builder builder) {}
+
+ @Override
+ default void onClick(DialogInterface dialog, int which) {}
+
+ /** See {@link CarUiDialogFragment#onDialogClosed(boolean)}. */
+ default void onDialogClosed(boolean positiveResult) {}
+
+ /** See {@link CarUiDialogFragment#onBindDialogView(View)}. */
+ default void onBindDialogView(View view) {}
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/IDisabledPreferenceCallback.java b/car-ui-lib/src/com/android/car/ui/preference/IDisabledPreferenceCallback.java
new file mode 100644
index 0000000..39b5bc2
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/IDisabledPreferenceCallback.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.preference;
+
+/**
+ * Interface for preferences to handle clicks when its disabled.
+ */
+public interface IDisabledPreferenceCallback {
+
+ /**
+ * Sets if the ripple effect should be shown on disabled preference.
+ */
+ default void setShouldShowRippleOnDisabledPreference(boolean showRipple) {}
+
+ /**
+ * Sets the message to be displayed when the disabled preference is clicked.
+ */
+ default void setMessageToShowWhenDisabledPreferenceClicked(String message) {}
+}
diff --git a/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java b/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
index de25cf8..92b2d6e 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
@@ -36,6 +36,7 @@
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
import androidx.recyclerview.widget.RecyclerView;
import com.android.car.ui.R;
@@ -119,6 +120,8 @@
f = ListPreferenceFragment.newInstance(preference.getKey());
} else if (preference instanceof MultiSelectListPreference) {
f = MultiSelectListPreferenceFragment.newInstance(preference.getKey());
+ } else if (preference instanceof CarUiSeekBarDialogPreference) {
+ f = SeekbarPreferenceDialogFragment.newInstance(preference.getKey());
} else {
throw new IllegalArgumentException(
"Cannot display dialog for an unknown Preference type: "
@@ -215,6 +218,7 @@
new Pair<>(ListPreference.class, CarUiListPreference.class),
new Pair<>(MultiSelectListPreference.class, CarUiMultiSelectListPreference.class),
new Pair<>(EditTextPreference.class, CarUiEditTextPreference.class),
+ new Pair<>(SwitchPreference.class, CarUiSwitchPreference.class),
new Pair<>(Preference.class, CarUiPreference.class)
);
diff --git a/car-ui-lib/src/com/android/car/ui/preference/SeekbarPreferenceDialogFragment.java b/car-ui-lib/src/com/android/car/ui/preference/SeekbarPreferenceDialogFragment.java
new file mode 100644
index 0000000..0a536be
--- /dev/null
+++ b/car-ui-lib/src/com/android/car/ui/preference/SeekbarPreferenceDialogFragment.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.preference;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.View;
+
+/**
+ * A fragment that provides a layout with a seekbar within a dialog.
+ */
+public class SeekbarPreferenceDialogFragment extends PreferenceDialogFragment {
+
+ /**
+ * Returns a new instance of {@link SeekbarPreferenceDialogFragment} for the {@link
+ * CarUiSeekBarDialogPreference} with the given {@code key}.
+ */
+ public static SeekbarPreferenceDialogFragment newInstance(String key) {
+ SeekbarPreferenceDialogFragment fragment = new SeekbarPreferenceDialogFragment();
+ Bundle b = new Bundle(/* capacity= */ 1);
+ b.putString(ARG_KEY, key);
+ fragment.setArguments(b);
+ return fragment;
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ super.onBindDialogView(view);
+
+ IDialogFragmentCallbacks dialogPreference = (IDialogFragmentCallbacks) getPreference();
+ dialogPreference.onBindDialogView(view);
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ super.onClick(dialog, which);
+
+ IDialogFragmentCallbacks dialogPreference = (IDialogFragmentCallbacks) getPreference();
+ dialogPreference.onClick(dialog, which);
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ IDialogFragmentCallbacks dialogPreference = (IDialogFragmentCallbacks) getPreference();
+ dialogPreference.onDialogClosed(positiveResult);
+ }
+
+ @Override
+ protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+ IDialogFragmentCallbacks dialogPreference = (IDialogFragmentCallbacks) getPreference();
+ dialogPreference.onPrepareDialogBuilder(builder);
+ }
+}
diff --git a/car-ui-lib/src/com/android/car/ui/recyclerview/DefaultScrollBar.java b/car-ui-lib/src/com/android/car/ui/recyclerview/DefaultScrollBar.java
index 61c526c..30d8d09 100644
--- a/car-ui-lib/src/com/android/car/ui/recyclerview/DefaultScrollBar.java
+++ b/car-ui-lib/src/com/android/car/ui/recyclerview/DefaultScrollBar.java
@@ -124,6 +124,7 @@
getRecyclerView().setOnFlingListener(null);
mSnapHelper.attachToRecyclerView(getRecyclerView());
+ mScrollView.setVisibility(View.INVISIBLE);
mScrollView.addOnLayoutChangeListener(
(View v,
int left,
@@ -558,13 +559,14 @@
boolean isAtEnd = isAtEnd();
RecyclerView.LayoutManager layoutManager = getRecyclerView().getLayoutManager();
+ // enable/disable the button before the view is shown. So there is no flicker.
+ setUpEnabled(!isAtStart);
+ setDownEnabled(!isAtEnd);
if ((isAtStart && isAtEnd) || layoutManager == null || layoutManager.getItemCount() == 0) {
mScrollView.setVisibility(View.INVISIBLE);
} else {
mScrollView.setVisibility(View.VISIBLE);
}
- setUpEnabled(!isAtStart);
- setDownEnabled(!isAtEnd);
if (layoutManager == null) {
return;
diff --git a/car-ui-lib/src/com/android/car/ui/toolbar/MenuItemRenderer.java b/car-ui-lib/src/com/android/car/ui/toolbar/MenuItemRenderer.java
index 77b9f53..8f8ae33 100644
--- a/car-ui-lib/src/com/android/car/ui/toolbar/MenuItemRenderer.java
+++ b/car-ui-lib/src/com/android/car/ui/toolbar/MenuItemRenderer.java
@@ -15,8 +15,6 @@
*/
package com.android.car.ui.toolbar;
-import static com.android.car.ui.utils.CarUiUtils.requireViewByRefId;
-
import android.app.Activity;
import android.car.drivingstate.CarUxRestrictions;
import android.content.Context;
@@ -97,14 +95,11 @@
inflater.inflate(R.layout.car_ui_toolbar_menu_item, mParentView, (View view, int resid,
ViewGroup parent) -> {
mView = view;
-
- mIconContainer =
- requireViewByRefId(mView, R.id.car_ui_toolbar_menu_item_icon_container);
- mIconView = requireViewByRefId(mView, R.id.car_ui_toolbar_menu_item_icon);
- mSwitch = requireViewByRefId(mView, R.id.car_ui_toolbar_menu_item_switch);
- mTextView = requireViewByRefId(mView, R.id.car_ui_toolbar_menu_item_text);
- mTextWithIconView =
- requireViewByRefId(mView, R.id.car_ui_toolbar_menu_item_text_with_icon);
+ mIconContainer = mView.requireViewById(R.id.car_ui_toolbar_menu_item_icon_container);
+ mIconView = mView.requireViewById(R.id.car_ui_toolbar_menu_item_icon);
+ mSwitch = mView.requireViewById(R.id.car_ui_toolbar_menu_item_switch);
+ mTextView = mView.requireViewById(R.id.car_ui_toolbar_menu_item_text);
+ mTextWithIconView = mView.requireViewById(R.id.car_ui_toolbar_menu_item_text_with_icon);
updateView();
callback.accept(mView);
});
diff --git a/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java b/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
index 7f7eb80..cf7a2fc 100644
--- a/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
+++ b/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
@@ -15,8 +15,6 @@
*/
package com.android.car.ui.toolbar;
-import static com.android.car.ui.utils.CarUiUtils.requireViewByRefId;
-
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.Editable;
@@ -86,10 +84,9 @@
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.car_ui_toolbar_search_view, this, true);
- mSearchText = requireViewByRefId(this, R.id.car_ui_toolbar_search_bar);
- mIcon = requireViewByRefId(this, R.id.car_ui_toolbar_search_icon);
- mCloseIcon = requireViewByRefId(this, R.id.car_ui_toolbar_search_close);
-
+ mSearchText = requireViewById(R.id.car_ui_toolbar_search_bar);
+ mIcon = requireViewById(R.id.car_ui_toolbar_search_icon);
+ mCloseIcon = requireViewById(R.id.car_ui_toolbar_search_close);
mCloseIcon.setOnClickListener(view -> mSearchText.getText().clear());
mCloseIcon.setVisibility(View.GONE);
diff --git a/car-ui-lib/src/com/android/car/ui/toolbar/TabLayout.java b/car-ui-lib/src/com/android/car/ui/toolbar/TabLayout.java
index 828e54a..2f56c13 100644
--- a/car-ui-lib/src/com/android/car/ui/toolbar/TabLayout.java
+++ b/car-ui-lib/src/com/android/car/ui/toolbar/TabLayout.java
@@ -15,8 +15,6 @@
*/
package com.android.car.ui.toolbar;
-import static com.android.car.ui.utils.CarUiUtils.requireViewByRefId;
-
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -275,8 +273,8 @@
private void presentTabItemView(int position, @NonNull View tabItemView) {
Tab tab = mTabList.get(position);
- ImageView iconView = requireViewByRefId(tabItemView, R.id.car_ui_toolbar_tab_item_icon);
- TextView textView = requireViewByRefId(tabItemView, R.id.car_ui_toolbar_tab_item_text);
+ ImageView iconView = tabItemView.findViewById(R.id.car_ui_toolbar_tab_item_icon);
+ TextView textView = tabItemView.findViewById(R.id.car_ui_toolbar_tab_item_text);
tabItemView.setOnClickListener(view -> selectTab(tab));
tab.bindText(textView);
diff --git a/car-ui-lib/src/com/android/car/ui/toolbar/ToolbarControllerImpl.java b/car-ui-lib/src/com/android/car/ui/toolbar/ToolbarControllerImpl.java
index eb49186..f3bb47a 100644
--- a/car-ui-lib/src/com/android/car/ui/toolbar/ToolbarControllerImpl.java
+++ b/car-ui-lib/src/com/android/car/ui/toolbar/ToolbarControllerImpl.java
@@ -20,8 +20,6 @@
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
-import static com.android.car.ui.utils.CarUiUtils.requireViewByRefId;
-
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
@@ -141,17 +139,17 @@
mShowLogo = getContext().getResources().getBoolean(
R.bool.car_ui_toolbar_show_logo);
- mBackground = requireViewByRefId(view, R.id.car_ui_toolbar_background);
- mTabLayout = requireViewByRefId(view, R.id.car_ui_toolbar_tabs);
- mNavIcon = requireViewByRefId(view, R.id.car_ui_toolbar_nav_icon);
- mLogoInNavIconSpace = requireViewByRefId(view, R.id.car_ui_toolbar_logo);
- mNavIconContainer = requireViewByRefId(view, R.id.car_ui_toolbar_nav_icon_container);
- mMenuItemsContainer = requireViewByRefId(view, R.id.car_ui_toolbar_menu_items_container);
- mTitle = requireViewByRefId(view, R.id.car_ui_toolbar_title);
- mTitleLogoContainer = requireViewByRefId(view, R.id.car_ui_toolbar_title_logo_container);
- mTitleLogo = requireViewByRefId(view, R.id.car_ui_toolbar_title_logo);
- mSearchViewContainer = requireViewByRefId(view, R.id.car_ui_toolbar_search_view_container);
- mProgressBar = requireViewByRefId(view, R.id.car_ui_toolbar_progress_bar);
+ mBackground = view.requireViewById(R.id.car_ui_toolbar_background);
+ mTabLayout = view.requireViewById(R.id.car_ui_toolbar_tabs);
+ mNavIcon = view.requireViewById(R.id.car_ui_toolbar_nav_icon);
+ mLogoInNavIconSpace = view.requireViewById(R.id.car_ui_toolbar_logo);
+ mNavIconContainer = view.requireViewById(R.id.car_ui_toolbar_nav_icon_container);
+ mMenuItemsContainer = view.requireViewById(R.id.car_ui_toolbar_menu_items_container);
+ mTitle = view.requireViewById(R.id.car_ui_toolbar_title);
+ mTitleLogoContainer = view.requireViewById(R.id.car_ui_toolbar_title_logo_container);
+ mTitleLogo = view.requireViewById(R.id.car_ui_toolbar_title_logo);
+ mSearchViewContainer = view.requireViewById(R.id.car_ui_toolbar_search_view_container);
+ mProgressBar = view.requireViewById(R.id.car_ui_toolbar_progress_bar);
mTabLayout.addListener(new TabLayout.Listener() {
@Override
diff --git a/car-ui-lib/src/com/android/car/ui/utils/CarUiUtils.java b/car-ui-lib/src/com/android/car/ui/utils/CarUiUtils.java
index 54d64f1..8dd6f07 100644
--- a/car-ui-lib/src/com/android/car/ui/utils/CarUiUtils.java
+++ b/car-ui-lib/src/com/android/car/ui/utils/CarUiUtils.java
@@ -20,22 +20,23 @@
import android.content.ContextWrapper;
import android.content.res.Resources;
import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
import android.util.TypedValue;
import android.view.View;
+import android.view.ViewGroup;
import androidx.annotation.DimenRes;
-import androidx.annotation.IdRes;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
-import androidx.annotation.UiThread;
+import androidx.core.view.ViewCompat;
/**
* Collection of utility methods
*/
public final class CarUiUtils {
/** This is a utility class */
- private CarUiUtils() {}
+ private CarUiUtils() {
+ }
/**
* Reads a float value from a dimens resource. This is necessary as {@link Resources#getFloat}
@@ -84,38 +85,66 @@
}
/**
- * It behaves similar to @see View#findViewById, except it resolves the ID reference first.
- *
- * @param id the ID to search for
- * @return a view with given ID if found, or {@code null} otherwise
- * @see View#requireViewById(int)
+ * Updates the preference view enabled state. If the view is disabled we just disable the child
+ * of preference like TextView, ImageView. The preference itself is always enabled to get the
+ * click events. Ripple effect in background is also removed by default. If the ripple is
+ * needed see
+ * {@link IDisabledPreferenceCallback#setShouldShowRippleOnDisabledPreference(boolean)}
*/
- @Nullable
- @UiThread
- public static <T extends View> T findViewByRefId(@NonNull View root, @IdRes int id) {
- if (id == View.NO_ID) {
- return null;
+ public static Drawable setPreferenceViewEnabled(boolean viewEnabled, View itemView,
+ Drawable background, boolean shouldShowRippleOnDisabledPreference) {
+ if (viewEnabled) {
+ if (background != null) {
+ ViewCompat.setBackground(itemView, background);
+ }
+ setChildViewsEnabled(itemView, true, false);
+ } else {
+ itemView.setEnabled(true);
+ if (background == null) {
+ // store the original background.
+ background = itemView.getBackground();
+ }
+ updateRippleStateOnDisabledPreference(false, shouldShowRippleOnDisabledPreference,
+ background, itemView);
+ setChildViewsEnabled(itemView, false, true);
}
-
- TypedValue value = new TypedValue();
- root.getResources().getValue(id, value, true);
- return root.findViewById(value.resourceId);
+ return background;
}
/**
- * It behaves similar to @see View#requireViewById, except it resolves the ID reference first.
- *
- * @param id the ID to search for
- * @return a view with given ID
- * @see View#findViewById(int)
+ * Sets the enabled state on the views of the preference. If the view is being disabled we want
+ * only child views of preference to be disabled.
*/
- @NonNull
- @UiThread
- public static <T extends View> T requireViewByRefId(@NonNull View root, @IdRes int id) {
- T view = findViewByRefId(root, id);
- if (view == null) {
- throw new IllegalArgumentException("ID does not reference a View inside this View");
+ private static void setChildViewsEnabled(View view, boolean enabled, boolean isRootView) {
+ if (!isRootView) {
+ view.setEnabled(enabled);
}
- return view;
+ if (view instanceof ViewGroup) {
+ ViewGroup grp = (ViewGroup) view;
+ for (int index = 0; index < grp.getChildCount(); index++) {
+ setChildViewsEnabled(grp.getChildAt(index), enabled, false);
+ }
+ }
+ }
+
+ /**
+ * Updates the ripple state on the given preference.
+ *
+ * @param isEnabled whether the preference is enabled or not
+ * @param shouldShowRippleOnDisabledPreference should ripple be displayed when the preference is
+ * clicked
+ * @param background drawable that represents the ripple
+ * @param preference preference on which drawable will be applied
+ */
+ public static void updateRippleStateOnDisabledPreference(boolean isEnabled,
+ boolean shouldShowRippleOnDisabledPreference, Drawable background, View preference) {
+ if (isEnabled || preference == null) {
+ return;
+ }
+ if (shouldShowRippleOnDisabledPreference && background != null) {
+ ViewCompat.setBackground(preference, background);
+ } else {
+ ViewCompat.setBackground(preference, null);
+ }
}
}
diff --git a/car-ui-lib/src/com/android/car/ui/utils/CarUxRestrictionsUtil.java b/car-ui-lib/src/com/android/car/ui/utils/CarUxRestrictionsUtil.java
index 31ac24a..dc627a0 100644
--- a/car-ui-lib/src/com/android/car/ui/utils/CarUxRestrictionsUtil.java
+++ b/car-ui-lib/src/com/android/car/ui/utils/CarUxRestrictionsUtil.java
@@ -18,7 +18,6 @@
import static android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_LIMIT_STRING_LENGTH;
import android.car.Car;
-import android.car.CarNotConnectedException;
import android.car.drivingstate.CarUxRestrictions;
import android.car.drivingstate.CarUxRestrictions.CarUxRestrictionsInfo;
import android.car.drivingstate.CarUxRestrictionsManager;
@@ -45,12 +44,11 @@
public class CarUxRestrictionsUtil {
private static final String TAG = "CarUxRestrictionsUtil";
- private final Car mCarApi;
- private CarUxRestrictionsManager mCarUxRestrictionsManager;
@NonNull
private CarUxRestrictions mCarUxRestrictions = getDefaultRestrictions();
- private Set<OnUxRestrictionsChangedListener> mObservers;
+ private final Set<OnUxRestrictionsChangedListener> mObservers =
+ Collections.newSetFromMap(new WeakHashMap<>());
private static CarUxRestrictionsUtil sInstance = null;
private CarUxRestrictionsUtil(Context context) {
@@ -67,20 +65,20 @@
}
};
- mCarApi = Car.createCar(context.getApplicationContext());
- mObservers = Collections.newSetFromMap(new WeakHashMap<>());
-
- try {
- mCarUxRestrictionsManager =
- (CarUxRestrictionsManager) mCarApi.getCarManager(
- Car.CAR_UX_RESTRICTION_SERVICE);
- mCarUxRestrictionsManager.registerListener(listener);
- listener.onUxRestrictionsChanged(
- mCarUxRestrictionsManager.getCurrentCarUxRestrictions());
- } catch (CarNotConnectedException | NullPointerException e) {
- Log.e(TAG, "Car not connected", e);
- // mCarUxRestrictions will be the default
- }
+ Car.createCar(context.getApplicationContext(), null, Car.CAR_WAIT_TIMEOUT_DO_NOT_WAIT,
+ (Car car, boolean ready) -> {
+ if (ready) {
+ CarUxRestrictionsManager carUxRestrictionsManager =
+ (CarUxRestrictionsManager) car.getCarManager(
+ Car.CAR_UX_RESTRICTION_SERVICE);
+ carUxRestrictionsManager.registerListener(listener);
+ listener.onUxRestrictionsChanged(
+ carUxRestrictionsManager.getCurrentCarUxRestrictions());
+ } else {
+ Log.w(TAG, "Car service disconnected, assuming fully restricted uxr");
+ listener.onUxRestrictionsChanged(null);
+ }
+ });
}
@NonNull
diff --git a/car-ui-lib/tests/apitest/current.xml b/car-ui-lib/tests/apitest/current.xml
index fa2213c..5a7515d 100644
--- a/car-ui-lib/tests/apitest/current.xml
+++ b/car-ui-lib/tests/apitest/current.xml
@@ -17,16 +17,10 @@
<public type="bool" name="car_ui_toolbar_tabs_on_second_row"/>
<public type="color" name="car_ui_activity_background_color"/>
<public type="color" name="car_ui_color_accent"/>
- <public type="color" name="car_ui_list_item_body_text_color"/>
+ <public type="color" name="car_ui_dialog_icon_color"/>
<public type="color" name="car_ui_list_item_divider"/>
- <public type="color" name="car_ui_list_item_header_text_color"/>
- <public type="color" name="car_ui_list_item_title_text_color"/>
- <public type="color" name="car_ui_preference_category_title_text_color"/>
- <public type="color" name="car_ui_preference_edit_text_dialog_message_text_color"/>
<public type="color" name="car_ui_preference_icon_color"/>
- <public type="color" name="car_ui_preference_summary_text_color"/>
- <public type="color" name="car_ui_preference_switch_track_text_color"/>
- <public type="color" name="car_ui_preference_title_text_color"/>
+ <public type="color" name="car_ui_preference_two_action_divider_color"/>
<public type="color" name="car_ui_recyclerview_divider_color"/>
<public type="color" name="car_ui_ripple_color"/>
<public type="color" name="car_ui_scrollbar_thumb"/>
@@ -51,17 +45,15 @@
<public type="dimen" name="car_ui_dialog_edittext_margin_top"/>
<public type="dimen" name="car_ui_dialog_icon_size"/>
<public type="dimen" name="car_ui_dialog_title_margin"/>
+ <public type="dimen" name="car_ui_divider_width"/>
<public type="dimen" name="car_ui_keyline_1"/>
<public type="dimen" name="car_ui_keyline_2"/>
<public type="dimen" name="car_ui_keyline_3"/>
<public type="dimen" name="car_ui_keyline_4"/>
- <public type="dimen" name="car_ui_letter_spacing_body1"/>
- <public type="dimen" name="car_ui_letter_spacing_body3"/>
<public type="dimen" name="car_ui_list_item_action_divider_height"/>
<public type="dimen" name="car_ui_list_item_action_divider_width"/>
<public type="dimen" name="car_ui_list_item_avatar_icon_height"/>
<public type="dimen" name="car_ui_list_item_avatar_icon_width"/>
- <public type="dimen" name="car_ui_list_item_body_text_size"/>
<public type="dimen" name="car_ui_list_item_check_box_end_inset"/>
<public type="dimen" name="car_ui_list_item_check_box_height"/>
<public type="dimen" name="car_ui_list_item_check_box_icon_container_width"/>
@@ -71,7 +63,6 @@
<public type="dimen" name="car_ui_list_item_end_inset"/>
<public type="dimen" name="car_ui_list_item_header_height"/>
<public type="dimen" name="car_ui_list_item_header_start_inset"/>
- <public type="dimen" name="car_ui_list_item_header_text_size"/>
<public type="dimen" name="car_ui_list_item_height"/>
<public type="dimen" name="car_ui_list_item_icon_container_width"/>
<public type="dimen" name="car_ui_list_item_icon_size"/>
@@ -83,7 +74,6 @@
<public type="dimen" name="car_ui_list_item_supplemental_icon_size"/>
<public type="dimen" name="car_ui_list_item_text_no_icon_start_margin"/>
<public type="dimen" name="car_ui_list_item_text_start_margin"/>
- <public type="dimen" name="car_ui_list_item_title_text_size"/>
<public type="dimen" name="car_ui_margin"/>
<public type="dimen" name="car_ui_padding_0"/>
<public type="dimen" name="car_ui_padding_1"/>
@@ -95,7 +85,6 @@
<public type="dimen" name="car_ui_preference_category_icon_margin_end"/>
<public type="dimen" name="car_ui_preference_category_icon_size"/>
<public type="dimen" name="car_ui_preference_category_min_height"/>
- <public type="dimen" name="car_ui_preference_category_text_size"/>
<public type="dimen" name="car_ui_preference_content_margin_bottom"/>
<public type="dimen" name="car_ui_preference_content_margin_top"/>
<public type="dimen" name="car_ui_preference_dropdown_padding_start"/>
@@ -104,17 +93,10 @@
<public type="dimen" name="car_ui_preference_edit_text_dialog_message_margin_bottom"/>
<public type="dimen" name="car_ui_preference_edit_text_dialog_message_margin_end"/>
<public type="dimen" name="car_ui_preference_edit_text_dialog_message_margin_start"/>
- <public type="dimen" name="car_ui_preference_edit_text_dialog_message_text_size"/>
<public type="dimen" name="car_ui_preference_edit_text_dialog_text_margin_end"/>
<public type="dimen" name="car_ui_preference_edit_text_dialog_text_margin_start"/>
<public type="dimen" name="car_ui_preference_icon_margin_end"/>
<public type="dimen" name="car_ui_preference_icon_size"/>
- <public type="dimen" name="car_ui_preference_summary_text_size"/>
- <public type="dimen" name="car_ui_preference_switch_height"/>
- <public type="dimen" name="car_ui_preference_switch_text_size"/>
- <public type="dimen" name="car_ui_preference_switch_width"/>
- <public type="dimen" name="car_ui_preference_switch_width_half"/>
- <public type="dimen" name="car_ui_preference_title_text_size"/>
<public type="dimen" name="car_ui_primary_icon_size"/>
<public type="dimen" name="car_ui_recyclerview_divider_bottom_margin"/>
<public type="dimen" name="car_ui_recyclerview_divider_end_margin"/>
@@ -164,10 +146,14 @@
<public type="dimen" name="wrap_content"/>
<public type="drawable" name="car_ui_activity_background"/>
<public type="drawable" name="car_ui_divider"/>
+ <public type="drawable" name="car_ui_icon_add"/>
<public type="drawable" name="car_ui_icon_arrow_back"/>
<public type="drawable" name="car_ui_icon_close"/>
+ <public type="drawable" name="car_ui_icon_delete"/>
<public type="drawable" name="car_ui_icon_down"/>
+ <public type="drawable" name="car_ui_icon_edit"/>
<public type="drawable" name="car_ui_icon_overflow_menu"/>
+ <public type="drawable" name="car_ui_icon_save"/>
<public type="drawable" name="car_ui_icon_search"/>
<public type="drawable" name="car_ui_icon_search_nav_icon"/>
<public type="drawable" name="car_ui_icon_settings"/>
@@ -197,8 +183,6 @@
<public type="string" name="car_ui_dialog_preference_negative"/>
<public type="string" name="car_ui_dialog_preference_positive"/>
<public type="string" name="car_ui_ellipsis"/>
- <public type="string" name="car_ui_list_item_header_font_family"/>
- <public type="string" name="car_ui_preference_category_title_font_family"/>
<public type="string" name="car_ui_preference_switch_off"/>
<public type="string" name="car_ui_preference_switch_on"/>
<public type="string" name="car_ui_restricted_while_driving"/>
@@ -215,6 +199,12 @@
<public type="style" name="Preference.CarUi.CheckBoxPreference"/>
<public type="style" name="Preference.CarUi.DialogPreference"/>
<public type="style" name="Preference.CarUi.DialogPreference.EditTextPreference"/>
+ <public type="style" name="Preference.CarUi.DialogSeekBarPreference"/>
+ <public type="style" name="Preference.CarUi.DialogSeekBarPreference.LeftText"/>
+ <public type="style" name="Preference.CarUi.DialogSeekBarPreference.RightText"/>
+ <public type="style" name="Preference.CarUi.DialogSeekBarPreference.Seekbar"/>
+ <public type="style" name="Preference.CarUi.DialogSeekBarPreference.TopText"/>
+ <public type="style" name="Preference.CarUi.Divider"/>
<public type="style" name="Preference.CarUi.DropDown"/>
<public type="style" name="Preference.CarUi.Icon"/>
<public type="style" name="Preference.CarUi.Information"/>
@@ -226,6 +216,8 @@
<public type="style" name="PreferenceFragmentList.CarUi"/>
<public type="style" name="TextAppearance.CarUi"/>
<public type="style" name="TextAppearance.CarUi.AlertDialog.Subtitle"/>
+ <public type="style" name="TextAppearance.CarUi.Body1"/>
+ <public type="style" name="TextAppearance.CarUi.Body3"/>
<public type="style" name="TextAppearance.CarUi.ListItem"/>
<public type="style" name="TextAppearance.CarUi.ListItem.Body"/>
<public type="style" name="TextAppearance.CarUi.ListItem.Header"/>
diff --git a/EncryptionRunner/Android.bp b/car-ui-lib/tests/captureviewhierarchy/Android.bp
similarity index 67%
rename from EncryptionRunner/Android.bp
rename to car-ui-lib/tests/captureviewhierarchy/Android.bp
index 54316ff..5681ce2 100644
--- a/EncryptionRunner/Android.bp
+++ b/car-ui-lib/tests/captureviewhierarchy/Android.bp
@@ -1,4 +1,5 @@
-// Copyright (C) 2019 The Android Open Source Project
+//
+// Copyright (C) 2020 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.
@@ -13,19 +14,19 @@
// limitations under the License.
android_library {
- name: "EncryptionRunner-lib",
- min_sdk_version: "23",
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
- static_libs: [
- "ukey2",
- ],
+ name: "car-ui-capture-view-hierarchy",
+ sdk_version: "system_current",
+ min_sdk_version: "28",
srcs: [
"src/**/*.java",
+ "src/**/*.kt",
],
- installable: true,
+ optimize: {
+ enabled: false,
+ },
+ static_libs: [
+ "guava",
+ "gson-prebuilt-jar",
+ "androidx-constraintlayout_constraintlayout",
+ ],
}
-
diff --git a/car-settings-lib/AndroidManifest.xml b/car-ui-lib/tests/captureviewhierarchy/AndroidManifest.xml
similarity index 75%
rename from car-settings-lib/AndroidManifest.xml
rename to car-ui-lib/tests/captureviewhierarchy/AndroidManifest.xml
index 5c2e6c9..fe3f22a 100644
--- a/car-settings-lib/AndroidManifest.xml
+++ b/car-ui-lib/tests/captureviewhierarchy/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2018 The Android Open Source Project
+ Copyright (C) 2020 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.
@@ -16,7 +16,8 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.car.settingslib">
- <uses-sdk android:minSdkVersion="24"/>
- <application />
-</manifest>
\ No newline at end of file
+ package="com.android.car.ui.tests.captureviewhierarchy">
+ <uses-sdk
+ android:minSdkVersion="28"
+ android:targetSdkVersion="28" />
+</manifest>
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/DisplayInfo.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/DisplayInfo.kt
new file mode 100644
index 0000000..358dc9f
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/DisplayInfo.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.ui.captureviewhierarchy.model
+
+/**
+ * Contains information used to draw selection boxes over each [ViewNode]. Created using
+ * [com.android.car.ui.captureviewhierarchy.parser.DisplayInfoFactory]
+ */
+data class DisplayInfo(
+ val willNotDraw: Boolean,
+ val isVisible: Boolean,
+ val left: Int,
+ val top: Int,
+ val width: Int,
+ val height: Int,
+ val scrollX: Int,
+ val scrollY: Int,
+ val clipChildren: Boolean,
+ val translateX: Float,
+ val translateY: Float,
+ val scaleX: Float,
+ val scaleY: Float,
+ val contentDesc: String?
+) {
+ fun getCopyAtOrigin() : DisplayInfo {
+ return this.copy(left = 0, top = 0)
+ }
+}
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewNode.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewNode.kt
new file mode 100644
index 0000000..e743c45
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewNode.kt
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.ui.captureviewhierarchy.model
+
+import androidx.constraintlayout.solver.widgets.Rectangle
+import com.google.common.collect.Lists
+import com.google.common.collect.Maps
+import java.util.Collections
+import java.util.Enumeration
+import java.util.LinkedList
+
+/**
+ * Represents an Android View object. Holds properties and a previewBox that contains the display
+ * area of the object on screen. Created by parsing view dumps using
+ * [com.android.car.ui.captureviewhierarchy.parser.ViewNodeParser].
+ */
+data class ViewNode internal constructor(private val parent: ViewNode?, val name: String, val hash: String){
+ // If the force state is set, the preview tries to render/hide the view
+ // (depending on the parent's state)
+ enum class ForcedState {
+ NONE,
+ VISIBLE,
+ INVISIBLE
+ }
+
+ val groupedProperties: MutableMap<String, MutableList<ViewProperty>> = Maps.newHashMap()
+ val namedProperties: MutableMap<String, ViewProperty> = Maps.newHashMap()
+ val properties: MutableList<ViewProperty> = Lists.newArrayList()
+ val children: MutableList<ViewNode> = Lists.newArrayList()
+ val previewBox: Rectangle = Rectangle()
+
+ // default in case properties are not available
+ var index: Int = 0
+ var id: String? = null
+
+ lateinit var displayInfo: DisplayInfo
+
+ var isParentVisible: Boolean = false
+ private set
+ var isDrawn: Boolean = false
+ private set
+ var forcedState: ForcedState = ForcedState.NONE
+
+ fun addPropertyToGroup(property: ViewProperty, groupKey: String) {
+ val propertiesList = groupedProperties.getOrDefault(
+ groupKey,
+ LinkedList()
+ )
+ propertiesList.add(property)
+ groupedProperties[groupKey] = propertiesList
+ }
+
+ fun getProperty(name: String, vararg altNames: String): ViewProperty? {
+ var property: ViewProperty? = namedProperties[name]
+ var i = 0
+ while (property == null && i < altNames.size) {
+ property = namedProperties[altNames[i]]
+ i++
+ }
+ return property
+ }
+
+ /** Recursively updates all the visibility parameter of the nodes. */
+ fun updateNodeDrawn() {
+ updateNodeDrawn(isParentVisible)
+ }
+
+ fun updateNodeDrawn(parentVisible: Boolean) {
+ var parentVisible = parentVisible
+ isParentVisible = parentVisible
+ if (forcedState == ForcedState.NONE) {
+ isDrawn = !displayInfo.willNotDraw && parentVisible && displayInfo.isVisible
+ parentVisible = parentVisible && displayInfo.isVisible
+ } else {
+ isDrawn = forcedState == ForcedState.VISIBLE && parentVisible
+ parentVisible = isDrawn
+ }
+ for (child in children) {
+ child.updateNodeDrawn(parentVisible)
+ isDrawn = isDrawn or (child.isDrawn && child.displayInfo.isVisible)
+ }
+ }
+
+ override fun toString(): String {
+ return "$name@$hash"
+ }
+
+ fun getChildAt(childIndex: Int): ViewNode {
+ return children[childIndex]
+ }
+
+ fun getChildCount(): Int {
+ return children.size
+ }
+
+ fun getParent(): ViewNode? {
+ return parent
+ }
+
+ fun getIndex(node: ViewNode): Int {
+ return children.indexOf(node as ViewNode)
+ }
+
+ fun getAllowsChildren(): Boolean {
+ return true
+ }
+
+ fun isLeaf(): Boolean {
+ return getChildCount() == 0
+ }
+
+ fun children(): Enumeration<*> {
+ return Collections.enumeration(children)
+ }
+}
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewProperty.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewProperty.kt
new file mode 100644
index 0000000..45d2e72
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/model/ViewProperty.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.ui.captureviewhierarchy.model
+
+import com.google.common.collect.ComparisonChain
+import com.google.common.collect.Ordering
+
+/**
+ * Represents a property of a [com.android.car.ui.captureviewhierarchy.model.ViewNode].
+ */
+data class ViewProperty(val fullName: String, val name: String, val category: String?,
+ val value: String, val valueObject: ViewNode?) :
+ Comparable<ViewProperty> {
+ override fun toString(): String {
+ return fullName + '=' + value
+ }
+
+ override fun compareTo(other: ViewProperty): Int {
+ return ComparisonChain.start()
+ .compare(category, other.category, CATEGORY_COMPARATOR)
+ .compare(name, other.name)
+ .result()
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (other !is ViewProperty) {
+ return false
+ }
+
+ val other = other as ViewProperty?
+ return !(category != other!!.category || name != other.name)
+ }
+
+ companion object {
+ private val CATEGORY_COMPARATOR =
+ Ordering.natural<Comparable<in String>>().nullsFirst<String>()
+ }
+}
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/DisplayInfoFactory.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/DisplayInfoFactory.kt
new file mode 100644
index 0000000..8dc6228
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/DisplayInfoFactory.kt
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.ui.captureviewhierarchy.parser
+
+import com.android.car.ui.captureviewhierarchy.model.DisplayInfo
+import com.android.car.ui.captureviewhierarchy.model.ViewNode
+import com.android.car.ui.captureviewhierarchy.model.ViewProperty
+
+object DisplayInfoFactory {
+ fun createDisplayInfoFromNode(node: ViewNode): DisplayInfo {
+ val left = getInt(node.getProperty("mLeft", "layout:mLeft", "left"), 0)
+ val top = getInt(node.getProperty("mTop", "layout:mTop", "top"), 0)
+ val width = getInt(node.getProperty("getWidth()", "layout:getWidth()", "width"), 10)
+ val height = getInt(node.getProperty("getHeight()", "layout:getHeight()", "height"), 10)
+ val scrollX = getInt(node.getProperty("mScrollX", "scrolling:mScrollX", "scrollX"), 0)
+ val scrollY = getInt(node.getProperty("mScrollY", "scrolling:mScrollY", "scrollY"), 0)
+
+ val willNotDraw =
+ getBoolean(node.getProperty("willNotDraw()", "drawing:willNotDraw()", "willNotDraw"), false)
+ val clipChildren = getBoolean(
+ node.getProperty("getClipChildren()", "drawing:getClipChildren()", "clipChildren"), true
+ )
+
+ val translateX =
+ getFloat(node.getProperty("getTranslationX", "drawing:getTranslationX()", "translationX"), 0f)
+ val translateY =
+ getFloat(node.getProperty("getTranslationY", "drawing:getTranslationY()", "translationY"), 0f)
+ val scaleX = getFloat(node.getProperty("getScaleX()", "drawing:getScaleX()", "scaleX"), 1f)
+ val scaleY = getFloat(node.getProperty("getScaleY()", "drawing:getScaleY()", "scaleY"), 1f)
+
+ var descProp = node.getProperty("accessibility:getContentDescription()", "contentDescription")
+ var contentDescription = getString(node.getProperty(
+ "accessibility:getContentDescription()",
+ "contentDescription"))
+ ?: getString(node.getProperty("text:mText"))
+
+ if (contentDescription == null) {
+ descProp = node.getProperty("text:mText")
+ contentDescription = if (descProp != null && descProp.value != "null")
+ descProp.value
+ else
+ null
+ }
+
+ val visibility = node.getProperty("getVisibility()", "misc:getVisibility()", "visibility")
+ val isVisible = (visibility == null
+ || "0" == visibility.value
+ || "VISIBLE" == visibility.value)
+ return DisplayInfo(
+ willNotDraw,
+ isVisible,
+ left,
+ top,
+ width,
+ height,
+ scrollX,
+ scrollY,
+ clipChildren,
+ translateX,
+ translateY,
+ scaleX,
+ scaleY,
+ contentDescription
+ )
+ }
+
+ private fun getString(descProp: ViewProperty?): String?{
+ return if (descProp != null && descProp.value != "null")
+ descProp.value
+ else
+ null
+ }
+
+ private fun getBoolean(p: ViewProperty?, defaultValue: Boolean): Boolean {
+ if (p != null) {
+ return try {
+ java.lang.Boolean.parseBoolean(p.value)
+ } catch (e: NumberFormatException) {
+ defaultValue
+ }
+
+ }
+ return defaultValue
+ }
+
+ private fun getInt(p: ViewProperty?, defaultValue: Int): Int {
+ if (p != null) {
+ return try {
+ Integer.parseInt(p.value)
+ } catch (e: NumberFormatException) {
+ defaultValue
+ }
+
+ }
+ return defaultValue
+ }
+
+ private fun getFloat(p: ViewProperty?, defaultValue: Float): Float {
+ if (p != null) {
+ return try {
+ java.lang.Float.parseFloat(p.value)
+ } catch (e: NumberFormatException) {
+ defaultValue
+ }
+
+ }
+ return defaultValue
+ }
+}
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Decoder.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Decoder.kt
new file mode 100644
index 0000000..6e47ee1
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Decoder.kt
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.captureviewhierarchy.parser
+
+import java.nio.ByteBuffer
+import java.nio.charset.Charset
+import java.util.HashMap
+
+/**
+ * Decodes view hierarchy v2 protocol created by ViewHierarchyEncoder in Android framework.
+ */
+internal class ViewNodeV2Decoder(private val mBuf: ByteBuffer) {
+ // Prefixes for simple primitives. These match the JNI definitions.
+ private val SIG_BOOLEAN = 'Z'.toByte()
+ private val SIG_BYTE = 'B'.toByte()
+ private val SIG_SHORT = 'S'.toByte()
+ private val SIG_INT = 'I'.toByte()
+ private val SIG_LONG = 'J'.toByte()
+ private val SIG_FLOAT = 'F'.toByte()
+ private val SIG_DOUBLE = 'D'.toByte()
+
+ // Prefixes for some commonly used objects
+ private val SIG_STRING = 'R'.toByte()
+
+ private val SIG_MAP = 'M'.toByte() // a map with an short key
+ private val SIG_END_MAP: Short = 0
+
+ fun hasRemaining(): Boolean {
+ return mBuf.hasRemaining()
+ }
+
+ fun readObject(): Any {
+ val sig = mBuf.get()
+ return when (sig) {
+ SIG_BOOLEAN -> mBuf.get().toInt() != 0
+ SIG_BYTE -> mBuf.get()
+ SIG_SHORT -> mBuf.short
+ SIG_INT -> mBuf.int
+ SIG_LONG -> mBuf.long
+ SIG_FLOAT -> mBuf.float
+ SIG_DOUBLE -> mBuf.double
+ SIG_STRING -> readString()
+ SIG_MAP -> readMap()
+ else -> throw DecoderException(
+ sig,
+ mBuf.position() - 1
+ )
+ }
+ }
+
+ private fun readString(): String {
+ val len = mBuf.short.toInt()
+ val b = ByteArray(len)
+ mBuf.get(b, 0, len)
+ return String(b, Charset.forName("utf-8"))
+ }
+
+ private fun readMap(): Map<Short, Any> {
+ val m = HashMap<Short, Any>()
+
+ while (true) {
+ val o = readObject()
+ if (o !is Short) {
+ break
+ }
+
+ if (o == SIG_END_MAP) {
+ break
+ }
+
+ m[o] = readObject()
+ }
+
+ return m
+ }
+
+ class DecoderException : RuntimeException {
+ constructor(
+ seen: Byte,
+ pos: Int
+ ) : super(String.format("Unexpected byte %c seen at position %d", seen.toChar(), pos))
+
+ constructor(msg: String) : super(msg)
+ }
+}
diff --git a/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Parser.kt b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Parser.kt
new file mode 100644
index 0000000..64b601d
--- /dev/null
+++ b/car-ui-lib/tests/captureviewhierarchy/src/com/android/car/ui/captureviewhierarchy/parser/ViewNodeV2Parser.kt
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.captureviewhierarchy.parser
+
+import android.content.Context
+import com.android.car.ui.captureviewhierarchy.model.ViewNode
+import com.android.car.ui.captureviewhierarchy.model.ViewProperty
+import com.google.common.base.Verify.verify
+import com.google.common.collect.Lists
+import com.google.common.collect.Maps
+import java.nio.ByteBuffer
+import java.util.HashMap
+
+private const val META_KEY = "meta"
+private const val HASH_KEY = "$META_KEY:__hash__"
+private const val NAME_KEY = "$META_KEY:__name__"
+private const val CHILD_COUNT_KEY = "__childCount__"
+private const val CHILD_KEY = "__child__"
+private const val THEME = "theme"
+private const val ID = "id"
+
+/**
+ * Parses the ByteArray data of viewHierarchy generated by ViewHierarchyEncoder in Android
+ * framework.
+ */
+class ViewNodeV2Parser {
+ private var mPropertyKeysByName: Map<String, Short>? = null
+ private var mPropertyNamesByKey: Map<Short, Any>? = null
+ private val mViews: MutableList<Map<Short, Any>> = Lists.newArrayListWithExpectedSize(100)
+
+ fun parse(data: ByteArray, context: Context): ViewNode? {
+ val d = ViewNodeV2Decoder(ByteBuffer.wrap(data))
+ while (d.hasRemaining()) {
+ val o = d.readObject()
+ if (o is Map<*, *>) {
+ mViews.add(o as Map<Short, Any>)
+ }
+ }
+
+ if (mViews.isEmpty()) {
+ return null
+ }
+
+ // the last one is the property map
+ mPropertyNamesByKey = mViews.removeAt(mViews.size - 1)
+ mPropertyKeysByName = pivot(mPropertyNamesByKey!!)
+
+ val rootMap = mViews[0]
+ val root = createViewNode(rootMap)
+ root.updateNodeDrawn(true)
+ return root
+ }
+
+ private fun createViewNode(
+ propMap: Map<Short, Any>,
+ parent: ViewNode? = null
+ ): ViewNode {
+ // create ViewNode
+ val hashProperty = getProperty(propMap, HASH_KEY)
+ var hash = ""
+ if (hashProperty is Int) {
+ hash = Integer.toHexString(hashProperty)
+ }
+ return ViewNode(parent, getStringProperty(propMap, NAME_KEY), hash).apply {
+ loadProperties(this, propMap)
+ displayInfo = DisplayInfoFactory.createDisplayInfoFromNode(this)
+ }
+ }
+
+ private fun getProperty(props: Map<Short, Any>, key: String): Any? {
+ return props[mPropertyKeysByName!![key]]
+ }
+
+ private fun pivot(m: Map<Short, Any>): Map<String, Short> {
+ val r = HashMap<String, Short>(m.size)
+
+ for ((key, value) in m) {
+ r[value as String] = key
+ }
+
+ return r
+ }
+
+ private fun getPropertyKey(name: String): Short? {
+ return mPropertyKeysByName!![name]
+ }
+
+ private fun getPropertyName(key: Short): String? {
+ val v = mPropertyNamesByKey!![key]
+ return v as? String
+ }
+
+ private fun getStringProperty(view: Map<Short, Any>, key: String): String {
+ val v = view[getPropertyKey(key)]
+ if (v is String) {
+ return v
+ }
+ return ""
+ }
+
+ private fun getChildIndex(name: String): Int {
+ return name.substring(name.indexOf(CHILD_KEY) + CHILD_KEY.length).toInt()
+ }
+
+ private fun loadProperties(node: ViewNode, viewProperties: Map<Short, Any>) {
+ val namedProperties: MutableMap<String, ViewProperty> = Maps.newHashMap()
+ val properties: MutableList<ViewProperty> = Lists.newArrayList()
+ val childrenProps: MutableMap<String, Any> = Maps.newHashMap()
+ var vn: ViewNode? = null
+ for (p in viewProperties.entries) {
+ val fullName = getPropertyName(p.key)!!
+ val value = p.value
+ if(fullName.equals(THEME)) {
+ val valObj: Map<Short, Any> = p.value as Map<Short, Any>;
+ vn = createViewNode(valObj);
+ }
+ if (fullName.startsWith("$META_KEY:$CHILD_KEY")) {
+ childrenProps[fullName] = value
+ } else {
+ val property = parse(
+ fullName,
+ value.toString(),
+ vn
+ )
+ properties.add(property)
+ namedProperties[property.name] = property
+ }
+ }
+
+ node.namedProperties.putAll(namedProperties)
+ node.properties.addAll(properties)
+ node.properties.map { node.addPropertyToGroup(it, getGroupKey(it)) }
+ node.namedProperties[ID]?.let {
+ node.id = it.value
+ }
+
+ // hide meta props
+ val metaProps = node.groupedProperties.remove(META_KEY)
+ addChildren(node, metaProps!!, childrenProps)
+ }
+
+ private fun parse(propertyFullName: String, value: String, valueObject: ViewNode?) : ViewProperty {
+ val parts = propertyFullName.split(":", limit = 2)
+ return ViewProperty(propertyFullName,
+ if (parts.size > 1) parts[1] else propertyFullName,
+ if (parts.size > 1) parts[0] else null,
+ value,
+ valueObject)
+ }
+
+ private fun getGroupKey(property: ViewProperty): String {
+ return property.category ?: if (property.fullName.endsWith("()")) {
+ "methods"
+ } else {
+ "properties"
+ }
+ }
+
+ private fun addChildren(
+ parent: ViewNode,
+ metaProps: MutableList<ViewProperty>,
+ childrenProps: Map<String, Any>
+ ) {
+ // no children if there is no matching prop
+ val childCountProp = metaProps.find { it.name == CHILD_COUNT_KEY } ?: return
+ val childCount = childCountProp.value.toInt()
+ val children = childrenProps.entries
+ .sortedBy { getChildIndex(it.key) }
+ .map { createViewNode(it.value as Map<Short, Any>, parent) }
+ verify(childCount == children.size,
+ "Expect view node $parent to have $childCount children but instead found ${children.size}")
+ parent.children.addAll(children)
+ }
+}
diff --git a/car-ui-lib/tests/paintbooth/Android.bp b/car-ui-lib/tests/paintbooth/Android.bp
new file mode 100644
index 0000000..e303d83
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/Android.bp
@@ -0,0 +1,56 @@
+//
+// 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.
+//
+
+android_app {
+ name: "PaintBooth",
+
+ srcs: [
+ "src/**/*.java",
+ "src/**/*.kt",
+ ],
+
+ required: ["privapp_whitelist_com.android.car.ui.paintbooth"],
+
+ resource_dirs: ["res", "res-public"],
+
+ platform_apis: true,
+
+ certificate: "platform",
+
+ privileged: true,
+
+ static_libs: [
+ "car-ui-lib",
+ "android.car.userlib",
+ "guava",
+ "gson-prebuilt-jar",
+ ],
+
+ optimize: {
+ enabled: false,
+ },
+
+ dex_preopt: {
+ enabled: false,
+ },
+
+ product_variables: {
+ pdk: {
+ enabled: false,
+ },
+ },
+ export_package_resources: true,
+}
diff --git a/car-ui-lib/tests/paintbooth/Android.mk b/car-ui-lib/tests/paintbooth/Android.mk
deleted file mode 100644
index fca93f1..0000000
--- a/car-ui-lib/tests/paintbooth/Android.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# 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.
-#
-
-ifneq ($(TARGET_BUILD_PDK), true)
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := PaintBooth
-
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-ui-lib
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
- android.car.userlib \
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_PACKAGE)
-
-endif
diff --git a/car-ui-lib/tests/paintbooth/AndroidManifest-gradle.xml b/car-ui-lib/tests/paintbooth/AndroidManifest-gradle.xml
index 464e81a..ee0a328 100644
--- a/car-ui-lib/tests/paintbooth/AndroidManifest-gradle.xml
+++ b/car-ui-lib/tests/paintbooth/AndroidManifest-gradle.xml
@@ -40,10 +40,6 @@
android:exported="false"
android:parentActivityName=".MainActivity"/>
<activity
- android:name=".caruirecyclerview.CarUiListItemActivity"
- android:exported="false"
- android:parentActivityName=".MainActivity"/>
- <activity
android:name=".caruirecyclerview.GridCarUiRecyclerViewActivity"
android:exported="false"
android:parentActivityName=".MainActivity"/>
@@ -58,5 +54,32 @@
android:theme="@style/Theme.CarUi.WithActionBar">
<meta-data android:name="distractionOptimized" android:value="true"/>
</activity>
+ <activity
+ android:name=".overlays.OverlayActivity"
+ android:exported="false"
+ android:parentActivityName=".MainActivity">
+ <meta-data android:name="distractionOptimized" android:value="true"/>
+ </activity>
+ <activity
+ android:name=".widgets.WidgetActivity"
+ android:exported="false"
+ android:parentActivityName=".MainActivity"/>
+ <activity
+ android:name=".caruirecyclerview.CarUiListItemActivity"
+ android:exported="false"
+ android:parentActivityName=".MainActivity"/>
+
+
+ <service
+ android:label="Current Activity Service"
+ android:name=".currentactivity.CurrentActivityService"
+ android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
+ <intent-filter>
+ <action android:name="android.accessibilityservice.AccessibilityService"/>
+ </intent-filter>
+ <meta-data
+ android:name="android.accessibilityservice"
+ android:resource="@xml/current_activity_service"/>
+ </service>
</application>
</manifest>
diff --git a/car-ui-lib/tests/paintbooth/AndroidManifest.xml b/car-ui-lib/tests/paintbooth/AndroidManifest.xml
index 2279415..2783a74 100644
--- a/car-ui-lib/tests/paintbooth/AndroidManifest.xml
+++ b/car-ui-lib/tests/paintbooth/AndroidManifest.xml
@@ -26,6 +26,12 @@
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES"/>
<uses-permission android:name="android.permission.MANAGE_USERS"/>
+ <!-- Required to use the TYPE_DISPLAY_OVERLAY layout param for the current activity overlay -->
+ <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
+ <!-- Required for listening to android task stack changes -->
+ <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
+ <uses-permission android:name="android.permission.REAL_GET_TASKS" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:icon="@drawable/ic_launcher"
@@ -77,5 +83,15 @@
android:name=".caruirecyclerview.CarUiListItemActivity"
android:exported="false"
android:parentActivityName=".MainActivity"/>
+
+ <service
+ android:label="Current Activity Service"
+ android:exported="false"
+ android:name=".currentactivity.CurrentActivityService">
+ <intent-filter>
+ <action android:name="com.android.car.ui.paintbooth.StopService" />
+ </intent-filter>
+ </service>
+
</application>
</manifest>
diff --git a/car-ui-lib/tests/paintbooth/build.gradle b/car-ui-lib/tests/paintbooth/build.gradle
index 0ef3514..2891586 100644
--- a/car-ui-lib/tests/paintbooth/build.gradle
+++ b/car-ui-lib/tests/paintbooth/build.gradle
@@ -36,9 +36,12 @@
manifest.srcFile 'AndroidManifest-gradle.xml'
java {
srcDirs = ['src']
- filter.excludes = ["com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java"]
+ filter.excludes = [
+ "com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java",
+ "com/android/car/ui/paintbooth/currentactivity/ActivityTaskManagerImpl.java",
+ ]
}
- res.srcDirs = ['res']
+ res.srcDirs = ['res', 'res-public']
}
}
}
diff --git a/car-ui-lib/tests/paintbooth/res-public/values/public.xml b/car-ui-lib/tests/paintbooth/res-public/values/public.xml
new file mode 100644
index 0000000..5f00a8e
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/res-public/values/public.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <public type="color" name="dialog_activity_background_color" id="0x7f050040" />
+</resources>
\ No newline at end of file
diff --git a/car-ui-lib/tests/paintbooth/res/drawable/ic_settings_gear.xml b/car-ui-lib/tests/paintbooth/res/drawable/ic_settings_gear.xml
new file mode 100644
index 0000000..d1557f4
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/res/drawable/ic_settings_gear.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2017 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="48dp"
+ android:height="48dp"
+ android:viewportHeight="48.0"
+ android:viewportWidth="48.0">
+ <path
+ android:fillColor="#fff"
+ android:pathData="M38.86,25.95c0.08,-0.64 0.14,-1.29 0.14,-1.95s-0.06,-1.31 -0.14,-1.95l4.23,-3.31c0.38,-0.3 0.49,-0.84 0.24,-1.28l-4,-6.93c-0.25,-0.43 -0.77,-0.61 -1.22,-0.43l-4.98,2.01c-1.03,-0.79 -2.16,-1.46 -3.38,-1.97L29,4.84c-0.09,-0.47 -0.5,-0.84 -1,-0.84h-8c-0.5,0 -0.91,0.37 -0.99,0.84l-0.75,5.3c-1.22,0.51 -2.35,1.17 -3.38,1.97L9.9,10.1c-0.45,-0.17 -0.97,0 -1.22,0.43l-4,6.93c-0.25,0.43 -0.14,0.97 0.24,1.28l4.22,3.31C9.06,22.69 9,23.34 9,24s0.06,1.31 0.14,1.95l-4.22,3.31c-0.38,0.3 -0.49,0.84 -0.24,1.28l4,6.93c0.25,0.43 0.77,0.61 1.22,0.43l4.98,-2.01c1.03,0.79 2.16,1.46 3.38,1.97l0.75,5.3c0.08,0.47 0.49,0.84 0.99,0.84h8c0.5,0 0.91,-0.37 0.99,-0.84l0.75,-5.3c1.22,-0.51 2.35,-1.17 3.38,-1.97l4.98,2.01c0.45,0.17 0.97,0 1.22,-0.43l4,-6.93c0.25,-0.43 0.14,-0.97 -0.24,-1.28l-4.22,-3.31zM24,31c-3.87,0 -7,-3.13 -7,-7s3.13,-7 7,-7 7,3.13 7,7 -3.13,7 -7,7z"/>
+</vector>
diff --git a/car-settings-lib/tests/robotests/AndroidManifest.xml b/car-ui-lib/tests/paintbooth/res/layout/details_preference_widget.xml
similarity index 67%
rename from car-settings-lib/tests/robotests/AndroidManifest.xml
rename to car-ui-lib/tests/paintbooth/res/layout/details_preference_widget.xml
index dd1a985..4f9fc41 100644
--- a/car-settings-lib/tests/robotests/AndroidManifest.xml
+++ b/car-ui-lib/tests/paintbooth/res/layout/details_preference_widget.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2018 Google Inc.
+ Copyright 2018 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.
@@ -15,7 +15,9 @@
limitations under the License.
-->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.car.settingslib.robotests">
-
-</manifest>
+<ImageView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/ic_settings_gear"/>
diff --git a/car-ui-lib/tests/paintbooth/res/layout/list_item_switch.xml b/car-ui-lib/tests/paintbooth/res/layout/list_item_switch.xml
new file mode 100644
index 0000000..499f3e4
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/res/layout/list_item_switch.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright 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="wrap_content">
+
+ <Switch
+ android:id="@+id/button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:textSize="25sp"
+ android:layout_marginTop="20dp"/>
+</RelativeLayout>
diff --git a/car-ui-lib/tests/paintbooth/res/values/overlayable.xml b/car-ui-lib/tests/paintbooth/res/values/overlayable.xml
new file mode 100644
index 0000000..7e62819
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/res/values/overlayable.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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>
+ <overlayable name="MyOverlayableResources">
+ <policy type="public">
+ <item type="drawable" name="ic_launcher" />
+ <item type="string" name="app_name" />
+ <item type="layout" name="main_activity" />
+ <item type="id" name="home" />
+ <item type="id" name="toolbar" />
+ <item type="id" name="activities" />
+ <item type="attr" name="title" />
+ <item type="attr" name="logo" />
+ <item type="attr" name="layout_constraintTop_toTopOf" />
+ <item type="attr" name="layout_constraintTop_toBottomOf" />
+ <item type="attr" name="layout_constraintLeft_toLeftOf" />
+ <item type="attr" name="layout_constraintBottom_toTopOf" />
+ <item type="attr" name="layout_constraintBottom_toBottomOf" />
+ <item type="attr" name="layout_constraintRight_toRightOf" />
+ <item type="attr" name="numOfColumns" />
+ <item type="attr" name="layoutStyle" />
+ </policy>
+ </overlayable>
+</resources>
\ No newline at end of file
diff --git a/car-ui-lib/tests/paintbooth/res/values/strings.xml b/car-ui-lib/tests/paintbooth/res/values/strings.xml
index cd45f77..fdceeaf 100644
--- a/car-ui-lib/tests/paintbooth/res/values/strings.xml
+++ b/car-ui-lib/tests/paintbooth/res/values/strings.xml
@@ -18,6 +18,9 @@
<!-- Application name [CHAR LIMIT=30] -->
<string name="app_name" translatable="false">Paint Booth (Gerrit)</string>
+ <!-- Description of the CurrentActivityService. [CHAR_LIMIT=200] -->
+ <string name="current_activity_service_description">Shows the current activity</string>
+
<!-- Strings for Preference Samples -->
<eat-comment/>
@@ -56,6 +59,11 @@
<!-- Category title for preferences with widgets [CHAR_LIMIT=12]-->
<string name="widgets">Widgets</string>
+ <!-- Title of a two action preference [CHAR_LIMIT=31]-->
+ <string name="title_twoaction_preference">TwoAction preference</string>
+ <!-- Summary of a two action preference [CHAR_LIMIT=70]-->
+ <string name="summary_twoaction_preference">A widget should be visible on the right</string>
+
<!-- Title of a checkbox preference [CHAR_LIMIT=31]-->
<string name="title_checkbox_preference">Checkbox preference</string>
<!-- Summary of a checkbox preference [CHAR_LIMIT=78]-->
@@ -71,6 +79,8 @@
<!-- Title of a seekbar preference [CHAR_LIMIT=30]-->
<string name="title_seekbar_preference">Seekbar preference</string>
+ <!-- Summary of an seekbar preference [CHAR_LIMIT=32]-->
+ <string name="summary_seekbar_preference">Seekbar summary</string>
<!--This section is for preferences that launch a dialog to edit the preference -->
<eat-comment/>
@@ -257,5 +267,5 @@
<string name="widget_checkbox_text">I\'m a check box</string>
<!-- Text for switch [CHAR_LIMIT=25]-->
<string name="widget_switch_text">I\'m a switch</string>
-
+
</resources>
diff --git a/car-ui-lib/tests/paintbooth/res/xml/current_activity_service.xml b/car-ui-lib/tests/paintbooth/res/xml/current_activity_service.xml
new file mode 100644
index 0000000..f6143cd
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/res/xml/current_activity_service.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<accessibility-service
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:accessibilityEventTypes="typeWindowStateChanged"
+ android:accessibilityFeedbackType="feedbackGeneric"
+ android:accessibilityFlags="flagIncludeNotImportantViews"
+ android:description="@string/current_activity_service_description"/>
diff --git a/car-ui-lib/tests/paintbooth/res/xml/preference_samples.xml b/car-ui-lib/tests/paintbooth/res/xml/preference_samples.xml
index b49dd0d..0a0836a 100644
--- a/car-ui-lib/tests/paintbooth/res/xml/preference_samples.xml
+++ b/car-ui-lib/tests/paintbooth/res/xml/preference_samples.xml
@@ -19,132 +19,155 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
app:title="@string/preferences_screen_title">
- <PreferenceCategory
- android:title="@string/basic_preferences">
+ <PreferenceCategory
+ android:title="@string/basic_preferences">
- <Preference
- android:key="preference"
- android:title="@string/title_basic_preference"
- android:summary="@string/summary_basic_preference"/>
+ <Preference
+ android:key="preference"
+ android:summary="@string/summary_basic_preference"
+ android:title="@string/title_basic_preference"/>
- <Preference
- android:key="stylized"
- android:title="@string/title_stylish_preference"
- android:summary="@string/summary_stylish_preference"/>
+ <Preference
+ android:key="preference_disabled_without_ripple"
+ android:summary="Without ripple"
+ android:title="@string/title_basic_preference"/>
- <Preference
- android:key="icon"
- android:title="@string/title_icon_preference"
- android:summary="@string/summary_icon_preference"
- android:icon="@drawable/ic_settings_wifi"/>
+ <Preference
+ android:key="preference_disabled_with_ripple"
+ android:summary="With ripple"
+ android:title="@string/title_basic_preference"/>
- <Preference
- android:key="single_line_title"
- android:title="@string/title_single_line_title_preference"
- android:summary="@string/summary_single_line_title_preference"
- app:singleLineTitle="true"/>
+ <Preference
+ android:key="stylized"
+ android:dependency="preference"
+ android:summary="@string/summary_stylish_preference"
+ android:title="@string/title_stylish_preference"/>
- <Preference
- android:key="single_line_no_summary"
- android:title="@string/title_single_line_no_summary"
- app:singleLineTitle="true"/>
- </PreferenceCategory>
+ <Preference
+ android:icon="@drawable/ic_settings_wifi"
+ android:key="icon"
+ android:summary="@string/summary_icon_preference"
+ android:title="@string/title_icon_preference"/>
- <PreferenceCategory
- android:title="@string/widgets">
+ <Preference
+ android:key="single_line_title"
+ android:summary="@string/summary_single_line_title_preference"
+ android:title="@string/title_single_line_title_preference"
+ app:singleLineTitle="true"/>
- <CheckBoxPreference
- android:key="checkbox"
- android:title="@string/title_checkbox_preference"
- android:summary="@string/summary_checkbox_preference"/>
+ <Preference
+ android:key="single_line_no_summary"
+ android:title="@string/title_single_line_no_summary"
+ app:singleLineTitle="true"/>
+ </PreferenceCategory>
- <SwitchPreference
- android:key="switch"
- android:title="@string/title_switch_preference"
- android:summary="@string/summary_switch_preference"/>
+ <PreferenceCategory
+ android:title="@string/widgets">
- <DropDownPreference
- android:key="dropdown"
- android:title="@string/title_dropdown_preference"
- android:entries="@array/entries"
- app:useSimpleSummaryProvider="true"
- android:entryValues="@array/entry_values"/>
+ <CheckBoxPreference
+ android:key="checkbox"
+ android:summary="@string/summary_checkbox_preference"
+ android:title="@string/title_checkbox_preference"/>
- <SeekBarPreference
- android:key="seekbar"
- android:title="@string/title_seekbar_preference"
- android:max="10"
- android:defaultValue="5"/>
- </PreferenceCategory>
+ <DropDownPreference
+ android:entries="@array/entries"
+ android:entryValues="@array/entry_values"
+ android:key="dropdown"
+ android:title="@string/title_dropdown_preference"
+ app:useSimpleSummaryProvider="true"/>
- <PreferenceCategory
- android:title="@string/dialogs">
+ <SeekBarPreference
+ android:defaultValue="5"
+ android:key="seekbar"
+ android:max="10"
+ android:title="@string/title_seekbar_preference"/>
- <EditTextPreference
- android:key="edittext"
- android:title="@string/title_edittext_preference"
- app:useSimpleSummaryProvider="true"
- android:dialogTitle="@string/dialog_title_edittext_preference"/>
+ <SwitchPreference
+ android:key="switch"
+ android:summary="@string/summary_switch_preference"
+ android:title="@string/title_switch_preference"/>
- <ListPreference
- android:key="list"
- android:title="@string/title_list_preference"
- app:useSimpleSummaryProvider="true"
- android:entries="@array/entries"
- android:entryValues="@array/entry_values"
- android:dialogTitle="@string/dialog_title_list_preference"/>
+ <com.android.car.ui.preference.CarUiTwoActionPreference
+ android:key="twoaction"
+ android:summary="@string/summary_twoaction_preference"
+ android:title="@string/title_twoaction_preference"
+ android:widgetLayout="@layout/details_preference_widget"/>
+ </PreferenceCategory>
- <MultiSelectListPreference
- android:key="multi_select_list"
- android:title="@string/title_multi_list_preference"
- android:summary="@string/summary_multi_list_preference"
- android:entries="@array/entries"
- android:entryValues="@array/entry_values"
- android:dialogTitle="@string/dialog_title_multi_list_preference"/>
- </PreferenceCategory>
+ <PreferenceCategory
+ android:title="@string/dialogs">
- <PreferenceCategory
- android:key="@string/advanced_preference"
- android:title="@string/advanced_attributes"
- app:initialExpandedChildrenCount="1">
+ <EditTextPreference
+ android:dialogTitle="@string/dialog_title_edittext_preference"
+ android:key="edittext"
+ android:title="@string/title_edittext_preference"
+ app:useSimpleSummaryProvider="true"/>
- <Preference
- android:key="expandable"
- android:title="@string/title_expandable_preference"
- android:summary="@string/summary_expandable_preference"/>
+ <ListPreference
+ android:dialogTitle="@string/dialog_title_list_preference"
+ android:entries="@array/entries"
+ android:entryValues="@array/entry_values"
+ android:key="list"
+ android:title="@string/title_list_preference"
+ app:useSimpleSummaryProvider="true"/>
- <Preference
- android:title="@string/title_intent_preference"
- android:summary="@string/summary_intent_preference">
+ <MultiSelectListPreference
+ android:dialogTitle="@string/dialog_title_multi_list_preference"
+ android:entries="@array/entries"
+ android:entryValues="@array/entry_values"
+ android:key="multi_select_list"
+ android:summary="@string/summary_multi_list_preference"
+ android:title="@string/title_multi_list_preference"/>
- <intent android:action="android.intent.action.VIEW"
- android:data="http://www.android.com"/>
+ <com.android.car.ui.preference.CarUiSeekBarDialogPreference
+ android:dialogTitle="Seekbar Dialog"
+ android:key="seekbarDialog"
+ android:summary="@string/summary_seekbar_preference"
+ android:title="@string/title_seekbar_preference"/>
+ </PreferenceCategory>
- </Preference>
+ <PreferenceCategory
+ android:key="@string/advanced_preference"
+ android:title="@string/advanced_attributes"
+ app:initialExpandedChildrenCount="1">
- <SwitchPreference
- android:key="parent"
- android:title="@string/title_parent_preference"
- android:summary="@string/summary_parent_preference"/>
+ <Preference
+ android:key="expandable"
+ android:summary="@string/summary_expandable_preference"
+ android:title="@string/title_expandable_preference"/>
- <SwitchPreference
- android:key="child"
- android:dependency="parent"
- android:title="@string/title_child_preference"
- android:summary="@string/summary_child_preference"/>
+ <Preference
+ android:summary="@string/summary_intent_preference"
+ android:title="@string/title_intent_preference">
- <SwitchPreference
- android:key="toggle_summary"
- android:title="@string/title_toggle_summary_preference"
- android:summaryOn="@string/summary_on_toggle_summary_preference"
- android:summaryOff="@string/summary_off_toggle_summary_preference"/>
+ <intent android:action="android.intent.action.VIEW"
+ android:data="http://www.android.com"/>
- <Preference
- android:key="copyable"
- android:title="@string/title_copyable_preference"
- android:summary="@string/summary_copyable_preference"
- android:selectable="false"
- app:enableCopying="true"/>
- </PreferenceCategory>
+ </Preference>
+
+ <Preference
+ android:key="copyable"
+ android:selectable="false"
+ android:summary="@string/summary_copyable_preference"
+ android:title="@string/title_copyable_preference"
+ app:enableCopying="true"/>
+
+ <SwitchPreference
+ android:dependency="parent"
+ android:key="child"
+ android:summary="@string/summary_child_preference"
+ android:title="@string/title_child_preference"/>
+
+ <SwitchPreference
+ android:key="toggle_summary"
+ android:summaryOff="@string/summary_off_toggle_summary_preference"
+ android:summaryOn="@string/summary_on_toggle_summary_preference"
+ android:title="@string/title_toggle_summary_preference"/>
+
+ <SwitchPreference
+ android:key="parent"
+ android:summary="@string/summary_parent_preference"
+ android:title="@string/title_parent_preference"/>
+ </PreferenceCategory>
</PreferenceScreen>
\ No newline at end of file
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/MainActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/MainActivity.java
index f05a827..31c8f94 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/MainActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/MainActivity.java
@@ -17,6 +17,8 @@
package com.android.car.ui.paintbooth;
import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
@@ -25,6 +27,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.Switch;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -33,6 +36,7 @@
import com.android.car.ui.paintbooth.caruirecyclerview.CarUiListItemActivity;
import com.android.car.ui.paintbooth.caruirecyclerview.CarUiRecyclerViewActivity;
import com.android.car.ui.paintbooth.caruirecyclerview.GridCarUiRecyclerViewActivity;
+import com.android.car.ui.paintbooth.currentactivity.CurrentActivityService;
import com.android.car.ui.paintbooth.dialogs.DialogsActivity;
import com.android.car.ui.paintbooth.overlays.OverlayActivity;
import com.android.car.ui.paintbooth.preferences.PreferenceActivity;
@@ -63,6 +67,16 @@
Pair.create("ListItem sample", CarUiListItemActivity.class)
);
+ private final List<Pair<String, View.OnClickListener>> mSwitches = Arrays.asList(
+ Pair.create("Show foreground activities", v -> {
+ Intent intent = new Intent(this, CurrentActivityService.class);
+ if (isCurrentActivityServiceRunning()) {
+ intent.setAction(CurrentActivityService.STOP_SERVICE);
+ }
+ startForegroundService(intent);
+ })
+ );
+
private class ViewHolder extends RecyclerView.ViewHolder {
private Button mButton;
@@ -71,36 +85,60 @@
mButton = itemView.findViewById(R.id.button);
}
- void update(String title, Class<? extends Activity> activityClass) {
- mButton.setText(title);
- mButton.setOnClickListener(e -> {
- Intent intent = new Intent(mButton.getContext(), activityClass);
- startActivity(intent);
- });
+ void bind(String text, View.OnClickListener listener) {
+ mButton.setText(text);
+ mButton.setOnClickListener(listener);
+
+ if (mButton instanceof Switch) {
+ ((Switch) mButton).setChecked(isCurrentActivityServiceRunning());
+ }
}
}
private final RecyclerView.Adapter<ViewHolder> mAdapter =
new RecyclerView.Adapter<ViewHolder>() {
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View item = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent,
- false);
- return new ViewHolder(item);
- }
- @Override
- public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
- Pair<String, Class<? extends Activity>> item = mActivities.get(position);
- holder.update(item.first, item.second);
- }
+ private static final int TYPE_SWITCH = 0;
+ private static final int TYPE_ACTIVITY = 1;
- @Override
- public int getItemCount() {
- return mActivities.size();
- }
- };
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View item = LayoutInflater.from(parent.getContext()).inflate(
+ viewType == TYPE_SWITCH ? R.layout.list_item_switch
+ : R.layout.list_item,
+ parent, false);
+ return new ViewHolder(item);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ if (getItemViewType(position) == TYPE_SWITCH) {
+ Pair<String, View.OnClickListener> item = mSwitches.get(position);
+ holder.bind(item.first, item.second);
+ } else {
+ Pair<String, Class<? extends Activity>> item =
+ mActivities.get(position - mSwitches.size());
+ holder.bind(item.first, v -> {
+ Intent intent = new Intent(holder.itemView.getContext(), item.second);
+ startActivity(intent);
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return mSwitches.size() + mActivities.size();
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if (position < mSwitches.size()) {
+ return TYPE_SWITCH;
+ }
+ return TYPE_ACTIVITY;
+ }
+ };
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -189,4 +227,15 @@
// LeakCanary is not used in this build, do nothing.
}
}
+
+ private boolean isCurrentActivityServiceRunning() {
+ ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+ for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(
+ Integer.MAX_VALUE)) {
+ if (CurrentActivityService.class.getName().equals(service.service.getClassName())) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManager.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManager.java
new file mode 100644
index 0000000..ec26665
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManager.java
@@ -0,0 +1,84 @@
+/*
+ * 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.android.car.ui.paintbooth.currentactivity;
+
+import android.app.ActivityManager;
+import android.app.ActivityManager.RunningTaskInfo;
+import android.content.ComponentName;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+/**
+ * Interface for wrappers around {@link android.app.ActivityTaskManager} so that we can exclude them
+ * from non-system builds like gradle and google3.
+ */
+interface ActivityTaskManager {
+
+ interface TaskStackListener {
+ void onTaskCreated(int taskId, ComponentName componentName);
+
+ void onTaskRemoved(int taskId);
+
+ void onTaskDescriptionChanged(ActivityManager.RunningTaskInfo taskInfo);
+
+ void onTaskMovedToFront(ActivityManager.RunningTaskInfo taskInfo);
+ }
+
+ List<RunningTaskInfo> getTasks(int maxNum) throws RemoteException;
+
+ void registerTaskStackListener(TaskStackListener listener) throws RemoteException;
+
+ void unregisterTaskStackListener(TaskStackListener listener) throws RemoteException;
+
+ final class ActivityTaskManagerStub implements ActivityTaskManager {
+ @Override
+ public List<RunningTaskInfo> getTasks(int num) throws RemoteException {
+ throw new RemoteException("ActivityTaskManager is not available");
+ }
+
+ @Override
+ public void registerTaskStackListener(TaskStackListener listener) throws RemoteException {
+ throw new RemoteException("ActivityTaskManager is not available");
+ }
+
+ @Override
+ public void unregisterTaskStackListener(TaskStackListener listener) throws RemoteException {
+ throw new RemoteException("ActivityTaskManager is not available");
+ }
+ }
+
+ @NonNull
+ static ActivityTaskManager getService() {
+ try {
+ Class clazz = Class.forName(
+ "com.android.car.ui.paintbooth.currentactivity.ActivityTaskManagerImpl");
+ Constructor constructor = clazz.getDeclaredConstructor();
+ constructor.setAccessible(true);
+ return (ActivityTaskManager) constructor.newInstance();
+ } catch (ClassNotFoundException | IllegalAccessException | InstantiationException
+ | NoSuchMethodException | InvocationTargetException e) {
+ Log.e("paintbooth", "ActivityTaskManager is not available", e);
+ return new ActivityTaskManagerStub();
+ }
+ }
+}
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManagerImpl.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManagerImpl.java
new file mode 100644
index 0000000..8adbdad
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/ActivityTaskManagerImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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.android.car.ui.paintbooth.currentactivity;
+
+import android.app.ActivityManager;
+import android.app.ActivityManager.RunningTaskInfo;
+import android.app.IActivityTaskManager;
+import android.content.ComponentName;
+import android.os.RemoteException;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class is a wrapper around {@link android.app.ActivityTaskManager} that is excluded from
+ * the gradle and google3 builds.
+ */
+class ActivityTaskManagerImpl implements ActivityTaskManager {
+
+ IActivityTaskManager mActivityTaskManager = android.app.ActivityTaskManager.getService();
+
+ Map<TaskStackListener, android.app.TaskStackListener> mListenerMapping = new HashMap<>();
+
+ @Override
+ public List<RunningTaskInfo> getTasks(int maxNum) throws RemoteException {
+ return mActivityTaskManager.getTasks(maxNum);
+ }
+
+ @Override
+ public void registerTaskStackListener(TaskStackListener listener) throws RemoteException {
+ mListenerMapping.put(listener, new android.app.TaskStackListener() {
+ @Override
+ public void onTaskCreated(int taskId, ComponentName componentName) {
+ listener.onTaskCreated(taskId, componentName);
+ }
+
+ @Override
+ public void onTaskRemoved(int taskId) {
+ listener.onTaskRemoved(taskId);
+ }
+
+ @Override
+ public void onTaskDescriptionChanged(ActivityManager.RunningTaskInfo taskInfo) {
+ listener.onTaskDescriptionChanged(taskInfo);
+ }
+
+ @Override
+ public void onTaskMovedToFront(ActivityManager.RunningTaskInfo taskInfo) {
+ listener.onTaskMovedToFront(taskInfo);
+ }
+ });
+
+ mActivityTaskManager.registerTaskStackListener(mListenerMapping.get(listener));
+ }
+
+ @Override
+ public void unregisterTaskStackListener(TaskStackListener listener) throws RemoteException {
+ mActivityTaskManager.unregisterTaskStackListener(mListenerMapping.get(listener));
+ mListenerMapping.remove(listener);
+ }
+
+}
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/CurrentActivityService.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/CurrentActivityService.java
new file mode 100644
index 0000000..aa26a92
--- /dev/null
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/currentactivity/CurrentActivityService.java
@@ -0,0 +1,231 @@
+/*
+ * 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.android.car.ui.paintbooth.currentactivity;
+
+import android.app.ActivityManager;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.graphics.PixelFormat;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.RemoteException;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.core.app.NotificationCompat;
+import androidx.core.content.ContextCompat;
+
+import com.android.car.ui.paintbooth.R;
+import com.android.car.ui.paintbooth.currentactivity.ActivityTaskManager.TaskStackListener;
+
+import java.util.List;
+
+/**
+ * To start the service:
+ * adb shell am start-foreground-service -n com.android.car.ui.paintbooth/.CurrentActivityService
+ *
+ * To stop the service:
+ * adb shell am start-foreground-service -n com.android.car.ui.paintbooth/.CurrentActivityService -a
+ * com.android.car.ui.paintbooth.StopService
+ */
+public class CurrentActivityService extends Service {
+
+ public static final String STOP_SERVICE = "com.android.car.ui.paintbooth.StopService";
+ private static final int FOREGROUND_SERVICE_ID = 111;
+
+ private WindowManager mWindowManager;
+ private TextView mTextView;
+ private Handler mHandler;
+
+ @Override
+ public void onCreate() {
+ mHandler = new Handler(Looper.getMainLooper());
+
+ if (ContextCompat.checkSelfPermission(this, "android.permission.REAL_GET_TASKS")
+ != PackageManager.PERMISSION_GRANTED) {
+ Toast.makeText(this, "android.permission.REAL_GET_TASKS is not granted!",
+ Toast.LENGTH_LONG).show();
+ }
+
+ Intent notificationIntent = new Intent(this, CurrentActivityService.class);
+
+ PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
+ notificationIntent, 0);
+
+ NotificationChannel channel = new NotificationChannel("CurrentActivityService",
+ "Show current activity",
+ NotificationManager.IMPORTANCE_DEFAULT);
+ NotificationManager notificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.createNotificationChannel(channel);
+
+ Notification notification =
+ new NotificationCompat.Builder(this, "CurrentActivityService")
+ .setSmallIcon(R.drawable.ic_launcher)
+ .setContentTitle("CurrentActivityService")
+ .setContentText("Show current activity")
+ .setContentIntent(pendingIntent).build();
+
+ startForeground(FOREGROUND_SERVICE_ID, notification);
+
+ try {
+ ActivityTaskManager.getService().registerTaskStackListener(mTaskStackListener);
+ } catch (RemoteException e) {
+ Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
+ }
+
+ mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
+ final WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
+ WindowManager.LayoutParams.WRAP_CONTENT,
+ WindowManager.LayoutParams.WRAP_CONTENT,
+ WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
+ WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+ | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
+ PixelFormat.TRANSLUCENT);
+
+ mTextView = new TextView(this);
+ layoutParams.gravity = Gravity.TOP | Gravity.LEFT;
+ layoutParams.x = 0;
+ layoutParams.y = 100;
+ mTextView.setLayoutParams(layoutParams);
+ mTextView.setBackgroundColor(Color.argb(50, 0, 255, 0));
+
+ mTextView.setOnTouchListener(new View.OnTouchListener() {
+
+ private int mInitialX = 0;
+ private int mInitialY = 0;
+ private float mInitialTouchX;
+ private float mInitialTouchY;
+
+ @Override
+ public boolean onTouch(View view, MotionEvent event) {
+ switch (event.getAction() & MotionEvent.ACTION_MASK) {
+ case MotionEvent.ACTION_DOWN:
+ mInitialX = layoutParams.x;
+ mInitialY = layoutParams.y;
+ mInitialTouchX = event.getRawX();
+ mInitialTouchY = event.getRawY();
+ break;
+ case MotionEvent.ACTION_MOVE:
+ WindowManager.LayoutParams layoutParams =
+ (WindowManager.LayoutParams) view.getLayoutParams();
+ layoutParams.x = mInitialX + (int) (event.getRawX() - mInitialTouchX);
+ layoutParams.y = mInitialY + (int) (event.getRawY() - mInitialTouchY);
+ mWindowManager.updateViewLayout(view, layoutParams);
+ return true;
+ default:
+ break;
+ }
+
+ return false;
+ }
+ });
+
+ try {
+ mWindowManager.addView(mTextView, layoutParams);
+ } catch (RuntimeException e) {
+ Toast.makeText(this, "Couldn't display overlay", Toast.LENGTH_SHORT)
+ .show();
+ }
+
+ showCurrentTask();
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ if (STOP_SERVICE.equals(intent.getAction())) {
+ stopSelf();
+ }
+
+ return START_STICKY;
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ @Override
+ public void onDestroy() {
+ mHandler.removeCallbacksAndMessages(null);
+ mWindowManager.removeView(mTextView);
+ try {
+ ActivityTaskManager.getService().unregisterTaskStackListener(mTaskStackListener);
+ } catch (RemoteException e) {
+ Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
+ }
+ }
+
+ /**
+ * This requires system permissions or else it will only fetch the current app and the launcher
+ * app
+ */
+ private void showCurrentTask() {
+ try {
+ List<ActivityManager.RunningTaskInfo> tasks =
+ ActivityTaskManager.getService().getTasks(1);
+ if (!tasks.isEmpty()) {
+ updateComponentName(tasks.get(0).topActivity);
+ }
+ } catch (RemoteException e) {
+ Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
+ }
+ }
+
+ private void updateComponentName(ComponentName componentName) {
+ mHandler.post(() -> {
+ if (mTextView != null && componentName != null) {
+ mTextView.setText(componentName.flattenToShortString().replace('/', '\n'));
+ }
+ });
+ }
+
+ private final TaskStackListener mTaskStackListener = new TaskStackListener() {
+ @Override
+ public void onTaskCreated(int taskId, ComponentName componentName) {
+ updateComponentName(componentName);
+ }
+
+ @Override
+ public void onTaskRemoved(int taskId) {
+ showCurrentTask();
+ }
+
+ @Override
+ public void onTaskDescriptionChanged(ActivityManager.RunningTaskInfo taskInfo) {
+ updateComponentName(taskInfo.topActivity);
+ }
+
+ @Override
+ public void onTaskMovedToFront(ActivityManager.RunningTaskInfo taskInfo) {
+ updateComponentName(taskInfo.topActivity);
+ }
+ };
+}
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
index 769a1ab..3fa6ab1 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
@@ -26,6 +26,7 @@
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.car.ui.AlertDialogBuilder;
import com.android.car.ui.paintbooth.R;
@@ -188,7 +189,7 @@
.show();
}
- private static class ViewHolder extends CarUiRecyclerView.ViewHolder {
+ private static class ViewHolder extends RecyclerView.ViewHolder {
private final Button mButton;
@@ -203,8 +204,8 @@
}
}
- private final CarUiRecyclerView.Adapter<ViewHolder> mAdapter =
- new CarUiRecyclerView.Adapter<ViewHolder>() {
+ private final RecyclerView.Adapter<ViewHolder> mAdapter =
+ new RecyclerView.Adapter<ViewHolder>() {
@Override
public int getItemCount() {
return mButtons.size();
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java
index 32fcbc9..3a27534 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/overlays/OverlayManagerImpl.java
@@ -16,7 +16,7 @@
package com.android.car.ui.paintbooth.overlays;
-import android.car.userlib.CarUserManagerHelper;
+import android.app.ActivityManager;
import android.content.Context;
import android.content.om.IOverlayManager;
import android.os.RemoteException;
@@ -35,11 +35,9 @@
* image.
*/
public class OverlayManagerImpl implements OverlayManager {
- private final CarUserManagerHelper mCarUserManagerHelper;
private final IOverlayManager mOverlayManager;
public OverlayManagerImpl(Context context) {
- mCarUserManagerHelper = new CarUserManagerHelper(context);
mOverlayManager = IOverlayManager.Stub.asInterface(
ServiceManager.getService(Context.OVERLAY_SERVICE));
}
@@ -62,8 +60,8 @@
@Override
@NonNull
public Map<String, List<OverlayManager.OverlayInfo>> getOverlays() throws RemoteException {
- Map<String, List<android.content.om.OverlayInfo>> overlays = mOverlayManager
- .getAllOverlays(mCarUserManagerHelper.getCurrentForegroundUserId());
+ Map<String, List<android.content.om.OverlayInfo>> overlays =
+ mOverlayManager.getAllOverlays(ActivityManager.getCurrentUser());
return overlays.entrySet()
.stream()
.collect(toMap(Map.Entry::getKey, e -> e.getValue()
@@ -74,7 +72,6 @@
@Override
public void applyOverlay(@NonNull String packageName, boolean enable) throws RemoteException {
- mOverlayManager.setEnabled(packageName, enable,
- mCarUserManagerHelper.getCurrentForegroundUserId());
+ mOverlayManager.setEnabled(packageName, enable, ActivityManager.getCurrentUser());
}
}
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/preferences/PreferenceDemoFragment.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/preferences/PreferenceDemoFragment.java
index ccd21ef..233c873 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/preferences/PreferenceDemoFragment.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/preferences/PreferenceDemoFragment.java
@@ -19,6 +19,8 @@
import android.os.Bundle;
import com.android.car.ui.paintbooth.R;
+import com.android.car.ui.preference.CarUiPreference;
+import com.android.car.ui.preference.CarUiSwitchPreference;
import com.android.car.ui.preference.PreferenceFragment;
/**
@@ -30,5 +32,23 @@
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preference_samples, rootKey);
+ CarUiPreference preferenceDisabledWithoutRipple = findPreference(
+ "preference_disabled_without_ripple");
+ preferenceDisabledWithoutRipple.setEnabled(false);
+ preferenceDisabledWithoutRipple.setMessageToShowWhenDisabledPreferenceClicked(
+ "I am disabled because...");
+ preferenceDisabledWithoutRipple.setShouldShowRippleOnDisabledPreference(false);
+
+ CarUiPreference preferenceDisabledWithRipple = findPreference(
+ "preference_disabled_with_ripple");
+ preferenceDisabledWithRipple.setEnabled(false);
+ preferenceDisabledWithRipple.setMessageToShowWhenDisabledPreferenceClicked(
+ "I am disabled because...");
+ preferenceDisabledWithRipple.setShouldShowRippleOnDisabledPreference(true);
+
+ CarUiSwitchPreference carUiSwitchPreference = findPreference("switch");
+ carUiSwitchPreference.setEnabled(false);
+ carUiSwitchPreference.setMessageToShowWhenDisabledPreferenceClicked(
+ "I am disabled because...");
}
}
diff --git a/car-ui-lib/tests/robotests/Android.bp b/car-ui-lib/tests/robotests/Android.bp
new file mode 100644
index 0000000..20e67ef
--- /dev/null
+++ b/car-ui-lib/tests/robotests/Android.bp
@@ -0,0 +1,53 @@
+//
+// 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.
+//
+
+//###########################################################
+// CarUi lib just for Robolectric test target. #
+//###########################################################
+android_app {
+ name: "CarUi",
+
+ resource_dirs: [
+ "res",
+ ],
+
+ platform_apis: true,
+
+ privileged: true,
+
+ libs: ["android.car"],
+
+ static_libs: ["car-ui-lib"],
+
+}
+
+//###############################################
+// Car Ui Robolectric test target. #
+//###############################################
+android_robolectric_test {
+ name: "CarUiRoboTests",
+
+ srcs: ["src/**/*.java"],
+
+ java_resource_dirs: ["config"],
+
+ libs: [
+ "android.car",
+ "testng",
+ ],
+
+ instrumentation_for: "CarUi",
+}
diff --git a/car-ui-lib/tests/robotests/Android.mk b/car-ui-lib/tests/robotests/Android.mk
deleted file mode 100644
index a532bc9..0000000
--- a/car-ui-lib/tests/robotests/Android.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# 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)
-
-############################################################
-# CarUi lib just for Robolectric test target. #
-############################################################
-include $(CLEAR_VARS)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
- $(LOCAL_PATH)/tests/robotests/res \
-
-LOCAL_PACKAGE_NAME := CarUi
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_JAVA_LIBRARIES := android.car
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
- car-ui-lib
-
-include $(BUILD_PACKAGE)
-
-################################################
-# Car Ui Robolectric test target. #
-################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CarUiRoboTests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := config
-
-# Include the testing libraries
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- testng \
- truth-prebuilt
-
-LOCAL_INSTRUMENTATION_FOR := CarUi
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##################################################################
-# Car Ui runner target to run the previous target. #
-##################################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunCarUiRoboTests
-
-LOCAL_JAVA_LIBRARIES := \
- android.car \
- CarUiRoboTests \
- robolectric_android-all-stub \
- Robolectric_all-target \
- mockito-robolectric-prebuilt \
- testng \
- truth-prebuilt
-
-LOCAL_TEST_PACKAGE := CarUi
-
-LOCAL_ROBOTEST_FILES := $(filter-out %/BaseRobolectricTest.java,\
- $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.))
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include external/robolectric-shadows/run_robotests.mk
diff --git a/car-ui-lib/tests/robotests/build.gradle b/car-ui-lib/tests/robotests/build.gradle
index 7625bf0..b741419 100644
--- a/car-ui-lib/tests/robotests/build.gradle
+++ b/car-ui-lib/tests/robotests/build.gradle
@@ -82,5 +82,5 @@
testImplementation "com.google.truth:truth:0.29"
testImplementation "org.testng:testng:6.9.9"
- implementation files('../../../../../../../out/target/common/obj/JAVA_LIBRARIES/android.car_intermediates/classes-pre-proguard.jar')
+ implementation files('../../../../../../../out/target/common/obj/JAVA_LIBRARIES/android.car_intermediates/classes.jar')
}
diff --git a/car-ui-lib/tests/robotests/config/robolectric.properties b/car-ui-lib/tests/robotests/config/robolectric.properties
index 8768f6b..849e07f 100644
--- a/car-ui-lib/tests/robotests/config/robolectric.properties
+++ b/car-ui-lib/tests/robotests/config/robolectric.properties
@@ -13,5 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-manifest=packages/apps/Car/libs/car-ui-lib/tests/robotests/AndroidManifest.xml
sdk=NEWEST_SDK
diff --git a/car-ui-lib/tests/robotests/src/com/android/car/ui/TestConfig.java b/car-ui-lib/tests/robotests/src/com/android/car/ui/TestConfig.java
deleted file mode 100644
index 46a9d0c..0000000
--- a/car-ui-lib/tests/robotests/src/com/android/car/ui/TestConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.android.car.ui;
-
-public class TestConfig {
- public static final int SDK_VERSION = 28;
- public static final String MANIFEST_PATH =
- "packages/apps/Car/car-ui-lib/AndroidManifest.xml";
-}
diff --git a/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ShadowAsyncLayoutInflater.java b/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ShadowAsyncLayoutInflater.java
new file mode 100644
index 0000000..817ab97
--- /dev/null
+++ b/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ShadowAsyncLayoutInflater.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.car.ui.toolbar;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+/**
+ * Shadow of {@link AsyncLayoutInflater} that inflates synchronously, so that tests
+ * don't have to have complicated code to wait for these inflations.
+ */
+@Implements(AsyncLayoutInflater.class)
+public class ShadowAsyncLayoutInflater {
+ @Implementation
+ public void inflate(@LayoutRes int resid, @Nullable ViewGroup parent,
+ @NonNull AsyncLayoutInflater.OnInflateFinishedListener callback) {
+ View result = LayoutInflater.from(parent.getContext())
+ .inflate(resid, parent, false);
+
+ callback.onInflateFinished(result, resid, parent);
+ }
+}
diff --git a/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ToolbarTest.java b/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ToolbarTest.java
index f943ec5..5d99f95 100644
--- a/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ToolbarTest.java
+++ b/car-ui-lib/tests/robotests/src/com/android/car/ui/toolbar/ToolbarTest.java
@@ -42,7 +42,8 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ExtendedShadowTypeface.class}, qualifiers = "land")
+@Config(shadows = {ExtendedShadowTypeface.class, ShadowAsyncLayoutInflater.class},
+ qualifiers = "land")
public class ToolbarTest {
private Context mContext;
diff --git a/car-ui-lib/tests/robotests/src/com/android/car/ui/utils/CarUxRestrictionsUtilTest.java b/car-ui-lib/tests/robotests/src/com/android/car/ui/utils/CarUxRestrictionsUtilTest.java
index fe6f80c..ea62ee5 100644
--- a/car-ui-lib/tests/robotests/src/com/android/car/ui/utils/CarUxRestrictionsUtilTest.java
+++ b/car-ui-lib/tests/robotests/src/com/android/car/ui/utils/CarUxRestrictionsUtilTest.java
@@ -20,17 +20,13 @@
import android.car.drivingstate.CarUxRestrictions;
-import com.android.car.ui.TestConfig;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class CarUxRestrictionsUtilTest {
private int[] mRestrictionsArray;
diff --git a/car-ui-lib/tests/tools/quick_rro.py b/car-ui-lib/tests/tools/quick_rro.py
index 3d7d9ea..aaf186b 100755
--- a/car-ui-lib/tests/tools/quick_rro.py
+++ b/car-ui-lib/tests/tools/quick_rro.py
@@ -142,11 +142,11 @@
if len(packages) == 0:
print('No quick RROs to uninstall')
-def delete_arsc_flat_files(path):
- """Deletes all .arsc.flat files under `path`"""
+def delete_flat_files(path):
+ """Deletes all .flat files under `path`"""
for filename in os.listdir(path):
- if filename.endswith('.arsc.flat'):
- run_command(['rm', os.path.join(path, filename)])
+ if filename.endswith('.flat'):
+ os.remove(os.path.join(path, filename))
def build(args, package_name):
"""Builds the RRO apk"""
@@ -200,7 +200,7 @@
run_command(['aapt2', 'compile', '-o', os.path.join(root_folder, 'compiled.zip'),
'--dir', resource_folder])
- delete_arsc_flat_files(root_folder)
+ delete_flat_files(root_folder)
run_command(['unzip', os.path.join(root_folder, 'compiled.zip'),
'-d', root_folder])
@@ -209,14 +209,14 @@
'-o', unsigned_apk, '--manifest', manifest_file,
'-I', android_jar_path]
for filename in os.listdir(root_folder):
- if filename.endswith('.arsc.flat'):
+ if filename.endswith('.flat'):
link_command.extend(['-R', os.path.join(root_folder, filename)])
run_command(link_command)
- # For some reason signapk.jar requires a relative path to out/host/linux-x86/lib64
+ # For some reason signapk.jar requires a relative path to out/soong/host/linux-x86/lib64
os.chdir(os.environ['ANDROID_BUILD_TOP'])
- run_command(['java', '-Djava.library.path=out/host/linux-x86/lib64',
- '-jar', 'out/host/linux-x86/framework/signapk.jar',
+ run_command(['java', '-Djava.library.path=out/soong/host/linux-x86/lib64',
+ '-jar', 'out/soong/host/linux-x86/framework/signapk.jar',
'build/target/product/security/platform.x509.pem',
'build/target/product/security/platform.pk8',
unsigned_apk, signed_apk])
@@ -281,8 +281,8 @@
sys.exit(1)
if not os.path.isfile(os.path.join(
- os.environ['ANDROID_BUILD_TOP'], 'out/host/linux-x86/framework/signapk.jar')):
- print('out/host/linux-x86/framework/signapk.jar missing, please do an android build first')
+ os.environ['ANDROID_BUILD_TOP'], 'out/soong/host/linux-x86/framework/signapk.jar')):
+ print('out/soong/host/linux-x86/framework/signapk.jar missing, please do an android build first')
sys.exit(1)
package_name = get_package_name(args)
@@ -299,7 +299,7 @@
print('Enabling...')
# Enabling RROs sometimes fails shortly after installing them
time.sleep(1)
- run_command(['adb', 'shell', 'cmd', 'overlay', 'enable', '--user', '10', package_name])
+ run_command(['adb', 'shell', 'cmd', 'overlay', 'enable', '--user', 'current', package_name])
print('Done!')
diff --git a/connected-device-lib/Android.bp b/connected-device-lib/Android.bp
index 85490be..192aa25 100644
--- a/connected-device-lib/Android.bp
+++ b/connected-device-lib/Android.bp
@@ -30,13 +30,13 @@
libs: ["android.car"],
static_libs: [
- "EncryptionRunner-lib",
+ "EncryptionRunner",
"androidx.room_room-runtime",
"connected-device-protos",
],
plugins: [
- "car-androidx-room-compiler",
+ "androidx.room_room-compiler-plugin",
],
platform_apis: true,
diff --git a/connected-device-lib/lib/kotlin-reflect-sources.jar b/connected-device-lib/lib/kotlin-reflect-sources.jar
deleted file mode 100644
index 917a722..0000000
--- a/connected-device-lib/lib/kotlin-reflect-sources.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-reflect.jar b/connected-device-lib/lib/kotlin-reflect.jar
deleted file mode 100644
index e872351..0000000
--- a/connected-device-lib/lib/kotlin-reflect.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib-jdk7-sources.jar b/connected-device-lib/lib/kotlin-stdlib-jdk7-sources.jar
deleted file mode 100644
index 551568d..0000000
--- a/connected-device-lib/lib/kotlin-stdlib-jdk7-sources.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib-jdk7.jar b/connected-device-lib/lib/kotlin-stdlib-jdk7.jar
deleted file mode 100644
index d80ae96..0000000
--- a/connected-device-lib/lib/kotlin-stdlib-jdk7.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib-jdk8-sources.jar b/connected-device-lib/lib/kotlin-stdlib-jdk8-sources.jar
deleted file mode 100644
index 3538660..0000000
--- a/connected-device-lib/lib/kotlin-stdlib-jdk8-sources.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib-jdk8.jar b/connected-device-lib/lib/kotlin-stdlib-jdk8.jar
deleted file mode 100644
index 08101a3..0000000
--- a/connected-device-lib/lib/kotlin-stdlib-jdk8.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib-sources.jar b/connected-device-lib/lib/kotlin-stdlib-sources.jar
deleted file mode 100644
index 2bdaf9e..0000000
--- a/connected-device-lib/lib/kotlin-stdlib-sources.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-stdlib.jar b/connected-device-lib/lib/kotlin-stdlib.jar
deleted file mode 100644
index 2bd7644..0000000
--- a/connected-device-lib/lib/kotlin-stdlib.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-test-sources.jar b/connected-device-lib/lib/kotlin-test-sources.jar
deleted file mode 100644
index 7bd21ce..0000000
--- a/connected-device-lib/lib/kotlin-test-sources.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/lib/kotlin-test.jar b/connected-device-lib/lib/kotlin-test.jar
deleted file mode 100644
index ede1d8b..0000000
--- a/connected-device-lib/lib/kotlin-test.jar
+++ /dev/null
Binary files differ
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
index 9fefecf..8218a94 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
@@ -111,6 +111,8 @@
private AssociationCallback mAssociationCallback;
+ private MessageDeliveryDelegate mMessageDeliveryDelegate;
+
@Retention(SOURCE)
@IntDef(prefix = { "DEVICE_ERROR_" },
value = {
@@ -187,22 +189,20 @@
public void start() {
logd(TAG, "Starting ConnectedDeviceManager.");
EventLog.onConnectedDeviceManagerStarted();
- //mCentralManager.start();
+ // TODO (b/141312136) Start central manager
mPeripheralManager.start();
connectToActiveUserDevice();
}
- /** Clean up internal processes and disconnect any active connections. */
- public void cleanup() {
- logd(TAG, "Cleaning up ConnectedDeviceManager.");
- mIsConnectingToUserDevice.set(false);
- mCentralManager.stop();
+ /** Reset internal processes and disconnect any active connections. */
+ public void reset() {
+ logd(TAG, "Resetting ConnectedDeviceManager.");
+ for (InternalConnectedDevice device : mConnectedDevices.values()) {
+ removeConnectedDevice(device.mConnectedDevice.getDeviceId(), device.mCarBleManager);
+ }
mPeripheralManager.stop();
- mDeviceCallbacks.clear();
- mDeviceAssociationCallbacks.clear();
- mActiveUserConnectionCallbacks.clear();
- mAllUserConnectionCallbacks.clear();
- mStorage.clearAssociationDeviceCallback();
+ // TODO (b/141312136) Stop central manager
+ mIsConnectingToUserDevice.set(false);
}
/** Returns {@link List<ConnectedDevice>} of devices currently connected. */
@@ -423,6 +423,15 @@
}
}
+ /**
+ * Set the delegate for message delivery operations.
+ *
+ * @param delegate The {@link MessageDeliveryDelegate} to set. {@code null} to unset.
+ */
+ public void setMessageDeliveryDelegate(@Nullable MessageDeliveryDelegate delegate) {
+ mMessageDeliveryDelegate = delegate;
+ }
+
private void notifyOfBlacklisting(@NonNull ConnectedDevice device, @NonNull UUID recipientId,
@NonNull DeviceCallback callback, @NonNull Executor executor) {
loge(TAG, "Multiple callbacks registered for recipient " + recipientId + "! Your "
@@ -604,7 +613,7 @@
invokeConnectionCallbacks(isAssociated,
callback -> callback.onDeviceDisconnected(connectedDevice.mConnectedDevice));
- if (isAssociated) {
+ if (isAssociated || mConnectedDevices.isEmpty()) {
// Try to regain connection to active user's device.
connectToActiveUserDevice();
}
@@ -650,6 +659,15 @@
+ "recipient " + message.getRecipient() + ".");
return;
}
+
+ if (mMessageDeliveryDelegate != null
+ && !mMessageDeliveryDelegate.shouldDeliverMessageForDevice(
+ connectedDevice.mConnectedDevice)) {
+ logw(TAG, "The message delegate has rejected this message. It will not be "
+ + "delivered to the intended recipient.");
+ return;
+ }
+
UUID recipientId = message.getRecipient();
Map<UUID, ThreadSafeCallbacks<DeviceCallback>> deviceCallbacks =
mDeviceCallbacks.get(deviceId);
@@ -883,6 +901,13 @@
void onAssociatedDeviceUpdated(@NonNull AssociatedDevice device);
}
+ /** Delegate for message delivery operations. */
+ public interface MessageDeliveryDelegate {
+
+ /** Indicate whether a message should be delivered for the specified device. */
+ boolean shouldDeliverMessageForDevice(@NonNull ConnectedDevice device);
+ }
+
private static class InternalConnectedDevice {
private final ConnectedDevice mConnectedDevice;
private final CarBleManager mCarBleManager;
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleManager.java
index a00ff18..0b05906 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleManager.java
@@ -64,7 +64,6 @@
}
}
mConnectedDevices.clear();
- mCallbacks.clear();
}
/**
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
index 3a4ebcc..5dec98d 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
@@ -494,8 +494,8 @@
}
logd(TAG, "Received new message from " + connectedDevice.mDeviceId
- + " with " + deviceMessage.getMessage().length + " in its payload. "
- + "Notifying " + mCallbacks.size() + " callbacks.");
+ + " with " + deviceMessage.getMessage().length + " bytes in its "
+ + "payload. Notifying " + mCallbacks.size() + " callbacks.");
mCallbacks.invoke(
callback ->callback.onMessageReceived(connectedDevice.mDeviceId,
deviceMessage));
diff --git a/connected-device-lib/tests/unit/src/com/android/car/connecteddevice/ConnectedDeviceManagerTest.java b/connected-device-lib/tests/unit/src/com/android/car/connecteddevice/ConnectedDeviceManagerTest.java
index a57d3e5..3d48578 100644
--- a/connected-device-lib/tests/unit/src/com/android/car/connecteddevice/ConnectedDeviceManagerTest.java
+++ b/connected-device-lib/tests/unit/src/com/android/car/connecteddevice/ConnectedDeviceManagerTest.java
@@ -37,6 +37,7 @@
import com.android.car.connecteddevice.ConnectedDeviceManager.ConnectionCallback;
import com.android.car.connecteddevice.ConnectedDeviceManager.DeviceAssociationCallback;
import com.android.car.connecteddevice.ConnectedDeviceManager.DeviceCallback;
+import com.android.car.connecteddevice.ConnectedDeviceManager.MessageDeliveryDelegate;
import com.android.car.connecteddevice.ble.CarBleCentralManager;
import com.android.car.connecteddevice.ble.CarBleManager;
import com.android.car.connecteddevice.ble.CarBlePeripheralManager;
@@ -540,8 +541,7 @@
}
@Test
- public void removeConnectedDevice_startsAdvertisingForActiveUserDevice()
- throws InterruptedException {
+ public void removeConnectedDevice_startsAdvertisingForActiveUserDeviceOnActiveUserDisconnect() {
String deviceId = UUID.randomUUID().toString();
when(mMockStorage.getActiveUserAssociatedDeviceIds()).thenReturn(
Collections.singletonList(deviceId));
@@ -551,15 +551,12 @@
Collections.singletonList(device));
mConnectedDeviceManager.addConnectedDevice(deviceId, mMockPeripheralManager);
mConnectedDeviceManager.removeConnectedDevice(deviceId, mMockPeripheralManager);
- Thread.sleep(100); // Async process so need to allow it time to complete.
- // ConnectedDeviceManager.start() also invokes connectToDevice(), so expect # of calls = 2.
- verify(mMockPeripheralManager, timeout(1000).times(2))
+ verify(mMockPeripheralManager, timeout(1000))
.connectToDevice(eq(UUID.fromString(deviceId)));
}
@Test
- public void removeConnectedDevice__doesNotAdvertiseForNonActiveUserDevice()
- throws InterruptedException {
+ public void removeConnectedDevice_startsAdvertisingForActiveUserDeviceOnLastDeviceDisconnect() {
String deviceId = UUID.randomUUID().toString();
String userDeviceId = UUID.randomUUID().toString();
when(mMockStorage.getActiveUserAssociatedDeviceIds()).thenReturn(
@@ -570,12 +567,28 @@
Collections.singletonList(userDevice));
mConnectedDeviceManager.addConnectedDevice(deviceId, mMockPeripheralManager);
mConnectedDeviceManager.removeConnectedDevice(deviceId, mMockPeripheralManager);
- // ConnectedDeviceManager.start() invokes connectToDevice(), so expect # of calls = 1.
verify(mMockPeripheralManager, timeout(1000))
.connectToDevice(eq(UUID.fromString(userDeviceId)));
}
@Test
+ public void removeConnectedDevice__doesNotAdvertiseForNonActiveUserDeviceNotLastDevice() {
+ String deviceId = UUID.randomUUID().toString();
+ String userDeviceId = UUID.randomUUID().toString();
+ when(mMockStorage.getActiveUserAssociatedDeviceIds()).thenReturn(
+ Collections.singletonList(userDeviceId));
+ AssociatedDevice userDevice = new AssociatedDevice(userDeviceId, TEST_DEVICE_ADDRESS,
+ TEST_DEVICE_NAME, /* isConnectionEnabled = */ true);
+ when(mMockStorage.getActiveUserAssociatedDevices()).thenReturn(
+ Collections.singletonList(userDevice));
+ mConnectedDeviceManager.addConnectedDevice(deviceId, mMockPeripheralManager);
+ mConnectedDeviceManager.addConnectedDevice(userDeviceId, mMockCentralManager);
+ mConnectedDeviceManager.removeConnectedDevice(deviceId, mMockPeripheralManager);
+ verify(mMockPeripheralManager, timeout(1000).times(0))
+ .connectToDevice(eq(UUID.fromString(userDeviceId)));
+ }
+
+ @Test
public void removeActiveUserAssociatedDevice_deletesAssociatedDeviceFromStorage() {
String deviceId = UUID.randomUUID().toString();
mConnectedDeviceManager.removeActiveUserAssociatedDevice(deviceId);
@@ -610,6 +623,54 @@
verify(mMockPeripheralManager).disconnectDevice(deviceId);
}
+ @Test
+ public void onMessageReceived_deliversMessageIfDelegateIsNull() throws InterruptedException {
+ connectNewDevice(mMockCentralManager);
+ ConnectedDevice connectedDevice =
+ mConnectedDeviceManager.getActiveUserConnectedDevices().get(0);
+ Semaphore semaphore = new Semaphore(0);
+ DeviceCallback deviceCallback = createDeviceCallback(semaphore);
+ mConnectedDeviceManager.registerDeviceCallback(connectedDevice, mRecipientId,
+ deviceCallback, mCallbackExecutor);
+ DeviceMessage message = new DeviceMessage(mRecipientId, false, new byte[10]);
+ mConnectedDeviceManager.setMessageDeliveryDelegate(null);
+ mConnectedDeviceManager.onMessageReceived(connectedDevice.getDeviceId(), message);
+ assertThat(tryAcquire(semaphore)).isTrue();
+ }
+
+ @Test
+ public void onMessageReceived_deliversMessageIfDelegateAccepts() throws InterruptedException {
+ connectNewDevice(mMockCentralManager);
+ ConnectedDevice connectedDevice =
+ mConnectedDeviceManager.getActiveUserConnectedDevices().get(0);
+ Semaphore semaphore = new Semaphore(0);
+ DeviceCallback deviceCallback = createDeviceCallback(semaphore);
+ mConnectedDeviceManager.registerDeviceCallback(connectedDevice, mRecipientId,
+ deviceCallback, mCallbackExecutor);
+ DeviceMessage message = new DeviceMessage(mRecipientId, false, new byte[10]);
+ MessageDeliveryDelegate delegate = device -> true;
+ mConnectedDeviceManager.setMessageDeliveryDelegate(delegate);
+ mConnectedDeviceManager.onMessageReceived(connectedDevice.getDeviceId(), message);
+ assertThat(tryAcquire(semaphore)).isTrue();
+ }
+
+ @Test
+ public void onMessageReceived_doesNotDeliverMessageIfDelegateRejects()
+ throws InterruptedException {
+ connectNewDevice(mMockCentralManager);
+ ConnectedDevice connectedDevice =
+ mConnectedDeviceManager.getActiveUserConnectedDevices().get(0);
+ Semaphore semaphore = new Semaphore(0);
+ DeviceCallback deviceCallback = createDeviceCallback(semaphore);
+ mConnectedDeviceManager.registerDeviceCallback(connectedDevice, mRecipientId,
+ deviceCallback, mCallbackExecutor);
+ DeviceMessage message = new DeviceMessage(mRecipientId, false, new byte[10]);
+ MessageDeliveryDelegate delegate = device -> false;
+ mConnectedDeviceManager.setMessageDeliveryDelegate(delegate);
+ mConnectedDeviceManager.onMessageReceived(connectedDevice.getDeviceId(), message);
+ assertThat(tryAcquire(semaphore)).isFalse();
+ }
+
@NonNull
private String connectNewDevice(@NonNull CarBleManager carBleManager) {
String deviceId = UUID.randomUUID().toString();
diff --git a/glide/Android.mk b/glide/Android.mk
deleted file mode 100644
index 41e3937..0000000
--- a/glide/Android.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# Copyright (C) 2018 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_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-glide-disklrucache
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/disklrucache/SNAPSHOT/disklrucache-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_NOTICE_FILE := prebuilts/maven_repo/bumptech/LICENSE
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-gifdecoder
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/gifdecoder/SNAPSHOT/gifdecoder-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_NOTICE_FILE := prebuilts/maven_repo/bumptech/LICENSE
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE := car-glide
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := ../../../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/glide/SNAPSHOT/glide-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_NOTICE_FILE := prebuilts/maven_repo/bumptech/LICENSE
-LOCAL_JETIFIER_ENABLED := true
-LOCAL_UNINSTALLABLE_MODULE := true
-
-include $(BUILD_PREBUILT)
\ No newline at end of file