Merge "Retry logic for Unlock BLE Advertising" into qt-dev
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..fc4eb1b
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,13 @@
+BasedOnStyle: Google
+AllowShortBlocksOnASingleLine: false
+AllowShortFunctionsOnASingleLine: false
+
+AccessModifierOffset: -2
+ColumnLimit: 100
+CommentPragmas: NOLINT:.*
+DerivePointerAlignment: false
+IndentWidth: 4
+PointerAlignment: Left
+TabWidth: 4
+UseTab: Never
+PenaltyExcessCharacter: 32
diff --git a/FrameworkPackageStubs/AndroidManifest.xml b/FrameworkPackageStubs/AndroidManifest.xml
index c9eae62..1cfd7de 100644
--- a/FrameworkPackageStubs/AndroidManifest.xml
+++ b/FrameworkPackageStubs/AndroidManifest.xml
@@ -9,6 +9,17 @@
<application android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
+ <!-- Dialer stubs -->
+ <activity android:name=".Stubs$DialerStub"
+ android:label="@string/stub_name"
+ android:excludeFromRecents="true">
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.DIAL" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="voicemail"/>
+ </intent-filter>
+ </activity>
+
<!-- Music / media stubs. -->
<activity android:name=".Stubs$MediaStub"
android:label="@string/stub_name"
@@ -68,5 +79,56 @@
</intent-filter>
</activity>
+ <!-- CDD Core Application Intents Stubs -->
+ <!-- Desk Clock -->
+ <activity android:name=".Stubs$DeskClockStub"
+ android:label="@string/stub_name"
+ android:excludeFromRecents="true">
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.SET_ALARM" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.SET_TIMER" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.SHOW_ALARMS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.DISMISS_ALARM" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.SHOW_TIMERS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.SNOOZE_ALARM" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ <!-- Calendar -->
+ <activity android:name=".Stubs$CalendarStub"
+ android:label="@string/stub_name"
+ android:excludeFromRecents="true">
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.EDIT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.item/event" />
+ </intent-filter>
+ </activity>
+
+ <!-- Browser -->
+ <activity android:name=".Stubs$BrowserStub"
+ android:label="@string/stub_name"
+ android:excludeFromRecents="true">
+ <intent-filter android:priority="-1">
+ <action android:name="android.intent.action.WEB_SEARCH" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
</application>
</manifest>
diff --git a/FrameworkPackageStubs/src/com/android/car/frameworkpackagestubs/Stubs.java b/FrameworkPackageStubs/src/com/android/car/frameworkpackagestubs/Stubs.java
index 5ebcabd..056912a 100644
--- a/FrameworkPackageStubs/src/com/android/car/frameworkpackagestubs/Stubs.java
+++ b/FrameworkPackageStubs/src/com/android/car/frameworkpackagestubs/Stubs.java
@@ -64,6 +64,26 @@
}
/**
+ * Stub activity for Browser events.
+ */
+ public static class BrowserStub extends BaseActivity { }
+
+ /**
+ * Stub activity for Calendar events.
+ */
+ public static class CalendarStub extends BaseActivity { }
+
+ /**
+ * Stub activity for Desk Clock events.
+ */
+ public static class DeskClockStub extends BaseActivity { }
+
+ /**
+ * Stub activity for Dialer events.
+ */
+ public static class DialerStub extends BaseActivity { }
+
+ /**
* Stub activity for media events.
*/
public static class MediaStub extends BaseActivity { }
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d935103
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+Native (C++) code format is required to be compatible with .clang-format file. Run
+
+```
+git clang-format --style=file --extension='h,cpp,cc' HEAD~
+```
+
+Note that clang-format is *not* desirable for Android java files. Therefore
+the command line above is limited to specific extensions.
+
diff --git a/car-bugreportd/Android.bp b/car-bugreportd/Android.bp
new file mode 100644
index 0000000..e026d0b
--- /dev/null
+++ b/car-bugreportd/Android.bp
@@ -0,0 +1,35 @@
+//
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+cc_binary {
+ name: "car-bugreportd",
+ init_rc: ["car-bugreportd.rc"],
+ srcs: [
+ "main.cpp",
+ ],
+ cflags: [
+ "-Werror",
+ "-Wall",
+ ],
+ cppflags: [
+ "-Wno-unused-parameter",
+ ],
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libcutils",
+ ],
+}
diff --git a/car-bugreportd/car-bugreportd.rc b/car-bugreportd/car-bugreportd.rc
new file mode 100644
index 0000000..4c405e1
--- /dev/null
+++ b/car-bugreportd/car-bugreportd.rc
@@ -0,0 +1,17 @@
+service car-bugreportd /system/bin/car-bugreportd
+ socket car_br_progress_socket stream 0660 shell log
+ socket car_br_output_socket stream 0660 shell log
+ class core
+ user shell
+ group log
+ disabled
+ oneshot
+
+# car-dumpstatez generates a zipped bugreport but also uses a socket to print the file location once
+# it is finished.
+service car-dumpstatez /system/bin/dumpstate -S -d -z \
+ -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+ socket dumpstate stream 0660 shell log
+ class main
+ disabled
+ oneshot
\ No newline at end of file
diff --git a/car-bugreportd/main.cpp b/car-bugreportd/main.cpp
new file mode 100644
index 0000000..055d35a
--- /dev/null
+++ b/car-bugreportd/main.cpp
@@ -0,0 +1,247 @@
+/*
+ * 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.
+ */
+
+#define LOG_TAG "car-bugreportd"
+
+#include <android-base/errors.h>
+#include <android-base/file.h>
+#include <android-base/logging.h>
+#include <android-base/macros.h>
+#include <android-base/properties.h>
+#include <android-base/stringprintf.h>
+#include <android-base/strings.h>
+#include <android-base/unique_fd.h>
+#include <cutils/sockets.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <log/log_main.h>
+#include <private/android_filesystem_config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <chrono>
+#include <string>
+#include <vector>
+
+namespace {
+// Socket to write the progress information.
+constexpr const char* kCarBrProgressSocket = "car_br_progress_socket";
+// Socket to write the zipped bugreport file.
+constexpr const char* kCarBrOutputSocket = "car_br_output_socket";
+// The prefix used by bugreportz protocol to indicate bugreport finished successfully.
+constexpr const char* kOkPrefix = "OK:";
+// Number of connect attempts to dumpstate socket
+constexpr const int kMaxDumpstateConnectAttempts = 20;
+// Wait time between connect attempts
+constexpr const int kWaitTimeBetweenConnectAttemptsInSec = 1;
+// Wait time for dumpstate. No timeout in dumpstate is longer than 60 seconds. Choose
+// a value that is twice longer.
+constexpr const int kDumpstateTimeoutInSec = 120;
+
+// Returns a valid socket descriptor or -1 on failure.
+int openSocket(const char* service) {
+ int s = android_get_control_socket(service);
+ if (s < 0) {
+ ALOGE("android_get_control_socket(%s): %s", service, strerror(errno));
+ return -1;
+ }
+ fcntl(s, F_SETFD, FD_CLOEXEC);
+ if (listen(s, 4) < 0) {
+ ALOGE("listen(control socket): %s", strerror(errno));
+ return -1;
+ }
+
+ struct sockaddr addr;
+ socklen_t alen = sizeof(addr);
+ int fd = accept(s, &addr, &alen);
+ if (fd < 0) {
+ ALOGE("accept(control socket): %s", strerror(errno));
+ return -1;
+ }
+ return fd;
+}
+
+// Processes the given dumpstate progress protocol |line| and updates
+// |out_last_nonempty_line| when |line| is non-empty, and |out_zip_path| when
+// the bugreport is finished.
+void processLine(const std::string& line, std::string* out_zip_path,
+ std::string* out_last_nonempty_line) {
+ // The protocol is documented in frameworks/native/cmds/bugreportz/readme.md
+ if (line.empty()) {
+ return;
+ }
+ *out_last_nonempty_line = line;
+ if (line.find(kOkPrefix) != 0) {
+ return;
+ }
+ *out_zip_path = line.substr(strlen(kOkPrefix));
+ return;
+}
+
+int copyTo(int fd_in, int fd_out, void* buffer, size_t buffer_len) {
+ ssize_t bytes_read = TEMP_FAILURE_RETRY(read(fd_in, buffer, buffer_len));
+ if (bytes_read == 0) {
+ return 0;
+ }
+ if (bytes_read == -1) {
+ // EAGAIN really means time out, so make that clear.
+ if (errno == EAGAIN) {
+ ALOGE("read timed out");
+ } else {
+ ALOGE("read terminated abnormally (%s)", strerror(errno));
+ }
+ return -1;
+ }
+ // copy all bytes to the output socket
+ if (!android::base::WriteFully(fd_out, buffer, bytes_read)) {
+ ALOGE("write failed");
+ return -1;
+ }
+ return bytes_read;
+}
+
+bool copyFile(const std::string& zip_path, int output_socket) {
+ android::base::unique_fd fd(TEMP_FAILURE_RETRY(open(zip_path.c_str(), O_RDONLY)));
+ if (fd == -1) {
+ return false;
+ }
+ while (1) {
+ char buffer[65536];
+ int bytes_copied = copyTo(fd, output_socket, buffer, sizeof(buffer));
+ if (bytes_copied == 0) {
+ break;
+ }
+ if (bytes_copied == -1) {
+ return false;
+ }
+ }
+ return true;
+}
+
+// Triggers a bugreport and waits until it is all collected.
+// returns false if error, true if success
+bool doBugreport(int progress_socket, size_t* out_bytes_written, std::string* zip_path) {
+ // Socket will not be available until service starts.
+ android::base::unique_fd s;
+ for (int i = 0; i < kMaxDumpstateConnectAttempts; i++) {
+ s.reset(socket_local_client("dumpstate", ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM));
+ if (s != -1) break;
+ sleep(kWaitTimeBetweenConnectAttemptsInSec);
+ }
+
+ if (s == -1) {
+ ALOGE("failed to connect to dumpstatez service");
+ return false;
+ }
+
+ // Set a timeout so that if nothing is read by the timeout, stop reading and quit
+ struct timeval tv = {
+ .tv_sec = kDumpstateTimeoutInSec,
+ .tv_usec = 0,
+ };
+ if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) != 0) {
+ ALOGW("Cannot set socket timeout (%s)", strerror(errno));
+ }
+
+ std::string line;
+ std::string last_nonempty_line;
+ while (true) {
+ char buffer[65536];
+ ssize_t bytes_read = copyTo(s, progress_socket, buffer, sizeof(buffer));
+ if (bytes_read == 0) {
+ break;
+ }
+ if (bytes_read == -1) {
+ return false;
+ }
+ // Process the buffer line by line. this is needed for the filename.
+ for (int i = 0; i < bytes_read; i++) {
+ char c = buffer[i];
+ if (c == '\n') {
+ processLine(line, zip_path, &last_nonempty_line);
+ line.clear();
+ } else {
+ line.append(1, c);
+ }
+ }
+ }
+ s.reset();
+ // Process final line, in case it didn't finish with newline.
+ processLine(line, zip_path, &last_nonempty_line);
+ // if doBugReport finished successfully, zip path should be set.
+ if (zip_path->empty()) {
+ ALOGE("no zip file path was found in bugreportz progress data");
+ return false;
+ }
+ return true;
+}
+
+// Removes bugreport
+void cleanupBugreportFile(const std::string& zip_path) {
+ if (unlink(zip_path.c_str()) != 0) {
+ ALOGE("Could not unlink %s (%s)", zip_path.c_str(), strerror(errno));
+ }
+}
+
+} // namespace
+
+int main(void) {
+ ALOGE("Starting bugreport collecting service");
+
+ auto t0 = std::chrono::steady_clock::now();
+
+ // Start the dumpstatez service.
+ android::base::SetProperty("ctl.start", "car-dumpstatez");
+
+ size_t bytes_written = 0;
+
+ std::string zip_path;
+ int progress_socket = openSocket(kCarBrProgressSocket);
+ if (progress_socket < 0) {
+ // early out. in this case we will not print the final message, but that is ok.
+ android::base::SetProperty("ctl.stop", "car-dumpstatez");
+ return EXIT_FAILURE;
+ }
+ bool ret_val = doBugreport(progress_socket, &bytes_written, &zip_path);
+ close(progress_socket);
+
+ int output_socket = openSocket(kCarBrOutputSocket);
+ if (output_socket != -1 && ret_val) {
+ ret_val = copyFile(zip_path, output_socket);
+ }
+ if (output_socket != -1) {
+ close(output_socket);
+ }
+
+ auto delta = std::chrono::duration_cast<std::chrono::duration<double>>(
+ std::chrono::steady_clock::now() - t0)
+ .count();
+
+ std::string result = ret_val ? "success" : "failed";
+ ALOGI("bugreport %s in %.02fs, %zu bytes written", result.c_str(), delta, bytes_written);
+ cleanupBugreportFile(zip_path);
+
+ // No matter how doBugreport() finished, let's try to explicitly stop
+ // car-dumpstatez in case it stalled.
+ android::base::SetProperty("ctl.stop", "car-dumpstatez");
+
+ return ret_val ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/car-lib/src/android/car/CarBugreportManager.java b/car-lib/src/android/car/CarBugreportManager.java
index 07e9c5d..398e208 100644
--- a/car-lib/src/android/car/CarBugreportManager.java
+++ b/car-lib/src/android/car/CarBugreportManager.java
@@ -141,9 +141,11 @@
/**
* Request a bug report. An old style flat bugreport is generated in the background.
* The fd is closed when bugreport is written or if an exception happens.
+ * This API will be removed once the clients move the new API.
*
* @param fd the dump file
* @param callback the callback for reporting dump status
+ * @deprecated use requestZippedbugreport instead.
*/
@RequiresPermission(android.Manifest.permission.DUMP)
public void requestBugreport(@NonNull ParcelFileDescriptor fd,
@@ -161,6 +163,36 @@
}
}
+ /**
+ * Request a bug report. An zipped bugreport is generated in the background.
+ * The file descriptors are closed when bugreport is written or if an exception happens.
+ * The progress protocol is described
+ * <a href="https://android.googlesource.com/platform/frameworks/native/+/master/cmds/bugreportz/readme.md">
+ * here</a>
+ *
+ * @param output the zipped bugreport file
+ * @param progress the progress information that includes failure/success status.
+ * @param callback the callback for reporting dump status
+ */
+ @RequiresPermission(android.Manifest.permission.DUMP)
+ public void requestZippedBugreport(@NonNull ParcelFileDescriptor output,
+ @NonNull ParcelFileDescriptor progress,
+ @NonNull CarBugreportManagerCallback callback) {
+ Preconditions.checkNotNull(output);
+ Preconditions.checkNotNull(progress);
+ Preconditions.checkNotNull(callback);
+ try {
+ CarBugreportManagerCallbackWrapper wrapper =
+ new CarBugreportManagerCallbackWrapper(callback, mHandler);
+ mService.requestZippedBugreport(output, progress, wrapper);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ } finally {
+ IoUtils.closeQuietly(output);
+ IoUtils.closeQuietly(progress);
+ }
+ }
+
@Override
public void onCarDisconnected() {
}
diff --git a/car-lib/src/android/car/ICarBugreportService.aidl b/car-lib/src/android/car/ICarBugreportService.aidl
index 9f20081..709cc2b 100644
--- a/car-lib/src/android/car/ICarBugreportService.aidl
+++ b/car-lib/src/android/car/ICarBugreportService.aidl
@@ -26,7 +26,23 @@
interface ICarBugreportService {
/**
- * Starts bugreport service to capture a bugreport
+ * Starts bugreport service to capture a bugreport.
+ * This method will be removed once all the clients transition to the new API.
+ * @deprecated
*/
void requestBugreport(in ParcelFileDescriptor pfd, ICarBugreportCallback callback) = 1;
- }
\ No newline at end of file
+
+ /**
+ * Starts bugreport service to capture a zipped bugreport. The caller needs to provide
+ * two file descriptors. The "output" file descriptor will be used to provide the actual
+ * zip file and the "progress" descriptor will be used to provide the progress information.
+ * Both of these descriptors are written by the service and will be read by the client.
+ *
+ * The progress protocol is described
+ * <a href="https://android.googlesource.com/platform/frameworks/native/+/master/cmds/bugreportz/readme.md">
+ * here</a>
+ */
+ void requestZippedBugreport(in ParcelFileDescriptor output, in ParcelFileDescriptor progress,
+ ICarBugreportCallback callback) = 2;
+ }
+
diff --git a/car-lib/src/android/car/VehiclePropertyIds.java b/car-lib/src/android/car/VehiclePropertyIds.java
index 14642fe..c335e58 100644
--- a/car-lib/src/android/car/VehiclePropertyIds.java
+++ b/car-lib/src/android/car/VehiclePropertyIds.java
@@ -28,55 +28,68 @@
public static final int INVALID = 0;
/**
* VIN of vehicle
+ * Requires permission: {@link Car#PERMISSION_IDENTIFICATION}.
*/
public static final int INFO_VIN = 286261504;
/**
* Manufacturer of vehicle
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_MAKE = 286261505;
/**
* Model of vehicle
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_MODEL = 286261506;
/**
* Model year of vehicle.
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_MODEL_YEAR = 289407235;
/**
* Fuel capacity of the vehicle in milliliters
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_FUEL_CAPACITY = 291504388;
/**
* List of fuels the vehicle may use
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_FUEL_TYPE = 289472773;
/**
* Battery capacity of the vehicle, if EV or hybrid. This is the nominal
* battery capacity when the vehicle is new.
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_EV_BATTERY_CAPACITY = 291504390;
/**
* List of connectors this EV may use
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_EV_CONNECTOR_TYPE = 289472775;
/**
* Fuel door location
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_FUEL_DOOR_LOCATION = 289407240;
/**
* EV port location
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_EV_PORT_LOCATION = 289407241;
/**
* Driver's seat location
+ * Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
public static final int INFO_DRIVER_SEAT = 356516106;
/**
* Current odometer value of the vehicle
+ * Requires permission: {@link Car#PERMISSION_MILEAGE}.
*/
public static final int PERF_ODOMETER = 291504644;
/**
* Speed of the vehicle
+ * Requires permission: {@link Car#PERMISSION_SPEED}.
*/
public static final int PERF_VEHICLE_SPEED = 291504647;
/**
@@ -84,60 +97,74 @@
*
* Some cars display a slightly slower speed than the actual speed. This is
* usually displayed on the speedometer.
+ * Requires permission: {@link Car#PERMISSION_SPEED}.
*/
public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648;
/**
* Steering angle of the vehicle
*
* Angle is in degrees. Left is negative.
+ * Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}.
*/
public static final int PERF_STEERING_ANGLE = 291504649;
/**
* Temperature of engine coolant
+ * Requires permission: {@link Car#PERMISSION_CAR_ENGINE_DETAILED}.
*/
public static final int ENGINE_COOLANT_TEMP = 291504897;
/**
* Engine oil level
+ * Requires permission: {@link Car#PERMISSION_CAR_ENGINE_DETAILED}.
*/
public static final int ENGINE_OIL_LEVEL = 289407747;
/**
* Temperature of engine oil
+ * Requires permission: {@link Car#PERMISSION_CAR_ENGINE_DETAILED}.
*/
public static final int ENGINE_OIL_TEMP = 291504900;
/**
* Engine rpm
+ * Requires permission: {@link Car#PERMISSION_CAR_ENGINE_DETAILED}.
*/
public static final int ENGINE_RPM = 291504901;
/**
* Reports wheel ticks
+ * Requires permission: {@link Car#PERMISSION_SPEED}.
*/
public static final int WHEEL_TICK = 290521862;
/**
* Fuel remaining in the the vehicle, in milliliters
+ * Requires permission: {@link Car#PERMISSION_ENERGY}.
*/
public static final int FUEL_LEVEL = 291504903;
/**
* Fuel door open
+ * Requires permission: {@link Car#PERMISSION_ENERGY_PORTS}.
*/
public static final int FUEL_DOOR_OPEN = 287310600;
/**
* EV battery level in WH, if EV or hybrid
+ * Requires permission: {@link Car#PERMISSION_ENERGY}.
*/
public static final int EV_BATTERY_LEVEL = 291504905;
/**
* EV charge port open
+ * Requires permission: {@link Car#PERMISSION_ENERGY_PORTS}.
*/
public static final int EV_CHARGE_PORT_OPEN = 287310602;
/**
* EV charge port connected
+ * Requires permission: {@link Car#PERMISSION_ENERGY_PORTS}.
*/
public static final int EV_CHARGE_PORT_CONNECTED = 287310603;
/**
* EV instantaneous charge rate in milliwatts
+ * Requires permission: {@link Car#PERMISSION_ENERGY}.
*/
public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908;
/**
* Range remaining
+ * Requires permission: {@link Car#PERMISSION_ENERGY}.
*/
public static final int RANGE_REMAINING = 291504904;
/**
@@ -145,12 +172,14 @@
*
* min/max value indicates tire pressure sensor range. Each tire will have a separate min/max
* value denoted by its areaConfig.areaId.
+ * Requires permission: {@link Car#PERMISSION_TIRES}.
*/
public static final int TIRE_PRESSURE = 392168201;
/**
* Currently selected gear
*
* This is the gear selected by the user.
+ * Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
public static final int GEAR_SELECTION = 289408000;
/**
@@ -158,103 +187,127 @@
* match the current gear. For example, if the selected gear is GEAR_DRIVE,
* the current gear will be one of GEAR_1, GEAR_2 etc, which reflects
* the actual gear the transmission is currently running in.
+ * Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
public static final int CURRENT_GEAR = 289408001;
/**
* Parking brake state.
+ * Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
public static final int PARKING_BRAKE_ON = 287310850;
/**
* Auto-apply parking brake.
+ * Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
public static final int PARKING_BRAKE_AUTO_APPLY = 287310851;
/**
* Warning for fuel low level.
+ * Requires permission: {@link Car#PERMISSION_ENERGY}.
*/
public static final int FUEL_LEVEL_LOW = 287310853;
/**
* Night mode
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
*/
public static final int NIGHT_MODE = 287310855;
/**
* State of the vehicles turn signals
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_LIGHTS}.
*/
public static final int TURN_SIGNAL_STATE = 289408008;
/**
* Represents ignition state
+ * Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
public static final int IGNITION_STATE = 289408009;
/**
* ABS is active
+ * Requires permission: {@link Car#PERMISSION_CAR_DYNAMICS_STATE}.
*/
public static final int ABS_ACTIVE = 287310858;
/**
* Traction Control is active
+ * Requires permission: {@link Car#PERMISSION_CAR_DYNAMICS_STATE}.
*/
public static final int TRACTION_CONTROL_ACTIVE = 287310859;
/**
* Fan speed setting
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_FAN_SPEED = 356517120;
/**
* Fan direction setting
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_FAN_DIRECTION = 356517121;
/**
* HVAC current temperature.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_TEMPERATURE_CURRENT = 358614274;
/**
* HVAC, target temperature set.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_TEMPERATURE_SET = 358614275;
/**
* On/off defrost for designated window
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_DEFROSTER = 320865540;
/**
* On/off AC for designated areaId
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_AC_ON = 354419973;
/**
* On/off max AC
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_MAX_AC_ON = 354419974;
/**
* On/off max defrost
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_MAX_DEFROST_ON = 354419975;
/**
* Recirculation on/off
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_RECIRC_ON = 354419976;
/**
* Enable temperature coupling between areas.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_DUAL_ON = 354419977;
/**
* On/off automatic mode
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_AUTO_ON = 354419978;
/**
* Seat heating/cooling
- *
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_SEAT_TEMPERATURE = 356517131;
/**
* Side Mirror Heat
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_SIDE_MIRROR_HEAT = 339739916;
/**
* Steering Wheel Heating/Cooling
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_STEERING_WHEEL_HEAT = 289408269;
/**
* Temperature units for display
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270;
/**
* Actual fan speed
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135;
/**
@@ -264,47 +317,64 @@
* properties that control individual HVAC features/subsystems to AVAILABLE
* state (unless any/all of them are UNAVAILABLE on their own individual
* merits).
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_POWER_ON = 354419984;
/**
* Fan Positions Available
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673;
/**
* Automatic recirculation on/off
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_AUTO_RECIRC_ON = 354419986;
/**
* Seat ventilation
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_CLIMATE}.
*/
public static final int HVAC_SEAT_VENTILATION = 356517139;
/**
* Distance units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
*/
public static final int DISTANCE_DISPLAY_UNITS = 289408512;
/**
* Fuel volume units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
*/
public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513;
/**
* Tire pressure units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
*/
public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514;
/**
* EV battery units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
*/
public static final int EV_BATTERY_DISPLAY_UNITS = 289408515;
/**
* Speed Units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
* @hide
*/
public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516;
/**
* Fuel consumption units for display
+ * Requires permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read the property.
+ * Requires permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} to write the property.
*/
public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364;
/**
* Outside temperature
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
*/
public static final int ENV_OUTSIDE_TEMPERATURE = 291505923;
/**
@@ -312,6 +382,7 @@
*
* It is assumed that AP's power state is controller by separate power
* controller.
+ * Requires permission: {@link Car#PERMISSION_CAR_POWER}.
*/
public static final int AP_POWER_STATE_REQ = 289475072;
/**
@@ -319,6 +390,7 @@
*
* It is assumed that AP's power state is controller by separate power
* controller.
+ * Requires permission: {@link Car#PERMISSION_CAR_POWER}.
*/
public static final int AP_POWER_STATE_REPORT = 289475073;
/**
@@ -327,12 +399,14 @@
* off. For example, even if user presses power on button after automatic
* power on with door unlock, bootup reason must stay with
* VehicleApPowerBootupReason#USER_UNLOCK.
+ * Requires permission: {@link Car#PERMISSION_CAR_POWER}.
*/
public static final int AP_POWER_BOOTUP_REASON = 289409538;
/**
* Property to represent brightness of the display. Some cars have single
* control for the brightness of all displays and this property is to share
* change in that control.
+ * Requires permission: {@link Car#PERMISSION_CAR_POWER}.
*/
public static final int DISPLAY_BRIGHTNESS = 289409539;
/**
@@ -344,38 +418,47 @@
*
* This is an integer in case a door may be set to a particular position.
* Max value indicates fully open, min value (0) indicates fully closed.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_DOORS}.
*/
public static final int DOOR_POS = 373295872;
/**
* Door move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_DOORS}.
*/
public static final int DOOR_MOVE = 373295873;
/**
* Door lock
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_DOORS}.
*/
public static final int DOOR_LOCK = 371198722;
/**
* Mirror Z Position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_Z_POS = 339741504;
/**
* Mirror Z Move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_Z_MOVE = 339741505;
/**
* Mirror Y Position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_Y_POS = 339741506;
/**
* Mirror Y Move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_Y_MOVE = 339741507;
/**
* Mirror Lock
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_LOCK = 287312708;
/**
* Mirror Fold
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_MIRRORS}.
*/
public static final int MIRROR_FOLD = 287312709;
/**
@@ -384,6 +467,7 @@
* This parameter selects the memory preset to use to select the seat
* position. The minValue is always 0, and the maxValue determines the
* number of seat positions available.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_MEMORY_SELECT = 356518784;
/**
@@ -392,136 +476,169 @@
* This setting allows the user to save the current seat position settings
* into the selected preset slot. The maxValue for each seat position
* must match the maxValue for SEAT_MEMORY_SELECT.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_MEMORY_SET = 356518785;
/**
* Seatbelt buckled
*
* True indicates belt is buckled.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BELT_BUCKLED = 354421634;
/**
* Seatbelt height position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BELT_HEIGHT_POS = 356518787;
/**
* Seatbelt height move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BELT_HEIGHT_MOVE = 356518788;
/**
* Seat fore/aft position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_FORE_AFT_POS = 356518789;
/**
* Seat fore/aft move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_FORE_AFT_MOVE = 356518790;
/**
* Seat backrest angle 1 position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791;
/**
* Seat backrest angle 1 move
*
* Moves the backrest forward or recline.
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792;
/**
* Seat backrest angle 2 position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793;
/**
* Seat backrest angle 2 move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794;
/**
* Seat height position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEIGHT_POS = 356518795;
/**
* Seat height move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEIGHT_MOVE = 356518796;
/**
* Seat depth position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_DEPTH_POS = 356518797;
/**
* Seat depth move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_DEPTH_MOVE = 356518798;
/**
* Seat tilt position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_TILT_POS = 356518799;
/**
* Seat tilt move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_TILT_MOVE = 356518800;
/**
* Lumber fore/aft position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801;
/**
* Lumbar fore/aft move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802;
/**
* Lumbar side support position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803;
/**
* Lumbar side support move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804;
/**
* Headrest height position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_HEIGHT_POS = 289409941;
/**
* Headrest height move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806;
/**
* Headrest angle position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_ANGLE_POS = 356518807;
/**
* Headrest angle move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808;
/**
* Headrest fore/aft position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809;
/**
* Headrest fore/aft move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810;
/**
* Seat Occupancy
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_SEATS}.
*/
public static final int SEAT_OCCUPANCY = 356518832;
/**
* Window Position
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_WINDOWS}.
*/
public static final int WINDOW_POS = 322964416;
/**
* Window Move
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_WINDOWS}.
*/
public static final int WINDOW_MOVE = 322964417;
/**
* Window Lock
+ * Requires permission: {@link Car#PERMISSION_CONTROL_CAR_WINDOWS}.
*/
public static final int WINDOW_LOCK = 320867268;
/**
* Vehicle Maps Service (VMS) message
+ * Requires one of permissions in {@link Car#PERMISSION_VMS_PUBLISHER},
+ * {@link Car#PERMISSION_VMS_SUBSCRIBER}.
*/
public static final int VEHICLE_MAP_SERVICE = 299895808;
/**
* OBD2 Live Sensor Data
*
* Reports a snapshot of the current (live) values of the OBD2 sensors available.
+ * Requires permission: {@link Car#PERMISSION_CAR_DIAGNOSTIC_READ_ALL}.
*/
public static final int OBD2_LIVE_FRAME = 299896064;
/**
@@ -529,10 +646,12 @@
*
* Reports a snapshot of the value of the OBD2 sensors available at the time that a fault
* occurred and was detected.
+ * Requires permission: {@link Car#PERMISSION_CAR_DIAGNOSTIC_READ_ALL}.
*/
public static final int OBD2_FREEZE_FRAME = 299896065;
/**
* OBD2 Freeze Frame Information
+ * Requires permission: {@link Car#PERMISSION_CAR_DIAGNOSTIC_READ_ALL}.
*/
public static final int OBD2_FREEZE_FRAME_INFO = 299896066;
/**
@@ -540,54 +659,67 @@
*
* This property allows deletion of any of the freeze frames stored in
* vehicle memory, as described by OBD2_FREEZE_FRAME_INFO.
+ * Requires permission: {@link Car#PERMISSION_CAR_DIAGNOSTIC_CLEAR}.
*/
public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067;
/**
* Headlights State
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_LIGHTS}.
*/
public static final int HEADLIGHTS_STATE = 289410560;
/**
* High beam lights state
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_LIGHTS}.
*/
public static final int HIGH_BEAM_LIGHTS_STATE = 289410561;
/**
* Fog light state
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_LIGHTS}.
*/
public static final int FOG_LIGHTS_STATE = 289410562;
/**
* Hazard light status
+ * Requires permission: {@link Car#PERMISSION_EXTERIOR_LIGHTS}.
*/
public static final int HAZARD_LIGHTS_STATE = 289410563;
/**
* Headlight switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_EXTERIOR_LIGHTS}.
*/
public static final int HEADLIGHTS_SWITCH = 289410576;
/**
* High beam light switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_EXTERIOR_LIGHTS}.
*/
public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577;
/**
* Fog light switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_EXTERIOR_LIGHTS}.
*/
public static final int FOG_LIGHTS_SWITCH = 289410578;
/**
* Hazard light switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_EXTERIOR_LIGHTS}.
*/
public static final int HAZARD_LIGHTS_SWITCH = 289410579;
/**
* Cabin lights
+ * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
*/
public static final int CABIN_LIGHTS_STATE = 289410817;
/**
* Cabin lights switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
*/
public static final int CABIN_LIGHTS_SWITCH = 289410818;
/**
* Reading lights
+ * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
*/
public static final int READING_LIGHTS_STATE = 356519683;
/**
* Reading lights switch
+ * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
*/
public static final int READING_LIGHTS_SWITCH = 356519684;
diff --git a/car-lib/src/android/car/content/pm/AppBlockingPackageInfo.java b/car-lib/src/android/car/content/pm/AppBlockingPackageInfo.java
index 3c1a356..02610ab 100644
--- a/car-lib/src/android/car/content/pm/AppBlockingPackageInfo.java
+++ b/car-lib/src/android/car/content/pm/AppBlockingPackageInfo.java
@@ -45,7 +45,7 @@
@IntDef(flag = true,
value = {FLAG_SYSTEM_APP, FLAG_WHOLE_ACTIVITY})
@Retention(RetentionPolicy.SOURCE)
- public @interface ConstrcutorFlags {}
+ public @interface ConstructorFlags {}
/**
* flags to give additional information on the package.
@@ -82,7 +82,7 @@
public AppBlockingPackageInfo(String packageName, int minRevisionCode, int maxRevisionCode,
- @ConstrcutorFlags int flags, @Nullable Signature[] signatures,
+ @ConstructorFlags int flags, @Nullable Signature[] signatures,
@Nullable String[] activities) {
if (packageName == null) {
throw new IllegalArgumentException("packageName cannot be null");
@@ -156,8 +156,6 @@
return false;
}
-
-
@Override
public int hashCode() {
final int prime = 31;
diff --git a/car_product/build/car_base.mk b/car_product/build/car_base.mk
index 385a2ea..5132890 100644
--- a/car_product/build/car_base.mk
+++ b/car_product/build/car_base.mk
@@ -53,7 +53,8 @@
libwebrtc_audio_preprocessing \
wifi-service \
A2dpSinkService \
- PackageInstaller
+ PackageInstaller \
+ car-bugreportd \
# EVS resources
PRODUCT_PACKAGES += android.automotive.evs.manager@1.0
diff --git a/car_product/overlay/frameworks/base/core/res/res/values-night/colors_device_defaults.xml b/car_product/overlay/frameworks/base/core/res/res/values-night/colors_device_defaults.xml
new file mode 100644
index 0000000..f062f1f
--- /dev/null
+++ b/car_product/overlay/frameworks/base/core/res/res/values-night/colors_device_defaults.xml
@@ -0,0 +1,23 @@
+<?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.
+*/
+-->
+
+<resources>
+ <color name="background_floating_device_default_dark">@*android:color/car_grey_900</color>
+ <color name="background_floating_device_default_light">@*android:color/car_grey_900</color>
+</resources>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/colors_device_defaults.xml b/car_product/overlay/frameworks/base/core/res/res/values/colors_device_defaults.xml
index 2cd2d1f..7e2c329 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/colors_device_defaults.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/colors_device_defaults.xml
@@ -42,8 +42,8 @@
<color name="background_device_default_dark">@*android:color/car_background</color>
<color name="background_device_default_light">@*android:color/car_background</color>
- <color name="background_floating_device_default_dark">@*android:color/car_colorSecondary</color>
- <color name="background_floating_device_default_light">@*android:color/car_colorSecondary</color>
+ <color name="background_floating_device_default_dark">@*android:color/car_grey_868</color>
+ <color name="background_floating_device_default_light">@*android:color/car_grey_868</color>
<color name="error_color_device_default_dark">@*android:color/car_red_a700</color>
<color name="error_color_device_default_light">@*android:color/car_red_a700</color>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/config.xml b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
index 1d90073..904542d 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
@@ -79,4 +79,6 @@
<!-- Whether the system enables per-display focus. If the system has the input method for each
display, this value should be true. -->
<bool name="config_perDisplayFocusEnabled">true</bool>
+
+ <string name="config_dataUsageSummaryComponent">com.android.car.settings/com.android.car.settings.datausage.DataWarningAndLimitActivity</string>
</resources>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml b/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml
index c005792..c1ab046 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml
@@ -118,4 +118,20 @@
<!-- Make the dots in lock pattern thicker in Car -->
<dimen name="lock_pattern_dot_size">20dp</dimen>
+
+ <!-- Autofill save dialog padding -->
+ <dimen name="autofill_save_outer_top_margin">@*android:dimen/car_padding_2</dimen>
+ <dimen name="autofill_save_outer_top_padding">@*android:dimen/car_padding_2</dimen>
+ <dimen name="autofill_elevation">@*android:dimen/car_padding_2</dimen>
+ <dimen name="autofill_save_inner_padding">@*android:dimen/car_padding_2</dimen>
+ <dimen name="autofill_save_icon_size">@*android:dimen/car_primary_icon_size</dimen>
+ <dimen name="autofill_save_title_start_padding">@*android:dimen/car_padding_4</dimen>
+ <dimen name="autofill_save_scroll_view_top_margin">@*android:dimen/car_padding_4</dimen>
+ <dimen name="autofill_save_button_bar_padding">@*android:dimen/car_keyline_1</dimen>
+
+ <!-- Floating toolbar dimensions -->
+ <dimen name="floating_toolbar_menu_button_side_padding">@*android:dimen/car_padding_2</dimen>
+ <dimen name="floating_toolbar_menu_image_width">@*android:dimen/car_primary_icon_size</dimen>
+ <dimen name="floating_toolbar_menu_image_button_vertical_padding">@*android:dimen/car_padding_2</dimen>
+ <dimen name="floating_toolbar_text_size">@*android:dimen/car_body1_size</dimen>
</resources>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/styles_device_default.xml b/car_product/overlay/frameworks/base/core/res/res/values/styles_device_default.xml
index ea83ad3..37139d3 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/styles_device_default.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/styles_device_default.xml
@@ -48,6 +48,10 @@
<item name="android:textSize">@*android:dimen/car_body4_size</item>
</style>
+ <style name="TextAppearance.DeviceDefault.Subhead" parent="android:TextAppearance.Material.Subhead">
+ <item name="android:textSize">@*android:dimen/car_body1_size</item>
+ </style>
+
<style name="TextAppearance.DeviceDefault.Widget.Button.Borderless.Colored"
parent="android:TextAppearance.DeviceDefault.Widget.Button">
<item name="android:textColor">@*android:color/car_borderless_button_text_color</item>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/themes_device_defaults.xml b/car_product/overlay/frameworks/base/core/res/res/values/themes_device_defaults.xml
index fed7495..c36e925 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/themes_device_defaults.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/themes_device_defaults.xml
@@ -245,4 +245,40 @@
<item name="android:windowNoTitle">true</item>
</style>
+
+ <!-- DeviceDefault theme for panel windows. This removes all extraneous window decorations, so
+ you basically have an empty rectangle in which to place your content. It makes the window
+ floating, with a transparent background, and turns off dimming behind the window.
+ Used for Autofill screens.-->
+ <style name="Theme.DeviceDefault.Panel" parent="android:Theme.Material.Panel">
+ <!-- Color palette -->
+ <item name="android:colorPrimary">@*android:color/primary_device_default_light</item>
+ <item name="android:colorPrimaryDark">@*android:color/primary_device_default_dark</item>
+ <item name="android:colorAccent">@*android:color/accent_device_default_light</item>
+ <item name="android:colorError">@*android:color/error_color_device_default_light</item>
+
+ <!-- Dialog attributes -->
+ <item name="android:dialogCornerRadius">@*android:dimen/config_dialogCornerRadius</item>
+ <item name="android:alertDialogTheme">@*android:style/Theme.DeviceDefault.Dialog.Alert</item>
+
+ <!-- Text styles -->
+ <item name="android:textAppearanceButton">@*android:style/TextAppearance.DeviceDefault.Widget.Button</item>
+
+ <!-- Button styles -->
+ <item name="android:buttonCornerRadius">@*android:dimen/config_buttonCornerRadius</item>
+ <item name="android:buttonBarButtonStyle">@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog</item>
+
+ <!-- Progress bar attributes -->
+ <item name="*android:colorProgressBackgroundNormal">@*android:color/config_progress_background_tint</item>
+ <item name="*android:progressBarCornerRadius">@*android:dimen/config_progressBarCornerRadius</item>
+
+ <!-- Toolbar attributes -->
+ <item name="android:toolbarStyle">@*android:style/Widget.DeviceDefault.Toolbar</item>
+
+ <!-- Hide action bar -->
+ <item name="android:windowActionBar">false</item>
+ <item name="android:windowNoTitle">true</item>
+ </style>
+
+ <style name="Theme.DeviceDefault.Light.Panel" parent="android:Theme.DeviceDefault.Panel"/>
</resources>
diff --git a/car_product/sepolicy/private/carservice_app.te b/car_product/sepolicy/private/carservice_app.te
index 3c72a79..d8ed7db 100644
--- a/car_product/sepolicy/private/carservice_app.te
+++ b/car_product/sepolicy/private/carservice_app.te
@@ -3,6 +3,7 @@
# Allow Car Service to be the client of Vehicle and Audio Control HALs
hal_client_domain(carservice_app, hal_audiocontrol)
+hal_client_domain(carservice_app, hal_health)
hal_client_domain(carservice_app, hal_vehicle)
# Allow to set boot.car_service_created property
@@ -11,6 +12,8 @@
# Allow Car Service to register itself with ServiceManager
allow carservice_app carservice_service:service_manager add;
+allow carservice_app wifi_service:service_manager find;
+
# Allow Car Service to access certain system services.
# Keep alphabetically sorted.
allow carservice_app {
@@ -46,6 +49,8 @@
allow carservice_app system_car_data_file:dir create_dir_perms;
allow carservice_app system_car_data_file:{ file lnk_file } create_file_perms;
+allow carservice_app cgroup:file rw_file_perms;
+
# For I/O stats tracker
allow carservice_app proc_uid_io_stats:file { read open getattr };
diff --git a/car_product/sepolicy/private/dumpstate.te b/car_product/sepolicy/private/dumpstate.te
new file mode 100644
index 0000000..24a0208
--- /dev/null
+++ b/car_product/sepolicy/private/dumpstate.te
@@ -0,0 +1,3 @@
+set_prop(dumpstate, ctl_start_prop)
+set_prop(dumpstate, ctl_stop_prop)
+allow dumpstate dumpstate_socket:sock_file write;
\ No newline at end of file
diff --git a/car_product/sepolicy/private/file_contexts b/car_product/sepolicy/private/file_contexts
index b8f62fa..908c853 100644
--- a/car_product/sepolicy/private/file_contexts
+++ b/car_product/sepolicy/private/file_contexts
@@ -2,3 +2,7 @@
/data/system/car(/.*)? u:object_r:system_car_data_file:s0
+
+/system/bin/car-bugreportd u:object_r:dumpstate_exec:s0
+/dev/socket/car_br_progress_socket u:object_r:dumpstate_socket:s0
+/dev/socket/car_br_output_socket u:object_r:dumpstate_socket:s0
diff --git a/car_product/sepolicy/private/system_app.te b/car_product/sepolicy/private/system_app.te
new file mode 100644
index 0000000..232b117
--- /dev/null
+++ b/car_product/sepolicy/private/system_app.te
@@ -0,0 +1 @@
+hal_client_domain(system_app, hal_vehicle)
diff --git a/car_product/sepolicy/private/system_server.te b/car_product/sepolicy/private/system_server.te
index 44a11c5..2743021 100644
--- a/car_product/sepolicy/private/system_server.te
+++ b/car_product/sepolicy/private/system_server.te
@@ -1,3 +1,4 @@
# Car service in system server can read bootuser device id property
get_prop(system_server, car_bootuser_prop)
+allow system_server carservice_service:service_manager find;
diff --git a/evs/sepolicy/evs_app.te b/evs/sepolicy/evs_app.te
index b5e3c95..8c036b3 100644
--- a/evs/sepolicy/evs_app.te
+++ b/evs/sepolicy/evs_app.te
@@ -6,11 +6,11 @@
hal_client_domain(evs_app, hal_graphics_allocator)
# allow init to launch processes in this context
-type evs_app_exec, exec_type, file_type;
+type evs_app_exec, exec_type, file_type, system_file_type;
init_daemon_domain(evs_app)
# gets access to its own files on disk
-type evs_app_files, file_type;
+type evs_app_files, file_type, system_file_type;
allow evs_app evs_app_files:file { getattr open read };
allow evs_app evs_app_files:dir search;
diff --git a/evs/sepolicy/evs_driver.te b/evs/sepolicy/evs_driver.te
index 3d5263e..f1f31e9 100644
--- a/evs/sepolicy/evs_driver.te
+++ b/evs/sepolicy/evs_driver.te
@@ -1,9 +1,10 @@
# evs_mock mock hardware driver service
type hal_evs_driver, domain, coredomain;
hal_server_domain(hal_evs_driver, hal_evs)
+hal_client_domain(hal_evs_driver, hal_evs)
# allow init to launch processes in this context
-type hal_evs_driver_exec, exec_type, file_type;
+type hal_evs_driver_exec, exec_type, file_type, system_file_type;
init_daemon_domain(hal_evs_driver)
binder_use(hal_evs_driver)
diff --git a/evs/sepolicy/evs_manager.te b/evs/sepolicy/evs_manager.te
index 58ea6aa..51acac1 100644
--- a/evs/sepolicy/evs_manager.te
+++ b/evs/sepolicy/evs_manager.te
@@ -2,10 +2,9 @@
type evs_manager, domain, coredomain;
hal_server_domain(evs_manager, hal_evs)
hal_client_domain(evs_manager, hal_evs)
-add_hwservice(hal_evs, hal_evs_hwservice)
# allow init to launch processes in this context
-type evs_manager_exec, exec_type, file_type;
+type evs_manager_exec, exec_type, file_type, system_file_type;
init_daemon_domain(evs_manager)
# allow use of hwservices
diff --git a/service/AndroidManifest.xml b/service/AndroidManifest.xml
index 3e50805..25b2cfe 100644
--- a/service/AndroidManifest.xml
+++ b/service/AndroidManifest.xml
@@ -496,6 +496,7 @@
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT" />
+ <uses-permission android:name="android.permission.READ_LOGS" />
<application android:label="@string/app_title"
android:directBootAware="true"
diff --git a/service/proto/BLEHandshake.proto b/service/proto/BLEHandshake.proto
deleted file mode 100644
index 26f5783..0000000
--- a/service/proto/BLEHandshake.proto
+++ /dev/null
@@ -1,14 +0,0 @@
-syntax = "proto3";
-
-package com.android.car.trust.BLEHandshake;
-
-option java_package = "com.android.car.trust";
-option java_outer_classname = "BLEHandshake";
-
-message VersionExchange {
- // Required.
- int32 minSupportedVersion = 1;
-
- // Required.
- int32 maxSupportedVersion = 2;
-}
\ No newline at end of file
diff --git a/service/proto/BLEStream.proto b/service/proto/BLEStream.proto
deleted file mode 100644
index fe10cbd..0000000
--- a/service/proto/BLEStream.proto
+++ /dev/null
@@ -1,43 +0,0 @@
-syntax = "proto3";
-
-package com.android.car.trust.BLEStream;
-
-option java_package = "com.android.car.trust";
-option java_outer_classname = "BLEStream";
-
-// A message across a BLE channel.
-message BLEMessage {
- // The current version of the protocol.
- int32 version = 1;
-
- enum OperationType {
- // The contents of the payload are unknown.
- UNKNOWN = 0;
-
- // The payload contains handshake messages needed to set up encryption.
- ENCRYPTION_HANDSHAKE = 1;
-
- // The message is an acknowledgment of a previously received message. The
- // payload for this type should be empty.
- ACK = 2;
-
- // The payload contains a client-specific message.
- CLIENT_MESSAGE = 3;
- }
-
- // The operation that this message represents.
- OperationType operation = 2;
-
- // A 1-based packet number. The first message will have a value of "1" rather
- // than "0".
- fixed32 packet_number = 3;
-
- // The total number of packets in the message stream.
- fixed32 total_packets = 4;
-
- // Whether the payload field is encrypted.
- bool is_payload_encrypted = 5;
-
- // The bytes that represent the message content for this packet.
- bytes payload = 6;
-}
diff --git a/service/proto/ble_message.proto b/service/proto/ble_message.proto
new file mode 100644
index 0000000..c1610d7
--- /dev/null
+++ b/service/proto/ble_message.proto
@@ -0,0 +1,30 @@
+syntax = "proto3";
+
+package aae.blemessagestream;
+
+import "packages/services/Car/service/proto/operation_type.proto";
+
+option java_package = "com.android.car.BLEStreamProtos";
+option java_outer_classname = "BLEMessageProto";
+
+// A message across a BLE channel.
+message BLEMessage {
+ // The current version of the protocol.
+ int32 version = 1;
+
+ // The operation that this message represents.
+ OperationType operation = 2;
+
+ // A 1-based packet number. The first message will have a value of "1" rather
+ // than "0".
+ fixed32 packet_number = 3;
+
+ // The total number of packets in the message stream.
+ fixed32 total_packets = 4;
+
+ // Whether the payload field is encrypted.
+ bool is_payload_encrypted = 5;
+
+ // The bytes that represent the message content for this packet.
+ bytes payload = 6;
+}
diff --git a/service/proto/ble_version_exchange.proto b/service/proto/ble_version_exchange.proto
new file mode 100644
index 0000000..e6c47f1
--- /dev/null
+++ b/service/proto/ble_version_exchange.proto
@@ -0,0 +1,14 @@
+syntax = "proto3";
+
+package aae.blemessagestream;
+
+option java_package = "com.android.car.BLEStreamProtos";
+option java_outer_classname = "VersionExchangeProto";
+
+message BLEVersionExchange {
+ // Required.
+ int32 minSupportedVersion = 1;
+
+ // Required.
+ int32 maxSupportedVersion = 2;
+}
diff --git a/service/proto/jarjar-rules.txt b/service/proto/jarjar-rules.txt
index c06c995..d27aecb 100644
--- a/service/proto/jarjar-rules.txt
+++ b/service/proto/jarjar-rules.txt
@@ -1 +1 @@
-rule com.google.protobuf.** com.android.car.trust.protobuf.@1
\ No newline at end of file
+rule com.google.protobuf.** com.android.car.protobuf.@1
diff --git a/service/proto/operation_type.proto b/service/proto/operation_type.proto
new file mode 100644
index 0000000..cce9f70
--- /dev/null
+++ b/service/proto/operation_type.proto
@@ -0,0 +1,28 @@
+syntax = "proto3";
+
+package aae.blemessagestream;
+
+option java_package = "com.android.car.BLEStreamProtos";
+option java_outer_classname = "BLEOperationProto";
+
+// The different message types that indicate the content of the payload.
+//
+// Ensure that these values are positive to reduce incurring too many bytes
+// to encode.
+enum OperationType {
+ // The contents of the payload are unknown.
+ //
+ // Note, this enum name is prefixed. See
+ // go/proto-best-practices-checkers#enum-default-value-name-conflict
+ OPERATION_TYPE_UNKNOWN = 0;
+
+ // The payload contains handshake messages needed to set up encryption.
+ ENCRYPTION_HANDSHAKE = 2;
+
+ // The message is an acknowledgment of a previously received message. The
+ // payload for this type should be empty.
+ ACK = 3;
+
+ // The payload contains a client-specific message.
+ CLIENT_MESSAGE = 4;
+}
diff --git a/service/proto/phone_auth.proto b/service/proto/phone_auth.proto
new file mode 100644
index 0000000..4465a55
--- /dev/null
+++ b/service/proto/phone_auth.proto
@@ -0,0 +1,15 @@
+syntax = "proto3";
+
+package aae.trustagent;
+
+option java_package = "com.android.car.trust";
+option java_outer_classname = "PhoneAuthProto";
+
+message PhoneCredentials {
+ // Required field representing the escrow token that needs to be sent for authenticating the user
+ fixed64 escrow_token = 1;
+
+ // Required field representing the handle associated with the escrow token that needs to be sent
+ // for authenticating the user
+ fixed64 handle = 2;
+}
\ No newline at end of file
diff --git a/service/res/values-af/config.xml b/service/res/values-af/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-af/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-af/strings.xml b/service/res/values-af/strings.xml
index d5b6dbd..8da32cf 100644
--- a/service/res/values-af/strings.xml
+++ b/service/res/values-af/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Vir jou veiligheid is dié aktiwiteit nie beskikbaar terwyl jy bestuur nie.\nWag totdat jy geparkeer het om voort te gaan."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Kies <xliff:g id="EXIT_BUTTON">%s</xliff:g> om oor te begin met veilige programkenmerke."</string>
<string name="exit_button" msgid="5829638404777671253">"Terug"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Ontfoutin."</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"lees diagnostiese data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Lees diagnostiese data van die motor af."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"vee diagnostiese data uit"</string>
diff --git a/service/res/values-am/config.xml b/service/res/values-am/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-am/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-am/strings.xml b/service/res/values-am/strings.xml
index 3b5594c..41b7622 100644
--- a/service/res/values-am/strings.xml
+++ b/service/res/values-am/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ለእርስዎ ደህንነት ሲባል፣ ይህ እንቅስቃሴ እርስዎ በሚነዱበት ጊዜ አይገኝም። \nለመቀጠል እንዲችሉ፣ መኪናዎ እስከሚቆም ድረስ ይጠብቁ።"</string>
<string name="exit_button_message" msgid="8554690915924055685">"ከደህንነት አስተማማኝ የሆኑ የመተግበሪያ ባህሪያት ጋር መልሶ ለመጀመር፣ <xliff:g id="EXIT_BUTTON">%s</xliff:g>ን ይምረጡ።"</string>
<string name="exit_button" msgid="5829638404777671253">"ተመለስ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"የአርም መረጃ"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"የምርመራ ውሂብን አንብብ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"ከመኪናው ላይ የምርመራ ውሂብን ያንብቡ።"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"የምርመራ ውሂብን አጽዳ"</string>
diff --git a/service/res/values-ar/config.xml b/service/res/values-ar/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ar/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ar/strings.xml b/service/res/values-ar/strings.xml
index 288e0bb..d9b7040 100644
--- a/service/res/values-ar/strings.xml
+++ b/service/res/values-ar/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"حرصًا على سلامتك، لا يتوفّر هذا النشاط أثناء القيادة.\nللمتابعة، يمكنك الانتظار حتى تتوقّف السيارة."</string>
<string name="exit_button_message" msgid="8554690915924055685">"للبدء من جديد باستخدام ميزات تطبيق آمنة، اختَر <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"رجوع"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"التصحيح"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"قراءة البيانات التشخيصية"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"يمكنك قراءة البيانات التشخيصية من السيارة."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"محو البيانات التشخيصية"</string>
diff --git a/service/res/values-as/config.xml b/service/res/values-as/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-as/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-as/strings.xml b/service/res/values-as/strings.xml
index d40ec8f..0cac303 100644
--- a/service/res/values-as/strings.xml
+++ b/service/res/values-as/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"আপোনাৰ নিৰাপত্তাৰ বাবে এই কাৰ্যকলাপটো গাড়ী চলাই থকা সময়ত কৰিব নোৱাৰি।\nগাড়ীখন পাৰ্ক কৰি কামটো কৰক।"</string>
<string name="exit_button_message" msgid="8554690915924055685">"সুৰক্ষিত এপ্ সুবিধাসহ আকৌ আৰম্ভ কৰিবলৈ <xliff:g id="EXIT_BUTTON">%s</xliff:g> বাছনি কৰক।"</string>
<string name="exit_button" msgid="5829638404777671253">"উভতি যাওক"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ডিবাগ তথ্য"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ডায়গন’ষ্টিক ডেটা পঢ়িব"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"গাড়ীৰ ডায়গ’ষ্টিক তথ্য পঢ়িব।"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ডায়গন’ষ্টিক ডেটা মচিব"</string>
diff --git a/service/res/values-az/config.xml b/service/res/values-az/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-az/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-az/strings.xml b/service/res/values-az/strings.xml
index 50f8279..5cdfa3d 100644
--- a/service/res/values-az/strings.xml
+++ b/service/res/values-az/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Təhlükəsizliyiniz üçün bu əməliyyat sürüş zamanı əlçatan deyil.\nDavam etmək üçün park edənədək gözləyin."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Təhlükəsiz tətbiq xüsusiyyətləri ilə başlamaq üçün <xliff:g id="EXIT_BUTTON">%s</xliff:g> seçin."</string>
<string name="exit_button" msgid="5829638404777671253">"Geri"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debaq məlumatı"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"diaqnoztika məlumatlarını oxumaq"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Avtomobilin diaqnoztika məlumatlarını oxumaq."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"diaqnoztika məlumatlarını silmək"</string>
diff --git a/service/res/values-b+sr+Latn/config.xml b/service/res/values-b+sr+Latn/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-b+sr+Latn/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-b+sr+Latn/strings.xml b/service/res/values-b+sr+Latn/strings.xml
index 1f23ce7..e0da81d 100644
--- a/service/res/values-b+sr+Latn/strings.xml
+++ b/service/res/values-b+sr+Latn/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Ova aktivnost nije dostupna dok vozite radi vaše bezbednosti.\nDa biste nastavili, prvo se parkirajte."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Da biste ponovo počeli sa bezbednim funkcijama aplikacije, izaberite <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Nazad"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"čitanje dijagnostičkih podataka"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Čitanje dijagnostičkih podataka iz automobila."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"brisanje dijagnostičkih podataka"</string>
diff --git a/service/res/values-be/config.xml b/service/res/values-be/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-be/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-be/strings.xml b/service/res/values-be/strings.xml
index 6174588..b5d46ae 100644
--- a/service/res/values-be/strings.xml
+++ b/service/res/values-be/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Дзеля вашай бяспекі гэта дзеянне недаступнае, калі вы за рулём.\nСпачатку прыпаркуйцеся."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Каб перазапусціць праграму ў бяспечным рэжыме, націсніце кнопку \"<xliff:g id="EXIT_BUTTON">%s</xliff:g>\"."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"атрымліваць даныя дыягностыкі"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Счытванне дыягнастычных даных аўтамабіля"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ачысціць даныя дыягностыкі"</string>
diff --git a/service/res/values-bg/config.xml b/service/res/values-bg/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-bg/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-bg/strings.xml b/service/res/values-bg/strings.xml
index fd36d20..d5c1fa4 100644
--- a/service/res/values-bg/strings.xml
+++ b/service/res/values-bg/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"От съображения за безопасност тази функция не е достъпна при шофиране.\nЗа да продължите, трябва първо да паркирате."</string>
<string name="exit_button_message" msgid="8554690915924055685">"За да рестартирате приложението и безопасните му функции, изберете „<xliff:g id="EXIT_BUTTON">%s</xliff:g>“."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"четене на диагностични данни"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Четене на диагностични данни от автомобила."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"изчистване на диагностичните данни"</string>
diff --git a/service/res/values-bn/config.xml b/service/res/values-bn/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-bn/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-bn/strings.xml b/service/res/values-bn/strings.xml
index 0b03a73..3b5957b 100644
--- a/service/res/values-bn/strings.xml
+++ b/service/res/values-bn/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"আপনার সুরক্ষার জন্য, ড্রাইভ করার সময় এটি করা যাবে না।\nচালিয়ে যেতে, গাড়ি পার্ক করা পর্যন্ত অপেক্ষা করুন।"</string>
<string name="exit_button_message" msgid="8554690915924055685">"অ্যাপের সুরক্ষিত ফিচারগুলি নিয়ে আবার শুরু করতে, <xliff:g id="EXIT_BUTTON">%s</xliff:g> বেছে নিন।"</string>
<string name="exit_button" msgid="5829638404777671253">"আবার চালু করুন"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ডিবাগ তথ্য"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ডায়াগনস্টিক ডেটা দেখা"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"গাড়ির ডায়াগনস্টিক সংক্রান্ত ডেটা দেখা।"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ডায়াগনস্টিকস ডেটা সরানো"</string>
diff --git a/service/res/values-bs/config.xml b/service/res/values-bs/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-bs/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-bs/strings.xml b/service/res/values-bs/strings.xml
index 2d69ac0..5770adf 100644
--- a/service/res/values-bs/strings.xml
+++ b/service/res/values-bs/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Radi vaše sigurnosti, ova aktivnost nije dostupna tokom vožnje.\nDa nastavite, sačekajte da se zaustavite."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Da počnete ponovo s funkcijama sigurne aplikacije, odaberite <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Nazad"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"očitati dijagnostičke podatke"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Očitati dijagnostičke podatke automobila."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"brisati dijagnostičke podatke"</string>
diff --git a/service/res/values-ca/config.xml b/service/res/values-ca/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ca/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ca/strings.xml b/service/res/values-ca/strings.xml
index e31da04..535b403 100644
--- a/service/res/values-ca/strings.xml
+++ b/service/res/values-ca/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Per motius de seguretat, aquesta activitat no està disponible mentre condueixes.\nPer continuar, has d\'estar aparcat."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Per tornar a començar amb unes funcions d\'aplicació segures, selecciona <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Enrere"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Depuració"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"llegeix les dades de diagnòstic"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Llegeix les dades de diagnòstic del cotxe."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"esborra les dades de diagnòstic"</string>
diff --git a/service/res/values-cs/config.xml b/service/res/values-cs/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-cs/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-cs/strings.xml b/service/res/values-cs/strings.xml
index b01f87b..369cdbc 100644
--- a/service/res/values-cs/strings.xml
+++ b/service/res/values-cs/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Tato aktivita není při řízení z bezpečnostních důvodů dostupná.\nPokračovat můžete, až zaparkujete."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Chcete-li začít znovu s bezpečnými funkcemi aplikace, vyberte <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Zpět"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"čtení diagnostických dat"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Čtení diagnostických dat z auta."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"vymazat diagnostická data"</string>
diff --git a/service/res/values-da/config.xml b/service/res/values-da/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-da/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-da/strings.xml b/service/res/values-da/strings.xml
index d3a3fb0..5513137 100644
--- a/service/res/values-da/strings.xml
+++ b/service/res/values-da/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Af hensyn til din sikkerhed kan du ikke få adgang til denne aktivitet, mens du kører.\nParkér, før du kan fortsætte."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Vælg <xliff:g id="EXIT_BUTTON">%s</xliff:g> for at starte forfra med sikre appfunktioner."</string>
<string name="exit_button" msgid="5829638404777671253">"Tilbage"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"tjekke diagnosticeringsdata"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Tjek diagnosticeringsdata fra bilen."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"rydde diagnosticeringsdata"</string>
diff --git a/service/res/values-de/config.xml b/service/res/values-de/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-de/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-de/strings.xml b/service/res/values-de/strings.xml
index 04c3af6..ff4c461 100644
--- a/service/res/values-de/strings.xml
+++ b/service/res/values-de/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Aus Sicherheitsgründen ist diese Aktivität während der Fahrt nicht verfügbar.\nWarte, bis das Fahrzeug geparkt ist."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Wähle <xliff:g id="EXIT_BUTTON">%s</xliff:g>, um die App mit sicheren Funktionen neu zu starten."</string>
<string name="exit_button" msgid="5829638404777671253">"Zurück"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"Diagnosedaten zu lesen"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Diagnosedaten des Autos lesen."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"Diagnosedaten zu löschen"</string>
diff --git a/service/res/values-el/config.xml b/service/res/values-el/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-el/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-el/strings.xml b/service/res/values-el/strings.xml
index ec05dc2..d2846d8 100644
--- a/service/res/values-el/strings.xml
+++ b/service/res/values-el/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Για λόγους ασφαλείας, η δραστηρ. δεν είναι διαθέσιμη όταν οδηγείτε.\nΓια να συνεχίσετε, περιμένετε μέχρι να σταθμεύσετε."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Για να ξεκινήσετε από την αρχή με ασφαλείς λειτουργίες εφαρμογής, επιλέξτε <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Πίσω"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Πλ. εντ. σφ."</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"παρακολούθηση δεδομένων διαγνωστικών στοιχείων"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Παρακολούθηση δεδομένων διαγνωστικών στοιχείων από το αυτοκίνητο."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"διαγραφή δεδομένων διαγνωστικών στοιχείων"</string>
diff --git a/service/res/values-en-rAU/config.xml b/service/res/values-en-rAU/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-en-rAU/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-en-rAU/strings.xml b/service/res/values-en-rAU/strings.xml
index d102771..49741f1 100644
--- a/service/res/values-en-rAU/strings.xml
+++ b/service/res/values-en-rAU/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"For your safety, this activity isn’t available while driving.\nTo continue, wait until you’ve parked."</string>
<string name="exit_button_message" msgid="8554690915924055685">"To start again with safe app features, select <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Back"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"read diagnostic data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Read diagnostic data from the car."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"clear diagnostic data"</string>
diff --git a/service/res/values-en-rCA/config.xml b/service/res/values-en-rCA/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-en-rCA/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-en-rCA/strings.xml b/service/res/values-en-rCA/strings.xml
index d102771..49741f1 100644
--- a/service/res/values-en-rCA/strings.xml
+++ b/service/res/values-en-rCA/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"For your safety, this activity isn’t available while driving.\nTo continue, wait until you’ve parked."</string>
<string name="exit_button_message" msgid="8554690915924055685">"To start again with safe app features, select <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Back"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"read diagnostic data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Read diagnostic data from the car."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"clear diagnostic data"</string>
diff --git a/service/res/values-en-rGB/config.xml b/service/res/values-en-rGB/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-en-rGB/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-en-rGB/strings.xml b/service/res/values-en-rGB/strings.xml
index d102771..49741f1 100644
--- a/service/res/values-en-rGB/strings.xml
+++ b/service/res/values-en-rGB/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"For your safety, this activity isn’t available while driving.\nTo continue, wait until you’ve parked."</string>
<string name="exit_button_message" msgid="8554690915924055685">"To start again with safe app features, select <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Back"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"read diagnostic data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Read diagnostic data from the car."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"clear diagnostic data"</string>
diff --git a/service/res/values-en-rIN/config.xml b/service/res/values-en-rIN/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-en-rIN/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-en-rIN/strings.xml b/service/res/values-en-rIN/strings.xml
index d102771..49741f1 100644
--- a/service/res/values-en-rIN/strings.xml
+++ b/service/res/values-en-rIN/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"For your safety, this activity isn’t available while driving.\nTo continue, wait until you’ve parked."</string>
<string name="exit_button_message" msgid="8554690915924055685">"To start again with safe app features, select <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Back"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"read diagnostic data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Read diagnostic data from the car."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"clear diagnostic data"</string>
diff --git a/service/res/values-en-rXC/config.xml b/service/res/values-en-rXC/config.xml
deleted file mode 100644
index a19ba0f..0000000
--- a/service/res/values-en-rXC/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-en-rXC/strings.xml b/service/res/values-en-rXC/strings.xml
index fbe2ce1..5bbe05b 100644
--- a/service/res/values-en-rXC/strings.xml
+++ b/service/res/values-en-rXC/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"For your safety, this activity isn’t available while driving.\nTo continue, wait until you’re parked."</string>
<string name="exit_button_message" msgid="8554690915924055685">"To start over with safe app features, select <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Back"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"read diagnostic data"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Read diagnostic data from the car."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"clear diagnostic data"</string>
diff --git a/service/res/values-es-rUS/config.xml b/service/res/values-es-rUS/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-es-rUS/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-es-rUS/strings.xml b/service/res/values-es-rUS/strings.xml
index 9011028..ebcc08c 100644
--- a/service/res/values-es-rUS/strings.xml
+++ b/service/res/values-es-rUS/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Por razones de seguridad, esta actividad no está disponible al conducir.\nPara continuar espera hasta que estaciones."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para volver a comenzar con funciones de app seguras, selecciona <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atrás"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Depuración"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"leer datos de diagnóstico"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Leer datos de diagnóstico del vehículo."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"borrar datos de diagnóstico"</string>
diff --git a/service/res/values-es/config.xml b/service/res/values-es/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-es/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-es/strings.xml b/service/res/values-es/strings.xml
index 5d54e80..e2a9e88 100644
--- a/service/res/values-es/strings.xml
+++ b/service/res/values-es/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Por tu seguridad, esta actividad no está disponible mientras conduces.\nPuedes continuar cuando hayas aparcado."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para volver a empezar con funciones de aplicaciones seguras, selecciona <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atrás"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Depuración"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"consultar datos de diagnóstico"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Consultar los datos de diagnóstico del coche."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"borrar los datos de diagnóstico"</string>
diff --git a/service/res/values-et/config.xml b/service/res/values-et/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-et/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-et/strings.xml b/service/res/values-et/strings.xml
index e0b6f86..cfaf748 100644
--- a/service/res/values-et/strings.xml
+++ b/service/res/values-et/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Teie turvalisuse tõttu ei ole see toiming sõitmise ajal saadaval.\nJätkamiseks oodake, kuni olete parkinud."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Uuesti alustamiseks turvaliste rakenduste funktsioonidega valige <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Tagasi"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Sil.-teave"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"diagnostikaandmete lugemine"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Auto diagnostikaandmete lugemine."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"diagnostikaandmete kustutamine"</string>
diff --git a/service/res/values-eu/config.xml b/service/res/values-eu/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-eu/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-eu/strings.xml b/service/res/values-eu/strings.xml
index 5f0249a..9e031a5 100644
--- a/service/res/values-eu/strings.xml
+++ b/service/res/values-eu/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Zure segurtasuna bermatzeko, eginbide hau ezin da erabili gidatu bitartean.\nAurrera egiteko, itxaron autoa aparkatu arte."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Berriro hasi nahi baduzu aplikazioaren eginbide seguruekin, hautatu <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atzera"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"irakurri datu diagnostikoak"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Irakurri autoaren datu diagnostikoak."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"garbitu datu diagnostikoak"</string>
diff --git a/service/res/values-fa/config.xml b/service/res/values-fa/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-fa/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-fa/strings.xml b/service/res/values-fa/strings.xml
index 60c38d9..2e29029 100644
--- a/service/res/values-fa/strings.xml
+++ b/service/res/values-fa/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"بنا به دلایل ایمنی، این فعالیت درحین رانندگی دردسترس نیست.\n برای ادامه، تا زمان توقف خودرو صبر کنید."</string>
<string name="exit_button_message" msgid="8554690915924055685">"برای شروع مجدد با ویژگیهای برنامه امن، <xliff:g id="EXIT_BUTTON">%s</xliff:g> را انتخاب کنید."</string>
<string name="exit_button" msgid="5829638404777671253">"برگشت"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"اطلاعات اشکالزدایی"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"خواندن دادههای عیبیابی"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"دادههای عیبیابی خودرو را بخوانید."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"پاک کردن دادههای عیبیابی"</string>
diff --git a/service/res/values-fi/config.xml b/service/res/values-fi/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-fi/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-fi/strings.xml b/service/res/values-fi/strings.xml
index 88d4188..256cdfa 100644
--- a/service/res/values-fi/strings.xml
+++ b/service/res/values-fi/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Turvallisuussyistä toiminto ei ole käytettävissä ajon aikana.\nVoit jatkaa, kun olet pysäköinyt auton."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Jos haluat aloittaa alusta turvallisilla sovellusominaisuuksilla, valitse <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Takaisin"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"nähdä diagnostiikkadataa"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"lukea auton diagnostiikkadataa"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"poistaa diagnostiikkatiedot"</string>
diff --git a/service/res/values-fr-rCA/config.xml b/service/res/values-fr-rCA/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-fr-rCA/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-fr-rCA/strings.xml b/service/res/values-fr-rCA/strings.xml
index 82dc2e6..470879d 100644
--- a/service/res/values-fr-rCA/strings.xml
+++ b/service/res/values-fr-rCA/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Pour votre sécurité, cette activité est bloquée lorsque vous conduisez.\nVous devez être stationné pour continuer."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Pour recommencer avec des fonctionnalités d\'application sécurisées, sélectionnez <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Retour"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Info débog"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"lire des données de diagnostic"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Lire des données de diagnostic à partir de la voiture."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"effacer les données de diagnostic"</string>
diff --git a/service/res/values-fr/config.xml b/service/res/values-fr/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-fr/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-fr/strings.xml b/service/res/values-fr/strings.xml
index 4c742e3..6d562be 100644
--- a/service/res/values-fr/strings.xml
+++ b/service/res/values-fr/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Pour votre sécurité, cette activité n\'est pas disponible pendant la conduite.\nPour continuer, attendez d\'être garé."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Pour recommencer avec des fonctionnalités d\'application sécurisées, sélectionnez <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Retour"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"Lire les données de diagnostic"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Lire les données de diagnostic de la voiture."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"Effacer les données de diagnostic"</string>
diff --git a/service/res/values-gl/config.xml b/service/res/values-gl/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-gl/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-gl/strings.xml b/service/res/values-gl/strings.xml
index f3b1a83..efcf7b2 100644
--- a/service/res/values-gl/strings.xml
+++ b/service/res/values-gl/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Pola túa seguranza, esta actividade non está dispoñible mentres conduces.\nPodes continuar cando aparques."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para comezar de novo coas funcións de aplicacións seguras, selecciona o botón <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atrás"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Info. dep."</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ler datos de diagnóstico"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Ler datos de diagnóstico do coche."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"borrar datos de diagnóstico"</string>
diff --git a/service/res/values-gu/config.xml b/service/res/values-gu/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-gu/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-gu/strings.xml b/service/res/values-gu/strings.xml
index e465258..7c00a7d 100644
--- a/service/res/values-gu/strings.xml
+++ b/service/res/values-gu/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"તમારી સલામતી માટે કાર ચલાવતી વખતે આ પ્રવૃત્તિ ઉપલબ્ધ નથી.\nચાલુ રાખવા માટે કાર પાર્ક થવા સુધી રાહ જુઓ."</string>
<string name="exit_button_message" msgid="8554690915924055685">"સુરક્ષિત ઍપ્લિકેશન સુવિધાઓ સાથે ફરી શરૂ કરવા, <xliff:g id="EXIT_BUTTON">%s</xliff:g> પસંદ કરો."</string>
<string name="exit_button" msgid="5829638404777671253">"પાછળ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ડિબગમાહિતી"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"નિદાનનો ડેટા વાંચો"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"કારમાંથી નિદાનનો ડેટા વાંચો."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"નિદાનનો ડેટા સાફ કરો"</string>
diff --git a/service/res/values-hi/config.xml b/service/res/values-hi/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-hi/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-hi/strings.xml b/service/res/values-hi/strings.xml
index a53a9ce..ff8429a 100644
--- a/service/res/values-hi/strings.xml
+++ b/service/res/values-hi/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"आपकी सुरक्षा के लिए, गाड़ी चलाते समय यह गतिविधि मौजूद नहीं रहती है.\nजारी रखने के लिए गाड़ी पार्क करनी होगी."</string>
<string name="exit_button_message" msgid="8554690915924055685">"सुरक्षित ऐप्लिकेशन सुविधाएं फिर से शुरू करने के लिए, <xliff:g id="EXIT_BUTTON">%s</xliff:g> चुनें."</string>
<string name="exit_button" msgid="5829638404777671253">"वापस शुरू करें"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"गड़बड़ी की पहचान का डेटा देख सकता है"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"कार की \'गड़बड़ी की पहचान का डेटा\' देख सकता है."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"गड़बड़ी की पहचान का डेटा मिटा सकता है"</string>
diff --git a/service/res/values-hr/config.xml b/service/res/values-hr/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-hr/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-hr/strings.xml b/service/res/values-hr/strings.xml
index edc2b17..2d2060b 100644
--- a/service/res/values-hr/strings.xml
+++ b/service/res/values-hr/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Radi vaše sigurnosti ta aktivnost nije dostupna tijekom vožnje.\nDa biste nastavili, pričekajte dok se ne zaustavite."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Da biste započeli ponovo sa sigurnim značajkama aplikacije, odaberite <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Natrag"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Inf. o otkl. pogrešaka"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"čitati dijagnostičke podatke"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"čitati dijagnostičke podatke automobila"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"izbrisati dijagnostičke podatke"</string>
diff --git a/service/res/values-hu/config.xml b/service/res/values-hu/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-hu/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-hu/strings.xml b/service/res/values-hu/strings.xml
index ef60a68..f427b07 100644
--- a/service/res/values-hu/strings.xml
+++ b/service/res/values-hu/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Az Ön biztonsága érdekében ez a tevékenység nem végezhető vezetés közben.\nLeparkolás után folytathatja a tevékenységet."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Ha biztonságos alkalmazásfunkciókkal szeretné újrakezdeni, válassza a következő gombot: <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Vissza"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Hibakeresési adatok"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"olvashatja a diagnosztikai adatokat"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Olvashatja az autó diagnosztikai adatait."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"törölheti a diagnosztikai adatokat"</string>
diff --git a/service/res/values-hy/config.xml b/service/res/values-hy/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-hy/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-hy/strings.xml b/service/res/values-hy/strings.xml
index 34ae170..a706dc4 100644
--- a/service/res/values-hy/strings.xml
+++ b/service/res/values-hy/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Անվտանգության նկատառումներով այս գործողությունը հասանելի չէ վարելու ռեժիմում:\nՇարունակելու համար կայանեք մեքենան:"</string>
<string name="exit_button_message" msgid="8554690915924055685">"Հավելվածն անվտանգ ռեժիմում վերագործարկելու համար սեղմեք<xliff:g id="EXIT_BUTTON">%s</xliff:g> կոճակը:"</string>
<string name="exit_button" msgid="5829638404777671253">"Հետ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"կարդալ ախտորոշման մասին տվյալները"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Կարդալ մեքենայի ախտորոշման տվյալները։"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"մաքրել ախտորոշման տվյալները"</string>
diff --git a/service/res/values-in/config.xml b/service/res/values-in/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-in/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-in/strings.xml b/service/res/values-in/strings.xml
index 169cdcc..3651eaa 100644
--- a/service/res/values-in/strings.xml
+++ b/service/res/values-in/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Demi keamanan Anda, aktivitas ini tidak tersedia saat Anda mengemudi.\nUntuk melanjutkan, tunggu hingga mobil terparkir."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Untuk mulai dari awal dengan fitur apl yang aman, pilih <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Kembali"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Info Debug"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"membaca data diagnostik"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Membaca data diagnostik dari mobil."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"menghapus data diagnostik"</string>
diff --git a/service/res/values-is/config.xml b/service/res/values-is/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-is/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-is/strings.xml b/service/res/values-is/strings.xml
index bd81b4c..64f68f5 100644
--- a/service/res/values-is/strings.xml
+++ b/service/res/values-is/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Af öryggisástæðum er þessi aðgerð ekki í boði við akstur.\nLeggðu ökutækinu áður en þú heldur áfram."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Til að byrja aftur að setja upp örugga forritseiginleika skaltu velja <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Til baka"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Villuleit"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"lesa greiningargögn"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Lesa greiningargögn úr bílnum."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"hreinsa greiningargögn"</string>
diff --git a/service/res/values-it/config.xml b/service/res/values-it/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-it/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-it/strings.xml b/service/res/values-it/strings.xml
index f6be2f8..07aad4e 100644
--- a/service/res/values-it/strings.xml
+++ b/service/res/values-it/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Per motivi di sicurezza, questa attività non è disponibile durante la guida.\nPotrai continuare quando avrai parcheggiato."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Seleziona <xliff:g id="EXIT_BUTTON">%s</xliff:g> per ricominciare con le funzionalità sicure dell\'app."</string>
<string name="exit_button" msgid="5829638404777671253">"Indietro"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Info debug"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"Lettura dei dati diagnostici"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Consente di leggere i dati diagnostici dell\'automobile."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"Cancellazione dei dati diagnostici"</string>
diff --git a/service/res/values-iw/config.xml b/service/res/values-iw/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-iw/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-iw/strings.xml b/service/res/values-iw/strings.xml
index 7e28b02..1770cf9 100644
--- a/service/res/values-iw/strings.xml
+++ b/service/res/values-iw/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"מטעמי בטיחות, פעילות זו אינה זמינה בזמן נהיגה.\nכדי להמשיך, צריך להמתין עד לחניית הרכב."</string>
<string name="exit_button_message" msgid="8554690915924055685">"כדי להפעיל מחדש את האפליקציה במצב בטוח, יש ללחוץ על <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"הקודם"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"קריאת נתוני אבחון"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"קריאת נתוני אבחון מהרכב."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"מחיקת נתוני האבחון"</string>
diff --git a/service/res/values-ja/config.xml b/service/res/values-ja/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ja/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ja/strings.xml b/service/res/values-ja/strings.xml
index 22ca04f..9c8ad93 100644
--- a/service/res/values-ja/strings.xml
+++ b/service/res/values-ja/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"安全上の理由により、運転中はこのアクティビティをご利用いただけません。\n続行するには駐車してください。"</string>
<string name="exit_button_message" msgid="8554690915924055685">"アプリをセーフモードで再起動するには、<xliff:g id="EXIT_BUTTON">%s</xliff:g> を選択します。"</string>
<string name="exit_button" msgid="5829638404777671253">"戻る"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"デバッグ情報"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"診断データの読み取り"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"車から診断データを読み取ります。"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"診断データの消去"</string>
diff --git a/service/res/values-ka/config.xml b/service/res/values-ka/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ka/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ka/strings.xml b/service/res/values-ka/strings.xml
index bf533b3..d8343a8 100644
--- a/service/res/values-ka/strings.xml
+++ b/service/res/values-ka/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ეს აქტივობა მიუწვდომელია მანქანის მართვისას, უსაფრთხოების მოსაზრებებიდან გამომდინარე.\nგთხოვთ, ჯერ გააჩეროთ მანქანა."</string>
<string name="exit_button_message" msgid="8554690915924055685">"აპის უსაფრთხო რეჟიმში გასაშვებად აირჩიეთ „<xliff:g id="EXIT_BUTTON">%s</xliff:g>“."</string>
<string name="exit_button" msgid="5829638404777671253">"უკან"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"გამართვის ინფორმაცია"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"დიაგნოსტიკური მონაცემების წაკითხვა"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"დიაგნოსტიკური მონაცემების წაკითხვა მანქანიდან."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"დიაგნოსტიკური მონაცემების გასუფთავება"</string>
diff --git a/service/res/values-kk/config.xml b/service/res/values-kk/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-kk/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-kk/strings.xml b/service/res/values-kk/strings.xml
index 2eeb9cf..b031e9d 100644
--- a/service/res/values-kk/strings.xml
+++ b/service/res/values-kk/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Көлік жүргізгенде, қауіпсіздік мақсатында бұл әрекетті орындау мүмкін емес.\nЖалғастыру үшін көлікті тұраққа қойыңыз."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Қолданбаны қауіпсіз күйде қайта іске қосу үшін <xliff:g id="EXIT_BUTTON">%s</xliff:g> түймесін басыңыз."</string>
<string name="exit_button" msgid="5829638404777671253">"Артқа"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Түзету"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"диагностикалық деректерді көру"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Көліктің диагностикалық деректерін көру."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"диагностикалық деректерді өшіру"</string>
diff --git a/service/res/values-km/config.xml b/service/res/values-km/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-km/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-km/strings.xml b/service/res/values-km/strings.xml
index d25d5aa..3039b03 100644
--- a/service/res/values-km/strings.xml
+++ b/service/res/values-km/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ដើម្បីសុវត្ថិភាពរបស់អ្នក សកម្មភាពនេះមិនអាចប្រើបានទេ ពេលកំពុងបើកបរ។\nដើម្បីបន្ត សូមរង់ចាំរហូតទាល់តែអ្នកចតរថយន្តរួច។"</string>
<string name="exit_button_message" msgid="8554690915924055685">"ដើម្បីចាប់ផ្តើមឡើងវិញដោយប្រើមុខងារកម្មវិធីដែលមានសុវត្ថិភាព សូមជ្រើសរើស <xliff:g id="EXIT_BUTTON">%s</xliff:g> ។"</string>
<string name="exit_button" msgid="5829638404777671253">"ថយក្រោយ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ព័ត៌មានជួសជុល"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"អានទិន្នន័យវិភាគ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"អានអំពីទិន្នន័យវិភាគពីរថយន្ត។"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"សម្អាតទិន្នន័យវិភាគ"</string>
diff --git a/service/res/values-kn/config.xml b/service/res/values-kn/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-kn/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-kn/strings.xml b/service/res/values-kn/strings.xml
index 14b7b54..0473b2d 100644
--- a/service/res/values-kn/strings.xml
+++ b/service/res/values-kn/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ನಿಮ್ಮ ಸುರಕ್ಷೆಗಾಗಿ, ಈ ಚಟುವಟಿಕೆಯು ವಾಹನ ಚಲಾಯಿಸುತ್ತಿರುವಾಗ ಲಭ್ಯವಿಲ್ಲ. ಮುಂದುವರೆಯಲು \n ಮಾಡಿ, ನೀವು ಪಾರ್ಕ್ ಮಾಡುವ ತನಕ ಕಾಯಿರಿ."</string>
<string name="exit_button_message" msgid="8554690915924055685">"ಆಪ್ನ ಸುರಕ್ಷೆ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒಳಗೊಂಡು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಲು, <xliff:g id="EXIT_BUTTON">%s</xliff:g> ಆಯ್ಕೆ ಮಾಡಿ."</string>
<string name="exit_button" msgid="5829638404777671253">"ಹಿಂದಕ್ಕೆ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ಡೀಬಗ್ ಮಾಹಿ"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಓದಿ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"ಕಾರಿನಲ್ಲಿರುವ ಅದರ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಓದಿ."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
diff --git a/service/res/values-ko/config.xml b/service/res/values-ko/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ko/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ko/strings.xml b/service/res/values-ko/strings.xml
index cfcc030..4853d47 100644
--- a/service/res/values-ko/strings.xml
+++ b/service/res/values-ko/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"안전을 위해 운전 중에는 이용할 수 없는 활동입니다.\n계속하려면 먼저 주차하세요."</string>
<string name="exit_button_message" msgid="8554690915924055685">"안전한 앱 기능으로 다시 시작하려면 <xliff:g id="EXIT_BUTTON">%s</xliff:g>을(를) 선택하세요."</string>
<string name="exit_button" msgid="5829638404777671253">"뒤로"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"디버그 정보"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"진단 데이터 읽기"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"차량의 진단 데이터를 읽습니다."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"진단 데이터 삭제"</string>
diff --git a/service/res/values-ky/config.xml b/service/res/values-ky/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ky/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ky/strings.xml b/service/res/values-ky/strings.xml
index 2999b31..f2a21df 100644
--- a/service/res/values-ky/strings.xml
+++ b/service/res/values-ky/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Коопсуздугуңузду коргоо максатында, бул иш-аракетти унаа айдап баратканда аткарууга болбойт.\nТоктоп туруп, улантыңыз."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Колдонмонун коопсуз функцияларын иштетүү үчүн <xliff:g id="EXIT_BUTTON">%s</xliff:g> баскычын басыңыз."</string>
<string name="exit_button" msgid="5829638404777671253">"Артка"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Мүчүлүштүк"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"мүчүлүштүктөрдү аныктоо дайындарын окуу"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Унаадагы мүчүлүштүктөрдү аныктоо дайындарын окуу."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"мүчүлүштүктөрдү аныктоо дайындарын тазалоо"</string>
diff --git a/service/res/values-lo/config.xml b/service/res/values-lo/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-lo/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-lo/strings.xml b/service/res/values-lo/strings.xml
index 2052db6..2fe6c4f 100644
--- a/service/res/values-lo/strings.xml
+++ b/service/res/values-lo/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ເພື່ອຄວາມປອດໄພຂອງທ່ານ, ກິດຈະກຳນີ້ບໍ່ມີໃຫ້ນໍາໃຊ້ໃນຂະນະທີ່ທ່ານກຳລັງຂັບລົດຢູ່. \nເພື່ອສືບຕໍ່, ກະລຸນາລໍຖ້າຈົນກວ່າວ່າທ່ານຈອດລົດ."</string>
<string name="exit_button_message" msgid="8554690915924055685">"ເພື່ອເລີ່ມຕົ້ນຄືນໃໝ່ດ້ວຍຄຸນສົມບັດແອັບທີ່ປອດໄພ, ກະລຸນາເລືອກ <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"ກັບຄືນ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ອ່ານຂໍ້ມູນການວິເຄາະ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"ອ່ານຂໍ້ມູນການວິເຄາະຈາກລົດ."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ລຶບລ້າງຂໍ້ມູນການວິເຄາະ"</string>
diff --git a/service/res/values-lt/config.xml b/service/res/values-lt/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-lt/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-lt/strings.xml b/service/res/values-lt/strings.xml
index d9eca78..2342259 100644
--- a/service/res/values-lt/strings.xml
+++ b/service/res/values-lt/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Siekiant užtikrinti jūsų saugą, ši veikla nepasiekiama vairuojant.\nJei norite tęsti, palaukite, kol sustosite."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Jei norite pradėti iš naujo naudodami saugias programos funkcijas, pasirinkite <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atgal"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Der. inf."</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"nuskaityti diagnostikos duomenis"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Nuskaityti automobilio diagnostikos duomenis."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"išvalyti diagnostikos duomenis"</string>
diff --git a/service/res/values-lv/config.xml b/service/res/values-lv/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-lv/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-lv/strings.xml b/service/res/values-lv/strings.xml
index c319e52..f926f13 100644
--- a/service/res/values-lv/strings.xml
+++ b/service/res/values-lv/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Drošības apsvērumu dēļ šī darbība nav pieejama braukšanas laikā.\nTurpiniet, kad automašīna būs novietota stāvēšanai."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Lai atsāktu darbu ar drošām lietotnes funkcijām, atlasiet pogu <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Atpakaļ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"nolasīt diagnostikas datus"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Nolasīt diagnostikas datus no automašīnas."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"notīrīt diagnostikas datus"</string>
diff --git a/service/res/values-mk/config.xml b/service/res/values-mk/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-mk/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-mk/strings.xml b/service/res/values-mk/strings.xml
index c5fa0bb..b419e52 100644
--- a/service/res/values-mk/strings.xml
+++ b/service/res/values-mk/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"За ваша безбедност, оваа активност не е достапна додека возите.\nЗа да продолжите, почекајте да се паркирате."</string>
<string name="exit_button_message" msgid="8554690915924055685">"За да започнете одново со безбедносните фунции на апликацијата, изберете <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ги чита дијагностичките податоци"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Чита дијагностички податоци од автомобилот."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"чисти дијагностички податоци"</string>
diff --git a/service/res/values-ml/config.xml b/service/res/values-ml/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ml/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ml/strings.xml b/service/res/values-ml/strings.xml
index fc9e458..6e6007f 100644
--- a/service/res/values-ml/strings.xml
+++ b/service/res/values-ml/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"നിങ്ങളുടെ സുരക്ഷയ്ക്ക്, ഡ്രൈവ് ചെയ്യുമ്പോൾ ഈ ആക്റ്റിവിറ്റി ലഭ്യമല്ല.\nതുടരാൻ, നിങ്ങൾ പാർക്ക് ചെയ്യുന്നതുവരെ കാത്തിരിക്കുക."</string>
<string name="exit_button_message" msgid="8554690915924055685">"സുരക്ഷിതമായ ആപ്പ് ഫീച്ചറുകൾ ഉപയോഗിച്ച് പുനരാരംഭിക്കാൻ, <xliff:g id="EXIT_BUTTON">%s</xliff:g> തിരഞ്ഞെടുക്കുക."</string>
<string name="exit_button" msgid="5829638404777671253">"മടങ്ങുക"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ഡീബഗ് വിവരം"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"പ്രശ്നനിർണ്ണയ ഡാറ്റ വായിക്കുക"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"കാറിൽ നിന്നുള്ള പ്രശ്നനിർണ്ണയ ഡാറ്റ വായിക്കുക."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"പ്രശ്നനിർണ്ണയ ഡാറ്റ മായ്ക്കുക"</string>
diff --git a/service/res/values-mn/config.xml b/service/res/values-mn/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-mn/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-mn/strings.xml b/service/res/values-mn/strings.xml
index 1808c32..83da614 100644
--- a/service/res/values-mn/strings.xml
+++ b/service/res/values-mn/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Таны аюулгүй байдлын үүднээс жолоодох явцад энэ үйл ажиллагааг хийх боломжгүй.\nМашинаа зогсоолд байршуулаад үргэлжлүүлнэ үү."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Аппын аюулгүй онцлогуудтайгаар дахин эхлүүлэхийн тулд <xliff:g id="EXIT_BUTTON">%s</xliff:g>-г сонгоно уу."</string>
<string name="exit_button" msgid="5829638404777671253">"Буцах"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Дебаг хийх мэдээлэл"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"оношилгооны өгөгдлийг унших"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Машины оношилгооны өгөгдлийг унших."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"оношилгооны өгөгдлийг устгах"</string>
diff --git a/service/res/values-mr/config.xml b/service/res/values-mr/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-mr/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-mr/strings.xml b/service/res/values-mr/strings.xml
index 0afb98e..efdc646 100644
--- a/service/res/values-mr/strings.xml
+++ b/service/res/values-mr/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"तुमच्या सुरक्षेसाठी, ड्रायव्हिंग करत असताना ही अॅक्टिव्हिटी उपलब्ध नाही.\nसुरू ठेवण्यासाठी, पार्क करेपर्यंत वाट पहा."</string>
<string name="exit_button_message" msgid="8554690915924055685">"सुरक्षित अॅप वैशिष्ट्यांसोबत पुन्हा सुरुवात करण्यासाठी, <xliff:g id="EXIT_BUTTON">%s</xliff:g> निवडा."</string>
<string name="exit_button" msgid="5829638404777671253">"मागे जा"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"डीबग माहिती"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"निदान डेटा वाचा"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"कारचा निदान डेटा वाचा."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"निदान डेटा साफ करा"</string>
diff --git a/service/res/values-ms/config.xml b/service/res/values-ms/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ms/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ms/strings.xml b/service/res/values-ms/strings.xml
index 23332b8..6869364 100644
--- a/service/res/values-ms/strings.xml
+++ b/service/res/values-ms/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Untuk keselamatan anda, aktiviti ini tidak tersedia semasa memandu.\nUntuk meneruskan, tunggu kereta diberhentikan."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Untuk bermula semula dengan ciri apl selamat, pilih <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Kembali"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Nyhpepijat"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"baca data diagnostik"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Baca data diagnostik daripada kereta."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"kosongkan data diagnostik"</string>
diff --git a/service/res/values-my/config.xml b/service/res/values-my/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-my/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-my/strings.xml b/service/res/values-my/strings.xml
index f62bf4e..e2e8572 100644
--- a/service/res/values-my/strings.xml
+++ b/service/res/values-my/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"သင့် လုံခြုံမှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကားမောင်းနေစဉ် အသုံးမပြုနိုင်ပါ။\nဆက်လက်လုပ်ဆောင်ရန် ကားရပ်နားသည်အထိစောင့်ပါ။"</string>
<string name="exit_button_message" msgid="8554690915924055685">"စိတ်ချရသော အက်ပ်လုပ်ဆောင်ချက်များနှင့်အတူ အစမှပြန်စရန် <xliff:g id="EXIT_BUTTON">%s</xliff:g> ကို ရွေးချယ်ပါ။"</string>
<string name="exit_button" msgid="5829638404777671253">"နောက်သို့"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"တွေ့ရှိမှု"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"အမှားရှာပြင်ခြင်းဒေတာများကို ကြည့်ပါမည်"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"ကားအတွင်း အမှားရှာပြင်ခြင်းဒေတာကို ကြည့်ပါမည်။"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"အမှားရှာပြင်ခြင်းဒေတာများကို ရှင်းလင်းပါမည်"</string>
diff --git a/service/res/values-nb/config.xml b/service/res/values-nb/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-nb/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-nb/strings.xml b/service/res/values-nb/strings.xml
index d273bcb..62108e6 100644
--- a/service/res/values-nb/strings.xml
+++ b/service/res/values-nb/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Av sikkerhetshensyn er denne aktiviteten utilgjengelig når du kjører.\nDu kan ikke fortsette før du stopper bilen."</string>
<string name="exit_button_message" msgid="8554690915924055685">"For å starte på nytt med sikre appfunksjoner, velg <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Tilbake"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"lese diagnostikkdata"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Les diagnostikkdata fra bilen."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"slette diagnostikkdata"</string>
diff --git a/service/res/values-ne/config.xml b/service/res/values-ne/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ne/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ne/strings.xml b/service/res/values-ne/strings.xml
index 5d9431c..add0fb9 100644
--- a/service/res/values-ne/strings.xml
+++ b/service/res/values-ne/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"तपाईंको सुरक्षाका लागि, तपाईंले सवारी साधन चलाइरहेका बेलामा यो क्रियाकलाप उपलब्ध हुँदैन।\nजारी राख्न, पार्क नगरुन्जेल पर्खनुहोस्।"</string>
<string name="exit_button_message" msgid="8554690915924055685">"अनुप्रयोगका सुरक्षित सुविधाहरूको प्रयोग गरी फेरि सुरु गर्न <xliff:g id="EXIT_BUTTON">%s</xliff:g> चयन गर्नुहोस्।"</string>
<string name="exit_button" msgid="5829638404777671253">"पछाडि"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"डिबगसम्बन्धी जानकारी"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"निदानसम्बन्धी डेटा पढ्ने"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"कारको निदानसम्बन्धी डेटा पढ्ने।"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"निदानसम्बन्धी डेटा हटाउने"</string>
diff --git a/service/res/values-nl/config.xml b/service/res/values-nl/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-nl/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-nl/strings.xml b/service/res/values-nl/strings.xml
index 659afb0..0959bb8 100644
--- a/service/res/values-nl/strings.xml
+++ b/service/res/values-nl/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Voor jouw veiligheid is deze activiteit niet beschikbaar als je aan het rijden bent.\nJe moet parkeren om door te gaan."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Selecteer <xliff:g id="EXIT_BUTTON">%s</xliff:g> om opnieuw te beginnen met de veilige app-functies."</string>
<string name="exit_button" msgid="5829638404777671253">"Vorige"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug-info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"diagnostische gegevens lezen"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Diagnostische gegevens van auto lezen."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"diagnostische gegevens wissen"</string>
diff --git a/service/res/values-or/config.xml b/service/res/values-or/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-or/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-or/strings.xml b/service/res/values-or/strings.xml
index b054470..2d90b94 100644
--- a/service/res/values-or/strings.xml
+++ b/service/res/values-or/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ଆପଣଙ୍କ ସୁରକ୍ଷା ପାଇଁ, ଡ୍ରାଇଭିଂ କରିବା ସମୟରେ ଏହି ଗତିବିଧି ଉପଲବ୍ଧ ନାହିଁ।\nଜାରି ରଖିବା ପାଇଁ, ପାର୍କ କରିବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା କରନ୍ତୁ।"</string>
<string name="exit_button_message" msgid="8554690915924055685">"ସୁରକ୍ଷିତ ଆପ୍ ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକୁ ନେଇ ପୁଣି ଆରମ୍ଭ କରିବା ପାଇଁ, <xliff:g id="EXIT_BUTTON">%s</xliff:g> ଚୟନ କରନ୍ତୁ।"</string>
<string name="exit_button" msgid="5829638404777671253">"ପଛକୁ ଫେରନ୍ତୁ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ଡିବଗ୍ ସୂଚନା"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ଡାଏଗ୍ନୋଷ୍ଟିକ୍ ଡାଟାକୁ ପଢ଼ିବ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"କାର୍ ମଧ୍ୟରୁ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ ଡାଟାକୁ ପଢ଼ିବ।"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ଡାଏଗ୍ନୋଷ୍ଟିକ୍ ଡାଟା ଖାଲି କରନ୍ତୁ"</string>
diff --git a/service/res/values-pa/config.xml b/service/res/values-pa/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-pa/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-pa/strings.xml b/service/res/values-pa/strings.xml
index 576e5b7..d3700ed 100644
--- a/service/res/values-pa/strings.xml
+++ b/service/res/values-pa/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਲਈ, ਗੱਡੀ ਚਲਾਉਣ ਵੇਲੇ ਇਹ ਸਰਗਰਮੀ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।\nਜਾਰੀ ਰੱਖਣ ਲਈ, ਗੱਡੀ ਰੋਕਣ ਤੱਕ ਉਡੀਕ ਕਰੋ।"</string>
<string name="exit_button_message" msgid="8554690915924055685">"ਸੁਰੱਖਿਅਤ ਐਪ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਮੁੜ ਤੋਂ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, <xliff:g id="EXIT_BUTTON">%s</xliff:g> ਚੁਣੋ।"</string>
<string name="exit_button" msgid="5829638404777671253">"ਪਿੱਛੇ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ਡੀਬੱਗ ਜਾਣਕਾਰੀ"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ਤਸ਼ਖੀਸੀ ਡਾਟੇ ਨੂੰ ਪੜ੍ਹਨਾ"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"ਕਾਰ ਦਾ ਤਸ਼ਖੀਸੀ ਡਾਟਾ ਪੜ੍ਹਨਾ।"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ਤਸ਼ਖੀਸੀ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨਾ"</string>
diff --git a/service/res/values-pl/config.xml b/service/res/values-pl/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-pl/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-pl/strings.xml b/service/res/values-pl/strings.xml
index 537d513..593181e 100644
--- a/service/res/values-pl/strings.xml
+++ b/service/res/values-pl/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Dla Twojego bezpieczeństwa ta funkcja jest wyłączona podczas jazdy.\nAby jej użyć, zaparkuj samochód."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Aby jeszcze raz przejść do funkcji bezpieczeństwa w aplikacji, wybierz <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Wstecz"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Dane debugowania"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"odczytywanie danych diagnostycznych"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Odczytywanie danych diagnostycznych samochodu."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"czyszczenie danych diagnostycznych"</string>
diff --git a/service/res/values-pt-rPT/config.xml b/service/res/values-pt-rPT/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-pt-rPT/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-pt-rPT/strings.xml b/service/res/values-pt-rPT/strings.xml
index bf327df..3ba192b 100644
--- a/service/res/values-pt-rPT/strings.xml
+++ b/service/res/values-pt-rPT/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Para sua segurança, esta atividade não está disponível enquanto estiver a conduzir.\nPode continuar após estacionar."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para começar de novo com funcionalidades de aplicações seguras, selecione <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Anterior"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Informações de depuração"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ler os dados de diagnóstico"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Ler os dados de diagnóstico do automóvel."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"limpar os dados de diagnóstico"</string>
diff --git a/service/res/values-pt/config.xml b/service/res/values-pt/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-pt/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-pt/strings.xml b/service/res/values-pt/strings.xml
index 5236c7b..3a002c3 100644
--- a/service/res/values-pt/strings.xml
+++ b/service/res/values-pt/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Para sua segurança, essa atividade não está disponível enquanto você dirige.\nPara continuar, aguarde até estacionar."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para reiniciar o app com recursos de segurança, selecione <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Voltar"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Info de depuração"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ler dados de diagnóstico"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Ler dados de diagnóstico do carro."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"limpar dados de diagnóstico"</string>
diff --git a/service/res/values-ro/config.xml b/service/res/values-ro/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ro/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ro/strings.xml b/service/res/values-ro/strings.xml
index 77d4b1e..6f48c30 100644
--- a/service/res/values-ro/strings.xml
+++ b/service/res/values-ro/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Pentru siguranța dvs., activitatea nu este disponibilă în timp ce conduceți.\nCa să continuați, așteptați să parcați."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Pentru a începe din nou cu funcțiile pentru aplicații sigure, selectați <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Înapoi"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Informații de remediere a erorilor"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"Citește datele de diagnosticare"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Citește datele de diagnosticare de la mașină."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"Șterge datele de diagnosticare"</string>
diff --git a/service/res/values-ru/config.xml b/service/res/values-ru/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ru/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ru/strings.xml b/service/res/values-ru/strings.xml
index a7439e5..205d54a 100644
--- a/service/res/values-ru/strings.xml
+++ b/service/res/values-ru/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Во время вождения это действие недоступно.\nСначала вам нужно припарковаться."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Чтобы перезапустить приложение в безопасном режиме, нажмите кнопку \"<xliff:g id="EXIT_BUTTON">%s</xliff:g>\"."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Данные отладки"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"чтение диагностических данных"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Чтение диагностических данных автомобиля."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"удаление диагностических данных"</string>
diff --git a/service/res/values-si/config.xml b/service/res/values-si/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-si/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-si/strings.xml b/service/res/values-si/strings.xml
index 4ad1eaf..49e9ce4 100644
--- a/service/res/values-si/strings.xml
+++ b/service/res/values-si/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"ඔබේ ආරක්ෂාව සඳහා, ඔබ රිය පදවන විට මෙම ක්රියාකාරකම නොලැබේ.\nඉදිරියට යාමට, ඔබ ගාල් කරන තෙක් රැඳී සිටින්න."</string>
<string name="exit_button_message" msgid="8554690915924055685">"ආරක්ෂිත යෙදුම් විශේෂාංග සමඟ පටන් ගැනීමට, <xliff:g id="EXIT_BUTTON">%s</xliff:g> තෝරන්න."</string>
<string name="exit_button" msgid="5829638404777671253">"ආපසු"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"නිදොසීම"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"දෝෂනිර්ණ දත්ත කියවන්න"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"මෝටර් රථයෙන් දෝෂනිර්ණ දත්ත කියවන්න."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"දෝෂනිර්ණ දත්ත හිස් කරන්න"</string>
diff --git a/service/res/values-sk/config.xml b/service/res/values-sk/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sk/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sk/strings.xml b/service/res/values-sk/strings.xml
index 3c16be6..8e5cb3e 100644
--- a/service/res/values-sk/strings.xml
+++ b/service/res/values-sk/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Z bezpečnostných dôvodov nie je táto aktivita k dispozícii počas jazdy.\nAk chcete pokračovať, počkajte, kým budete parkovať."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Ak chcete začať odznova s bezpečnými funkciami aplikácie, vyberte tlačidlo <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Späť"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Informácie o ladení"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"čítať diagnostické údaje"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Čítanie diagnostických údajov z auta."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"vymazať diagnostické údaje"</string>
diff --git a/service/res/values-sl/config.xml b/service/res/values-sl/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sl/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sl/strings.xml b/service/res/values-sl/strings.xml
index f1ff307..2e00b3a 100644
--- a/service/res/values-sl/strings.xml
+++ b/service/res/values-sl/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Zaradi varnosti ta dejavnost med vožnjo ni na voljo.\nČe želite nadaljevati, počakajte, da bo vozilo parkirano."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Če želite začeti znova z varnimi funkcijami aplikacij, izberite <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Nazaj"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Odpr. nap."</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"branje diagnostičnih podatkov"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Branje diagnostičnih podatkov avtomobila."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"brisanje diagnostičnih podatkov"</string>
diff --git a/service/res/values-sq/config.xml b/service/res/values-sq/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sq/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sq/strings.xml b/service/res/values-sq/strings.xml
index 8d56e6d..f7f4684 100644
--- a/service/res/values-sq/strings.xml
+++ b/service/res/values-sq/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Për sigurinë tënde, ky aktivitet nuk ofrohet kur je duke drejtuar makinën.\nPër të vazhduar, prit deri sa të parkosh."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Për të filluar nga e para me funksionet e sigurta të aplikacionit, zgjidh <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Prapa"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Informacionet e defekteve në kod"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"lexo të dhënat diagnostikuese"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Lexo të dhënat diagnostikuese nga makina."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"pastro të dhënat diagnostikuese"</string>
diff --git a/service/res/values-sr/config.xml b/service/res/values-sr/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sr/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sr/strings.xml b/service/res/values-sr/strings.xml
index 8c58e53..0983a07 100644
--- a/service/res/values-sr/strings.xml
+++ b/service/res/values-sr/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Ова активност није доступна док возите ради ваше безбедности.\nДа бисте наставили, прво се паркирајте."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Да бисте поново почели са безбедним функцијама апликације, изаберите <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"читање дијагностичких података"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Читање дијагностичких података из аутомобила."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"брисање дијагностичких података"</string>
diff --git a/service/res/values-sv/config.xml b/service/res/values-sv/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sv/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sv/strings.xml b/service/res/values-sv/strings.xml
index 32dffc1..3f0ea0c 100644
--- a/service/res/values-sv/strings.xml
+++ b/service/res/values-sv/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Av säkerhetsskäl är den här aktiviteten inte tillgänglig under körning.\nDu kan fortsätta med detta när du har parkerat."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Välj <xliff:g id="EXIT_BUTTON">%s</xliff:g> om du vill starta om appen med säkra funktioner."</string>
<string name="exit_button" msgid="5829638404777671253">"Tillbaka"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"läsa diagnostikdata"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Läsa diagnostisk data om bilen."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"rensa diagnostikdata"</string>
diff --git a/service/res/values-sw/config.xml b/service/res/values-sw/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-sw/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-sw/strings.xml b/service/res/values-sw/strings.xml
index 66fa85f..0619eac 100644
--- a/service/res/values-sw/strings.xml
+++ b/service/res/values-sw/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Kwa usalama wako, shughuli haipatikani wakati unaendesha gari. \nIli uendelee, subiri hadi utakapoegesha gari."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Ili uanzishe tena ukitumia vipengele salama vya programu, chagua <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Rudi Nyuma"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"kusoma data ya uchunguzi"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Kusoma data ya uchunguzi kwenye gari."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"kufuta data ya uchunguzi wa gari"</string>
diff --git a/service/res/values-ta/config.xml b/service/res/values-ta/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ta/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ta/strings.xml b/service/res/values-ta/strings.xml
index 0fcb211..8eab4ef 100644
--- a/service/res/values-ta/strings.xml
+++ b/service/res/values-ta/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"உங்கள் பாதுகாப்பை முன்னிட்டு இந்தச் செயல்பாடு, வாகனம் ஓட்டும்போது இயங்காது.\nதொடர வாகனத்தை நிறுத்தும்வரை காத்திருக்கவும்."</string>
<string name="exit_button_message" msgid="8554690915924055685">"ஆப்ஸைப் பாதுகாப்பான அம்சங்களுடன் மீண்டும் தொடங்க <xliff:g id="EXIT_BUTTON">%s</xliff:g>ஐத் தேர்ந்தெடுக்கவும்."</string>
<string name="exit_button" msgid="5829638404777671253">"பின்செல்"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"பிழைதிருத்தத் தகவல்"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"ஆய்வுத் தரவை அறிய வேண்டும்"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"கார் தொடர்பான ஆய்வுத் தரவை அறிய வேண்டும்."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ஆய்வுத் தரவை அழிக்க வேண்டும்"</string>
diff --git a/service/res/values-te/config.xml b/service/res/values-te/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-te/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-te/strings.xml b/service/res/values-te/strings.xml
index eec213e..494e476 100644
--- a/service/res/values-te/strings.xml
+++ b/service/res/values-te/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"మీ భద్రత విషయమై, ఈ కార్యాచరణ మీరు డ్రైవింగ్లో ఉన్నప్పుడు అందుబాటులో లేదు.\n కొనసాగించడానికి, మీరు పార్క్ చేయబడేవరకు వేచి ఉండండి."</string>
<string name="exit_button_message" msgid="8554690915924055685">"సురక్షిత యాప్ లక్షణాలతో ప్రారంభించడానికి, <xliff:g id="EXIT_BUTTON">%s</xliff:g>ని ఎంచుకోండి."</string>
<string name="exit_button" msgid="5829638404777671253">"వెనుకకు"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"డీబగ్ సమాచారం"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"సమస్య విశ్లేషణ డేటాను తెలుసుకోగలవు"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"కారు నుండి విశ్లేషణ డేటాను తెలుసుకోగలవు."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"సమస్య విశ్లేషణ డేటాను క్లియర్ చేయగలవు"</string>
diff --git a/service/res/values-th/config.xml b/service/res/values-th/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-th/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-th/strings.xml b/service/res/values-th/strings.xml
index e391708..197bc75 100644
--- a/service/res/values-th/strings.xml
+++ b/service/res/values-th/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"เพื่อความปลอดภัย กิจกรรมนี้จะไม่เปิดให้ใช้งานขณะขับรถ\nคุณต้องจอดรถให้เรียบร้อยก่อน จึงจะดำเนินการต่อได้"</string>
<string name="exit_button_message" msgid="8554690915924055685">"เลือก <xliff:g id="EXIT_BUTTON">%s</xliff:g> เพื่อเริ่มต้นใหม่โดยใช้ฟีเจอร์แอปที่ปลอดภัย"</string>
<string name="exit_button" msgid="5829638404777671253">"กลับ"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"อ่านข้อมูลการวินิจฉัย"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"อ่านข้อมูลการวินิจฉัยจากรถ"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"ล้างข้อมูลการวินิจฉัย"</string>
diff --git a/service/res/values-tl/config.xml b/service/res/values-tl/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-tl/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-tl/strings.xml b/service/res/values-tl/strings.xml
index a453ca1..d50637f 100644
--- a/service/res/values-tl/strings.xml
+++ b/service/res/values-tl/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Para sa seguridad, hindi available ang aktibidad habang nagmamaneho.\nPara magpatuloy, maghintay hanggang sa makaparada."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Para magsimula sa mga ligtas na feature ng app, piliin ang <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Bumalik"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Impormasyon sa Pag-debug"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"basahin ang data ng mga diagnostic"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Basahin ang data ng mga diagnostic mula sa sasakyan."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"i-clear ang data ng mga diagnostic"</string>
diff --git a/service/res/values-tr/config.xml b/service/res/values-tr/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-tr/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-tr/strings.xml b/service/res/values-tr/strings.xml
index 5ad22dd..861d4cb 100644
--- a/service/res/values-tr/strings.xml
+++ b/service/res/values-tr/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Güvenliğiniz için bu etkinlik sürüş sırasında gerçekleştirilemez.\nDevam etmek için park edene dek bekleyin."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Güvenli uygulama özellikleriyle baştan başlamak için <xliff:g id="EXIT_BUTTON">%s</xliff:g> düğmesini seçin."</string>
<string name="exit_button" msgid="5829638404777671253">"Geri"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Hata Ayıklama Bilgileri"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"teşhis verilerini okuma"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Araçtan teşhis verilerini okuma."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"teşhis verilerini temizleme"</string>
diff --git a/service/res/values-uk/config.xml b/service/res/values-uk/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-uk/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-uk/strings.xml b/service/res/values-uk/strings.xml
index ca4f8b5..24fc867 100644
--- a/service/res/values-uk/strings.xml
+++ b/service/res/values-uk/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Задля вашої безпеки ці дії недоступні під час поїздки.\nЩоб продовжити, зупиніть автомобіль."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Щоб почати знову з безпечними функціями додатка, натисніть кнопку \"<xliff:g id="EXIT_BUTTON">%s</xliff:g>\"."</string>
<string name="exit_button" msgid="5829638404777671253">"Назад"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"перегляд даних діагностики"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Перегляд даних діагностики автомобіля."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"очищення даних діагностики"</string>
diff --git a/service/res/values-ur/config.xml b/service/res/values-ur/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-ur/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-ur/strings.xml b/service/res/values-ur/strings.xml
index 517ae7b..58f1aca 100644
--- a/service/res/values-ur/strings.xml
+++ b/service/res/values-ur/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"آپ کی حفاظت کے لیے یہ سرگرمی آپ کے کار چلانے کے دوران دستیاب نہیں ہے۔\n جاری رکھنے کے لیے کار کے پارک ہونے تک انتظار کریں۔"</string>
<string name="exit_button_message" msgid="8554690915924055685">"محفوظ اپپ کی خصوصیات کے ساتھ شروع کرنے کے لیے <xliff:g id="EXIT_BUTTON">%s</xliff:g> پر کلک کریں۔"</string>
<string name="exit_button" msgid="5829638404777671253">"پیچھے"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ڈیبگ کی معلومات"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"تشخیصی ڈیٹا پڑھیں"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"کار کے تشخیصی ڈیٹا کے بارے میں پڑھیں۔"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"تشخیصی ڈیٹا صاف کریں"</string>
diff --git a/service/res/values-uz/config.xml b/service/res/values-uz/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-uz/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-uz/strings.xml b/service/res/values-uz/strings.xml
index 893ba9d..f6bfb87 100644
--- a/service/res/values-uz/strings.xml
+++ b/service/res/values-uz/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Avtomobil haydayotganingizda bu harakatni amalga oshira olmaysiz.\nUni bajarish uchun avtomobilni toʻxtating."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Ilovani xavfsiz rejimda ishga tushirish uchun <xliff:g id="EXIT_BUTTON">%s</xliff:g> tugmasini bosing."</string>
<string name="exit_button" msgid="5829638404777671253">"Orqaga"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"diagnostika axborotini ochish"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Avtomobildan diagnostika axborotini olish."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"diagnostika axborotini tozalash"</string>
diff --git a/service/res/values-vi/config.xml b/service/res/values-vi/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-vi/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-vi/strings.xml b/service/res/values-vi/strings.xml
index 265173b..57be52a 100644
--- a/service/res/values-vi/strings.xml
+++ b/service/res/values-vi/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Vì lý do an toàn, bạn không sử dụng được hoạt động này trong khi lái xe.\nHãy đợi cho tới khi bạn đỗ xe để tiếp tục."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Để bắt đầu lại với các tính năng an toàn của ứng dụng, hãy chọn <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Quay lại"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Thông tin gỡ lỗi"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"đọc dữ liệu chẩn đoán"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Đọc dữ liệu chẩn đoán từ ô tô."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"xóa dữ liệu chẩn đoán"</string>
diff --git a/service/res/values-zh-rCN/config.xml b/service/res/values-zh-rCN/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-zh-rCN/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-zh-rCN/strings.xml b/service/res/values-zh-rCN/strings.xml
index ad55cda..b30acc4 100644
--- a/service/res/values-zh-rCN/strings.xml
+++ b/service/res/values-zh-rCN/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"为了确保您的安全,您无法在开车时执行这项活动。\n要继续,请先停车。"</string>
<string name="exit_button_message" msgid="8554690915924055685">"要重新开始使用安全的应用功能,请选择<xliff:g id="EXIT_BUTTON">%s</xliff:g>。"</string>
<string name="exit_button" msgid="5829638404777671253">"返回"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"调试信息"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"读取诊断数据"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"读取汽车的诊断数据。"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"清除诊断数据"</string>
diff --git a/service/res/values-zh-rHK/config.xml b/service/res/values-zh-rHK/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-zh-rHK/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-zh-rHK/strings.xml b/service/res/values-zh-rHK/strings.xml
index 0dca2f2..e344bfb 100644
--- a/service/res/values-zh-rHK/strings.xml
+++ b/service/res/values-zh-rHK/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"基於安全理由,駕駛時無法執行此操作。\n如要繼續,請留待泊車後操作。"</string>
<string name="exit_button_message" msgid="8554690915924055685">"如要以安全應用程式功能重新啟動,請選擇 <xliff:g id="EXIT_BUTTON">%s</xliff:g>。"</string>
<string name="exit_button" msgid="5829638404777671253">"返回"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"Debug Info"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"讀取診斷資料"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"讀取來自汽車的診斷資料。"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"清除診斷資料"</string>
diff --git a/service/res/values-zh-rTW/config.xml b/service/res/values-zh-rTW/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-zh-rTW/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-zh-rTW/strings.xml b/service/res/values-zh-rTW/strings.xml
index ffb8cc4..1848811 100644
--- a/service/res/values-zh-rTW/strings.xml
+++ b/service/res/values-zh-rTW/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"為了你的安全,開車期間不得進行這個活動。\n如要繼續,請先停車。"</string>
<string name="exit_button_message" msgid="8554690915924055685">"如要使用安全應用程式功能重新啟動,請選取「離開」按鈕 <xliff:g id="EXIT_BUTTON">%s</xliff:g>。"</string>
<string name="exit_button" msgid="5829638404777671253">"返回"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"偵錯資訊"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"讀取診斷資料"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"讀取車輛的診斷資料。"</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"清除診斷資料"</string>
diff --git a/service/res/values-zu/config.xml b/service/res/values-zu/config.xml
deleted file mode 100644
index f2b960f..0000000
--- a/service/res/values-zu/config.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
-** Copyright 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.
-*/
- -->
-
-<!-- Resources to configure car service based on each OEM's preference. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="inputService" msgid="3911088558664251138">"android.car.input.service/.DefaultInputService"</string>
- <string name="instrumentClusterRendererService" msgid="2416852774232083347">"android.car.cluster.sample/.ClusterRenderingServiceImpl"</string>
- <string name="activityBlockingActivity" msgid="1307583481022873450">"com.android.car/com.android.car.pm.ActivityBlockingActivity"</string>
- <string name="activityWhitelist" msgid="1814434236909655273"></string>
- <!-- no translation found for systemActivityWhitelist (1256445723884668706) -->
- <skip />
- <string name="activityBlacklist" msgid="4824386090073724380"></string>
- <string-array name="allowedAppInstallSources">
- </string-array>
- <string name="defaultHomeActivity" msgid="5991064545193106309"></string>
- <string name="activityHandlerForFlashWearChanges" msgid="8628535766919400479">"com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity"</string>
- <string name="intentReceiverForUnacceptableIoMetrics" msgid="4017502061746918341">"com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver"</string>
-</resources>
diff --git a/service/res/values-zu/strings.xml b/service/res/values-zu/strings.xml
index 9966b54..7225857 100644
--- a/service/res/values-zu/strings.xml
+++ b/service/res/values-zu/strings.xml
@@ -69,7 +69,6 @@
<string name="activity_blocked_text" msgid="5342114426610711378">"Ngokuphepha kwakho, lo msebenzi awutholakali uma ushayela.\nUkuze uqhubeke, linda uze umiswe."</string>
<string name="exit_button_message" msgid="8554690915924055685">"Ukuze uqalise futhi ngezici zohlelo lokusebenza, khetha <xliff:g id="EXIT_BUTTON">%s</xliff:g>."</string>
<string name="exit_button" msgid="5829638404777671253">"Emuva"</string>
- <string name="debug_button_text" msgid="6395881820644544676">"ulwazi Lokususa iphutha"</string>
<string name="car_permission_label_diag_read" msgid="7248894224877702604">"funda idatha yokuxilonga"</string>
<string name="car_permission_desc_diag_read" msgid="1121426363040966178">"Ukufunda idatha yokuxilonga kusuka emotweni."</string>
<string name="car_permission_label_diag_clear" msgid="4783070510879698157">"sula idatha yokuxilonga"</string>
diff --git a/service/res/values/config.xml b/service/res/values/config.xml
index 886e3ba..c03536f 100644
--- a/service/res/values/config.xml
+++ b/service/res/values/config.xml
@@ -38,23 +38,23 @@
connection process. Disable this default to implement your own policy. -->
<bool name="useDefaultBluetoothConnectionPolicy">true</bool>
- <string name="inputService">android.car.input.service/.DefaultInputService</string>
+ <string name="inputService" translatable="false">android.car.input.service/.DefaultInputService</string>
- <string name="instrumentClusterRendererService">android.car.cluster.sample/.ClusterRenderingServiceImpl</string>
+ <string name="instrumentClusterRendererService" translatable="false">android.car.cluster.sample/.ClusterRenderingServiceImpl</string>
<!-- Whether to enable Activity blocking for safety. When Activity blocking is enabled,
only whitelisted safe Activities will be allowed while car is not parked. -->
<bool name="enableActivityBlockingForSafety">true</bool>
<!-- Activity to be presented when un-safe activity is launched. Take a look at the javadoc of the
default implementation. -->
- <string name="activityBlockingActivity">com.android.car/com.android.car.pm.ActivityBlockingActivity</string>
+ <string name="activityBlockingActivity" translatable="false">com.android.car/com.android.car.pm.ActivityBlockingActivity</string>
<!-- Comma separated list of activities that need to be exempted from getting
blocked in a UX restricted state.
Format of each entry is either to specify package name to whitelist the whole package or
use format of "packagename/activity_classname" for tagging each activities.
For general guidelines to design distraction optimized apps, please refer
to Android Auto Driver Distraction Guidelines. -->
- <string name="activityWhitelist"></string>
+ <string name="activityWhitelist" translatable="false"></string>
<!-- Comma separated list of activities that need to be exempted from getting
blocked in a UX restricted state.
Format of each entry is either to specify package name to whitelist the whole package or
@@ -62,16 +62,16 @@
The current implementations expects the following system packages/activities to be
whitelisted. For general guidelines to design distraction optimized apps, please refer
to Android Auto Driver Distraction Guidelines. -->
- <string name="systemActivityWhitelist">com.android.systemui,com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity,android/com.android.internal.app.ResolverActivity</string>
+ <string name="systemActivityWhitelist" translatable="false">com.android.systemui,com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity,android/com.android.internal.app.ResolverActivity</string>
<!-- Comma separated list of activities that will be blocked during restricted state.
Format of each entry is either to specify package name to whitelist the whole package
or use format of "packagename/activity_classname" for tagging each activities.-->
- <string name="activityBlacklist"></string>
+ <string name="activityBlacklist" translatable="false"></string>
<!-- List of play store package names that are allowed sources of app installation-->
- <string-array translateble="false" name="allowedAppInstallSources">
+ <string-array translatable="false" name="allowedAppInstallSources">
</string-array>
<!-- Default home activity -->
- <string name="defaultHomeActivity"><!--com.your.package/com.your.package.Activity--></string>
+ <string name="defaultHomeActivity" translatable="false"><!--com.your.package/com.your.package.Activity--></string>
<!-- The com.android.car.vms.VmsClientManager will bind to this list of clients running as system user -->
<string-array translatable="false" name="vmsPublisherSystemClients">
</string-array>
@@ -95,7 +95,7 @@
no activity shall be launched, or must be in the format of a flattened ComponentName and
reference a valid activity. It is strongly recommended that the chosen activity be
protected with the android.car.permission.STORAGE_MONITORING permission. -->
- <string name="activityHandlerForFlashWearChanges">com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity</string>
+ <string name="activityHandlerForFlashWearChanges" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity</string>
<!-- How often (in seconds) CarService will update I/O metrics from the kernel. -->
<integer name="ioStatsRefreshRateSeconds">60</integer>
@@ -128,7 +128,7 @@
must be registered in its containing app's AndroidManifest.xml and it is
strongly recommended that it be protected with the
android.car.permission.STORAGE_MONITORING permission. -->
- <string name="intentReceiverForUnacceptableIoMetrics">com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver</string>
+ <string name="intentReceiverForUnacceptableIoMetrics" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver</string>
<!-- The Model ID to advertise Bluetooth Fast Pair connections with. Must be overlayed with
device specific model id. -->
diff --git a/service/res/values/strings.xml b/service/res/values/strings.xml
index acc7a58..c5216c3 100644
--- a/service/res/values/strings.xml
+++ b/service/res/values/strings.xml
@@ -120,8 +120,8 @@
<string name="exit_button_message">To start over with safe app features, select <xliff:g id="exit_button" example="Back">%s</xliff:g>.</string>
<!-- Blocking activity: Text for button that restarts the current blocked application. [CHAR LIMIT=15] -->
<string name="exit_button">Back</string>
- <!-- Blocking activity: Text for button that shows debug info for non-user build. [CHAR LIMIT=10] -->
- <string name="debug_button_text">Debug Info</string>
+ <!-- Blocking activity: Text for button that shows debug info in non-user build. -->
+ <string name="debug_button_text" translatable="false">Debug Info</string>
<!-- Permission text: apps can control diagnostic data [CHAR LIMIT=NONE] -->
<string name="car_permission_label_diag_read">read diagnostic data</string>
diff --git a/service/src/com/android/car/CarBugreportManagerService.java b/service/src/com/android/car/CarBugreportManagerService.java
index 25592e8..59a017f 100644
--- a/service/src/com/android/car/CarBugreportManagerService.java
+++ b/service/src/com/android/car/CarBugreportManagerService.java
@@ -63,6 +63,11 @@
// The socket at /dev/socket/dumpstate to communicate with dumpstate.
private static final String DUMPSTATE_SOCKET = "dumpstate";
+ // The socket definitions must match the actual socket names defined in car_bugreportd service
+ // definition.
+ private static final String BUGREPORT_PROGRESS_SOCKET = "car_br_progress_socket";
+ private static final String BUGREPORT_OUTPUT_SOCKET = "car_br_output_socket";
+
private static final int SOCKET_CONNECTION_MAX_RETRY = 10;
/**
@@ -93,6 +98,107 @@
@Override
@RequiresPermission(android.Manifest.permission.DUMP)
+ public void requestZippedBugreport(ParcelFileDescriptor data, ParcelFileDescriptor progress,
+ ICarBugreportCallback callback) {
+ if (mHandler == null) {
+ // bugreport manager service is only available if the build is not a user build.
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_SERVICE_NOT_AVAILABLE);
+ return;
+ }
+
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP,
+ "requestBugreport");
+
+ synchronized (mLock) {
+ requestZippedBugReportLocked(data, progress, callback);
+ }
+ }
+
+ @GuardedBy("mLock")
+ private void requestZippedBugReportLocked(ParcelFileDescriptor data,
+ ParcelFileDescriptor progress, ICarBugreportCallback callback) {
+ if (mIsServiceRunning) {
+ Slog.w(TAG, "Bugreport Service already running");
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_IN_PROGRESS);
+ return;
+ }
+ mIsServiceRunning = true;
+ mHandler.post(() -> startBugreportd(data, progress, callback));
+ }
+
+ private void startBugreportd(ParcelFileDescriptor data, ParcelFileDescriptor progress,
+ ICarBugreportCallback callback) {
+ readBugreport(data, progress, callback);
+ synchronized (mLock) {
+ mIsServiceRunning = false;
+ }
+ }
+
+ private void readBugreport(ParcelFileDescriptor output, ParcelFileDescriptor progress,
+ ICarBugreportCallback callback) {
+ Slog.i(TAG, "Starting car-bugreportd");
+ try {
+ SystemProperties.set("ctl.start", "car-bugreportd");
+ } catch (RuntimeException e) {
+ Slog.e(TAG, "Failed to start car-bugreportd", e);
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_FAILED);
+ return;
+ }
+ // The native service first generates the progress data. Once it writes the progress
+ // data fully, it closes the socket and writes the zip file. So we read both files
+ // sequentially here.
+ if (!readSocket(BUGREPORT_PROGRESS_SOCKET, progress, callback)) {
+ Slog.e(TAG, "failed reading bugreport progress socket");
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_FAILED);
+ return;
+ }
+ if (!readSocket(BUGREPORT_OUTPUT_SOCKET, output, callback)) {
+ Slog.i(TAG, "failed reading bugreport output socket");
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_FAILED);
+ return;
+ }
+ Slog.i(TAG, "finished reading bugreport");
+ try {
+ callback.onFinished();
+ } catch (RemoteException e) {
+ Slog.e(TAG, "onFinished() failed: " + e.getMessage());
+ }
+ }
+
+ private boolean readSocket(String name, ParcelFileDescriptor pfd,
+ ICarBugreportCallback callback) {
+ LocalSocket localSocket;
+
+ try {
+ localSocket = connectSocket(name);
+ } catch (IOException e) {
+ Slog.e(TAG, "Failed connecting to socket " + name, e);
+ reportError(callback,
+ CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_CONNECTION_FAILED);
+ // Early out if connection to socket fails.
+ return false;
+ }
+
+ try (
+ DataInputStream in = new DataInputStream(localSocket.getInputStream());
+ DataOutputStream out =
+ new DataOutputStream(new ParcelFileDescriptor.AutoCloseOutputStream(pfd));
+ ) {
+ rawCopyStream(out, in);
+ } catch (IOException | RuntimeException e) {
+ Slog.e(TAG, "Failed to grab dump state " + name, e);
+ reportError(callback, CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_FAILED);
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ * This API and all descendants will be removed once the clients transition to new method
+ */
+ @Override
+ @RequiresPermission(android.Manifest.permission.DUMP)
public void requestBugreport(ParcelFileDescriptor pfd, ICarBugreportCallback callback) {
if (mHandler == null) {
// bugreport manager service is only available if the build is not a user build.
@@ -127,10 +233,6 @@
}
}
- @Override
- public void dump(PrintWriter writer) {
- }
-
private void dumpStateToFileWrapper(ParcelFileDescriptor pfd, ICarBugreportCallback callback) {
dumpStateToFile(pfd, callback);
synchronized (mLock) {
@@ -138,6 +240,11 @@
}
}
+ @Override
+ public void dump(PrintWriter writer) {
+ // TODO(sgurun) implement
+ }
+
private void dumpStateToFile(ParcelFileDescriptor pfd, ICarBugreportCallback callback) {
if (DEBUG) {
Slog.d(TAG, "Dumpstate to file");
@@ -155,7 +262,7 @@
}
try {
- localSocket = connectToDumpstateService();
+ localSocket = connectSocket(DUMPSTATE_SOCKET);
} catch (IOException e) {
Slog.e(TAG, "Timed out connecting to dumpstate socket", e);
reportError(callback,
@@ -184,7 +291,7 @@
}
}
- private LocalSocket connectToDumpstateService() throws IOException {
+ private LocalSocket connectSocket(String socketName) throws IOException {
LocalSocket socket = new LocalSocket();
// The dumpstate socket will be created by init upon receiving the
// service request. It may not be ready by this point. So we will
@@ -195,14 +302,15 @@
// first time too.
SystemClock.sleep(/* ms= */ 1000);
try {
- socket.connect(new LocalSocketAddress(DUMPSTATE_SOCKET,
+ socket.connect(new LocalSocketAddress(socketName,
LocalSocketAddress.Namespace.RESERVED));
return socket;
} catch (IOException e) {
if (++retryCount >= SOCKET_CONNECTION_MAX_RETRY) {
throw e;
}
- Log.i(TAG, "Failed to connect to dumpstate, will try again: " + e.getMessage());
+ Log.i(TAG, "Failed to connect to" + socketName + ". will try again"
+ + e.getMessage());
}
}
}
diff --git a/service/src/com/android/car/CarMediaService.java b/service/src/com/android/car/CarMediaService.java
index a4e0d6e..10d5d91 100644
--- a/service/src/com/android/car/CarMediaService.java
+++ b/service/src/com/android/car/CarMediaService.java
@@ -34,6 +34,8 @@
import android.media.session.MediaSessionManager;
import android.media.session.MediaSessionManager.OnActiveSessionsChangedListener;
import android.media.session.PlaybackState;
+import android.os.Handler;
+import android.os.HandlerThread;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.service.media.MediaBrowserService;
@@ -85,6 +87,10 @@
private RemoteCallbackList<ICarMediaSourceListener> mMediaSourceListeners =
new RemoteCallbackList();
+ // Handler to receive PlaybackState callbacks from the active media controller.
+ private Handler mHandler;
+ private HandlerThread mHandlerThread;
+
/** The package name of the last media source that was removed while being primary. */
private String mRemovedMediaSourcePackage;
@@ -128,6 +134,10 @@
mMediaSessionManager = mContext.getSystemService(MediaSessionManager.class);
mMediaSessionUpdater = new MediaSessionUpdater();
+ mHandlerThread = new HandlerThread(CarLog.TAG_MEDIA);
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper());
+
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
@@ -463,7 +473,11 @@
if (mPrimaryMediaPackage.equals(controller.getPackageName())) {
mActiveUserMediaController = controller;
savePlaybackState(mActiveUserMediaController.getPlaybackState());
- mActiveUserMediaController.registerCallback(mMediaControllerCallback);
+ // Specify Handler to receive callbacks on, to avoid defaulting to the calling
+ // thread; this method can be called from the MediaSessionManager callback.
+ // Using the version of this method without passing a handler causes a
+ // RuntimeException for failing to create a Handler.
+ mActiveUserMediaController.registerCallback(mMediaControllerCallback, mHandler);
return;
}
}
diff --git a/service/src/com/android/car/CarProjectionService.java b/service/src/com/android/car/CarProjectionService.java
index 33ed8f6..144804e 100644
--- a/service/src/com/android/car/CarProjectionService.java
+++ b/service/src/com/android/car/CarProjectionService.java
@@ -17,6 +17,7 @@
import static android.car.CarProjectionManager.ProjectionAccessPointCallback.ERROR_GENERIC;
import static android.car.projection.ProjectionStatus.PROJECTION_STATE_INACTIVE;
+import static android.car.projection.ProjectionStatus.PROJECTION_STATE_READY_TO_PROJECT;
import static android.net.wifi.WifiManager.EXTRA_PREVIOUS_WIFI_AP_STATE;
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_FAILURE_REASON;
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME;
@@ -410,7 +411,15 @@
ProjectionReceiverClient client = getOrCreateProjectionReceiverClientLocked(token);
client.mProjectionStatus = status;
- if (status.isActive() || TextUtils.equals(packageName, mCurrentProjectionPackage)) {
+ // If the projection package that's reporting its projection state is the currently
+ // active projection package, update the state. If it is a different package, update the
+ // current projection state if the new package is reporting that it is projecting or if
+ // it is reporting that it's ready to project, and the current package has an inactive
+ // projection state.
+ if (status.isActive()
+ || (status.getState() == PROJECTION_STATE_READY_TO_PROJECT
+ && mCurrentProjectionState == PROJECTION_STATE_INACTIVE)
+ || TextUtils.equals(packageName, mCurrentProjectionPackage)) {
mCurrentProjectionState = status.getState();
mCurrentProjectionPackage = packageName;
}
diff --git a/service/src/com/android/car/CarUxRestrictionsManagerService.java b/service/src/com/android/car/CarUxRestrictionsManagerService.java
index a9c4fbf..0c87ac4 100644
--- a/service/src/com/android/car/CarUxRestrictionsManagerService.java
+++ b/service/src/com/android/car/CarUxRestrictionsManagerService.java
@@ -304,7 +304,7 @@
* Registers a {@link ICarUxRestrictionsChangeListener} to be notified for changes to the UX
* restrictions.
*
- * @param listener Listener to register
+ * @param listener Listener to register
* @param displayId UX restrictions on this display will be notified.
*/
@Override
@@ -377,9 +377,15 @@
* @param displayId UX restrictions on this display will be returned.
*/
@Override
- @Nullable
public synchronized CarUxRestrictions getCurrentUxRestrictions(int displayId) {
- return mCurrentUxRestrictions.get(getPhysicalPort(displayId));
+ CarUxRestrictions restrictions = mCurrentUxRestrictions.get(getPhysicalPort(displayId));
+ if (restrictions == null) {
+ Log.e(TAG, String.format(
+ "Restrictions are null for displayId:%d. Returning full restrictions.",
+ displayId));
+ restrictions = createFullyRestrictedRestrictions();
+ }
+ return restrictions;
}
/**
@@ -421,7 +427,6 @@
*
* @param mode See values in {@link CarUxRestrictionsManager.UxRestrictionMode}.
* @return {@code true} if mode was successfully changed; {@code false} otherwise.
- *
* @see CarUxRestrictionsConfiguration.DrivingStateRestrictions
* @see CarUxRestrictionsConfiguration.Builder
*/
@@ -742,7 +747,10 @@
logd("dispatching to clients");
for (UxRestrictionsClient client : mUxRClients) {
- byte clientDisplayPort = getPhysicalPort(client.mDisplayId);
+ Byte clientDisplayPort = getPhysicalPort(client.mDisplayId);
+ if (clientDisplayPort == null) {
+ clientDisplayPort = mDefaultDisplayPhysicalPort;
+ }
if (displayToDispatch.contains(clientDisplayPort)) {
client.dispatchEventToClients(newUxRestrictions.get(clientDisplayPort));
}
@@ -849,12 +857,17 @@
}
}
- private byte getPhysicalPort(int displayId) {
+ /**
+ * Returns the physical port byte id for the display or {@code null} if {@link
+ * DisplayManager#getDisplay(int)} is not aware of the provided id.
+ */
+ @Nullable
+ private Byte getPhysicalPort(int displayId) {
if (!mPortLookup.containsKey(displayId)) {
Display display = mDisplayManager.getDisplay(displayId);
if (display == null) {
Log.w(TAG, "Could not retrieve display for id: " + displayId);
- return mDefaultDisplayPhysicalPort;
+ return null;
}
byte port = getPhysicalPort(display);
mPortLookup.put(displayId, port);
@@ -887,6 +900,13 @@
.build();
}
+ private CarUxRestrictions createFullyRestrictedRestrictions() {
+ return new CarUxRestrictions.Builder(
+ /*reqOpt= */ true,
+ CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED,
+ SystemClock.elapsedRealtimeNanos()).build();
+ }
+
CarUxRestrictionsConfiguration createDefaultConfig(byte port) {
return new CarUxRestrictionsConfiguration.Builder()
.setPhysicalPort(port)
diff --git a/service/src/com/android/car/ICarImpl.java b/service/src/com/android/car/ICarImpl.java
index 3956f35..2f90d3d 100644
--- a/service/src/com/android/car/ICarImpl.java
+++ b/service/src/com/android/car/ICarImpl.java
@@ -508,6 +508,7 @@
private static final String COMMAND_GARAGE_MODE = "garage-mode";
private static final String COMMAND_GET_DO_ACTIVITIES = "get-do-activities";
private static final String COMMAND_GET_CARPROPERTYCONFIG = "get-carpropertyconfig";
+ private static final String COMMAND_GET_PROPERTY_VALUE = "get-property-value";
private static final String COMMAND_PROJECTION_UI_MODE = "projection-ui-mode";
private static final String COMMAND_RESUME = "resume";
private static final String COMMAND_SUSPEND = "suspend";
@@ -539,6 +540,9 @@
pw.println("\t Get Distraction Optimized activities in given package.");
pw.println("\tget-carpropertyconfig [propertyId]");
pw.println("\t Get a CarPropertyConfig by Id in Hex or list all CarPropertyConfigs");
+ pw.println("\tget-property-value [propertyId] [areaId]");
+ pw.println("\t Get a vehicle property value by property id in Hex and areaId");
+ pw.println("\t or list all property values for all areaId");
pw.println("\tsuspend");
pw.println("\t Suspend the system to Deep Sleep.");
pw.println("\tresume");
@@ -618,6 +622,11 @@
String propertyId = args.length < 2 ? "" : args[1];
mHal.dumpPropertyConfigs(writer, propertyId);
break;
+ case COMMAND_GET_PROPERTY_VALUE:
+ String propId = args.length < 2 ? "" : args[1];
+ String areaId = args.length < 3 ? "" : args[2];
+ mHal.dumpPropertyValueByCommend(writer, propId, areaId);
+ break;
case COMMAND_PROJECTION_UI_MODE:
if (args.length != 2) {
writer.println("Incorrect number of arguments");
diff --git a/service/src/com/android/car/VmsSubscriberService.java b/service/src/com/android/car/VmsSubscriberService.java
index fc28978..aaadf4f 100644
--- a/service/src/com/android/car/VmsSubscriberService.java
+++ b/service/src/com/android/car/VmsSubscriberService.java
@@ -200,7 +200,7 @@
VmsHalService hal) {
mContext = context;
mBrokerService = brokerService;
- hal.setVmsSubscriberService(this);
+ hal.setVmsSubscriberService(this, mBrokerService::removeDeadSubscriber);
}
// Implements CarServiceBase interface.
diff --git a/service/src/com/android/car/audio/CarAudioFocus.java b/service/src/com/android/car/audio/CarAudioFocus.java
index 45c2903..714459e 100644
--- a/service/src/com/android/car/audio/CarAudioFocus.java
+++ b/service/src/com/android/car/audio/CarAudioFocus.java
@@ -43,9 +43,9 @@
// Values for the internal interaction matrix we use to make focus decisions
- private static final int INTERACTION_REJECT = 0; // Focus not granted
- private static final int INTERACTION_EXCLUSIVE = 1; // Focus granted, others loose focus
- private static final int INTERACTION_CONCURRENT = 2; // Focus granted, others keep focus
+ static final int INTERACTION_REJECT = 0; // Focus not granted
+ static final int INTERACTION_EXCLUSIVE = 1; // Focus granted, others loose focus
+ static final int INTERACTION_CONCURRENT = 2; // Focus granted, others keep focus
// TODO: Make this an overlayable resource...
// MUSIC = 1, // Music playback
diff --git a/service/src/com/android/car/audio/CarAudioZonesHelper.java b/service/src/com/android/car/audio/CarAudioZonesHelper.java
index 00cbb4b..17d9393 100644
--- a/service/src/com/android/car/audio/CarAudioZonesHelper.java
+++ b/service/src/com/android/car/audio/CarAudioZonesHelper.java
@@ -31,6 +31,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -59,7 +60,6 @@
private static final String ATTR_CONTEXT_NAME = "context";
private static final String ATTR_PHYSICAL_PORT = "port";
private static final int SUPPORTED_VERSION = 1;
- private static final int NO_XML_RESOURCE = 0;
private static final Map<String, Integer> CONTEXT_NAME_MAP;
@@ -93,7 +93,7 @@
mPortIds = new HashSet<>();
}
- public CarAudioZone[] loadAudioZones() throws IOException, XmlPullParserException {
+ CarAudioZone[] loadAudioZones() throws IOException, XmlPullParserException {
List<CarAudioZone> carAudioZones = new ArrayList<>();
parseCarAudioZones(carAudioZones, mInputStream);
return carAudioZones.toArray(new CarAudioZone[0]);
@@ -139,6 +139,7 @@
}
}
Preconditions.checkArgument(mHasPrimaryZone, "Requires one primary zone");
+ carAudioZones.sort(Comparator.comparing(CarAudioZone::getId));
}
private CarAudioZone parseAudioZone(XmlPullParser parser)
@@ -181,7 +182,7 @@
private DisplayAddress.Physical parsePhysicalDisplayAddress(XmlPullParser parser) {
String port = parser.getAttributeValue(NAMESPACE, ATTR_PHYSICAL_PORT);
- Long portId;
+ long portId;
try {
portId = Long.parseLong(port);
} catch (NumberFormatException e) {
diff --git a/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java b/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
index b0df7e8..7f11275 100644
--- a/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
+++ b/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
@@ -74,7 +74,7 @@
}
}
- public CarAudioZone[] loadAudioZones() {
+ CarAudioZone[] loadAudioZones() {
final CarAudioZone zone = new CarAudioZone(CarAudioManager.PRIMARY_AUDIO_ZONE,
"Primary zone");
for (CarVolumeGroup group : loadVolumeGroups()) {
diff --git a/service/src/com/android/car/hal/VehicleHal.java b/service/src/com/android/car/hal/VehicleHal.java
index 286ca79..d7faa2b 100644
--- a/service/src/com/android/car/hal/VehicleHal.java
+++ b/service/src/com/android/car/hal/VehicleHal.java
@@ -485,6 +485,58 @@
}
/**
+ * Dumps vehicle property values.
+ * @param writer
+ * @param propId property id, dump all properties' value if it is empty string.
+ * @param areaId areaId of the property, dump the property for all areaIds in the config
+ * if it is empty string.
+ */
+ public void dumpPropertyValueByCommend(PrintWriter writer, String propId, String areaId) {
+ if (propId.equals("")) {
+ writer.println("**All property values**");
+ for (VehiclePropConfig config : mAllProperties.values()) {
+ dumpPropertyValueByConfig(writer, config);
+ }
+ } else if (areaId.equals("")) {
+ VehiclePropConfig config = mAllProperties.get(Integer.parseInt(propId, 16));
+ dumpPropertyValueByConfig(writer, config);
+ } else {
+ int id = Integer.parseInt(propId, 16);
+ int area = Integer.parseInt(areaId);
+ try {
+ VehiclePropValue value = get(id, area);
+ writer.println(dumpVehiclePropValue(value));
+ } catch (Exception e) {
+ writer.println("Can not get property value for propertyId: 0x"
+ + propId + ", areaId: " + area);
+ }
+ }
+ }
+
+ private void dumpPropertyValueByConfig(PrintWriter writer, VehiclePropConfig config) {
+ if (config.areaConfigs.isEmpty()) {
+ try {
+ VehiclePropValue value = get(config.prop);
+ writer.println(dumpVehiclePropValue(value));
+ } catch (Exception e) {
+ writer.println("Can not get property value for propertyId: 0x"
+ + toHexString(config.prop) + ", areaId: 0");
+ }
+ } else {
+ for (VehicleAreaConfig areaConfig : config.areaConfigs) {
+ int area = areaConfig.areaId;
+ try {
+ VehiclePropValue value = get(config.prop, area);
+ writer.println(dumpVehiclePropValue(value));
+ } catch (Exception e) {
+ writer.println("Can not get property value for propertyId: 0x"
+ + toHexString(config.prop) + ", areaId: " + area);
+ }
+ }
+ }
+ }
+
+ /**
* Dump VHAL property configs.
*
* @param writer
@@ -513,7 +565,7 @@
}
/** Use VehiclePropertyConfig to construct string for dumping */
- private String dumpPropertyConfigsHelp(VehiclePropConfig config) {
+ private static String dumpPropertyConfigsHelp(VehiclePropConfig config) {
StringBuilder builder = new StringBuilder()
.append("Property:0x").append(toHexString(config.prop))
.append(",Property name:").append(VehicleProperty.toString(config.prop))
@@ -640,6 +692,7 @@
StringBuilder sb = new StringBuilder()
.append("Property:0x").append(toHexString(value.prop))
+ .append(",status: ").append(value.status)
.append(",timestamp:").append(value.timestamp)
.append(",zone:0x").append(toHexString(value.areaId))
.append(",floatValues: ").append(Arrays.toString(value.value.floatValues.toArray()))
diff --git a/service/src/com/android/car/hal/VmsHalService.java b/service/src/com/android/car/hal/VmsHalService.java
index 1f6c2e2..487ec1f 100644
--- a/service/src/com/android/car/hal/VmsHalService.java
+++ b/service/src/com/android/car/hal/VmsHalService.java
@@ -40,26 +40,30 @@
import android.hardware.automotive.vehicle.V2_0.VmsMessageWithLayerIntegerValuesIndex;
import android.hardware.automotive.vehicle.V2_0.VmsOfferingMessageIntegerValuesIndex;
import android.hardware.automotive.vehicle.V2_0.VmsPublisherInformationIntegerValuesIndex;
+import android.hardware.automotive.vehicle.V2_0.VmsStartSessionMessageIntegerValuesIndex;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
+import android.os.SystemClock;
import android.util.ArraySet;
import android.util.Log;
-import androidx.annotation.GuardedBy;
import androidx.annotation.VisibleForTesting;
import com.android.car.CarLog;
import java.io.PrintWriter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
/**
* VMS client implementation that proxies VmsPublisher/VmsSubscriber API calls to the Vehicle HAL
@@ -72,18 +76,20 @@
private static final String TAG = "VmsHalService";
private static final int HAL_PROPERTY_ID = VehicleProperty.VEHICLE_MAP_SERVICE;
private static final int NUM_INTEGERS_IN_VMS_LAYER = 3;
+ private static final int UNKNOWN_CLIENT_ID = -1;
private final VehicleHal mVehicleHal;
+ private final int mCoreId;
+ private final MessageQueue mMessageQueue;
private volatile boolean mIsSupported = false;
- private IBinder mPublisherToken;
private IVmsPublisherService mPublisherService;
- private IVmsSubscriberService mSubscriberService;
+ private Consumer<IBinder> mPublisherOnHalConnected;
+ private Runnable mPublisherOnHalDisconnected;
+ private IBinder mPublisherToken;
- @GuardedBy("this")
- private HandlerThread mHandlerThread;
- @GuardedBy("this")
- private Handler mHandler;
+ private IVmsSubscriberService mSubscriberService;
+ private Consumer<IVmsSubscriberClient> mSuscriberOnHalDisconnected;
private int mSubscriptionStateSequence = -1;
private int mAvailableLayersSequence = -1;
@@ -97,14 +103,19 @@
@Override
public void onVmsSubscriptionChange(VmsSubscriptionState subscriptionState) {
- // Registration of this callback is handled by VmsPublisherService.
- // As a result, HAL support must be checked whenever the callback is triggered.
- if (!mIsSupported) {
+ if (DBG) Log.d(TAG, "Handling a subscription state change");
+ // Drop out-of-order notifications
+ if (subscriptionState.getSequenceNumber() <= mSubscriptionStateSequence) {
+ Log.w(TAG,
+ String.format("Out of order subscription state received: %d (expecting %d)",
+ subscriptionState.getSequenceNumber(),
+ mSubscriptionStateSequence + 1));
return;
}
- if (DBG) Log.d(TAG, "Handling a subscription state change");
- Message.obtain(mHandler, VmsMessageType.SUBSCRIPTIONS_CHANGE, subscriptionState)
- .sendToTarget();
+ mSubscriptionStateSequence = subscriptionState.getSequenceNumber();
+ mMessageQueue.enqueue(VmsMessageType.SUBSCRIPTIONS_CHANGE,
+ createSubscriptionStateMessage(VmsMessageType.SUBSCRIPTIONS_CHANGE,
+ subscriptionState));
}
};
@@ -112,67 +123,87 @@
@Override
public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {
if (DBG) Log.d(TAG, "Handling a data message for Layer: " + layer);
- // TODO(b/124130256): Set publisher ID of data message
- Message.obtain(mHandler, VmsMessageType.DATA, createDataMessage(layer, 0, payload))
- .sendToTarget();
+ mMessageQueue.enqueue(VmsMessageType.DATA, createDataMessage(layer, payload));
}
@Override
public void onLayersAvailabilityChanged(VmsAvailableLayers availableLayers) {
if (DBG) Log.d(TAG, "Handling a layer availability change");
- Message.obtain(mHandler, VmsMessageType.AVAILABILITY_CHANGE, availableLayers)
- .sendToTarget();
+ // Drop out-of-order notifications
+ if (availableLayers.getSequence() <= mAvailableLayersSequence) {
+ Log.w(TAG,
+ String.format("Out of order layer availability received: %d (expecting %d)",
+ availableLayers.getSequence(),
+ mAvailableLayersSequence + 1));
+ return;
+ }
+ mAvailableLayersSequence = availableLayers.getSequence();
+ mMessageQueue.enqueue(VmsMessageType.AVAILABILITY_CHANGE,
+ createAvailableLayersMessage(VmsMessageType.AVAILABILITY_CHANGE,
+ availableLayers));
}
};
- private final Handler.Callback mHandlerCallback = msg -> {
- int messageType = msg.what;
- VehiclePropValue vehicleProp = null;
- switch (messageType) {
- case VmsMessageType.DATA:
- vehicleProp = (VehiclePropValue) msg.obj;
- break;
- case VmsMessageType.SUBSCRIPTIONS_CHANGE:
- VmsSubscriptionState subscriptionState = (VmsSubscriptionState) msg.obj;
- // Drop out-of-order notifications
- if (subscriptionState.getSequenceNumber() <= mSubscriptionStateSequence) {
- break;
- }
- vehicleProp = createSubscriptionStateMessage(
- VmsMessageType.SUBSCRIPTIONS_CHANGE,
- subscriptionState);
- mSubscriptionStateSequence = subscriptionState.getSequenceNumber();
- break;
- case VmsMessageType.AVAILABILITY_CHANGE:
- VmsAvailableLayers availableLayers = (VmsAvailableLayers) msg.obj;
- // Drop out-of-order notifications
- if (availableLayers.getSequence() <= mAvailableLayersSequence) {
- break;
- }
- vehicleProp = createAvailableLayersMessage(
- VmsMessageType.AVAILABILITY_CHANGE,
- availableLayers);
- mAvailableLayersSequence = availableLayers.getSequence();
- break;
- default:
- Log.e(TAG, "Unexpected message type: " + messageType);
+ private class MessageQueue implements Handler.Callback {
+ private final Set<Integer> mSupportedMessageTypes = new ArraySet<>(Arrays.asList(
+ VmsMessageType.DATA,
+ VmsMessageType.START_SESSION,
+ VmsMessageType.AVAILABILITY_CHANGE,
+ VmsMessageType.SUBSCRIPTIONS_CHANGE
+ ));
+ private HandlerThread mHandlerThread;
+ private Handler mHandler;
+
+ synchronized void init() {
+ mHandlerThread = new HandlerThread(TAG);
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper(), this);
}
- if (vehicleProp != null) {
+
+ synchronized void release() {
+ if (mHandlerThread != null) {
+ mHandlerThread.quitSafely();
+ }
+ }
+
+ synchronized void enqueue(int messageType, Object message) {
+ if (mSupportedMessageTypes.contains(messageType)) {
+ Message.obtain(mHandler, messageType, message).sendToTarget();
+ } else {
+ Log.e(TAG, "Unexpected message type: " + VmsMessageType.toString(messageType));
+ }
+ }
+
+ synchronized void clear() {
+ mSupportedMessageTypes.forEach(mHandler::removeMessages);
+ }
+
+ @Override
+ public boolean handleMessage(Message msg) {
+ int messageType = msg.what;
+ VehiclePropValue vehicleProp = (VehiclePropValue) msg.obj;
if (DBG) Log.d(TAG, "Sending " + VmsMessageType.toString(messageType) + " message");
try {
setPropertyValue(vehicleProp);
} catch (RemoteException e) {
Log.e(TAG, "While sending " + VmsMessageType.toString(messageType));
}
+ return true;
}
- return true;
- };
+ }
/**
* Constructor used by {@link VehicleHal}
*/
VmsHalService(VehicleHal vehicleHal) {
+ this(vehicleHal, SystemClock::uptimeMillis);
+ }
+
+ @VisibleForTesting
+ VmsHalService(VehicleHal vehicleHal, Supplier<Long> getCoreId) {
mVehicleHal = vehicleHal;
+ mCoreId = (int) (getCoreId.get() % Integer.MAX_VALUE);
+ mMessageQueue = new MessageQueue();
}
/**
@@ -180,21 +211,25 @@
*/
@VisibleForTesting
Handler getHandler() {
- return mHandler;
+ return mMessageQueue.mHandler;
}
/**
* Gets the {@link IVmsPublisherClient} implementation for the HAL's publisher callback.
*/
- public IBinder getPublisherClient() {
- return mPublisherClient.asBinder();
+ public void setPublisherConnectionCallbacks(Consumer<IBinder> onHalConnected,
+ Runnable onHalDisconnected) {
+ mPublisherOnHalConnected = onHalConnected;
+ mPublisherOnHalDisconnected = onHalDisconnected;
}
/**
* Sets a reference to the {@link IVmsSubscriberService} implementation for use by the HAL.
*/
- public void setVmsSubscriberService(IVmsSubscriberService service) {
+ public void setVmsSubscriberService(IVmsSubscriberService service,
+ Consumer<IVmsSubscriberClient> onHalDisconnected) {
mSubscriberService = service;
+ mSuscriberOnHalDisconnected = onHalDisconnected;
}
@Override
@@ -219,39 +254,14 @@
return; // Do not continue initialization
}
- synchronized (this) {
- mHandlerThread = new HandlerThread(TAG);
- mHandlerThread.start();
- mHandler = new Handler(mHandlerThread.getLooper(), mHandlerCallback);
- }
-
- if (mSubscriberService != null) {
- try {
- mSubscriberService.addVmsSubscriberToNotifications(mSubscriberClient);
- } catch (RemoteException e) {
- Log.e(TAG, "While adding subscriber callback", e);
- }
-
- // Publish layer availability to HAL clients (this triggers HAL client initialization)
- try {
- mSubscriberClient.onLayersAvailabilityChanged(
- mSubscriberService.getAvailableLayers());
- } catch (RemoteException e) {
- Log.e(TAG, "While publishing layer availability", e);
- }
- } else if (DBG) {
- Log.d(TAG, "VmsSubscriberService not registered");
- }
+ mMessageQueue.init();
+ mMessageQueue.enqueue(VmsMessageType.START_SESSION,
+ createStartSessionMessage(mCoreId, UNKNOWN_CLIENT_ID));
}
@Override
public void release() {
- synchronized (this) {
- if (mHandlerThread != null) {
- mHandlerThread.quitSafely();
- }
- }
-
+ mMessageQueue.release();
mSubscriptionStateSequence = -1;
mAvailableLayersSequence = -1;
@@ -330,6 +340,9 @@
case VmsMessageType.SUBSCRIPTIONS_REQUEST:
handleSubscriptionsRequestEvent();
break;
+ case VmsMessageType.START_SESSION:
+ handleStartSessionEvent(vec);
+ break;
default:
Log.e(TAG, "Unexpected message type: " + messageType);
}
@@ -340,6 +353,72 @@
}
/**
+ * SESSION_START message format:
+ * <ul>
+ * <li>Message type
+ * <li>Core ID
+ * <li>Client ID
+ * </ul>
+ */
+ private void handleStartSessionEvent(List<Integer> message) {
+ int coreId = message.get(VmsStartSessionMessageIntegerValuesIndex.SERVICE_ID);
+ int clientId = message.get(VmsStartSessionMessageIntegerValuesIndex.CLIENT_ID);
+ if (DBG) {
+ Log.d(TAG,
+ "Handling a session start event with coreId: " + coreId + " client: "
+ + clientId);
+ }
+
+ if (coreId != mCoreId) {
+ if (mPublisherOnHalDisconnected != null) {
+ mPublisherOnHalDisconnected.run();
+ } else {
+ Log.w(TAG, "Publisher disconnect callback not registered");
+ }
+ if (mSuscriberOnHalDisconnected != null) {
+ mSuscriberOnHalDisconnected.accept(mSubscriberClient);
+ } else {
+ Log.w(TAG, "Subscriber disconnect callback not registered");
+ }
+
+ // Drop all queued messages and client state
+ mMessageQueue.clear();
+ mSubscriptionStateSequence = -1;
+ mAvailableLayersSequence = -1;
+
+ // Enqueue an acknowledgement message
+ mMessageQueue.enqueue(VmsMessageType.START_SESSION,
+ createStartSessionMessage(mCoreId, clientId));
+ }
+
+ // Notify client manager of connection
+ if (mPublisherOnHalConnected != null) {
+ mPublisherOnHalConnected.accept(mPublisherClient);
+ } else {
+ Log.w(TAG, "Publisher connect callback not registered");
+ }
+
+ // Notify subscriber service of connection
+ if (mSubscriberService != null) {
+ try {
+ mSubscriberService.addVmsSubscriberToNotifications(mSubscriberClient);
+ } catch (RemoteException e) {
+ Log.e(TAG, "While adding subscriber callback", e);
+ }
+
+ // Publish layer availability to HAL clients (this triggers HAL client initialization)
+ try {
+ mSubscriberClient.onLayersAvailabilityChanged(
+ mSubscriberService.getAvailableLayers());
+ } catch (RemoteException e) {
+ Log.e(TAG, "While publishing layer availability", e);
+ }
+ } else {
+ Log.w(TAG, "Subscriber connect callback not registered");
+ }
+ }
+
+ /**
* DATA message format:
* <ul>
* <li>Message type
@@ -588,6 +667,30 @@
}
/**
+ * Creates a SESSION_START type {@link VehiclePropValue}.
+ *
+ * SESSION_START message format:
+ * <ul>
+ * <li>Message type
+ * <li>Core ID
+ * <li>Client ID
+ * </ul>
+ */
+ private static VehiclePropValue createStartSessionMessage(int coreId, int clientId) {
+ // Message type + layer
+ VehiclePropValue vehicleProp = createVmsMessage(VmsMessageType.START_SESSION);
+ List<Integer> message = vehicleProp.value.int32Values;
+
+ // Core ID
+ message.add(coreId);
+
+ // Client ID
+ message.add(clientId);
+
+ return vehicleProp;
+ }
+
+ /**
* Creates a DATA type {@link VehiclePropValue}.
*
* DATA message format:
@@ -602,14 +705,15 @@
*
* @param layer Layer for which message was published.
*/
- private static VehiclePropValue createDataMessage(VmsLayer layer, int publisherId,
- byte[] payload) {
+ private static VehiclePropValue createDataMessage(VmsLayer layer, byte[] payload) {
// Message type + layer
- VehiclePropValue vehicleProp = createVmsMessageWithLayer(VmsMessageType.DATA, layer);
+ VehiclePropValue vehicleProp = createVmsMessage(VmsMessageType.DATA);
+ appendLayer(vehicleProp.value.int32Values, layer);
List<Integer> message = vehicleProp.value.int32Values;
// Publisher ID
- message.add(publisherId);
+ // TODO(b/124130256): Set publisher ID of data message
+ message.add(0);
// Payload
appendBytes(vehicleProp.value.bytes, payload);
@@ -709,20 +813,6 @@
}
/**
- * Creates a {@link VehiclePropValue} of the requested message type, with layer message fields
- * populated. Other message fields are *not* populated.
- *
- * @param messageType Type of message, from {@link VmsMessageType}
- * @param layer Layer affected by message.
- */
- private static VehiclePropValue createVmsMessageWithLayer(
- int messageType, VmsLayer layer) {
- VehiclePropValue vehicleProp = createVmsMessage(messageType);
- appendLayer(vehicleProp.value.int32Values, layer);
- return vehicleProp;
- }
-
- /**
* Appends a {@link VmsLayer} to an encoded VMS message.
*
* Layer format:
@@ -761,9 +851,7 @@
message.add(layer.getVmsLayer().getSubtype());
message.add(layer.getVmsLayer().getVersion());
message.add(layer.getPublisherIds().size());
- for (int publisherId : layer.getPublisherIds()) {
- message.add(publisherId);
- }
+ message.addAll(layer.getPublisherIds());
}
private static void appendBytes(ArrayList<Byte> dst, byte[] src) {
diff --git a/service/src/com/android/car/pm/CarAppMetadataReader.java b/service/src/com/android/car/pm/CarAppMetadataReader.java
index 7c1e115..648fded 100644
--- a/service/src/com/android/car/pm/CarAppMetadataReader.java
+++ b/service/src/com/android/car/pm/CarAppMetadataReader.java
@@ -51,18 +51,19 @@
* @return Array of DO activity names in the given package
*/
@Nullable
- public static String[] findDistractionOptimizedActivities(Context context, String packageName)
- throws NameNotFoundException {
+ public static String[] findDistractionOptimizedActivitiesAsUser(Context context,
+ String packageName, int userId) throws NameNotFoundException {
final PackageManager pm = context.getPackageManager();
// Check if any of the activities in the package are DO by checking all the
// <activity> elements.
PackageInfo pkgInfo =
- pm.getPackageInfo(
+ pm.getPackageInfoAsUser(
packageName, PackageManager.GET_ACTIVITIES
| PackageManager.GET_META_DATA
| PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
+ | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
+ userId);
if (pkgInfo == null) {
return null;
}
diff --git a/service/src/com/android/car/pm/CarPackageManagerService.java b/service/src/com/android/car/pm/CarPackageManagerService.java
index 08e13e1..7615d28 100644
--- a/service/src/com/android/car/pm/CarPackageManagerService.java
+++ b/service/src/com/android/car/pm/CarPackageManagerService.java
@@ -18,6 +18,7 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.ActivityManager;
import android.app.ActivityManager.StackInfo;
import android.car.Car;
import android.car.content.pm.AppBlockingPackageInfo;
@@ -48,7 +49,7 @@
import android.os.Looper;
import android.os.Message;
import android.os.Process;
-import android.text.TextUtils;
+import android.os.UserHandle;
import android.text.format.DateFormat;
import android.util.ArraySet;
import android.util.Log;
@@ -87,6 +88,7 @@
private final Context mContext;
private final SystemActivityMonitoringService mSystemActivityMonitoringService;
private final PackageManager mPackageManager;
+ private final ActivityManager mActivityManager;
private final HandlerThread mHandlerThread;
private final PackageHandler mHandler;
@@ -110,8 +112,6 @@
private HashMap<String, AppBlockingPackageInfoWrapper> mActivityWhitelistMap = new HashMap<>();
// The list corresponding to the one configured in <activityBlacklist>
@GuardedBy("this")
- private HashMap<String, AppBlockingPackageInfoWrapper> mActivityBlacklistMap = new HashMap<>();
- @GuardedBy("this")
private LinkedList<AppBlockingPolicyProxy> mProxies;
@GuardedBy("this")
@@ -179,6 +179,7 @@
mCarUxRestrictionsService = uxRestrictionsService;
mSystemActivityMonitoringService = systemActivityMonitoringService;
mPackageManager = mContext.getPackageManager();
+ mActivityManager = mContext.getSystemService(ActivityManager.class);
mUxRestrictionsListener = new UxRestrictionsListener(uxRestrictionsService);
mHandlerThread = new HandlerThread(CarLog.TAG_PACKAGE);
mHandlerThread.start();
@@ -318,8 +319,7 @@
return wrapper.info;
}
}
- AppBlockingPackageInfoWrapper wrapper = mActivityBlacklistMap.get(packageName);
- return (wrapper != null) ? wrapper.info : null;
+ return null;
}
@GuardedBy("this")
@@ -374,7 +374,6 @@
}
mHasParsedPackages = false;
mActivityWhitelistMap.clear();
- mActivityBlacklistMap.clear();
mClientPolicies.clear();
if (mProxies != null) {
for (AppBlockingPolicyProxy proxy : mProxies) {
@@ -382,7 +381,7 @@
}
mProxies.clear();
}
- wakeupClientsWaitingForPolicySetitngLocked();
+ wakeupClientsWaitingForPolicySettingLocked();
}
mContext.unregisterReceiver(mPackageParsingEventReceiver);
mContext.unregisterReceiver(mUserSwitchedEventReceiver);
@@ -401,7 +400,8 @@
pkgParseIntent.addAction(action);
}
pkgParseIntent.addDataScheme("package");
- mContext.registerReceiver(mPackageParsingEventReceiver, pkgParseIntent);
+ mContext.registerReceiverAsUser(mPackageParsingEventReceiver, UserHandle.ALL,
+ pkgParseIntent, null, null);
try {
// TODO(128456985): register listener for each display in order to
// properly launch blocking screens.
@@ -418,8 +418,8 @@
}
private void doParseInstalledPackages() {
- generateActivityWhitelistMap();
- generateActivityBlacklistMap();
+ int userId = mActivityManager.getCurrentUser();
+ generateActivityWhitelistMap(userId);
synchronized (this) {
mHasParsedPackages = true;
}
@@ -432,7 +432,7 @@
}
@GuardedBy("this")
- private void wakeupClientsWaitingForPolicySetitngLocked() {
+ private void wakeupClientsWaitingForPolicySettingLocked() {
for (CarAppBlockingPolicy waitingPolicy : mWaitingPolicies) {
synchronized (waitingPolicy) {
waitingPolicy.notifyAll();
@@ -443,7 +443,7 @@
private void doSetPolicy() {
synchronized (this) {
- wakeupClientsWaitingForPolicySetitngLocked();
+ wakeupClientsWaitingForPolicySettingLocked();
}
blockTopActivitiesIfNecessary();
}
@@ -559,12 +559,36 @@
* Generate a map of whitelisted packages and activities of the form {pkgName, Whitelisted
* activities}. The whitelist information can come from a configuration XML resource or from
* the apps marking their activities as distraction optimized.
+ *
+ * @param userId Generate whitelist based on packages installed for this user.
*/
- private void generateActivityWhitelistMap() {
- HashMap<String, AppBlockingPackageInfoWrapper> activityWhitelist = new HashMap<>();
-
+ private void generateActivityWhitelistMap(int userId) {
// Get the apps/activities that are whitelisted in the configuration XML resources.
- HashMap<String, Set<String>> configWhitelist = new HashMap<>();
+ Map<String, Set<String>> configWhitelist = generateConfigWhitelist();
+ Map<String, Set<String>> configBlacklist = generateConfigBlacklist();
+
+ Map<String, AppBlockingPackageInfoWrapper> activityWhitelist =
+ generateActivityWhitelistAsUser(UserHandle.USER_SYSTEM,
+ configWhitelist, configBlacklist);
+ // Also parse packages for current user.
+ if (userId != UserHandle.USER_SYSTEM) {
+ Map<String, AppBlockingPackageInfoWrapper> userWhitelistedPackages =
+ generateActivityWhitelistAsUser(userId, configWhitelist, configBlacklist);
+ for (String packageName : userWhitelistedPackages.keySet()) {
+ if (activityWhitelist.containsKey(packageName)) {
+ continue;
+ }
+ activityWhitelist.put(packageName, userWhitelistedPackages.get(packageName));
+ }
+ }
+ synchronized (this) {
+ mActivityWhitelistMap.clear();
+ mActivityWhitelistMap.putAll(activityWhitelist);
+ }
+ }
+
+ private Map<String, Set<String>> generateConfigWhitelist() {
+ Map<String, Set<String>> configWhitelist = new HashMap<>();
mConfiguredWhitelist = mContext.getString(R.string.activityWhitelist);
if (mConfiguredWhitelist == null) {
if (DBG_POLICY_CHECK) {
@@ -572,6 +596,7 @@
}
}
parseConfigList(mConfiguredWhitelist, configWhitelist);
+
mConfiguredSystemWhitelist = mContext.getString(R.string.systemActivityWhitelist);
if (mConfiguredSystemWhitelist == null) {
if (DBG_POLICY_CHECK) {
@@ -588,11 +613,43 @@
configWhitelist.put(mActivityBlockingActivity.getPackageName(), defaultActivity);
}
- List<PackageInfo> packages = mPackageManager.getInstalledPackages(
+ return configWhitelist;
+ }
+
+ private Map<String, Set<String>> generateConfigBlacklist() {
+ Map<String, Set<String>> configBlacklist = new HashMap<>();
+ mConfiguredBlacklist = mContext.getString(R.string.activityBlacklist);
+ if (mConfiguredBlacklist == null) {
+ if (DBG_POLICY_CHECK) {
+ Log.d(CarLog.TAG_PACKAGE, "Null blacklist in config");
+ }
+ }
+ parseConfigList(mConfiguredBlacklist, configBlacklist);
+
+ return configBlacklist;
+ }
+
+ /**
+ * Generates whitelisted activities based on packages installed for system user and current
+ * user (if different). Factors affecting whitelist:
+ * - whitelist from resource config;
+ * - activity declared as Distraction Optimized (D.O.) in manifest;
+ * - blacklist from resource config - package/activity blacklisted will not exist
+ * in returned whitelist.
+ *
+ * @param userId Parse packages installed for user.
+ * @param configWhitelist Whitelist from config.
+ * @param configBlacklist Blacklist from config.
+ */
+ private Map<String, AppBlockingPackageInfoWrapper> generateActivityWhitelistAsUser(int userId,
+ Map<String, Set<String>> configWhitelist, Map<String, Set<String>> configBlacklist) {
+ HashMap<String, AppBlockingPackageInfoWrapper> activityWhitelist = new HashMap<>();
+
+ List<PackageInfo> packages = mPackageManager.getInstalledPackagesAsUser(
PackageManager.GET_SIGNATURES | PackageManager.GET_ACTIVITIES
| PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
-
+ | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
+ userId);
for (PackageInfo info : packages) {
if (info.applicationInfo == null) {
continue;
@@ -606,8 +663,8 @@
flags = AppBlockingPackageInfo.FLAG_SYSTEM_APP;
}
- /* 1. Check if all or some of this app is in the <activityWhitelist>
- in config.xml */
+ /* 1. Check if all or some of this app is in the <activityWhitelist> or
+ <systemActivityWhitelist> in config.xml */
Set<String> configActivitiesForPackage = configWhitelist.get(info.packageName);
if (configActivitiesForPackage != null) {
if (DBG_POLICY_CHECK) {
@@ -662,8 +719,9 @@
}
try {
- String[] doActivities = CarAppMetadataReader.findDistractionOptimizedActivities(
- mContext, info.packageName);
+ String[] doActivities =
+ CarAppMetadataReader.findDistractionOptimizedActivitiesAsUser(
+ mContext, info.packageName, userId);
if (doActivities != null) {
// Some of the activities in this app are Distraction Optimized.
if (DBG_POLICY_CHECK) {
@@ -685,6 +743,17 @@
continue;
}
+ /* 3. Check if parsed activity is in <activityBlacklist> in config.xml. Anything
+ in blacklist should not be whitelisted, either as D.O. or by config. */
+ if (configBlacklist.containsKey(info.packageName)) {
+ Set<String> configBlacklistActivities = configBlacklist.get(info.packageName);
+ if (configBlacklistActivities.isEmpty()) {
+ // Whole package should be blacklisted.
+ continue;
+ }
+ activities.removeAll(configBlacklistActivities);
+ }
+
Signature[] signatures;
signatures = info.signatures;
AppBlockingPackageInfo appBlockingInfo = new AppBlockingPackageInfo(
@@ -694,10 +763,7 @@
appBlockingInfo, true);
activityWhitelist.put(info.packageName, wrapper);
}
- synchronized (this) {
- mActivityWhitelistMap.clear();
- mActivityWhitelistMap.putAll(activityWhitelist);
- }
+ return activityWhitelist;
}
private boolean isDebugBuild() {
@@ -705,74 +771,6 @@
}
/**
- * Generate a map of blacklisted packages and activities of the form {pkgName, Blacklisted
- * activities}. The blacklist information comes from a configuration XML resource.
- */
- private void generateActivityBlacklistMap() {
- HashMap<String, AppBlockingPackageInfoWrapper> activityBlacklist = new HashMap<>();
-
- // Parse blacklisted activities.
- Map<String, Set<String>> configBlacklist = new HashMap<>();
- mConfiguredBlacklist = mContext.getString(R.string.activityBlacklist);
- if (mConfiguredBlacklist == null) {
- if (DBG_POLICY_CHECK) {
- Log.d(CarLog.TAG_PACKAGE, "Null blacklist in config");
- }
- }
- parseConfigList(mConfiguredBlacklist, configBlacklist);
-
- for (String pkg : configBlacklist.keySet()) {
- if (TextUtils.isEmpty(pkg)) {
- // This means there is nothing to blacklist
- Log.d(CarLog.TAG_PACKAGE, "Empty string in blacklist pkg");
- continue;
- }
- int flags = 0;
- PackageInfo pkgInfo;
- Set<String> activities = new ArraySet<>();
- try {
- pkgInfo = mPackageManager.getPackageInfo(
- pkg, PackageManager.GET_ACTIVITIES
- | PackageManager.GET_SIGNING_CERTIFICATES
- | PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
- } catch (NameNotFoundException e) {
- Log.e(CarLog.TAG_PACKAGE, pkg + " not found to blacklist ", e);
- continue;
- }
-
- if (pkgInfo.applicationInfo.isSystemApp()
- || pkgInfo.applicationInfo.isUpdatedSystemApp()) {
- flags |= AppBlockingPackageInfo.FLAG_SYSTEM_APP;
- }
- Set<String> configActivities = configBlacklist.get(pkg);
- if (configActivities.size() == 0) {
- // whole package
- flags |= AppBlockingPackageInfo.FLAG_WHOLE_ACTIVITY;
- List<String> activitiesInPackage = getActivitiesInPackage(pkgInfo);
- if (activitiesInPackage != null && !activitiesInPackage.isEmpty()) {
- activities.addAll(activitiesInPackage);
- }
- } else {
- activities.addAll(configActivities);
- }
-
- if (activities.isEmpty()) {
- continue;
- }
- AppBlockingPackageInfo appBlockingInfo = new AppBlockingPackageInfo(pkg, 0, 0, flags,
- pkgInfo.signatures, activities.toArray(new String[activities.size()]));
- AppBlockingPackageInfoWrapper wrapper = new AppBlockingPackageInfoWrapper(
- appBlockingInfo, true);
- activityBlacklist.put(pkg, wrapper);
- }
- synchronized (this) {
- mActivityBlacklistMap.clear();
- mActivityBlacklistMap.putAll(activityBlacklist);
- }
- }
-
- /**
* Parses the given resource and updates the input map of packages and activities.
*
* Key is package name and value is list of activities. Empty set implies whole package is
@@ -917,10 +915,6 @@
for (AppBlockingPackageInfoWrapper wrapper : mActivityWhitelistMap.values()) {
sb.append(wrapper.toString() + "\n");
}
- sb.append("**System Black list**\n");
- for (AppBlockingPackageInfoWrapper wrapper : mActivityBlacklistMap.values()) {
- sb.append(wrapper.toString() + "\n");
- }
}
sb.append("**Client Policies**\n");
for (Entry<String, ClientPolicy> entry : mClientPolicies.entrySet()) {
@@ -943,6 +937,9 @@
sb.append("**Whitelist string in resource**\n");
sb.append(mConfiguredWhitelist + "\n");
+ sb.append("**System whitelist string in resource**\n");
+ sb.append(mConfiguredSystemWhitelist + "\n");
+
sb.append("**Blacklist string in resource**\n");
sb.append(mConfiguredBlacklist + "\n");
@@ -1091,7 +1088,8 @@
@Nullable
public String[] getDistractionOptimizedActivities(String pkgName) {
try {
- return CarAppMetadataReader.findDistractionOptimizedActivities(mContext, pkgName);
+ return CarAppMetadataReader.findDistractionOptimizedActivitiesAsUser(mContext, pkgName,
+ mActivityManager.getCurrentUser());
} catch (NameNotFoundException e) {
return null;
}
@@ -1154,6 +1152,9 @@
}
private void requestParsingInstalledPkgs(long delayMs) {
+ // Parse packages for current user.
+ removeMessages(MSG_PARSE_PKG);
+
Message msg = obtainMessage(MSG_PARSE_PKG);
if (delayMs == 0) {
sendMessage(msg);
@@ -1169,7 +1170,6 @@
doHandleInit();
break;
case MSG_PARSE_PKG:
- removeMessages(MSG_PARSE_PKG);
doParseInstalledPackages();
break;
case MSG_SET_POLICY:
diff --git a/service/src/com/android/car/storagemonitoring/SysfsLifetimeWriteInfoProvider.java b/service/src/com/android/car/storagemonitoring/SysfsLifetimeWriteInfoProvider.java
index 50cc57c..6ba3163 100644
--- a/service/src/com/android/car/storagemonitoring/SysfsLifetimeWriteInfoProvider.java
+++ b/service/src/com/android/car/storagemonitoring/SysfsLifetimeWriteInfoProvider.java
@@ -19,7 +19,9 @@
import android.annotation.Nullable;
import android.car.storagemonitoring.LifetimeWriteInfo;
import android.util.Log;
+
import com.android.internal.annotations.VisibleForTesting;
+
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -100,7 +102,12 @@
for (String fstype : KNOWN_FILESYSTEMS) {
File fspath = new File(mWriteInfosPath, fstype);
if (!fspath.exists() || !fspath.isDirectory()) continue;
- Arrays.stream(fspath.listFiles(File::isDirectory))
+ File[] files = fspath.listFiles(File::isDirectory);
+ if (files == null) {
+ Log.e(TAG, "there are no directories at location " + fspath.getAbsolutePath());
+ continue;
+ }
+ Arrays.stream(files)
.map(this::tryParse)
.filter(Objects::nonNull)
.forEach(writeInfos::add);
diff --git a/service/src/com/android/car/trust/BLEMessagePayloadStream.java b/service/src/com/android/car/trust/BLEMessagePayloadStream.java
index 1f1fdb1..75345b8 100644
--- a/service/src/com/android/car/trust/BLEMessagePayloadStream.java
+++ b/service/src/com/android/car/trust/BLEMessagePayloadStream.java
@@ -19,7 +19,7 @@
import android.annotation.NonNull;
import android.util.Log;
-import com.android.car.trust.BLEStream.BLEMessage;
+import com.android.car.BLEStreamProtos.BLEMessageProto.BLEMessage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/service/src/com/android/car/trust/BLEMessageV1Factory.java b/service/src/com/android/car/trust/BLEMessageV1Factory.java
index c0b11d4..42acafd 100644
--- a/service/src/com/android/car/trust/BLEMessageV1Factory.java
+++ b/service/src/com/android/car/trust/BLEMessageV1Factory.java
@@ -18,9 +18,9 @@
import android.util.Log;
-import com.android.car.trust.BLEStream.BLEMessage;
-import com.android.car.trust.BLEStream.BLEMessage.OperationType;
-import com.android.car.trust.protobuf.ByteString;
+import com.android.car.BLEStreamProtos.BLEMessageProto.BLEMessage;
+import com.android.car.BLEStreamProtos.BLEOperationProto.OperationType;
+import com.android.car.protobuf.ByteString;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/service/src/com/android/car/trust/CarTrustAgentBleManager.java b/service/src/com/android/car/trust/CarTrustAgentBleManager.java
index e3f6856..f42c1e4 100644
--- a/service/src/com/android/car/trust/CarTrustAgentBleManager.java
+++ b/service/src/com/android/car/trust/CarTrustAgentBleManager.java
@@ -30,11 +30,11 @@
import androidx.annotation.Nullable;
+import com.android.car.BLEStreamProtos.BLEMessageProto.BLEMessage;
+import com.android.car.BLEStreamProtos.BLEOperationProto.OperationType;
import com.android.car.CarLocalServices;
import com.android.car.R;
import com.android.car.Utils;
-import com.android.car.trust.BLEStream.BLEMessage;
-import com.android.car.trust.BLEStream.BLEMessage.OperationType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/service/src/com/android/car/trust/CarTrustAgentEnrollmentService.java b/service/src/com/android/car/trust/CarTrustAgentEnrollmentService.java
index 39ec796..812cb63 100644
--- a/service/src/com/android/car/trust/CarTrustAgentEnrollmentService.java
+++ b/service/src/com/android/car/trust/CarTrustAgentEnrollmentService.java
@@ -40,9 +40,9 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import com.android.car.BLEStreamProtos.BLEOperationProto.OperationType;
import com.android.car.R;
import com.android.car.Utils;
-import com.android.car.trust.BLEStream.BLEMessage.OperationType;
import com.android.internal.annotations.GuardedBy;
import java.io.PrintWriter;
@@ -457,6 +457,7 @@
Log.e(TAG, "onAdvertiseSuccess dispatch failed", e);
}
}
+ mCarTrustAgentBleManager.stopEnrollmentAdvertising();
}
void onRemoteDeviceDisconnected(BluetoothDevice device) {
diff --git a/service/src/com/android/car/vms/VmsClientManager.java b/service/src/com/android/car/vms/VmsClientManager.java
index 5f5969e..14ef0a7 100644
--- a/service/src/com/android/car/vms/VmsClientManager.java
+++ b/service/src/com/android/car/vms/VmsClientManager.java
@@ -76,7 +76,6 @@
private final Handler mHandler;
private final CarUserService mUserService;
private final CarUserManagerHelper mUserManagerHelper;
- private final IBinder mHalClient;
private final int mMillisBeforeRebind;
@GuardedBy("mListeners")
@@ -84,6 +83,8 @@
@GuardedBy("mSystemClients")
private final Map<String, ClientConnection> mSystemClients = new ArrayMap<>();
@GuardedBy("mSystemClients")
+ private IBinder mHalClient;
+ @GuardedBy("mSystemClients")
private boolean mSystemUserUnlocked;
@GuardedBy("mCurrentUserClients")
@@ -132,9 +133,9 @@
mHandler = new Handler(Looper.getMainLooper());
mUserService = userService;
mUserManagerHelper = userManagerHelper;
- mHalClient = halService.getPublisherClient();
mMillisBeforeRebind = mContext.getResources().getInteger(
com.android.car.R.integer.millisecondsBeforeRebindToVmsPublisher);
+ halService.setPublisherConnectionCallbacks(this::onHalConnected, this::onHalDisconnected);
}
@Override
@@ -273,8 +274,10 @@
}
private void notifyListenerOfConnectedClients(ConnectionListener listener) {
- listener.onClientConnected(HAL_CLIENT_NAME, mHalClient);
synchronized (mSystemClients) {
+ if (mHalClient != null) {
+ listener.onClientConnected(HAL_CLIENT_NAME, mHalClient);
+ }
mSystemClients.values().forEach(conn -> conn.notifyIfConnected(listener));
}
synchronized (mCurrentUserClients) {
@@ -298,6 +301,20 @@
}
}
+ private void onHalConnected(IBinder halClient) {
+ synchronized (mSystemClients) {
+ mHalClient = halClient;
+ notifyListenersOnClientConnected(HAL_CLIENT_NAME, mHalClient);
+ }
+ }
+
+ private void onHalDisconnected() {
+ synchronized (mSystemClients) {
+ mHalClient = null;
+ notifyListenersOnClientDisconnected(HAL_CLIENT_NAME);
+ }
+ }
+
class ClientConnection implements ServiceConnection {
private final ComponentName mName;
private final UserHandle mUser;
diff --git a/tests/CarDeveloperOptions/AndroidManifest.xml b/tests/CarDeveloperOptions/AndroidManifest.xml
index 9e46603..f434e1f 100644
--- a/tests/CarDeveloperOptions/AndroidManifest.xml
+++ b/tests/CarDeveloperOptions/AndroidManifest.xml
@@ -179,6 +179,23 @@
<activity android:name=".development.AppPicker"
android:label="@string/select_application"
android:theme="@android:style/Theme.DeviceDefault.Light.Dialog" />
- <!-- This is the longest AndroidManifest.xml ever. -->
+
+ <!-- For CtsVerifier use. -->
+ <activity
+ android:name="Settings$TrustedCredentialsSettingsActivity"
+ android:label="@string/trusted_credentials"
+ android:icon="@drawable/ic_settings_security"
+ android:parentActivityName="Settings">
+ <intent-filter android:priority="1">
+ <action android:name="com.android.settings.TRUSTED_CREDENTIALS" />
+ <action android:name="com.android.settings.TRUSTED_CREDENTIALS_USER" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.car.developeroptions.FRAGMENT_CLASS"
+ android:value="com.android.car.developeroptions.TrustedCredentialsSettings" />
+ <meta-data android:name="com.android.car.developeroptions.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
+ </activity>
+
</application>
</manifest>
diff --git a/tests/CarDeveloperOptions/res/values-es/strings.xml b/tests/CarDeveloperOptions/res/values-es/strings.xml
index 9c8131b..b2e8581 100644
--- a/tests/CarDeveloperOptions/res/values-es/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-es/strings.xml
@@ -3935,8 +3935,7 @@
<skip />
<!-- no translation found for accessibility_touch_vibration_title (285890135612038092) -->
<skip />
- <!-- no translation found for accessibility_service_master_switch_title (2734791644475782924) -->
- <skip />
+ <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Usar servicio"</string>
<!-- no translation found for accessibility_daltonizer_master_switch_title (4855011639012300777) -->
<skip />
<!-- no translation found for accessibility_caption_master_switch_title (6373335123229234053) -->
diff --git a/tests/CarDeveloperOptions/res/values-or/strings.xml b/tests/CarDeveloperOptions/res/values-or/strings.xml
index 3e19a25..b315f3e 100644
--- a/tests/CarDeveloperOptions/res/values-or/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-or/strings.xml
@@ -4223,8 +4223,7 @@
<skip />
<!-- no translation found for battery_tip_summary_title (2750922152518825526) -->
<skip />
- <!-- no translation found for battery_tip_summary_summary (6294900413896440006) -->
- <skip />
+ <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"ଫୋନର ସାଧାରଣ ବ୍ୟାକଗ୍ରାଉଣ୍ଡ୍ ବ୍ୟାଟେରୀ ବ୍ୟବହାର ରହିଛି"</string>
<!-- no translation found for battery_tip_summary_summary (5280099016800644130) -->
<skip />
<!-- no translation found for battery_tip_summary_summary (4459840492610842705) -->
diff --git a/tests/CarDeveloperOptions/res/values-pt/strings.xml b/tests/CarDeveloperOptions/res/values-pt/strings.xml
index 52e8b5b..f91bfd5 100644
--- a/tests/CarDeveloperOptions/res/values-pt/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-pt/strings.xml
@@ -3865,8 +3865,7 @@
<skip />
<!-- no translation found for accessibility_screen_magnification_navbar_configuration_warning (6477234309484795550) -->
<skip />
- <!-- no translation found for accessibility_global_gesture_preference_title (3842279082831426816) -->
- <skip />
+ <string name="accessibility_global_gesture_preference_title" msgid="3842279082831426816">"Atalho do volume"</string>
<!-- no translation found for accessibility_shortcut_service_title (3516052294376744060) -->
<skip />
<!-- no translation found for accessibility_shortcut_service_on_lock_screen_title (1279441617927949980) -->
diff --git a/tests/CarDeveloperOptions/res/values-th/strings.xml b/tests/CarDeveloperOptions/res/values-th/strings.xml
index 9c8131b..f4f98b1 100644
--- a/tests/CarDeveloperOptions/res/values-th/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-th/strings.xml
@@ -6702,8 +6702,7 @@
<skip />
<!-- no translation found for launch_by_default (6106985160202769725) -->
<skip />
- <!-- no translation found for app_launch_domain_links_title (2987289657348349133) -->
- <skip />
+ <string name="app_launch_domain_links_title" msgid="2987289657348349133">"การเปิดลิงก์"</string>
<!-- no translation found for app_launch_open_domain_urls_title (8595126859922391331) -->
<skip />
<!-- no translation found for app_launch_open_domain_urls_summary (6803029846855502366) -->
@@ -6794,8 +6793,7 @@
<skip />
<!-- no translation found for tap_to_wake_summary (8485222120721006793) -->
<skip />
- <!-- no translation found for domain_urls_title (7939209950373945367) -->
- <skip />
+ <string name="domain_urls_title" msgid="7939209950373945367">"การเปิดลิงก์"</string>
<!-- no translation found for domain_urls_summary_none (5401203416941265109) -->
<skip />
<!-- no translation found for domain_urls_summary_one (3893975485064803435) -->
diff --git a/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml b/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
index 9c8131b..0b6bf27 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
@@ -3945,8 +3945,7 @@
<skip />
<!-- no translation found for accessibility_hearingaid_title (3700978781235124891) -->
<skip />
- <!-- no translation found for accessibility_hearingaid_not_connected_summary (634573930469952213) -->
- <skip />
+ <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"無連接任何助聽器"</string>
<!-- no translation found for accessibility_hearingaid_adding_summary (4139031880828714300) -->
<skip />
<!-- no translation found for accessibility_hearingaid_pair_instructions_first_message (2671518890909750740) -->
diff --git a/tests/CarDeveloperOptions/res/xml/security_dashboard_settings.xml b/tests/CarDeveloperOptions/res/xml/security_dashboard_settings.xml
index a797b2d..d10b977 100644
--- a/tests/CarDeveloperOptions/res/xml/security_dashboard_settings.xml
+++ b/tests/CarDeveloperOptions/res/xml/security_dashboard_settings.xml
@@ -133,13 +133,6 @@
android:fragment="com.android.car.developeroptions.security.EncryptionAndCredential" />
<Preference
- android:order="70"
- android:key="manage_trust_agents"
- android:title="@string/manage_trust_agents"
- android:summary="@string/summary_placeholder"
- android:fragment="com.android.car.developeroptions.security.trustagent.TrustAgentSettings" />
-
- <Preference
android:order="80"
android:key="screen_pinning_settings"
android:title="@string/screen_pinning_title"
diff --git a/tests/CarDeveloperOptions/res/xml/trust_agent_settings.xml b/tests/CarDeveloperOptions/res/xml/trust_agent_settings.xml
deleted file mode 100644
index da6c9a8..0000000
--- a/tests/CarDeveloperOptions/res/xml/trust_agent_settings.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="trust_agents"
- android:title="@string/manage_trust_agents"
- settings:controller="com.android.car.developeroptions.security.trustagent.TrustAgentsPreferenceController">
-</PreferenceScreen>
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/core/gateway/SettingsGateway.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/core/gateway/SettingsGateway.java
index d92eaed..4e95b75 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/core/gateway/SettingsGateway.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/core/gateway/SettingsGateway.java
@@ -16,6 +16,7 @@
package com.android.car.developeroptions.core.gateway;
+import com.android.car.developeroptions.TrustedCredentialsSettings;
import com.android.car.developeroptions.development.DevelopmentSettingsDashboardFragment;
public class SettingsGateway {
@@ -26,6 +27,7 @@
*/
public static final String[] ENTRY_FRAGMENTS = {
DevelopmentSettingsDashboardFragment.class.getName(),
+ TrustedCredentialsSettings.class.getName()
};
public static final String[] SETTINGS_FOR_RESTRICTED = {
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProvider.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProvider.java
index d0872b5..95d601d 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProvider.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProvider.java
@@ -19,15 +19,11 @@
import android.content.Context;
import com.android.internal.widget.LockPatternUtils;
-import com.android.car.developeroptions.security.trustagent.TrustAgentManager;
/** FeatureProvider for security. */
public interface SecurityFeatureProvider {
- /** Returns the {@link TrustAgentManager} bound to this {@link SecurityFeatureProvider}. */
- TrustAgentManager getTrustAgentManager();
-
/**
* Returns a {@link LockPatternUtils} instance bound to application context.
*/
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProviderImpl.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProviderImpl.java
index 4ea9ece..21df466 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProviderImpl.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecurityFeatureProviderImpl.java
@@ -19,23 +19,13 @@
import android.content.Context;
import com.android.internal.widget.LockPatternUtils;
-import com.android.car.developeroptions.security.trustagent.TrustAgentManager;
/** Implementation for {@code SecurityFeatureProvider}. */
public class SecurityFeatureProviderImpl implements SecurityFeatureProvider {
- private TrustAgentManager mTrustAgentManager;
private LockPatternUtils mLockPatternUtils;
@Override
- public TrustAgentManager getTrustAgentManager() {
- if (mTrustAgentManager == null) {
- mTrustAgentManager = new TrustAgentManager();
- }
- return mTrustAgentManager;
- }
-
- @Override
public LockPatternUtils getLockPatternUtils(Context context) {
if (mLockPatternUtils == null) {
mLockPatternUtils = new LockPatternUtils(context.getApplicationContext());
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecuritySettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecuritySettings.java
index e866727..5aa22e5 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecuritySettings.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/SecuritySettings.java
@@ -30,8 +30,6 @@
import com.android.car.developeroptions.dashboard.DashboardFragment;
import com.android.car.developeroptions.enterprise.EnterprisePrivacyPreferenceController;
import com.android.car.developeroptions.search.BaseSearchIndexProvider;
-import com.android.car.developeroptions.security.trustagent.ManageTrustAgentsPreferenceController;
-import com.android.car.developeroptions.security.trustagent.TrustAgentListPreferenceController;
import com.android.car.developeroptions.widget.PreferenceCategoryController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -82,10 +80,6 @@
*/
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (use(TrustAgentListPreferenceController.class)
- .handleActivityResult(requestCode, resultCode)) {
- return;
- }
if (use(LockUnificationPreferenceController.class)
.handleActivityResult(requestCode, resultCode, data)) {
return;
@@ -105,12 +99,10 @@
Lifecycle lifecycle, SecuritySettings host) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new EnterprisePrivacyPreferenceController(context));
- controllers.add(new ManageTrustAgentsPreferenceController(context));
controllers.add(new ScreenPinningPreferenceController(context));
controllers.add(new SimLockPreferenceController(context));
controllers.add(new EncryptionStatusPreferenceController(context,
PREF_KEY_ENCRYPTION_SECURITY_PAGE));
- controllers.add(new TrustAgentListPreferenceController(context, host, lifecycle));
final List<AbstractPreferenceController> securityPreferenceControllers = new ArrayList<>();
securityPreferenceControllers.add(new FaceStatusPreferenceController(context));
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/LockAfterTimeoutPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/LockAfterTimeoutPreferenceController.java
index 9805171..79ced0c 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/LockAfterTimeoutPreferenceController.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/LockAfterTimeoutPreferenceController.java
@@ -22,17 +22,14 @@
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
-import android.text.TextUtils;
import android.util.Log;
import androidx.preference.Preference;
-import com.android.internal.widget.LockPatternUtils;
import com.android.car.developeroptions.R;
import com.android.car.developeroptions.core.PreferenceControllerMixin;
import com.android.car.developeroptions.display.TimeoutListPreference;
-import com.android.car.developeroptions.overlay.FeatureFactory;
-import com.android.car.developeroptions.security.trustagent.TrustAgentManager;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -44,7 +41,6 @@
private final int mUserId;
private final LockPatternUtils mLockPatternUtils;
- private final TrustAgentManager mTrustAgentManager;
private final DevicePolicyManager mDPM;
public LockAfterTimeoutPreferenceController(Context context, int userId,
@@ -53,8 +49,6 @@
mUserId = userId;
mLockPatternUtils = lockPatternUtils;
mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
- mTrustAgentManager = FeatureFactory.getFactory(context)
- .getSecurityFeatureProvider().getTrustAgentManager();
}
@Override
@@ -137,20 +131,7 @@
best = i;
}
}
-
- final CharSequence trustAgentLabel = mTrustAgentManager
- .getActiveTrustAgentLabel(mContext, mLockPatternUtils);
- if (!TextUtils.isEmpty(trustAgentLabel)) {
- if (Long.valueOf(values[best].toString()) == 0) {
- summary = mContext.getString(R.string.lock_immediately_summary_with_exception,
- trustAgentLabel);
- } else {
- summary = mContext.getString(R.string.lock_after_timeout_summary_with_exception,
- entries[best], trustAgentLabel);
- }
- } else {
- summary = mContext.getString(R.string.lock_after_timeout_summary, entries[best]);
- }
+ summary = mContext.getString(R.string.lock_after_timeout_summary, entries[best]);
}
preference.setSummary(summary);
}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/PowerButtonInstantLockPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/PowerButtonInstantLockPreferenceController.java
index adc7acf..27e1d58 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/PowerButtonInstantLockPreferenceController.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/screenlock/PowerButtonInstantLockPreferenceController.java
@@ -18,16 +18,13 @@
import android.app.admin.DevicePolicyManager;
import android.content.Context;
-import android.text.TextUtils;
import androidx.preference.Preference;
import androidx.preference.TwoStatePreference;
-import com.android.internal.widget.LockPatternUtils;
import com.android.car.developeroptions.R;
import com.android.car.developeroptions.core.PreferenceControllerMixin;
-import com.android.car.developeroptions.overlay.FeatureFactory;
-import com.android.car.developeroptions.security.trustagent.TrustAgentManager;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settingslib.core.AbstractPreferenceController;
public class PowerButtonInstantLockPreferenceController extends AbstractPreferenceController
@@ -37,15 +34,12 @@
private final int mUserId;
private final LockPatternUtils mLockPatternUtils;
- private final TrustAgentManager mTrustAgentManager;
public PowerButtonInstantLockPreferenceController(Context context, int userId,
LockPatternUtils lockPatternUtils) {
super(context);
mUserId = userId;
mLockPatternUtils = lockPatternUtils;
- mTrustAgentManager = FeatureFactory.getFactory(context)
- .getSecurityFeatureProvider().getTrustAgentManager();
}
@Override
@@ -71,15 +65,7 @@
public void updateState(Preference preference) {
((TwoStatePreference) preference).setChecked(
mLockPatternUtils.getPowerButtonInstantlyLocks(mUserId));
- final CharSequence trustAgentLabel = mTrustAgentManager.getActiveTrustAgentLabel(
- mContext, mLockPatternUtils);
- if (!TextUtils.isEmpty(trustAgentLabel)) {
- preference.setSummary(mContext.getString(
- R.string.lockpattern_settings_power_button_instantly_locks_summary,
- trustAgentLabel));
- } else {
- preference.setSummary(R.string.summary_placeholder);
- }
+ preference.setSummary(R.string.summary_placeholder);
}
@Override
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/ManageTrustAgentsPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/ManageTrustAgentsPreferenceController.java
deleted file mode 100644
index 6633e34..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/ManageTrustAgentsPreferenceController.java
+++ /dev/null
@@ -1,74 +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.developeroptions.security.trustagent;
-
-import android.content.Context;
-import android.os.UserHandle;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.BasePreferenceController;
-import com.android.car.developeroptions.overlay.FeatureFactory;
-import com.android.car.developeroptions.security.SecurityFeatureProvider;
-
-public class ManageTrustAgentsPreferenceController extends BasePreferenceController {
-
- @VisibleForTesting
- static final String KEY_MANAGE_TRUST_AGENTS = "manage_trust_agents";
- private static final int MY_USER_ID = UserHandle.myUserId();
-
- private final LockPatternUtils mLockPatternUtils;
- private TrustAgentManager mTrustAgentManager;
-
- public ManageTrustAgentsPreferenceController(Context context) {
- super(context, KEY_MANAGE_TRUST_AGENTS);
- final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFactory(context)
- .getSecurityFeatureProvider();
- mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);
- mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
- }
-
- @Override
- public int getAvailabilityStatus() {
- return mContext.getResources().getBoolean(R.bool.config_show_manage_trust_agents)
- ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
- }
-
- @Override
- public void updateState(Preference preference) {
- final int numberOfTrustAgent = getTrustAgentCount();
- if (!mLockPatternUtils.isSecure(MY_USER_ID)) {
- preference.setEnabled(false);
- preference.setSummary(R.string.disabled_because_no_backup_security);
- } else if (numberOfTrustAgent > 0) {
- preference.setEnabled(true);
- preference.setSummary(mContext.getResources().getQuantityString(
- R.plurals.manage_trust_agents_summary_on,
- numberOfTrustAgent, numberOfTrustAgent));
- } else {
- preference.setEnabled(true);
- preference.setSummary(R.string.manage_trust_agents_summary);
- }
- }
-
- private int getTrustAgentCount() {
- return mTrustAgentManager.getActiveTrustAgents(mContext, mLockPatternUtils).size();
- }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentInfo.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentInfo.java
deleted file mode 100644
index 634935a..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentInfo.java
+++ /dev/null
@@ -1,57 +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.developeroptions.security.trustagent;
-
-import android.content.ComponentName;
-import android.graphics.drawable.Drawable;
-
-public class TrustAgentInfo implements Comparable<TrustAgentInfo> {
- private final CharSequence mLabel;
- private final ComponentName mComponentName;
- private final Drawable mIcon;
-
- public TrustAgentInfo(CharSequence label, ComponentName componentName, Drawable icon) {
- mLabel = label;
- mComponentName = componentName;
- mIcon = icon;
- }
-
- public CharSequence getLabel() {
- return mLabel;
- }
-
- public ComponentName getComponentName() {
- return mComponentName;
- }
-
- public Drawable getIcon() {
- return mIcon;
- }
-
- @Override
- public boolean equals(Object other) {
- if (other instanceof TrustAgentInfo) {
- return mComponentName.equals(((TrustAgentInfo) other).getComponentName());
- }
- return false;
- }
-
- @Override
- public int compareTo(TrustAgentInfo other) {
- return mComponentName.compareTo(other.getComponentName());
- }
-}
\ No newline at end of file
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentListPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentListPreferenceController.java
deleted file mode 100644
index fde9b6c..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentListPreferenceController.java
+++ /dev/null
@@ -1,190 +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.developeroptions.security.trustagent;
-
-import static com.android.car.developeroptions.security.SecuritySettings.CHANGE_TRUST_AGENT_SETTINGS;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.PreferenceControllerMixin;
-import com.android.car.developeroptions.overlay.FeatureFactory;
-import com.android.car.developeroptions.password.ChooseLockSettingsHelper;
-import com.android.car.developeroptions.security.SecurityFeatureProvider;
-import com.android.car.developeroptions.security.SecuritySettings;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnCreate;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
-
-import java.util.List;
-
-public class TrustAgentListPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, LifecycleObserver, OnSaveInstanceState,
- OnCreate, OnResume {
-
- private static final String TRUST_AGENT_CLICK_INTENT = "trust_agent_click_intent";
- @VisibleForTesting
- static final String PREF_KEY_TRUST_AGENT = "trust_agent";
- @VisibleForTesting
- static final String PREF_KEY_SECURITY_CATEGORY = "security_category";
- private static final int MY_USER_ID = UserHandle.myUserId();
-
- private final LockPatternUtils mLockPatternUtils;
- private final TrustAgentManager mTrustAgentManager;
- private final SecuritySettings mHost;
-
- private Intent mTrustAgentClickIntent;
- private PreferenceCategory mSecurityCategory;
-
- public TrustAgentListPreferenceController(Context context, SecuritySettings host,
- Lifecycle lifecycle) {
- super(context);
- final SecurityFeatureProvider provider = FeatureFactory.getFactory(context)
- .getSecurityFeatureProvider();
- mHost = host;
- mLockPatternUtils = provider.getLockPatternUtils(context);
- mTrustAgentManager = provider.getTrustAgentManager();
- if (lifecycle != null) {
- lifecycle.addObserver(this);
- }
- }
-
- @Override
- public boolean isAvailable() {
- return mContext.getResources().getBoolean(R.bool.config_show_trust_agent_click_intent);
- }
-
- @Override
- public String getPreferenceKey() {
- return PREF_KEY_TRUST_AGENT;
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mSecurityCategory = screen.findPreference(PREF_KEY_SECURITY_CATEGORY);
- updateTrustAgents();
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- if (savedInstanceState != null
- && savedInstanceState.containsKey(TRUST_AGENT_CLICK_INTENT)) {
- mTrustAgentClickIntent = savedInstanceState.getParcelable(TRUST_AGENT_CLICK_INTENT);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- if (mTrustAgentClickIntent != null) {
- outState.putParcelable(TRUST_AGENT_CLICK_INTENT, mTrustAgentClickIntent);
- }
- }
-
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
- return super.handlePreferenceTreeClick(preference);
- }
- final ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(
- mHost.getActivity(), mHost);
- mTrustAgentClickIntent = preference.getIntent();
- boolean confirmationLaunched = helper.launchConfirmationActivity(
- CHANGE_TRUST_AGENT_SETTINGS, preference.getTitle());
-
- if (!confirmationLaunched && mTrustAgentClickIntent != null) {
- // If this returns false, it means no password confirmation is required.
- mHost.startActivity(mTrustAgentClickIntent);
- mTrustAgentClickIntent = null;
- }
- return true;
- }
-
- @Override
- public void onResume() {
- updateTrustAgents();
- }
-
- private void updateTrustAgents() {
- if (mSecurityCategory == null) {
- return;
- }
- // First remove all old trust agents.
- while (true) {
- final Preference oldAgent = mSecurityCategory.findPreference(PREF_KEY_TRUST_AGENT);
- if (oldAgent == null) {
- break;
- } else {
- mSecurityCategory.removePreference(oldAgent);
- }
- }
- // If for some reason the preference is no longer available, don't proceed to add.
- if (!isAvailable()) {
- return;
- }
- // Then add new ones.
- final boolean hasSecurity = mLockPatternUtils.isSecure(MY_USER_ID);
- final List<TrustAgentManager.TrustAgentComponentInfo> agents =
- mTrustAgentManager.getActiveTrustAgents(mContext, mLockPatternUtils);
- if (agents == null) {
- return;
- }
- for (TrustAgentManager.TrustAgentComponentInfo agent : agents) {
- final RestrictedPreference trustAgentPreference =
- new RestrictedPreference(mSecurityCategory.getContext());
- trustAgentPreference.setKey(PREF_KEY_TRUST_AGENT);
- trustAgentPreference.setTitle(agent.title);
- trustAgentPreference.setSummary(agent.summary);
- // Create intent for this preference.
- trustAgentPreference.setIntent(new Intent(Intent.ACTION_MAIN)
- .setComponent(agent.componentName));
- trustAgentPreference.setDisabledByAdmin(agent.admin);
- if (!trustAgentPreference.isDisabledByAdmin() && !hasSecurity) {
- trustAgentPreference.setEnabled(false);
- trustAgentPreference.setSummary(R.string.disabled_because_no_backup_security);
- }
- // Add preference to the settings menu.
- mSecurityCategory.addPreference(trustAgentPreference);
- }
- }
-
- public boolean handleActivityResult(int requestCode, int resultCode) {
- if (requestCode == CHANGE_TRUST_AGENT_SETTINGS && resultCode == Activity.RESULT_OK) {
- if (mTrustAgentClickIntent != null) {
- mHost.startActivity(mTrustAgentClickIntent);
- mTrustAgentClickIntent = null;
- }
- return true;
- }
- return false;
- }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentManager.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentManager.java
deleted file mode 100644
index 9be291e..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentManager.java
+++ /dev/null
@@ -1,206 +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.developeroptions.security.trustagent;
-
-import static android.service.trust.TrustAgentService.TRUST_AGENT_META_DATA;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.content.res.XmlResourceParser;
-import android.os.UserHandle;
-import android.service.trust.TrustAgentService;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.Slog;
-import android.util.Xml;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-
-/** A manager for trust agent state. */
-public class TrustAgentManager {
-
- // Only allow one trust agent on the platform.
- private static final boolean ONLY_ONE_TRUST_AGENT = false;
-
- public static class TrustAgentComponentInfo {
- public ComponentName componentName;
- public String title;
- public String summary;
- public RestrictedLockUtils.EnforcedAdmin admin = null;
- }
-
- private static final String TAG = "TrustAgentManager";
- private static final Intent TRUST_AGENT_INTENT =
- new Intent(TrustAgentService.SERVICE_INTERFACE);
-
- @VisibleForTesting
- static final String PERMISSION_PROVIDE_AGENT =
- android.Manifest.permission.PROVIDE_TRUST_AGENT;
-
- /**
- * Determines if the service associated with a resolved trust agent intent is allowed to provide
- * trust on this device.
- *
- * @param resolveInfo The entry corresponding to the matched trust agent intent.
- * @param pm The package manager to be used to check for permissions.
- * @return {@code true} if the associated service is allowed to provide a trust agent, and
- * {@code false} if otherwise.
- */
- public boolean shouldProvideTrust(ResolveInfo resolveInfo, PackageManager pm) {
- final String packageName = resolveInfo.serviceInfo.packageName;
- if (pm.checkPermission(PERMISSION_PROVIDE_AGENT, packageName)
- != PackageManager.PERMISSION_GRANTED) {
- Log.w(TAG, "Skipping agent because package " + packageName
- + " does not have permission " + PERMISSION_PROVIDE_AGENT + ".");
- return false;
- }
- return true;
- }
-
- /**
- * Return the display label for active trust agent.
- */
- public CharSequence getActiveTrustAgentLabel(Context context, LockPatternUtils utils) {
- final List<TrustAgentComponentInfo> agents = getActiveTrustAgents(context, utils);
- return agents.isEmpty() ? null : agents.get(0).title;
- }
-
- /**
- * Returns a list of trust agents.
- *
- * If {@link #ONLY_ONE_TRUST_AGENT} is set, the list will contain up to 1 agent instead of all
- * available agents on device.
- */
- public List<TrustAgentComponentInfo> getActiveTrustAgents(Context context,
- LockPatternUtils utils) {
- final int myUserId = UserHandle.myUserId();
- final DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
- final PackageManager pm = context.getPackageManager();
- final List<TrustAgentComponentInfo> result = new ArrayList<>();
-
- final List<ResolveInfo> resolveInfos = pm.queryIntentServices(TRUST_AGENT_INTENT,
- PackageManager.GET_META_DATA);
- final List<ComponentName> enabledTrustAgents = utils.getEnabledTrustAgents(myUserId);
- final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal
- .checkIfKeyguardFeaturesDisabled(
- context, DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS, myUserId);
-
- if (enabledTrustAgents != null && !enabledTrustAgents.isEmpty()) {
- for (ResolveInfo resolveInfo : resolveInfos) {
- if (resolveInfo.serviceInfo == null || !shouldProvideTrust(resolveInfo, pm)) {
- continue;
- }
- final TrustAgentComponentInfo trustAgentComponentInfo =
- getSettingsComponent(pm, resolveInfo);
- if (trustAgentComponentInfo.componentName == null ||
- !enabledTrustAgents.contains(getComponentName(resolveInfo)) ||
- TextUtils.isEmpty(trustAgentComponentInfo.title)) {
- continue;
- }
- if (admin != null && dpm.getTrustAgentConfiguration(
- null, getComponentName(resolveInfo)) == null) {
- trustAgentComponentInfo.admin = admin;
- }
- result.add(trustAgentComponentInfo);
- if (ONLY_ONE_TRUST_AGENT) {
- break;
- }
- }
- }
- return result;
- }
-
- public ComponentName getComponentName(ResolveInfo resolveInfo) {
- if (resolveInfo == null || resolveInfo.serviceInfo == null) return null;
- return new ComponentName(resolveInfo.serviceInfo.packageName, resolveInfo.serviceInfo.name);
- }
-
- private TrustAgentComponentInfo getSettingsComponent(PackageManager pm,
- ResolveInfo resolveInfo) {
- if (resolveInfo == null || resolveInfo.serviceInfo == null
- || resolveInfo.serviceInfo.metaData == null) {
- return null;
- }
- String cn = null;
- TrustAgentComponentInfo trustAgentComponentInfo = new TrustAgentComponentInfo();
- XmlResourceParser parser = null;
- Exception caughtException = null;
- try {
- parser = resolveInfo.serviceInfo.loadXmlMetaData(pm, TRUST_AGENT_META_DATA);
- if (parser == null) {
- Slog.w(TAG, "Can't find " + TRUST_AGENT_META_DATA + " meta-data");
- return null;
- }
- Resources res = pm.getResourcesForApplication(resolveInfo.serviceInfo.applicationInfo);
- AttributeSet attrs = Xml.asAttributeSet(parser);
- int type;
- while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
- && type != XmlPullParser.START_TAG) {
- }
- String nodeName = parser.getName();
- if (!"trust-agent".equals(nodeName)) {
- Slog.w(TAG, "Meta-data does not start with trust-agent tag");
- return null;
- }
- TypedArray sa =
- res.obtainAttributes(attrs, com.android.internal.R.styleable.TrustAgent);
- trustAgentComponentInfo.summary =
- sa.getString(com.android.internal.R.styleable.TrustAgent_summary);
- trustAgentComponentInfo.title =
- sa.getString(com.android.internal.R.styleable.TrustAgent_title);
- cn = sa.getString(com.android.internal.R.styleable.TrustAgent_settingsActivity);
- sa.recycle();
- } catch (PackageManager.NameNotFoundException e) {
- caughtException = e;
- } catch (IOException e) {
- caughtException = e;
- } catch (XmlPullParserException e) {
- caughtException = e;
- } finally {
- if (parser != null) parser.close();
- }
- if (caughtException != null) {
- Slog.w(TAG, "Error parsing : " + resolveInfo.serviceInfo.packageName, caughtException);
- return null;
- }
- if (cn != null && cn.indexOf('/') < 0) {
- cn = resolveInfo.serviceInfo.packageName + "/" + cn;
- }
- trustAgentComponentInfo.componentName =
- (cn == null) ? null : ComponentName.unflattenFromString(cn);
- return trustAgentComponentInfo;
- }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentSettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentSettings.java
deleted file mode 100644
index b861741..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentSettings.java
+++ /dev/null
@@ -1,68 +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.developeroptions.security.trustagent;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.dashboard.DashboardFragment;
-import com.android.car.developeroptions.search.BaseSearchIndexProvider;
-import com.android.car.developeroptions.search.Indexable;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@SearchIndexable
-public class TrustAgentSettings extends DashboardFragment {
- private static final String TAG = "TrustAgentSettings";
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.TRUST_AGENT;
- }
-
- @Override
- public int getHelpResource() {
- return R.string.help_url_trust_agent;
- }
-
- @Override
- protected String getLogTag() {
- return TAG;
- }
-
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.trust_agent_settings;
- }
-
- public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(
- Context context, boolean enabled) {
- final List<SearchIndexableResource> result = new ArrayList<>();
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.trust_agent_settings;
- result.add(sir);
- return result;
- }
- };
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentsPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentsPreferenceController.java
deleted file mode 100644
index 926436b..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/security/trustagent/TrustAgentsPreferenceController.java
+++ /dev/null
@@ -1,193 +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.developeroptions.security.trustagent;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.service.trust.TrustAgentService;
-import android.text.TextUtils;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import android.util.IconDrawableFactory;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.car.developeroptions.core.BasePreferenceController;
-import com.android.car.developeroptions.overlay.FeatureFactory;
-import com.android.car.developeroptions.security.SecurityFeatureProvider;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-
-import java.util.List;
-
-public class TrustAgentsPreferenceController extends BasePreferenceController
- implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnStart {
-
- private static final Intent TRUST_AGENT_INTENT =
- new Intent(TrustAgentService.SERVICE_INTERFACE);
-
- private final ArrayMap<ComponentName, TrustAgentInfo> mAvailableAgents;
- private final ArraySet<ComponentName> mActiveAgents;
- private final DevicePolicyManager mDevicePolicyManager;
- private final IconDrawableFactory mIconDrawableFactory;
- private final LockPatternUtils mLockPatternUtils;
- private final PackageManager mPackageManager;
- private final TrustAgentManager mTrustAgentManager;
-
- private PreferenceScreen mScreen;
-
- public TrustAgentsPreferenceController(Context context, String key) {
- super(context, key);
- mAvailableAgents = new ArrayMap<>();
- mActiveAgents = new ArraySet<>();
- mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
- mIconDrawableFactory = IconDrawableFactory.newInstance(context);
- final SecurityFeatureProvider securityFeatureProvider =
- FeatureFactory.getFactory(context).getSecurityFeatureProvider();
- mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
- mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);
- mPackageManager = context.getPackageManager();
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mScreen = screen;
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public void onStart() {
- updateAgents();
- }
-
- private void updateAgents() {
- findAvailableTrustAgents();
- loadActiveAgents();
- removeUselessExistingPreferences();
-
- final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
- mContext, DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS, UserHandle.myUserId());
-
- for (TrustAgentInfo agent : mAvailableAgents.values()) {
- final ComponentName componentName = agent.getComponentName();
- RestrictedSwitchPreference preference = (RestrictedSwitchPreference)
- mScreen.findPreference(componentName.flattenToString());
- if (preference == null) {
- preference = new RestrictedSwitchPreference(mScreen.getContext());
- }
- preference.setKey(componentName.flattenToString());
- preference.useAdminDisabledSummary(true);
- preference.setTitle(agent.getLabel());
- preference.setIcon(agent.getIcon());
- preference.setOnPreferenceChangeListener(this);
- preference.setChecked(mActiveAgents.contains(componentName));
- if (admin != null && mDevicePolicyManager.getTrustAgentConfiguration(null /* admin */,
- componentName) == null) {
- preference.setChecked(false);
- preference.setDisabledByAdmin(admin);
- }
- mScreen.addPreference(preference);
- }
- }
-
- private void loadActiveAgents() {
- final List<ComponentName> activeTrustAgents = mLockPatternUtils.getEnabledTrustAgents(
- UserHandle.myUserId());
- if (activeTrustAgents != null) {
- mActiveAgents.addAll(activeTrustAgents);
- }
- }
-
- private void saveActiveAgents() {
- mLockPatternUtils.setEnabledTrustAgents(mActiveAgents, UserHandle.myUserId());
- }
-
- private void findAvailableTrustAgents() {
- final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentServices(
- TRUST_AGENT_INTENT, PackageManager.GET_META_DATA);
- mAvailableAgents.clear();
- for (ResolveInfo resolveInfo : resolveInfos) {
- if (resolveInfo.serviceInfo == null) {
- continue;
- }
- if (!mTrustAgentManager.shouldProvideTrust(resolveInfo, mPackageManager)) {
- continue;
- }
- final CharSequence label = resolveInfo.loadLabel(mPackageManager);
- final ComponentName componentName = mTrustAgentManager.getComponentName(resolveInfo);
- final Drawable icon = mIconDrawableFactory.getBadgedIcon(
- resolveInfo.getComponentInfo().applicationInfo);
- final TrustAgentInfo agentInfo = new TrustAgentInfo(label, componentName, icon);
- mAvailableAgents.put(componentName, agentInfo);
- }
- }
-
- private void removeUselessExistingPreferences() {
- final int count = mScreen.getPreferenceCount();
- if (count <= 0) {
- return;
- }
- for (int i = count - 1; i >= 0; i--) {
- final Preference pref = mScreen.getPreference(i);
- final String[] names = TextUtils.split(pref.getKey(), "/");
- final ComponentName componentName = new ComponentName(names[0], names[1]);
- if (!mAvailableAgents.containsKey(componentName)) {
- mScreen.removePreference(pref);
- mActiveAgents.remove(componentName);
- }
- }
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- if (!(preference instanceof SwitchPreference)) {
- return false;
- }
- for (TrustAgentInfo agent : mAvailableAgents.values()) {
- final ComponentName componentName = agent.getComponentName();
- if (!TextUtils.equals(preference.getKey(), componentName.flattenToString())) {
- continue;
- }
- if ((Boolean) newValue && !mActiveAgents.contains(componentName)) {
- mActiveAgents.add(componentName);
- } else {
- mActiveAgents.remove(componentName);
- }
- saveActiveAgents();
- return true;
- }
- return false;
- }
-}
diff --git a/tests/EmbeddedKitchenSinkApp/Android.mk b/tests/EmbeddedKitchenSinkApp/Android.mk
index 65de56e..386044c 100644
--- a/tests/EmbeddedKitchenSinkApp/Android.mk
+++ b/tests/EmbeddedKitchenSinkApp/Android.mk
@@ -49,6 +49,7 @@
android.hardware.automotive.vehicle-V2.0-java \
vehicle-hal-support-lib \
com.android.car.keventreader-client \
+ guava \
kitchensink-gson
LOCAL_JAVA_LIBRARIES += android.car
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/connectivity_fragment.xml b/tests/EmbeddedKitchenSinkApp/res/layout/connectivity_fragment.xml
index dc2d01a..9c48f66 100644
--- a/tests/EmbeddedKitchenSinkApp/res/layout/connectivity_fragment.xml
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/connectivity_fragment.xml
@@ -179,4 +179,35 @@
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
+
+ <LinearLayout>
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp">
+ <Button android:id="@+id/networkEnableWifiIntent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Enable Wifi Intent"/>
+ <Button android:id="@+id/networkDisableWifiIntent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Disable Wifi Intent"/>
+ </LinearLayout>
+
+ <LinearLayout>
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp">
+ <Button android:id="@+id/networkEnableBluetoothIntent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Enable Bluetooth Intent"/>
+ <Button android:id="@+id/networkDisableBluetoothIntent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Disable Bluetooth Intent"/>
+ </LinearLayout>
+
</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/projection_status.xml b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status.xml
new file mode 100644
index 0000000..65ccbe8
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Current Projection State: "/>
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Inactive"
+ android:id="@+id/current_projection_status"/>
+ </LinearLayout>
+ <LinearLayout android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Current Projection Package: "/>
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Unknown"
+ android:id="@+id/current_projection_package"/>
+ </LinearLayout>
+ <LinearLayout android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Current Projection Details: "/>
+ <LinearLayout android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:id="@+id/current_projection_details"/>
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_details.xml b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_details.xml
new file mode 100644
index 0000000..ec06152
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_details.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Package: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_detail_package"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Projection State: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_detail_state"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Transport: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_detail_transport"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Devices: "/>
+ <LinearLayout android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:orientation="vertical"
+ android:id="@+id/projection_detail_devices"/>
+ </LinearLayout>
+</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_device.xml b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_device.xml
new file mode 100644
index 0000000..ae4d7a9
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/projection_status_device.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="ID: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_device_id"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Name: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_device_name"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Transports: "/>
+ <LinearLayout android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:orientation="vertical"
+ android:id="@+id/projection_device_transports"/>
+ </LinearLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Projecting: "/>
+ <TextView android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:id="@+id/projection_device_projecting"/>
+ </LinearLayout>
+</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
index a80c3b4..70949a9 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
@@ -18,6 +18,7 @@
import android.car.Car;
import android.car.CarAppFocusManager;
+import android.car.CarProjectionManager;
import android.car.hardware.CarSensorManager;
import android.car.hardware.hvac.CarHvacManager;
import android.car.hardware.power.CarPowerManager;
@@ -60,6 +61,7 @@
import com.google.android.car.kitchensink.notification.NotificationFragment;
import com.google.android.car.kitchensink.orientation.OrientationTestFragment;
import com.google.android.car.kitchensink.power.PowerTestFragment;
+import com.google.android.car.kitchensink.projection.ProjectionFragment;
import com.google.android.car.kitchensink.property.PropertyTestFragment;
import com.google.android.car.kitchensink.sensor.SensorsTestFragment;
import com.google.android.car.kitchensink.storagelifetime.StorageLifetimeFragment;
@@ -172,6 +174,7 @@
new FragmentMenuEntry("notification", NotificationFragment.class),
new FragmentMenuEntry("orientation test", OrientationTestFragment.class),
new FragmentMenuEntry("power test", PowerTestFragment.class),
+ new FragmentMenuEntry("projection", ProjectionFragment.class),
new FragmentMenuEntry("property test", PropertyTestFragment.class),
new FragmentMenuEntry("sensors", SensorsTestFragment.class),
new FragmentMenuEntry("storage lifetime", StorageLifetimeFragment.class),
@@ -189,6 +192,7 @@
private CarPropertyManager mPropertyManager;
private CarSensorManager mSensorManager;
private CarAppFocusManager mCarAppFocusManager;
+ private CarProjectionManager mCarProjectionManager;
private Object mPropertyManagerReady = new Object();
public CarHvacManager getHvacManager() {
@@ -207,6 +211,10 @@
return mSensorManager;
}
+ public CarProjectionManager getProjectionManager() {
+ return mCarProjectionManager;
+ }
+
/* Open any tab directly:
* adb shell am force-stop com.google.android.car.kitchensink
* adb shell am start -n com.google.android.car.kitchensink/.KitchenSinkActivity \
@@ -322,6 +330,8 @@
android.car.Car.SENSOR_SERVICE);
mCarAppFocusManager =
(CarAppFocusManager) mCarApi.getCarManager(Car.APP_FOCUS_SERVICE);
+ mCarProjectionManager =
+ (CarProjectionManager) mCarApi.getCarManager(Car.PROJECTION_SERVICE);
mPropertyManagerReady.notifyAll();
}
}
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/connectivity/ConnectivityFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/connectivity/ConnectivityFragment.java
index 31b83cc..6ffa265 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/connectivity/ConnectivityFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/connectivity/ConnectivityFragment.java
@@ -18,7 +18,9 @@
import android.annotation.Nullable;
import android.annotation.SuppressLint;
+import android.bluetooth.BluetoothAdapter;
import android.content.Context;
+import android.content.Intent;
import android.graphics.Color;
import android.location.LocationManager;
import android.net.ConnectivityManager;
@@ -491,9 +493,41 @@
mTetheringStatusPolled = (TextView) view.findViewById(R.id.tetheringStatusPolled);
mLocalOnlyStatus = (TextView) view.findViewById(R.id.localOnlyStatus);
+ view.findViewById(R.id.networkEnableWifiIntent).setOnClickListener(v -> enableWifiIntent());
+ view.findViewById(R.id.networkDisableWifiIntent)
+ .setOnClickListener(v -> disableWifiIntent());
+ view.findViewById(R.id.networkEnableBluetoothIntent)
+ .setOnClickListener(v -> enableBluetoothIntent());
+ view.findViewById(R.id.networkDisableBluetoothIntent)
+ .setOnClickListener(v -> disableBluetoothIntent());
+
return view;
}
+ private void enableWifiIntent() {
+ Intent enableWifi = new Intent(WifiManager.ACTION_REQUEST_ENABLE);
+ enableWifi.putExtra(Intent.EXTRA_PACKAGE_NAME, getContext().getPackageName());
+ startActivity(enableWifi);
+ }
+
+ private void disableWifiIntent() {
+ Intent disableWifi = new Intent(WifiManager.ACTION_REQUEST_DISABLE);
+ disableWifi.putExtra(Intent.EXTRA_PACKAGE_NAME, getContext().getPackageName());
+ startActivity(disableWifi);
+ }
+
+ private void enableBluetoothIntent() {
+ Intent enableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+ enableBluetooth.putExtra(Intent.EXTRA_PACKAGE_NAME, getContext().getPackageName());
+ startActivity(enableBluetooth);
+ }
+
+ private void disableBluetoothIntent() {
+ Intent disableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_DISABLE);
+ disableBluetooth.putExtra(Intent.EXTRA_PACKAGE_NAME, getContext().getPackageName());
+ startActivity(disableBluetooth);
+ }
+
@Override
public void onResume() {
super.onResume();
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/projection/ProjectionFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/projection/ProjectionFragment.java
new file mode 100644
index 0000000..66fc1e2
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/projection/ProjectionFragment.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.android.car.kitchensink.projection;
+
+import android.car.CarProjectionManager;
+import android.car.CarProjectionManager.ProjectionStatusListener;
+import android.car.projection.ProjectionStatus;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.kitchensink.KitchenSinkActivity;
+import com.google.android.car.kitchensink.R;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.List;
+
+/**
+ * Reports information about the current projection status.
+ */
+public class ProjectionFragment extends Fragment {
+ private KitchenSinkActivity mActivity;
+ private CarProjectionManager mCarProjectionManager;
+
+ private TextView mCurrentProjectionStatus;
+ private TextView mCurrentProjectionPackage;
+ private LinearLayout mCurrentProjectionDetails;
+
+ private static final ImmutableMap<Integer, String> STATE_TO_STRING = ImmutableMap.of(
+ ProjectionStatus.PROJECTION_STATE_INACTIVE, "Inactive",
+ ProjectionStatus.PROJECTION_STATE_READY_TO_PROJECT, "Ready to project",
+ ProjectionStatus.PROJECTION_STATE_ACTIVE_FOREGROUND, "Foreground",
+ ProjectionStatus.PROJECTION_STATE_ACTIVE_BACKGROUND, "Background");
+
+ private static final ImmutableMap<Integer, String> TRANSPORT_TO_STRING = ImmutableMap.of(
+ ProjectionStatus.PROJECTION_TRANSPORT_NONE, "None",
+ ProjectionStatus.PROJECTION_TRANSPORT_USB, "USB",
+ ProjectionStatus.PROJECTION_TRANSPORT_WIFI, "WiFi");
+
+ private class KitchenSinkProjectionStatusListener implements ProjectionStatusListener {
+ @Override
+ public void onProjectionStatusChanged(
+ int state,
+ String packageName,
+ List<ProjectionStatus> details) {
+ mCurrentProjectionStatus.setText(STATE_TO_STRING.get(state));
+ mCurrentProjectionPackage.setText(packageName);
+ mCurrentProjectionDetails.removeAllViews();
+ for (ProjectionStatus detail : details) {
+ LinearLayout detailLayout =
+ (LinearLayout)
+ getLayoutInflater()
+ .inflate(R.layout.projection_status_details, null);
+
+ TextView detailPackage = detailLayout.findViewById(R.id.projection_detail_package);
+ detailPackage.setText(detail.getPackageName());
+
+ TextView detailState = detailLayout.findViewById(R.id.projection_detail_state);
+ detailState.setText(STATE_TO_STRING.get(detail.getState()));
+
+ TextView detailTransport =
+ detailLayout.findViewById(R.id.projection_detail_transport);
+ detailTransport.setText(TRANSPORT_TO_STRING.get(detail.getTransport()));
+
+ for (ProjectionStatus.MobileDevice device : detail.getConnectedMobileDevices()) {
+ LinearLayout deviceLayout =
+ (LinearLayout)
+ getLayoutInflater()
+ .inflate(R.layout.projection_status_device, null);
+
+ TextView deviceId = deviceLayout.findViewById(R.id.projection_device_id);
+ deviceId.setText(String.valueOf(device.getId()));
+
+ TextView deviceName = deviceLayout.findViewById(R.id.projection_device_name);
+ deviceName.setText(device.getName());
+
+ LinearLayout deviceTransports =
+ deviceLayout.findViewById(R.id.projection_device_transports);
+ for (Integer transport : device.getAvailableTransports()) {
+ TextView transportView = new TextView(mActivity);
+ transportView.setText(TRANSPORT_TO_STRING.get(transport));
+
+ deviceTransports.addView(transportView);
+ }
+
+ TextView deviceProjecting =
+ deviceLayout.findViewById(R.id.projection_device_projecting);
+ deviceProjecting.setText(String.valueOf(device.isProjecting()));
+
+ detailLayout.addView(deviceLayout);
+ }
+ mCurrentProjectionDetails.addView(detailLayout);
+ }
+ }
+ }
+
+ private final KitchenSinkProjectionStatusListener mProjectionListener =
+ new KitchenSinkProjectionStatusListener();
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ mActivity = (KitchenSinkActivity) getActivity();
+ mCarProjectionManager = mActivity.getProjectionManager();
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater,
+ ViewGroup container,
+ Bundle savedInstanceState) {
+ View layout = inflater.inflate(R.layout.projection_status, container, false);
+
+ mCurrentProjectionStatus = (TextView) layout.findViewById(R.id.current_projection_status);
+ mCurrentProjectionPackage = (TextView) layout.findViewById(R.id.current_projection_package);
+ mCurrentProjectionDetails =
+ (LinearLayout) layout.findViewById(R.id.current_projection_details);
+
+ return layout;
+ }
+
+ @Override
+ public void onStart() {
+ mCarProjectionManager.registerProjectionStatusListener(mProjectionListener);
+ super.onStart();
+ }
+
+ @Override
+ public void onStop() {
+ mCarProjectionManager.unregisterProjectionStatusListener(mProjectionListener);
+ super.onStop();
+ }
+}
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-as/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-as/strings.xml
new file mode 100644
index 0000000..f4490dc
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-as/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"নমস্কাৰ, পৃথিৱী!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-bn/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-bn/strings.xml
new file mode 100644
index 0000000..a27bebe
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-bn/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"হ্যালো, ওয়ার্ল্ড!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-eu/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-eu/strings.xml
new file mode 100644
index 0000000..ff1a717
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-eu/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"Kaixo!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-gu/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-gu/strings.xml
new file mode 100644
index 0000000..ad17840
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-gu/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"વિશ્વને નમસ્કાર!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-hi/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-hi/strings.xml
new file mode 100644
index 0000000..5e6e732
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-hi/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"सभी को नमस्कार!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-iw/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-iw/strings.xml
new file mode 100644
index 0000000..d5c90ec
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-iw/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"Hello world!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-ka/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-ka/strings.xml
new file mode 100644
index 0000000..fb1ff2f
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-ka/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"გამარჯობა, სამყაროვ!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-kk/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-kk/strings.xml
new file mode 100644
index 0000000..71dc98e
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-kk/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"Бәріне сәлем!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-kn/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-kn/strings.xml
new file mode 100644
index 0000000..283e7ac
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-kn/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"ಈ ಜಗತ್ತಿಗೆ, ನಮಸ್ಕಾರ!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-ml/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-ml/strings.xml
new file mode 100644
index 0000000..353fd0d
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-ml/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"ഹലോ, വേൾഡ്!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-mr/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-mr/strings.xml
new file mode 100644
index 0000000..b143ba3
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-mr/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"हॅलो, दुनिया!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-ne/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-ne/strings.xml
new file mode 100644
index 0000000..6ab57f4
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-ne/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"संसारलाई नमस्कार!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-or/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-or/strings.xml
new file mode 100644
index 0000000..9a18aae
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-or/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"ହେଲୋ ଦୁନିଆ!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-ta/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-ta/strings.xml
new file mode 100644
index 0000000..6faf2cd
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-ta/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"உலகத்தினருக்கு வணக்கம்!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-te/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-te/strings.xml
new file mode 100644
index 0000000..0ed1751
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-te/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"హలో ప్రపంచం!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-ur/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-ur/strings.xml
new file mode 100644
index 0000000..ffb21af
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-ur/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"ہیلو، دنیا والو!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-uz/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-uz/strings.xml
new file mode 100644
index 0000000..f44363a
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-uz/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"Salom, dunyo!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/MultiDisplayTestHelloActivity/res/values-zh-rCN/strings.xml b/tests/MultiDisplayTestHelloActivity/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..da391de
--- /dev/null
+++ b/tests/MultiDisplayTestHelloActivity/res/values-zh-rCN/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="hello_activity_text_text" msgid="8189259382863353832">"Hello, World!"</string>
+ <string name="app_name_default" msgid="110846623663619763">"MDTHelloDefault"</string>
+ <string name="app_name_always" msgid="6684579479829101738">"MDTHelloAlways"</string>
+</resources>
diff --git a/tests/carservice_test/src/com/android/car/CarUxRestrictionsManagerServiceTest.java b/tests/carservice_test/src/com/android/car/CarUxRestrictionsManagerServiceTest.java
index ee08226..aadb6f9 100644
--- a/tests/carservice_test/src/com/android/car/CarUxRestrictionsManagerServiceTest.java
+++ b/tests/carservice_test/src/com/android/car/CarUxRestrictionsManagerServiceTest.java
@@ -28,12 +28,14 @@
import static org.mockito.Mockito.when;
import android.car.drivingstate.CarDrivingStateEvent;
+import android.car.drivingstate.CarUxRestrictions;
import android.car.drivingstate.CarUxRestrictionsConfiguration;
import android.car.drivingstate.CarUxRestrictionsConfiguration.Builder;
import android.car.hardware.CarPropertyValue;
import android.content.Context;
import android.content.res.Resources;
import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
+import android.os.SystemClock;
import android.util.JsonReader;
import android.util.JsonWriter;
@@ -206,6 +208,18 @@
createEmptyConfig((byte) 0), createEmptyConfig((byte) 0)));
}
+ @Test
+ public void testGetCurrentUxRestrictions_UnknownDisplayId_ReturnsFullRestrictions()
+ throws Exception {
+ mService.init();
+ CarUxRestrictions restrictions = mService.getCurrentUxRestrictions(/* displayId= */ 10);
+ CarUxRestrictions expected = new CarUxRestrictions.Builder(
+ /*reqOpt= */ true,
+ CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED,
+ SystemClock.elapsedRealtimeNanos()).build();
+ assertTrue(restrictions.toString(), expected.isSameRestrictions(restrictions));
+ }
+
private CarUxRestrictionsConfiguration createEmptyConfig() {
return createEmptyConfig(null);
}
diff --git a/tests/carservice_test/src/com/android/car/MockedVmsTestBase.java b/tests/carservice_test/src/com/android/car/MockedVmsTestBase.java
index 4c26e11..2028958 100644
--- a/tests/carservice_test/src/com/android/car/MockedVmsTestBase.java
+++ b/tests/carservice_test/src/com/android/car/MockedVmsTestBase.java
@@ -16,6 +16,7 @@
package com.android.car;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import android.car.Car;
import android.car.VehicleAreaType;
@@ -30,7 +31,9 @@
import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess;
import android.hardware.automotive.vehicle.V2_0.VehiclePropertyChangeMode;
import android.hardware.automotive.vehicle.V2_0.VmsAvailabilityStateIntegerValuesIndex;
+import android.hardware.automotive.vehicle.V2_0.VmsBaseMessageIntegerValuesIndex;
import android.hardware.automotive.vehicle.V2_0.VmsMessageType;
+import android.hardware.automotive.vehicle.V2_0.VmsStartSessionMessageIntegerValuesIndex;
import android.os.UserHandle;
import android.util.Log;
import android.util.Pair;
@@ -86,8 +89,23 @@
mVmsSubscriberManager.setVmsSubscriberClientCallback(Executors.newSingleThreadExecutor(),
mSubscriberClient);
- // Validate layer availability sent to HAL
+ // Validate session handshake
List<Integer> v = mHalClient.receiveMessage().value.int32Values;
+ assertEquals(VmsMessageType.START_SESSION,
+ (int) v.get(VmsBaseMessageIntegerValuesIndex.MESSAGE_TYPE));
+ int coreId = v.get(VmsStartSessionMessageIntegerValuesIndex.SERVICE_ID);
+ assertTrue(coreId > 0);
+ assertEquals(-1, (int) v.get(VmsStartSessionMessageIntegerValuesIndex.CLIENT_ID));
+
+ // Send handshake acknowledgement
+ mHalClient.sendMessage(
+ VmsMessageType.START_SESSION,
+ coreId,
+ 12345 // Client ID
+ );
+
+ // Validate layer availability sent to HAL
+ v = mHalClient.receiveMessage().value.int32Values;
assertEquals(VmsMessageType.AVAILABILITY_CHANGE,
(int) v.get(VmsAvailabilityStateIntegerValuesIndex.MESSAGE_TYPE));
assertEquals(0,
diff --git a/tests/carservice_test/src/com/android/car/audio/AudioFocusTest.java b/tests/carservice_test/src/com/android/car/audio/AudioFocusTest.java
new file mode 100644
index 0000000..ff4c517
--- /dev/null
+++ b/tests/carservice_test/src/com/android/car/audio/AudioFocusTest.java
@@ -0,0 +1,488 @@
+/*
+ * 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.audio;
+
+import static org.junit.Assert.assertEquals;
+
+import android.media.AudioAttributes;
+import android.media.AudioFocusRequest;
+import android.media.AudioManager;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class AudioFocusTest {
+
+ private static final String TAG = "AudioFocusTest";
+
+ private static final int TEST_TIMING_TOLERANCE_MS = 100;
+
+ // ContextNumber.INVALID
+ private static final AudioAttributes ATTR_VIRTUAL_SOURCE = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_VIRTUAL_SOURCE)
+ .setContentType(AudioAttributes.USAGE_VIRTUAL_SOURCE)
+ .build();
+ // ContextNumber.MUSIC
+ private static final AudioAttributes ATTR_MEDIA = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build();
+ // ContextNumber.NAVIGATION
+ private static final AudioAttributes ATTR_DRIVE_DIR = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
+ .build();
+ // ContextNumber.VOICE_COMMAND
+ private static final AudioAttributes ATTR_A11Y = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
+ .build();
+ // ContextNumber.CALL_RING
+ private static final AudioAttributes ATTR_RINGTONE = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .build();
+ // ContextNumber.CALL
+ private static final AudioAttributes ATTR_VOICE_COM = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
+ .build();
+ // ContextNumber.ALARM
+ private static final AudioAttributes ATTR_ALARM = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_ALARM)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .build();
+ // ContextNumber.NOTIFICATION
+ private static final AudioAttributes ATTR_NOTIFICATION = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_NOTIFICATION)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .build();
+ // ContextNumber.SYSTEM_SOUND
+ private static final AudioAttributes ATTR_A11Y_NOTIFICATION = new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
+ .build();
+
+ private AudioManager mAudioManager;
+
+ @Before
+ public void setUp() {
+ mAudioManager = new AudioManager(ApplicationProvider.getApplicationContext());
+ }
+
+ @Test
+ public void individualAttributeFocusRequest_focusRequestGranted() throws Exception {
+ // Make sure each usage is able to request and release audio focus individually
+ requestAndLoseFocusForAttribute(ATTR_VIRTUAL_SOURCE);
+ requestAndLoseFocusForAttribute(ATTR_MEDIA);
+ requestAndLoseFocusForAttribute(ATTR_DRIVE_DIR);
+ requestAndLoseFocusForAttribute(ATTR_A11Y);
+ requestAndLoseFocusForAttribute(ATTR_RINGTONE);
+ requestAndLoseFocusForAttribute(ATTR_VOICE_COM);
+ requestAndLoseFocusForAttribute(ATTR_ALARM);
+ requestAndLoseFocusForAttribute(ATTR_NOTIFICATION);
+ requestAndLoseFocusForAttribute(ATTR_A11Y_NOTIFICATION);
+ }
+
+ @Test
+ public void exclusiveInteractionsForFocusGain_requestGrantedAndFocusLossSent()
+ throws Exception {
+ // For each interaction the focus request is granted and on the second request
+ // focus lost is dispatched to the first focus listener
+
+ // Test Exclusive interactions with audio focus gain request without pause
+ // instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN, false);
+ // Test Exclusive interactions with audio focus gain request with pause instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN, true);
+ }
+
+ @Test
+ public void exclusiveInteractionsTransient_requestGrantedAndFocusLossSent()
+ throws Exception {
+ // For each interaction the focus request is granted and on the second request
+ // focus lost transient is dispatched to the first focus listener
+
+ // Test Exclusive interactions with audio focus gain transient request
+ // without pause instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, false);
+ // Test Exclusive interactions with audio focus gain transient request
+ // with pause instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, true);
+ }
+
+ @Test
+ public void exclusiveInteractionsTransientMayDuck_requestGrantedAndFocusLossSent()
+ throws Exception {
+ // For each interaction the focus request is granted and on the second request
+ // focus lost transient is dispatched to the first focus listener
+
+ // Test exclusive interactions with audio focus transient may duck focus request
+ // without pause instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK,
+ false);
+ // Test exclusive interactions with audio focus transient may duck focus request
+ // with pause instead of ducking
+ testExclusiveInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK,
+ true);
+ }
+
+ @Test
+ public void rejectedInteractions_focusRequestRejected() throws Exception {
+ // Test different paired interaction between different usages
+ // for each interaction pair the first focus request will be granted but the second
+ // will be rejected
+ int interaction = CarAudioFocus.INTERACTION_REJECT;
+ int gain = AudioManager.AUDIOFOCUS_GAIN;
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_MEDIA, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_DRIVE_DIR, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_A11Y, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_RINGTONE, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_VOICE_COM, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_ALARM, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_NOTIFICATION, interaction, gain, false);
+ testInteraction(ATTR_VIRTUAL_SOURCE, ATTR_A11Y_NOTIFICATION, interaction, gain, false);
+
+ testInteraction(ATTR_MEDIA, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+
+ testInteraction(ATTR_DRIVE_DIR, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+
+ testInteraction(ATTR_A11Y, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+ testInteraction(ATTR_A11Y, ATTR_DRIVE_DIR, interaction, gain, false);
+ testInteraction(ATTR_A11Y, ATTR_NOTIFICATION, interaction, gain, false);
+ testInteraction(ATTR_A11Y, ATTR_A11Y_NOTIFICATION, interaction, gain, false);
+
+ testInteraction(ATTR_RINGTONE, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+ testInteraction(ATTR_RINGTONE, ATTR_MEDIA, interaction, gain, false);
+ testInteraction(ATTR_RINGTONE, ATTR_ALARM, interaction, gain, false);
+ testInteraction(ATTR_RINGTONE, ATTR_NOTIFICATION, interaction, gain, false);
+
+ testInteraction(ATTR_VOICE_COM, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+ testInteraction(ATTR_VOICE_COM, ATTR_MEDIA, interaction, gain, false);
+ testInteraction(ATTR_VOICE_COM, ATTR_A11Y, interaction, gain, false);
+
+ testInteraction(ATTR_ALARM, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+
+ testInteraction(ATTR_NOTIFICATION, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_VIRTUAL_SOURCE, interaction, gain, false);
+ }
+
+ @Test
+ public void concurrentInteractionsFocusGain_requestGrantedAndFocusLossSent() throws Exception {
+ // Test concurrent interactions i.e. interactions that can
+ // potentially gain focus at the same time.
+ // For this test permanent focus gain is requested by two usages.
+ // The focus request will be granted for both and on the second focus request focus
+ // lost will dispatched to the first focus listener listener.
+ testConcurrentInteractions(AudioManager.AUDIOFOCUS_GAIN, false);
+ }
+
+ @Test
+ public void concurrentInteractionsTransientGain_requestGrantedAndFocusLossTransientSent()
+ throws Exception {
+ // Test concurrent interactions i.e. interactions that can
+ // potentially gain focus at the same time.
+ // For this test permanent focus gain is requested by first usage and focus gain transient
+ // is requested by second usage.
+ // The focus request will be granted for both and on the second focus request focus
+ // lost transient will dispatched to the first focus listener listener.
+ testConcurrentInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, false);
+ // Repeat the test this time with pause for ducking on first listener
+ testConcurrentInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, true);
+ }
+
+ @Test
+ public void concurrentInteractionsTransientGainMayDuck_requestGrantedAndNoFocusLossSent()
+ throws Exception {
+ // Test concurrent interactions i.e. interactions that can
+ // potentially gain focus at the same time.
+ // For this test permanent focus gain is requested by first usage and focus gain transient
+ // may duck is requested by second usage.
+ // The focus request will be granted for both but no focus lost is sent to the first focus
+ // listener, as each usage actually has shared focus and should play at the same time.
+ testConcurrentInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+ // Test the same behaviour but this time with pause for ducking on the first focus listener
+ testConcurrentInteractions(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, true);
+ }
+
+ private void testConcurrentInteractions(int gain, boolean pauseForDucking)
+ throws Exception {
+ // Test paired concurrent interactions i.e. interactions that can
+ // potentially gain focus at the same time.
+ int interaction = CarAudioFocus.INTERACTION_CONCURRENT;
+ testInteraction(ATTR_MEDIA, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_NOTIFICATION, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_A11Y_NOTIFICATION, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_DRIVE_DIR, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_ALARM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_NOTIFICATION, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_A11Y_NOTIFICATION, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_A11Y, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y, ATTR_A11Y, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_RINGTONE, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_RINGTONE, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_RINGTONE, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_RINGTONE, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_VOICE_COM, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_VOICE_COM, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_VOICE_COM, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_VOICE_COM, ATTR_ALARM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_VOICE_COM, ATTR_NOTIFICATION, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_ALARM, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_ALARM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_NOTIFICATION, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_A11Y_NOTIFICATION, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_NOTIFICATION, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_ALARM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_NOTIFICATION, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_A11Y_NOTIFICATION, interaction, gain,
+ pauseForDucking);
+
+
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_DRIVE_DIR, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_ALARM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_NOTIFICATION, interaction, gain,
+ pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_A11Y_NOTIFICATION, interaction, gain,
+ pauseForDucking);
+ }
+
+ private void testExclusiveInteractions(int gain, boolean pauseForDucking)
+ throws Exception {
+
+ // Test exclusive interaction, interaction where each usage will not share focus with other
+ // another usage. As a result once focus is gained any current focus listener
+ // in this interaction will lose focus.
+ int interaction = CarAudioFocus.INTERACTION_EXCLUSIVE;
+ testInteraction(ATTR_MEDIA, ATTR_MEDIA, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_MEDIA, ATTR_ALARM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_DRIVE_DIR, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_DRIVE_DIR, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_A11Y, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_ALARM, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_ALARM, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_NOTIFICATION, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_NOTIFICATION, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_A11Y, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_RINGTONE, interaction, gain, pauseForDucking);
+ testInteraction(ATTR_A11Y_NOTIFICATION, ATTR_VOICE_COM, interaction, gain, pauseForDucking);
+ }
+
+
+ /**
+ * Test paired usage interactions with gainType and pause instead ducking
+ * @param attributes1 Attributes of the first usage (first focus requester) in the interaction
+ * @param attributes2 Attributes of the second usage (second focus requester) in the interaction
+ * @param interaction type of interaction {@link CarAudioFocus.INTERACTION_REJECT},
+ * {@link CarAudioFocus.INTERACTION_EXCLUSIVE}, {@link CarAudioFocus.INTERACTION_CONCURRENT}
+ * @param gainType Type of gain {@link AudioManager.AUDIOFOCUS_GAIN} ,
+ * {@link CarAudioFocus.AUDIOFOCUS_GAIN_TRANSIENT},
+ * {@link CarAudioFocus.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK}
+ * @param pauseForDucking flag to indicate if the first focus listener should pause
+ * instead of ducking
+ * @throws Exception
+ */
+ private void testInteraction(AudioAttributes attributes1,
+ AudioAttributes attributes2,
+ int interaction,
+ int gainType,
+ boolean pauseForDucking) throws Exception {
+
+ final FocusChangeListener focusChangeListener1 = new FocusChangeListener();
+ final AudioFocusRequest audioFocusRequest1 = new AudioFocusRequest
+ .Builder(AudioManager.AUDIOFOCUS_GAIN)
+ .setAudioAttributes(attributes1)
+ .setOnAudioFocusChangeListener(focusChangeListener1)
+ .setForceDucking(false)
+ .setWillPauseWhenDucked(pauseForDucking)
+ .build();
+
+ final FocusChangeListener focusChangeListener2 = new FocusChangeListener();
+ final AudioFocusRequest audioFocusRequest2 = new AudioFocusRequest
+ .Builder(gainType)
+ .setAudioAttributes(attributes2)
+ .setOnAudioFocusChangeListener(focusChangeListener2)
+ .setForceDucking(false)
+ .build();
+
+ int expectedLoss = 0;
+
+ // Each focus gain type will return a different focus lost type
+ switch (gainType) {
+ case AudioManager.AUDIOFOCUS_GAIN:
+ expectedLoss = AudioManager.AUDIOFOCUS_LOSS;
+ break;
+ case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:
+ expectedLoss = AudioManager.AUDIOFOCUS_LOSS_TRANSIENT;
+ break;
+ case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
+ expectedLoss = AudioManager.AUDIOFOCUS_LOSS_TRANSIENT;
+ // Note loss or gain will not be sent as both can live concurrently
+ if (interaction == CarAudioFocus.INTERACTION_CONCURRENT && !pauseForDucking) {
+ expectedLoss = AudioManager.AUDIOFOCUS_NONE;
+ }
+ break;
+ }
+
+ int secondRequestResultsExpected = AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
+
+ if (interaction == CarAudioFocus.INTERACTION_REJECT) {
+ secondRequestResultsExpected = AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+ }
+
+ int requestResult = mAudioManager.requestAudioFocus(audioFocusRequest1);
+ String message = "Focus gain request failed for 1st "
+ + AudioAttributes.usageToString(attributes1.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED, requestResult);
+
+
+ requestResult = mAudioManager.requestAudioFocus(audioFocusRequest2);
+ message = "Focus gain request failed for 2nd "
+ + AudioAttributes.usageToString(attributes2.getUsage());
+ assertEquals(message, secondRequestResultsExpected, requestResult);
+
+ // If the results is rejected for second one we only have to clean up first
+ // as the second focus request is rejected
+ if (interaction == CarAudioFocus.INTERACTION_REJECT) {
+ requestResult = mAudioManager.abandonAudioFocusRequest(audioFocusRequest1);
+ message = "Focus loss request failed for 1st "
+ + AudioAttributes.usageToString(attributes1.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED, requestResult);
+ }
+
+ // If exclusive we expect to lose focus on 1st one
+ // unless we have a concurrent interaction
+ if (interaction == CarAudioFocus.INTERACTION_EXCLUSIVE
+ || interaction == CarAudioFocus.INTERACTION_CONCURRENT) {
+ Thread.sleep(TEST_TIMING_TOLERANCE_MS);
+ message = "Focus change was not dispatched for 1st "
+ + AudioAttributes.usageToString(ATTR_MEDIA.getUsage());
+ assertEquals(message, expectedLoss,
+ focusChangeListener1.getFocusChangeAndReset());
+
+ requestResult = mAudioManager.abandonAudioFocusRequest(audioFocusRequest2);
+ message = "Focus loss request failed for 2nd "
+ + AudioAttributes.usageToString(ATTR_MEDIA.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED, requestResult);
+
+ // If the loss was transient then we should have received back on 1st
+ if ((gainType == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT
+ || gainType == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)) {
+
+ // Since ducking and concurrent can exist together
+ // this needs to be skipped as the focus lost is not sent
+ if (!(interaction == CarAudioFocus.INTERACTION_CONCURRENT
+ && gainType == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)) {
+ Thread.sleep(TEST_TIMING_TOLERANCE_MS);
+ message = "Focus change was not dispatched for 1st "
+ + AudioAttributes.usageToString(ATTR_MEDIA.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_GAIN,
+ focusChangeListener1.getFocusChangeAndReset());
+ }
+ // For concurrent focus interactions still needs to be released
+ message = "Focus loss request failed for 1st "
+ + AudioAttributes.usageToString(attributes1.getUsage());
+ requestResult = mAudioManager.abandonAudioFocusRequest(audioFocusRequest1);
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED,
+ requestResult);
+ }
+ }
+ }
+
+ /**
+ * Verifies usage can request audio focus and release it
+ * @param attribute usage attribute to request focus
+ * @throws Exception
+ */
+ private void requestAndLoseFocusForAttribute(AudioAttributes attribute) throws Exception {
+ final FocusChangeListener focusChangeListener = new FocusChangeListener();
+ final AudioFocusRequest audioFocusRequest = new AudioFocusRequest
+ .Builder(AudioManager.AUDIOFOCUS_GAIN)
+ .setAudioAttributes(attribute)
+ .setOnAudioFocusChangeListener(focusChangeListener)
+ .setForceDucking(false)
+ .build();
+
+
+ int requestResult = mAudioManager.requestAudioFocus(audioFocusRequest);
+ String message = "Focus gain request failed for "
+ + AudioAttributes.usageToString(attribute.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED, requestResult);
+
+ Thread.sleep(TEST_TIMING_TOLERANCE_MS);
+ // Verify no focus changed dispatched
+ message = "Focus change was dispatched for "
+ + AudioAttributes.usageToString(attribute.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_NONE,
+ focusChangeListener.getFocusChangeAndReset());
+
+ requestResult = mAudioManager.abandonAudioFocusRequest(audioFocusRequest);
+ message = "Focus loss request failed for "
+ + AudioAttributes.usageToString(attribute.getUsage());
+ assertEquals(message, AudioManager.AUDIOFOCUS_REQUEST_GRANTED, requestResult);
+ }
+
+ private static class FocusChangeListener implements AudioManager.OnAudioFocusChangeListener {
+ private final Object mLock = new Object();
+ private int mFocusChange = AudioManager.AUDIOFOCUS_NONE;
+
+ int getFocusChangeAndReset() {
+ final int change;
+ synchronized (mLock) {
+ change = mFocusChange;
+ mFocusChange = AudioManager.AUDIOFOCUS_NONE;
+ }
+ return change;
+ }
+
+ @Override
+ public void onAudioFocusChange(int focusChange) {
+ synchronized (mLock) {
+ mFocusChange = focusChange;
+ }
+ }
+ }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/VmsHalServiceTest.java b/tests/carservice_unit_test/src/com/android/car/hal/VmsHalServiceTest.java
index baaab26..f42c52a 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/VmsHalServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/VmsHalServiceTest.java
@@ -37,14 +37,13 @@
import android.os.Binder;
import android.os.IBinder;
-import androidx.test.runner.AndroidJUnit4;
-
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
+import org.mockito.InOrder;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -54,8 +53,8 @@
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
-@RunWith(AndroidJUnit4.class)
public class VmsHalServiceTest {
private static final int LAYER_TYPE = 1;
private static final int LAYER_SUBTYPE = 2;
@@ -64,6 +63,8 @@
private static final int PUBLISHER_ID = 12345;
private static final byte[] PAYLOAD = new byte[]{1, 2, 3, 4};
private static final List<Byte> PAYLOAD_AS_LIST = Arrays.asList(new Byte[]{1, 2, 3, 4});
+ private static final int CORE_ID = 54321;
+ private static final int CLIENT_ID = 98765;
@Rule
public MockitoRule mockito = MockitoJUnit.rule();
@@ -73,6 +74,12 @@
private IVmsPublisherService mPublisherService;
@Mock
private IVmsSubscriberService mSubscriberService;
+ @Mock
+ private Consumer<IBinder> mPublisherOnHalConnected;
+ @Mock
+ private Runnable mPublisherOnHalDisconnected;
+ @Mock
+ private Consumer<IVmsSubscriberClient> mSubscriberOnHalDisconnected;
private IBinder mToken;
private VmsHalService mHalService;
@@ -81,12 +88,10 @@
@Before
public void setUp() throws Exception {
- mHalService = new VmsHalService(mVehicleHal);
- mHalService.setVmsSubscriberService(mSubscriberService);
-
- mToken = new Binder();
- mPublisherClient = IVmsPublisherClient.Stub.asInterface(mHalService.getPublisherClient());
- mPublisherClient.setVmsPublisherService(mToken, mPublisherService);
+ mHalService = new VmsHalService(mVehicleHal, () -> (long) CORE_ID);
+ mHalService.setPublisherConnectionCallbacks(
+ mPublisherOnHalConnected, mPublisherOnHalDisconnected);
+ mHalService.setVmsSubscriberService(mSubscriberService, mSubscriberOnHalDisconnected);
VehiclePropConfig propConfig = new VehiclePropConfig();
propConfig.prop = VehicleProperty.VEHICLE_MAP_SERVICE;
@@ -97,16 +102,68 @@
mHalService.init();
waitForHandlerCompletion();
+ // Verify START_SESSION message was sent
+ InOrder initOrder =
+ Mockito.inOrder(mPublisherOnHalConnected, mSubscriberService, mVehicleHal);
+ initOrder.verify(mVehicleHal).subscribeProperty(mHalService,
+ VehicleProperty.VEHICLE_MAP_SERVICE);
+ initOrder.verify(mVehicleHal).set(createHalMessage(
+ VmsMessageType.START_SESSION, // Message type
+ CORE_ID, // Core ID
+ -1)); // Client ID (unknown)
+
+ // Verify no more interections until handshake received
+ initOrder.verifyNoMoreInteractions();
+
+ // Send START_SESSION response from client
+ sendHalMessage(createHalMessage(
+ VmsMessageType.START_SESSION, // Message type
+ 0, // Core ID (unknown)
+ CLIENT_ID // Client ID
+ ));
+ waitForHandlerCompletion();
+
+ // Verify client is marked as connected
+ ArgumentCaptor<IBinder> publisherCaptor = ArgumentCaptor.forClass(IBinder.class);
+ initOrder.verify(mPublisherOnHalConnected).accept(publisherCaptor.capture());
+ mPublisherClient = IVmsPublisherClient.Stub.asInterface(publisherCaptor.getValue());
+
+ mToken = new Binder();
+ mPublisherClient.setVmsPublisherService(mToken, mPublisherService);
+
ArgumentCaptor<IVmsSubscriberClient> subscriberCaptor = ArgumentCaptor.forClass(
IVmsSubscriberClient.class);
- verify(mSubscriberService).addVmsSubscriberToNotifications(subscriberCaptor.capture());
+ initOrder.verify(mSubscriberService).addVmsSubscriberToNotifications(
+ subscriberCaptor.capture());
mSubscriberClient = subscriberCaptor.getValue();
- reset(mSubscriberService);
- verify(mVehicleHal).set(createHalMessage(
+
+ initOrder.verify(mSubscriberService).getAvailableLayers();
+ initOrder.verify(mVehicleHal).set(createHalMessage(
VmsMessageType.AVAILABILITY_CHANGE, // Message type
0, // Sequence number
0)); // # of associated layers
- reset(mVehicleHal);
+
+ initOrder.verifyNoMoreInteractions();
+ reset(mPublisherOnHalConnected, mSubscriberService, mVehicleHal);
+ }
+
+ @Test
+ public void testCoreId_IntegerOverflow() throws Exception {
+ mHalService = new VmsHalService(mVehicleHal, () -> (long) Integer.MAX_VALUE + CORE_ID);
+
+ VehiclePropConfig propConfig = new VehiclePropConfig();
+ propConfig.prop = VehicleProperty.VEHICLE_MAP_SERVICE;
+ mHalService.takeSupportedProperties(Collections.singleton(propConfig));
+
+ when(mSubscriberService.getAvailableLayers()).thenReturn(
+ new VmsAvailableLayers(Collections.emptySet(), 0));
+ mHalService.init();
+ waitForHandlerCompletion();
+
+ verify(mVehicleHal).set(createHalMessage(
+ VmsMessageType.START_SESSION, // Message type
+ CORE_ID, // Core ID
+ -1)); // Client ID (unknown)
}
@Test
@@ -506,6 +563,40 @@
}
/**
+ * START_SESSION message format:
+ * <ul>
+ * <li>Message type
+ * <li>Core ID
+ * <li>Client ID
+ * </ul>
+ */
+ @Test
+ public void testHandleStartSessionEvent() throws Exception {
+ when(mSubscriberService.getAvailableLayers()).thenReturn(
+ new VmsAvailableLayers(Collections.emptySet(), 5));
+
+ VehiclePropValue request = createHalMessage(
+ VmsMessageType.START_SESSION, // Message type
+ 0, // Core ID (unknown)
+ CLIENT_ID // Client ID
+ );
+
+ VehiclePropValue response = createHalMessage(
+ VmsMessageType.START_SESSION, // Message type
+ CORE_ID, // Core ID
+ CLIENT_ID // Client ID
+ );
+
+ sendHalMessage(request);
+ InOrder inOrder = Mockito.inOrder(mVehicleHal);
+ inOrder.verify(mVehicleHal).set(response);
+ inOrder.verify(mVehicleHal).set(createHalMessage(
+ VmsMessageType.AVAILABILITY_CHANGE, // Message type
+ 5, // Sequence number
+ 0)); // # of associated layers
+ }
+
+ /**
* AVAILABILITY_CHANGE message format:
* <ul>
* <li>Message type
@@ -865,9 +956,7 @@
private void waitForHandlerCompletion() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
- mHalService.getHandler().post(() -> {
- latch.countDown();
- });
+ mHalService.getHandler().post(latch::countDown);
latch.await(5, TimeUnit.SECONDS);
}
}
diff --git a/tests/carservice_unit_test/src/com/android/car/vms/VmsClientManagerTest.java b/tests/carservice_unit_test/src/com/android/car/vms/VmsClientManagerTest.java
index 6519f0c..772abc7 100644
--- a/tests/carservice_unit_test/src/com/android/car/vms/VmsClientManagerTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/vms/VmsClientManagerTest.java
@@ -60,6 +60,8 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
+import java.util.function.Consumer;
+
@SmallTest
public class VmsClientManagerTest {
private static final String HAL_CLIENT_NAME = "VmsHalClient";
@@ -84,7 +86,8 @@
@Mock
private VmsHalService mHal;
- private IBinder mHalClient;
+ private Consumer<IBinder> mHalClientConnected;
+ private Runnable mHalClientDisconnected;
@Mock
private VmsClientManager.ConnectionListener mConnectionListener;
@@ -115,13 +118,18 @@
mUserId = 10;
when(mUserManager.getCurrentForegroundUserId()).thenAnswer((invocation) -> mUserId);
- mHalClient = new Binder();
- when(mHal.getPublisherClient()).thenReturn(mHalClient);
-
mClientManager = new VmsClientManager(mContext, mUserService, mUserManager, mHal);
mClientManager.registerConnectionListener(mConnectionListener);
- verify(mConnectionListener).onClientConnected(HAL_CLIENT_NAME, mHalClient);
- reset(mConnectionListener);
+
+ @SuppressWarnings("unchecked")
+ ArgumentCaptor<Consumer<IBinder>> onClientConnectedCaptor =
+ ArgumentCaptor.forClass(Consumer.class);
+ ArgumentCaptor<Runnable> onClientDisconnectedCaptor =
+ ArgumentCaptor.forClass(Runnable.class);
+ verify(mHal).setPublisherConnectionCallbacks(
+ onClientConnectedCaptor.capture(), onClientDisconnectedCaptor.capture());
+ mHalClientConnected = onClientConnectedCaptor.getValue();
+ mHalClientDisconnected = onClientDisconnectedCaptor.getValue();
}
@After
@@ -130,6 +138,7 @@
verify(mContext, atLeast(0)).getResources();
verify(mContext, atLeast(0)).getPackageManager();
verifyNoMoreInteractions(mContext);
+ verifyNoMoreInteractions(mHal);
}
@Test
@@ -162,18 +171,28 @@
VmsClientManager.ConnectionListener listener =
Mockito.mock(VmsClientManager.ConnectionListener.class);
mClientManager.registerConnectionListener(listener);
- verify(listener).onClientConnected(HAL_CLIENT_NAME, mHalClient);
+ }
+
+ @Test
+ public void testRegisterConnectionListener_AfterHalClientConnected() {
+ IBinder halClient = bindHalClient();
+
+ VmsClientManager.ConnectionListener listener =
+ Mockito.mock(VmsClientManager.ConnectionListener.class);
+ mClientManager.registerConnectionListener(listener);
+ verify(listener).onClientConnected(HAL_CLIENT_NAME, halClient);
}
@Test
public void testRegisterConnectionListener_AfterClientsConnected() {
+ IBinder halClient = bindHalClient();
IBinder systemBinder = bindSystemClient();
IBinder userBinder = bindUserClient();
VmsClientManager.ConnectionListener listener =
Mockito.mock(VmsClientManager.ConnectionListener.class);
mClientManager.registerConnectionListener(listener);
- verify(listener).onClientConnected(HAL_CLIENT_NAME, mHalClient);
+ verify(listener).onClientConnected(HAL_CLIENT_NAME, halClient);
verify(listener).onClientConnected(eq(SYSTEM_CLIENT_NAME), eq(systemBinder));
verify(listener).onClientConnected(eq(USER_CLIENT_NAME), eq(userBinder));
}
@@ -334,6 +353,18 @@
}
@Test
+ public void testHalClientConnected() {
+ IBinder binder = bindHalClient();
+ verify(mConnectionListener).onClientConnected(eq(HAL_CLIENT_NAME), eq(binder));
+ }
+
+ private IBinder bindHalClient() {
+ IBinder binder = new Binder();
+ mHalClientConnected.accept(binder);
+ return binder;
+ }
+
+ @Test
public void testOnSystemServiceConnected() {
IBinder binder = bindSystemClient();
verify(mConnectionListener).onClientConnected(eq(SYSTEM_CLIENT_NAME), eq(binder));
@@ -368,6 +399,14 @@
}
@Test
+ public void testOnHalClientDisconnected() throws Exception {
+ bindHalClient();
+ mHalClientDisconnected.run();
+
+ verify(mConnectionListener).onClientDisconnected(eq(HAL_CLIENT_NAME));
+ }
+
+ @Test
public void testOnSystemServiceDisconnected() throws Exception {
notifySystemUserUnlocked();
verifySystemBind(1);
diff --git a/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java b/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
index a46cf37..0745945 100644
--- a/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
+++ b/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
@@ -60,7 +60,7 @@
*
* @hide
*/
-public class CarUserManagerHelper {
+public final class CarUserManagerHelper {
private static final String TAG = "CarUserManagerHelper";
private static final int BOOT_USER_NOT_FOUND = -1;