summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/app/PlatLogoActivity.java9
-rw-r--r--core/jni/com_android_internal_os_Zygote.cpp29
-rw-r--r--core/jni/fd_utils-inl.h50
-rw-r--r--core/res/res/drawable-nodpi/platlogo_cm.xml55
-rw-r--r--core/res/res/drawable-nodpi/stat_sys_adb.xml35
-rw-r--r--core/res/res/values-as-rIN/strings.xml4
-rw-r--r--core/res/res/values-ast-rES/strings.xml4
-rw-r--r--core/res/res/values-be/cm_strings.xml2
-rw-r--r--core/res/res/values-bg/cm_strings.xml26
-rw-r--r--core/res/res/values-br-rFR/strings.xml4
-rw-r--r--core/res/res/values-csb-rPL/strings.xml4
-rw-r--r--core/res/res/values-cy/strings.xml4
-rw-r--r--core/res/res/values-en-rPT/strings.xml4
-rw-r--r--core/res/res/values-eo/strings.xml4
-rw-r--r--core/res/res/values-es-rCO/strings.xml4
-rw-r--r--core/res/res/values-es-rMX/strings.xml4
-rw-r--r--core/res/res/values-es-rUS/cm_strings.xml2
-rw-r--r--core/res/res/values-frp-rIT/strings.xml4
-rw-r--r--core/res/res/values-fy-rNL/strings.xml4
-rw-r--r--core/res/res/values-ga-rIE/strings.xml4
-rw-r--r--core/res/res/values-gd-rGB/strings.xml4
-rw-r--r--core/res/res/values-ja/cm_strings.xml2
-rw-r--r--core/res/res/values-ku/strings.xml4
-rw-r--r--core/res/res/values-lb/strings.xml5
-rw-r--r--core/res/res/values-nb/cm_strings.xml2
-rw-r--r--core/res/res/values-nl/cm_strings.xml2
-rw-r--r--core/res/res/values-oc-rFR/strings.xml4
-rw-r--r--core/res/res/values-or-rIN/strings.xml4
-rw-r--r--core/res/res/values-ro/cm_strings.xml4
-rw-r--r--core/res/res/values-sk/cm_strings.xml25
-rw-r--r--core/res/res/values-ug/strings.xml4
-rw-r--r--core/res/res/values-zh-rCN/cm_strings.xml32
-rw-r--r--core/res/res/values-zh-rTW/cm_strings.xml60
-rw-r--r--core/res/res/values/cm_symbols.xml3
-rw-r--r--libs/androidfw/AssetManager.cpp1
-rw-r--r--media/java/android/media/ExifInterface.java3
-rw-r--r--packages/CaptivePortalLogin/res/values-as-rIN/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-br-rFR/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-csb-rPL/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-cy/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-en-rPT/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-eo/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-es-rCO/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-es-rMX/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-frp-rIT/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-fy-rNL/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-ga-rIE/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-gd-rGB/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-oc-rFR/strings.xml3
-rw-r--r--packages/CaptivePortalLogin/res/values-or-rIN/strings.xml3
-rw-r--r--packages/DocumentsUI/res/values-lb/strings.xml6
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java3
-rw-r--r--packages/Keyguard/res/values-gl-rES/cm_strings.xml4
-rw-r--r--packages/Keyguard/res/values-ro/cm_strings.xml6
-rw-r--r--packages/Keyguard/res/values-sk/cm_strings.xml7
-rw-r--r--packages/Keyguard/res/values-zh-rCN/cm_strings.xml2
-rw-r--r--packages/Keyguard/res/values-zh-rTW/cm_strings.xml5
-rw-r--r--packages/SettingsLib/res/values-am/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ast-rES/arrays.xml4
-rw-r--r--packages/SettingsLib/res/values-az-rAZ/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-bn-rBD/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-br-rFR/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-bs-rBA/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-csb-rPL/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-cy/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-en-rAU/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-en-rGB/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-en-rPT/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-eo/arrays.xml4
-rw-r--r--packages/SettingsLib/res/values-eo/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-es-rCO/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-fa/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-fil-rPH/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-fr-rCA/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-frp-rIT/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-fy-rNL/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ga-rIE/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-gd-rGB/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-hi/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-hy-rAM/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-is-rIS/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ka-rGE/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-kk-rKZ/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-km-rKH/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ku/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ky-rKG/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-lo-rLA/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-lt/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-lv/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-mk-rMK/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-mn-rMN/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ms-rMY/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-my-rMM/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-nb/cm_strings.xml2
-rw-r--r--packages/SettingsLib/res/values-ne-rNP/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-oc-rFR/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-pa-rIN/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-rm/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-si-rLK/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-sk/cm_strings.xml27
-rw-r--r--packages/SettingsLib/res/values-sq-rAL/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-sw/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-ug/arrays.xml2
-rw-r--r--packages/SettingsLib/res/values-ur-rPK/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-uz-rUZ/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-zh-rHK/cm_strings.xml21
-rw-r--r--packages/SettingsLib/res/values-zu/cm_strings.xml21
-rw-r--r--packages/SettingsProvider/res/values/defaults.xml10
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java3
-rw-r--r--packages/StatementService/res/values-as-rIN/strings.xml17
-rw-r--r--packages/StatementService/res/values-br-rFR/strings.xml17
-rw-r--r--packages/StatementService/res/values-csb-rPL/strings.xml17
-rw-r--r--packages/StatementService/res/values-cy/strings.xml17
-rw-r--r--packages/StatementService/res/values-en-rPT/strings.xml17
-rw-r--r--packages/StatementService/res/values-eo/strings.xml17
-rw-r--r--packages/StatementService/res/values-es-rCO/strings.xml17
-rw-r--r--packages/StatementService/res/values-es-rMX/strings.xml17
-rw-r--r--packages/StatementService/res/values-frp-rIT/strings.xml17
-rw-r--r--packages/StatementService/res/values-fy-rNL/strings.xml17
-rw-r--r--packages/StatementService/res/values-ga-rIE/strings.xml17
-rw-r--r--packages/StatementService/res/values-gd-rGB/strings.xml17
-rw-r--r--packages/StatementService/res/values-ku/strings.xml17
-rw-r--r--packages/StatementService/res/values-lb/strings.xml17
-rw-r--r--packages/StatementService/res/values-oc-rFR/strings.xml17
-rw-r--r--packages/StatementService/res/values-or-rIN/strings.xml17
-rw-r--r--packages/SystemUI/res/drawable/cid.xml33
-rw-r--r--packages/SystemUI/res/layout/cmland.xml104
-rw-r--r--packages/SystemUI/res/values-be/cm_strings.xml2
-rw-r--r--packages/SystemUI/res/values-bg/cm_strings.xml6
-rw-r--r--packages/SystemUI/res/values-cs/cm_strings.xml1
-rw-r--r--packages/SystemUI/res/values-es-rUS/cm_strings.xml5
-rw-r--r--packages/SystemUI/res/values-es/cm_strings.xml5
-rw-r--r--packages/SystemUI/res/values-fi/cm_strings.xml1
-rw-r--r--packages/SystemUI/res/values-ja/cm_strings.xml2
-rw-r--r--packages/SystemUI/res/values-nb/cm_strings.xml6
-rw-r--r--packages/SystemUI/res/values-nl/cm_strings.xml2
-rw-r--r--packages/SystemUI/res/values-ro/cm_strings.xml21
-rw-r--r--packages/SystemUI/res/values-sk/cm_strings.xml39
-rw-r--r--packages/SystemUI/res/values-tr/cm_strings.xml5
-rw-r--r--packages/SystemUI/res/values-zh-rCN/cm_strings.xml4
-rw-r--r--packages/SystemUI/res/values-zh-rTW/cm_strings.xml105
-rw-r--r--packages/SystemUI/src/com/android/systemui/egg/CMLand.java43
-rw-r--r--packages/SystemUI/src/com/android/systemui/egg/MLand.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/egg/MLandActivity.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java4
-rw-r--r--services/core/java/com/android/server/MountService.java9
-rw-r--r--services/net/java/android/net/dhcp/DhcpClient.java9
-rw-r--r--services/net/java/android/net/dhcp/DhcpPacket.java27
-rw-r--r--services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java189
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java6
150 files changed, 1942 insertions, 468 deletions
diff --git a/core/java/com/android/internal/app/PlatLogoActivity.java b/core/java/com/android/internal/app/PlatLogoActivity.java
index efe88ff..2595fe0 100644
--- a/core/java/com/android/internal/app/PlatLogoActivity.java
+++ b/core/java/com/android/internal/app/PlatLogoActivity.java
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2010 The Android Open Source Project
- * Copyright (C) 2014-2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -58,13 +57,10 @@ public class PlatLogoActivity extends Activity {
int mKeyCount;
PathInterpolator mInterpolator = new PathInterpolator(0f, 0f, 0.5f, 1f);
- private boolean mIsCM;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mIsCM = getIntent().hasExtra("is_cm");
mLayout = new FrameLayout(this);
setContentView(mLayout);
}
@@ -157,7 +153,6 @@ public class PlatLogoActivity extends Activity {
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
- .putExtra("is_cm", mIsCM)
.addCategory("com.android.internal.category.PLATLOGO"));
} catch (ActivityNotFoundException ex) {
Log.e("PlatLogoActivity", "No more eggs.");
@@ -207,9 +202,7 @@ public class PlatLogoActivity extends Activity {
}
public void showMarshmallow(View im) {
- final Drawable fg = getDrawable(mIsCM
- ? com.android.internal.R.drawable.platlogo_cm
- : com.android.internal.R.drawable.platlogo);
+ final Drawable fg = getDrawable(com.android.internal.R.drawable.platlogo);
fg.setBounds(0, 0, im.getWidth(), im.getHeight());
fg.setAlpha(0);
im.getOverlay().add(fg);
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 4f90bd9..8686444 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -465,6 +465,20 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra
SetForkLoad(true);
#endif
+ sigset_t sigchld;
+ sigemptyset(&sigchld);
+ sigaddset(&sigchld, SIGCHLD);
+
+ // Temporarily block SIGCHLD during forks. The SIGCHLD handler might
+ // log, which would result in the logging FDs we close being reopened.
+ // This would cause failures because the FDs are not whitelisted.
+ //
+ // Note that the zygote process is single threaded at this point.
+ if (sigprocmask(SIG_BLOCK, &sigchld, NULL) == -1) {
+ ALOGE("sigprocmask(SIG_SETMASK, { SIGCHLD }) failed: %s", strerror(errno));
+ RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_BLOCK, { SIGCHLD }) failed.");
+ }
+
// Close any logging related FDs before we start evaluating the list of
// file descriptors.
__android_log_close();
@@ -496,6 +510,11 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra
RuntimeAbort(env, __LINE__, "Unable to reopen whitelisted descriptors.");
}
+ if (sigprocmask(SIG_UNBLOCK, &sigchld, NULL) == -1) {
+ ALOGE("sigprocmask(SIG_SETMASK, { SIGCHLD }) failed: %s", strerror(errno));
+ RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_UNBLOCK, { SIGCHLD }) failed.");
+ }
+
// Keep capabilities across UID change, unless we're staying root.
if (uid != 0) {
EnableKeepCapabilities(env);
@@ -628,11 +647,11 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra
} else if (pid > 0) {
// the parent process
-#ifdef ENABLE_SCHED_BOOST
- // unset scheduler knob
- SetForkLoad(false);
-#endif
-
+ // We blocked SIGCHLD prior to a fork, we unblock it here.
+ if (sigprocmask(SIG_UNBLOCK, &sigchld, NULL) == -1) {
+ ALOGE("sigprocmask(SIG_SETMASK, { SIGCHLD }) failed: %s", strerror(errno));
+ RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_UNBLOCK, { SIGCHLD }) failed.");
+ }
}
return pid;
}
diff --git a/core/jni/fd_utils-inl.h b/core/jni/fd_utils-inl.h
index f245a7f..6c4ca6b 100644
--- a/core/jni/fd_utils-inl.h
+++ b/core/jni/fd_utils-inl.h
@@ -248,9 +248,22 @@ class FileDescriptorInfo {
is_sock(false) {
}
+ static bool StartsWith(const std::string& str, const std::string& prefix) {
+ return str.compare(0, prefix.size(), prefix) == 0;
+ }
+
+ static bool EndsWith(const std::string& str, const std::string& suffix) {
+ if (suffix.size() > str.size()) {
+ return false;
+ }
+
+ return str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
+ }
+
// Returns true iff. a given path is whitelisted. A path is whitelisted
// if it belongs to the whitelist (see kPathWhitelist) or if it's a path
- // under /system/framework that ends with ".jar".
+ // under /system/framework that ends with ".jar" or if it is a system
+ // framework overlay.
static bool IsWhitelisted(const std::string& path) {
for (size_t i = 0; i < (sizeof(kPathWhitelist) / sizeof(kPathWhitelist[0])); ++i) {
if (kPathWhitelist[i] == path) {
@@ -260,10 +273,41 @@ class FileDescriptorInfo {
static const std::string kFrameworksPrefix = "/system/framework/";
static const std::string kJarSuffix = ".jar";
- if (path.compare(0, kFrameworksPrefix.size(), kFrameworksPrefix) == 0 &&
- path.compare(path.size() - kJarSuffix.size(), kJarSuffix.size(), kJarSuffix) == 0) {
+ if (StartsWith(path, kFrameworksPrefix) && EndsWith(path, kJarSuffix)) {
return true;
}
+
+ // Whitelist files needed for Runtime Resource Overlay, like these:
+ // /system/vendor/overlay/framework-res.apk
+ // /system/vendor/overlay-subdir/pg/framework-res.apk
+ // /data/resource-cache/system@vendor@overlay@framework-res.apk@idmap
+ // /data/resource-cache/system@vendor@overlay-subdir@pg@framework-res.apk@idmap
+ // See AssetManager.cpp for more details on overlay-subdir.
+ static const std::string kOverlayDir = "/system/vendor/overlay/";
+ static const std::string kVendorOverlayDir = "/vendor/overlay";
+ static const std::string kOverlaySubdir = "/system/vendor/overlay-subdir/";
+ static const std::string kApkSuffix = ".apk";
+
+ if ((StartsWith(path, kOverlayDir) || StartsWith(path, kOverlaySubdir)
+ || StartsWith(path, kVendorOverlayDir))
+ && EndsWith(path, kApkSuffix)
+ && path.find("/../") == std::string::npos) {
+ return true;
+ }
+
+ static const std::string kOverlayIdmapPrefix = "/data/resource-cache/";
+ static const std::string kOverlayIdmapSuffix = ".apk@idmap";
+ if (StartsWith(path, kOverlayIdmapPrefix) && EndsWith(path, kOverlayIdmapSuffix)
+ && path.find("/../") == std::string::npos) {
+ return true;
+ }
+
+ // All regular files that are placed under this path are whitelisted automatically.
+ static const std::string kZygoteWhitelistPath = "/vendor/zygote_whitelist/";
+ if (StartsWith(path, kZygoteWhitelistPath) && path.find("/../") == std::string::npos) {
+ return true;
+ }
+
return false;
}
diff --git a/core/res/res/drawable-nodpi/platlogo_cm.xml b/core/res/res/drawable-nodpi/platlogo_cm.xml
deleted file mode 100644
index b863c27..0000000
--- a/core/res/res/drawable-nodpi/platlogo_cm.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (c) 2015 The CyanogenMod Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="48dp"
- android:height="48dp"
- android:viewportWidth="48.0"
- android:viewportHeight="48.0">
-
- <path
- android:name="body"
- android:fillColor="#FFFFFF"
- android:pathData="M24,12L24,12L24,12L24,12L24,12c7.7,0,14,1.2,14.9,2.6c0,0,0,0,0,0c1,1.5,1.1,6.5,1.1,9.4s-0.1,7.8-1.1,9.4
-c0,0,0,0,0,0C38,34.8,31.7,36,24,36l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0c-7.7,0-14-1.2-14.9-2.6c0,0,0,0,0,0C8.1,31.8,8,26.9,8,24
-s0.1-7.8,1.1-9.4c0,0,0,0,0,0C10,13.2,16.3,12,24,12L24,12L24,12L24,12L24,12z" />
- <path
- android:name="top"
- android:fillColor="#EBEBEB"
- android:pathData="M39,15c0,1.7-6.7,3-15,3S9,16.7,9,15s6.7-3,15-3S39,13.3,39,15z" />
- <path
- android:name="r_ant"
- android:fillColor="#FFFFFF"
- android:pathData="M35,15c-0.1,0-0.3,0-0.4-0.1c-0.5-0.2-0.8-0.8-0.5-1.3l2-5c0.2-0.5,0.8-0.8,1.3-0.5
-c0.5,0.2,0.8,0.8,0.5,1.3l-2,5C35.7,14.8,35.3,15,35,15z" />
- <path
- android:name="l_ant"
- android:fillColor="#FFFFFF"
- android:pathData="M13,15c0.1,0,0.3,0,0.4-0.1c0.5-0.2,0.8-0.8,0.5-1.3l-2-5c-0.2-0.5-0.8-0.8-1.3-0.5
-c-0.5,0.2-0.8,0.8-0.5,1.3l2,5C12.3,14.8,12.7,15,13,15z" />
- <path
- android:name="smile"
- android:fillColor="#EBEBEB"
- android:pathData="M22,32C22,32,22,32.1,22,32c0,0.9,0.6,1.5,1.4,1.5h1.1c0.8,0,1.5-0.7,1.5-1.5c0,0,0-0.1,0-0.1H22z" />
- <path
- android:name="l_eye"
- android:fillColor="#EBEBEB"
- android:pathData="M16,20c-2.8,0-5,2.2-5,5c0,2.8,2.2,5,5,5c2.8,0,5-2.2,5-5C21,22.2,18.8,20,16,20z" />
- <path
- android:name="r_eye"
- android:fillColor="#EBEBEB"
- android:pathData="M32,20c-2.8,0-5,2.2-5,5c0,2.8,2.2,5,5,5c2.8,0,5-2.2,5-5C37,22.2,34.8,20,32,20z" />
-</vector>
diff --git a/core/res/res/drawable-nodpi/stat_sys_adb.xml b/core/res/res/drawable-nodpi/stat_sys_adb.xml
index 9dd9497..d72d801 100644
--- a/core/res/res/drawable-nodpi/stat_sys_adb.xml
+++ b/core/res/res/drawable-nodpi/stat_sys_adb.xml
@@ -1,11 +1,11 @@
<!--
- Copyright (c) 2015 The CyanogenMod Project
+Copyright (C) 2017 The LineageOS Project
- Licensed under the Apache License, Version 2.0 (the "License");
+ Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,26 +14,13 @@
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
-
- <path
- android:fillColor="#FFFFFF"
- android:pathData="M21.3,6.6L21,6.9c0,1-3.8,1.7-9,1.7S3,7.9,3,6.9L2.7,6.6C2.1,7.6,2,10.7,2,12.5
-c0,1.8,0.1,4.9,0.7,5.8l0,0C3.2,19.3,7.2,20,12,20c4.8,0,8.8-0.7,9.3-1.7l0,0c0.6-1,0.7-4.1,0.7-5.8C22,10.7,21.9,7.6,21.3,6.6z
-M7,17c-1.7,0-3-1.3-3-3s1.3-3,3-3c1.7,0,3,1.3,3,3S8.7,17,7,17z
-M17,17c-1.7,0-3-1.3-3-3c0-1.7,1.3-3,3-3c1.7,0,3,1.3,3,3 C20,15.7,18.7,17,17,17z" />
- <path
- android:fillColor="#BBFFFFFF"
- android:pathData="M21.4,6.9c0,1-4.2,1.9-9.4,1.9S2.6,7.9,2.6,6.9S6.8,5,12,5S21.4,5.8,21.4,6.9z" />
- <path
- android:fillColor="#FFFFFF"
- android:pathData="M19.7,6.5c-0.1,0.3-0.5,0.5-0.8,0.3c-0.3-0.1-0.5-0.5-0.3-0.8l1.3-3.1c0.1-0.3,0.5-0.5,0.8-0.3
-C20.9,2.7,21.1,3,21,3.4L19.7,6.5z" />
+ android:width="24.0dp"
+ android:height="24.0dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
<path
- android:fillColor="#FFFFFF"
- android:pathData="M4.3,6.5C4.5,6.8,4.8,7,5.1,6.8C5.5,6.7,5.6,6.3,5.5,6L4.2,2.9C4.1,2.6,3.7,2.4,3.4,2.5
-C3.1,2.7,2.9,3,3,3.4L4.3,6.5z" />
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M12,6 C15.3,6,18,8.7,18,12 S15.3,18,12,18 S6,15.3,6,12 S8.7,6,12,6 M12,4
+C7.6,4,4,7.6,4,12 S7.6,20,12,20 S20,16.4,20,12 S16.4,4,12,4 Z M12,9
+C10.3,9,9,10.3,9,12 S10.3,15,12,15 S15,13.7,15,12 S13.7,9,12,9 Z" />
</vector>
diff --git a/core/res/res/values-as-rIN/strings.xml b/core/res/res/values-as-rIN/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-as-rIN/strings.xml
+++ b/core/res/res/values-as-rIN/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-ast-rES/strings.xml b/core/res/res/values-ast-rES/strings.xml
index 65cdade..f2abe83 100644
--- a/core/res/res/values-ast-rES/strings.xml
+++ b/core/res/res/values-ast-rES/strings.xml
@@ -850,6 +850,8 @@
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<string name="fingerprint_acquired_too_slow">Movisti\'l deu mui lento. Vuelvi intentalo.</string>
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<string name="fingerprint_error_hw_not_available">El hardware pa buelgues dixitales nun ta disponible.</string>
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
@@ -865,6 +867,8 @@
<!-- Template to be used to name enrolled fingerprints by default. -->
<string name="fingerprint_name_template">Deu <xliff:g id="fingerId" example="1">%d</xliff:g></string>
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<string name="fingerprint_icon_content_description">Iconu de buelga</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-be/cm_strings.xml b/core/res/res/values-be/cm_strings.xml
index 5e73c39..9053cf0 100644
--- a/core/res/res/values-be/cm_strings.xml
+++ b/core/res/res/values-be/cm_strings.xml
@@ -102,7 +102,7 @@
<!-- App ops requests -->
<string name="app_ops_access_camera">атрымаць доступ да камеры</string>
<string name="app_ops_access_location">атрымаць доступ да месцазнаходжання прылады</string>
- <string name="app_ops_access_notifications">атрымаць доступ да апавяшчэнняў</string>
+ <string name="app_ops_access_notifications">чытаньне паведамленьняў</string>
<string name="app_ops_activate_vpn">актываваць VPN</string>
<string name="app_ops_auto_start">прызначыць запуск пры ўлучэнні прылады</string>
<string name="app_ops_delete_call_log">выдаліць часопіс званкоў</string>
diff --git a/core/res/res/values-bg/cm_strings.xml b/core/res/res/values-bg/cm_strings.xml
index 8b94d24..212ba59 100644
--- a/core/res/res/values-bg/cm_strings.xml
+++ b/core/res/res/values-bg/cm_strings.xml
@@ -34,7 +34,7 @@
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_readPhoneBlacklist">Прочетете списъка с блокирани контакти</string>
<!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permdesc_readPhoneBlacklist">Разрешава на приложението да прочетете информацията за телефонни номера, които са блокирани за входящи повиквания или съобщения.</string>
+ <string name="permdesc_readPhoneBlacklist">Разрешава на приложението да чете информацията от списъка с контакти, които са блокирани за входящи повиквания или съобщения.</string>
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_changePhoneBlacklist">Промяна на списъка с блокирани контакти</string>
<!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -42,7 +42,7 @@
<!-- Title of an application permission, listed so the user can choose whether they want the application to do this. -->
<string name="permlab_setKeyguardWallpaper">Задаване на тапет за заключен екран</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permdesc_setKeyguardWallpaper">Разрешава на едно приложение да променя тапета на заключения екран.</string>
+ <string name="permdesc_setKeyguardWallpaper">Разрешава на приложението да променя тапета на екрана за заключване.</string>
<!-- label for item that reboots the phone in phone options dialog -->
<string name="global_action_reboot">Рестартиране</string>
<!-- label for current user in phone options dialog -->
@@ -87,25 +87,25 @@
<string name="silent_mode_priority">Приоритет</string>
<string name="silent_mode_none">Без</string>
<!-- Wifi Hotspot disabled due to subscription change -->
- <string name="subscription_change_disabled_wifi_ap">Изключена Wi-Fi точка за достъп, поради промяна в абонаментна на СИМ</string>
+ <string name="subscription_change_disabled_wifi_ap">Изключена Wi-Fi точка за достъп, поради промяна в СИМ абонамента</string>
<!-- WiFi turn off notification action text -->
<string name="notify_turn_wifi_off_title">Изключете Wi-Fi</string>
<!-- Privacy Guard -->
<string name="permlab_changePrivacyGuardState">Активира или деактивира Защитен режим</string>
<string name="permdesc_changePrivacyGuardState">Разрешава на приложението да променя статута на поверителност на друго приложение. Когато едно приложение се използва с защита на поверителността, не може да има достъп до персонални данни, като контакти, регистри с повиквания или съобщения.</string>
- <string name="privacy_guard_notification">Защитен режим e активен</string>
- <string name="privacy_guard_notification_detail"><xliff:g id="app">%1$s </xliff:g> няма да можете да получите достъп до лични данни</string>
+ <string name="privacy_guard_notification">Активиран е защитен режим</string>
+ <string name="privacy_guard_notification_detail"><xliff:g id="app">%1$s </xliff:g> няма достъп до лични данни</string>
<string name="privacy_guard_dialog_title">Защитен режим</string>
- <string name="privacy_guard_dialog_summary"><xliff:g id="app">%1$s </xliff:g> бих искал да <xliff:g id="op">%2$s </xliff:g>.</string>
+ <string name="privacy_guard_dialog_summary"><xliff:g id="app">%1$s </xliff:g> иска да <xliff:g id="op">%2$s </xliff:g>.</string>
<!-- Text of the checkbox for the permission confirmation dialog to remember the user's choice. [CHAR LIMIT=40] -->
<string name="permission_remember_choice">Запомни избора ми</string>
<!-- App ops requests -->
<string name="app_ops_access_camera">достъп до камерата</string>
<string name="app_ops_access_location">достъп до вашето местоположение</string>
- <string name="app_ops_access_notifications">прочети своите известия</string>
+ <string name="app_ops_access_notifications">прочети известията</string>
<string name="app_ops_activate_vpn">активиране на VPN</string>
<string name="app_ops_auto_start">изпълнение при включване</string>
- <string name="app_ops_delete_call_log">изтриване на дневника за повиквания</string>
+ <string name="app_ops_delete_call_log">изтриване на списъка с обаждания</string>
<string name="app_ops_delete_contacts">Изтриване на контакти</string>
<string name="app_ops_delete_mms">Изтриване на MMS съобщенията</string>
<string name="app_ops_delete_sms">Изтриване на SMS съобщенията</string>
@@ -114,7 +114,7 @@
<string name="app_ops_keep_device_awake">Задръж устройството будно</string>
<string name="app_ops_make_phone_call">осъществете телефонно повикване</string>
<string name="app_ops_modify_calendar">актуализиране на вашият календар</string>
- <string name="app_ops_modify_call_log">актуализация на дневника за повиквания</string>
+ <string name="app_ops_modify_call_log">актуализация на списъка с обаждания</string>
<string name="app_ops_modify_clipboard">промяна на клипборда</string>
<string name="app_ops_modify_contacts">актуализиране на вашите контакти</string>
<string name="app_ops_modify_settings">актуализиране на системните настройки</string>
@@ -134,13 +134,13 @@
<string name="app_ops_send_sms">Изпращане на SMS съобщение</string>
<string name="app_ops_start_at_bootup">изпълнение при включване</string>
<string name="app_ops_toast_window">показвай изкачащи уведомления</string>
- <string name="app_ops_toggle_bluetooth">активиране/деактивиране Bluetooth</string>
- <string name="app_ops_toggle_mobile_data">Превключване клетъчен данни</string>
+ <string name="app_ops_toggle_bluetooth">активиране/деактивиране Блутуут</string>
+ <string name="app_ops_toggle_mobile_data">Включване / Изключване на мобилни данни</string>
<string name="app_ops_toggle_nfc">активиране/деактивиране NFC</string>
<string name="app_ops_toggle_wifi">активирай/деактивирай Wi-Fi</string>
<string name="app_ops_use_alarm_volume">контрол на силата на алармата</string>
<string name="app_ops_use_audio_focus">контрол на силата на звука</string>
- <string name="app_ops_use_bluetooth_volume">контрол на силата на Bluetooth</string>
+ <string name="app_ops_use_bluetooth_volume">контрол на силата на Блутуут</string>
<string name="app_ops_use_master_volume">главен контрол на звука</string>
<string name="app_ops_use_media_buttons">Използвайте мултимедийните бутони</string>
<string name="app_ops_use_media_volume">контрол на звука за мултимедия</string>
@@ -176,7 +176,7 @@
<!-- Sequence of characters used to separate carrier message strings in keyguard. Typically just vertical line
with spaces on either side. [CHAR LIMIT=3] -->
<!-- Protected Apps Notification -->
- <string name="notify_package_component_protected_title">Старта на приложението блокиран</string>
+ <string name="notify_package_component_protected_title">Старта на приложението е блокиран</string>
<string name="notify_package_component_protected_text"><xliff:g id="app_name">%1$s</xliff:g> е блокиран. Докосни за да потвърдиш старта на приложението.</string>
<!-- Battery fully charged notification -->
<string name="notify_battery_fully_charged_title">Батерията е напълно заредена</string>
diff --git a/core/res/res/values-br-rFR/strings.xml b/core/res/res/values-br-rFR/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-br-rFR/strings.xml
+++ b/core/res/res/values-br-rFR/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-csb-rPL/strings.xml b/core/res/res/values-csb-rPL/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-csb-rPL/strings.xml
+++ b/core/res/res/values-csb-rPL/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-cy/strings.xml b/core/res/res/values-cy/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-cy/strings.xml
+++ b/core/res/res/values-cy/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-en-rPT/strings.xml b/core/res/res/values-en-rPT/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-en-rPT/strings.xml
+++ b/core/res/res/values-en-rPT/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-eo/strings.xml b/core/res/res/values-eo/strings.xml
index f58ee6e..e4a6a8c 100644
--- a/core/res/res/values-eo/strings.xml
+++ b/core/res/res/values-eo/strings.xml
@@ -485,6 +485,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -493,6 +495,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-es-rCO/strings.xml b/core/res/res/values-es-rCO/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-es-rCO/strings.xml
+++ b/core/res/res/values-es-rCO/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-es-rMX/strings.xml b/core/res/res/values-es-rMX/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-es-rMX/strings.xml
+++ b/core/res/res/values-es-rMX/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-es-rUS/cm_strings.xml b/core/res/res/values-es-rUS/cm_strings.xml
index 74e70ab..45762b1 100644
--- a/core/res/res/values-es-rUS/cm_strings.xml
+++ b/core/res/res/values-es-rUS/cm_strings.xml
@@ -117,7 +117,7 @@
<string name="app_ops_modify_call_log">actualizar el registro de llamadas</string>
<string name="app_ops_modify_clipboard">modificar el portapapeles</string>
<string name="app_ops_modify_contacts">actualizar tus contactos</string>
- <string name="app_ops_modify_settings">actualizar configuración del sistema</string>
+ <string name="app_ops_modify_settings">actualizar ajustes del sistema</string>
<string name="app_ops_mute_unmute_microphone">silenciar / activar el micrófono</string>
<string name="app_ops_play_audio">reproducir el audio</string>
<string name="app_ops_post_notification">publicar una notificación</string>
diff --git a/core/res/res/values-frp-rIT/strings.xml b/core/res/res/values-frp-rIT/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-frp-rIT/strings.xml
+++ b/core/res/res/values-frp-rIT/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-fy-rNL/strings.xml b/core/res/res/values-fy-rNL/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-fy-rNL/strings.xml
+++ b/core/res/res/values-fy-rNL/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-ga-rIE/strings.xml b/core/res/res/values-ga-rIE/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-ga-rIE/strings.xml
+++ b/core/res/res/values-ga-rIE/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-gd-rGB/strings.xml b/core/res/res/values-gd-rGB/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-gd-rGB/strings.xml
+++ b/core/res/res/values-gd-rGB/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-ja/cm_strings.xml b/core/res/res/values-ja/cm_strings.xml
index 7157ab2..8902282 100644
--- a/core/res/res/values-ja/cm_strings.xml
+++ b/core/res/res/values-ja/cm_strings.xml
@@ -65,7 +65,7 @@
<string name="reboot_confirm" product="tablet">タブレットは再起動します。</string>
<string name="reboot_confirm" product="default">携帯電話は再起動します。</string>
<!-- Reboot Progress Dialog. This is shown if the user chooses to reboot the phone. -->
- <string name="reboot_progress">再起動中\u2026</string>
+ <string name="reboot_progress">再起動中...</string>
<!-- Long-press back kill application -->
<string name="app_killed_message">アプリを終了しました。</string>
<!-- ADB over network notification -->
diff --git a/core/res/res/values-ku/strings.xml b/core/res/res/values-ku/strings.xml
index d4c50e2..3837084 100644
--- a/core/res/res/values-ku/strings.xml
+++ b/core/res/res/values-ku/strings.xml
@@ -805,6 +805,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -813,6 +815,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_readSyncSettings">خوێندنەوەی زانیاریەکەنی هاوتاکردن</string>
diff --git a/core/res/res/values-lb/strings.xml b/core/res/res/values-lb/strings.xml
index f89fc67..1224366 100644
--- a/core/res/res/values-lb/strings.xml
+++ b/core/res/res/values-lb/strings.xml
@@ -211,6 +211,7 @@
<string name="roamingText12">Roaming-Banner Aus</string>
<string name="roamingTextSearching">E Service gëtt gesicht</string>
<!-- Displayed when WFC registration fails -->
+ <string name="wfcRegErrorTitle">WLAN-Uriff</string>
<!-- WFC Operator Error Codes -->
<!-- WFC Operator Error Messages showed as alerts -->
<!-- WFC Operator Error Messages showed as notifications -->
@@ -800,6 +801,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -808,6 +811,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_readSyncSettings">Synchroniséierungsastellunge liesen</string>
diff --git a/core/res/res/values-nb/cm_strings.xml b/core/res/res/values-nb/cm_strings.xml
index d1cfdaf..d531a6a 100644
--- a/core/res/res/values-nb/cm_strings.xml
+++ b/core/res/res/values-nb/cm_strings.xml
@@ -120,7 +120,7 @@
<string name="app_ops_modify_settings">oppdatere systeminnstillinger</string>
<string name="app_ops_mute_unmute_microphone">Demp/fjern demping av mikrofonen</string>
<string name="app_ops_play_audio">spille av lyd</string>
- <string name="app_ops_post_notification">legge inn en melding</string>
+ <string name="app_ops_post_notification">legge inn en varsel</string>
<string name="app_ops_project_media">Prosjekt media</string>
<string name="app_ops_read_calendar">lese kalenderen</string>
<string name="app_ops_read_call_log">lese i samtaleloggen</string>
diff --git a/core/res/res/values-nl/cm_strings.xml b/core/res/res/values-nl/cm_strings.xml
index 9ef6871..0dcc2aa 100644
--- a/core/res/res/values-nl/cm_strings.xml
+++ b/core/res/res/values-nl/cm_strings.xml
@@ -57,7 +57,7 @@
<!-- Button to reboot the phone into download, within the Reboot Options dialog -->
<string name="reboot_download">Download</string>
<!-- Button to soft reboot the device, within the Reboot Options dialog -->
- <string name="reboot_soft">Soft reboot</string>
+ <string name="reboot_soft">Snelle herstart</string>
<!-- Title of dialog to confirm rebooting. -->
<string name="reboot_title">Herstarten</string>
<!-- Reboot Confirmation Dialog. When the user chooses to reboot the device, there will
diff --git a/core/res/res/values-oc-rFR/strings.xml b/core/res/res/values-oc-rFR/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-oc-rFR/strings.xml
+++ b/core/res/res/values-oc-rFR/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-or-rIN/strings.xml b/core/res/res/values-or-rIN/strings.xml
index 58b884b..3acd9fd 100644
--- a/core/res/res/values-or-rIN/strings.xml
+++ b/core/res/res/values-or-rIN/strings.xml
@@ -453,6 +453,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -461,6 +463,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values-ro/cm_strings.xml b/core/res/res/values-ro/cm_strings.xml
index 1587713..57a3f1b 100644
--- a/core/res/res/values-ro/cm_strings.xml
+++ b/core/res/res/values-ro/cm_strings.xml
@@ -87,6 +87,7 @@
<string name="silent_mode_priority">Prioritate</string>
<string name="silent_mode_none">Nimic</string>
<!-- Wifi Hotspot disabled due to subscription change -->
+ <string name="subscription_change_disabled_wifi_ap">Hotspot-ul Wi-Fi a fost dezactivat din cauza schimbării abonării SIM</string>
<!-- WiFi turn off notification action text -->
<string name="notify_turn_wifi_off_title">Oprește Wi-Fi</string>
<!-- Privacy Guard -->
@@ -176,6 +177,7 @@
with spaces on either side. [CHAR LIMIT=3] -->
<!-- Protected Apps Notification -->
<string name="notify_package_component_protected_title">Lansarea activității blocată</string>
+ <string name="notify_package_component_protected_text"><xliff:g id="app_name">%1$s</xliff:g> este protejat de la lansare. Atingeți pentru a vă autentifica și pentru a lansa aplicația.</string>
<!-- Battery fully charged notification -->
<string name="notify_battery_fully_charged_title">Acumulator încărcat complet</string>
<string name="notify_battery_fully_charged_text">Deconectați aparatul de la încărcător pentru a îmbunătăți longevitatea bateriei.</string>
@@ -186,4 +188,6 @@
whether they want to allow the application to do this. -->
<string name="permdesc_resetBatteryStats">Permite unei aplicații să reseteze datele curente de utilizare a bateriei.</string>
<!-- Uicc hotswapped event configuration needed notification -->
+ <string name="uicc_hot_swapped_event_title">Cardurile SIM s-au modificat</string>
+ <string name="uicc_hot_swapped_event_text">Atingeți pentru a seta preferințele implicite ale cardului SIM</string>
</resources>
diff --git a/core/res/res/values-sk/cm_strings.xml b/core/res/res/values-sk/cm_strings.xml
index 31eb96b..6748dbb 100644
--- a/core/res/res/values-sk/cm_strings.xml
+++ b/core/res/res/values-sk/cm_strings.xml
@@ -132,10 +132,12 @@
<string name="app_ops_record_audio">nahrať zvuk</string>
<string name="app_ops_send_mms">odoslať správu MMS</string>
<string name="app_ops_send_sms">odoslať správu SMS</string>
- <string name="app_ops_start_at_bootup">spustiť pri štaťte</string>
+ <string name="app_ops_start_at_bootup">spustiť pri štarte</string>
<string name="app_ops_toast_window">zobraziť vyskakovacie oznámenia</string>
<string name="app_ops_toggle_bluetooth">prepnúť bluetooth</string>
+ <string name="app_ops_toggle_mobile_data">prepnúť mobilné dáta</string>
<string name="app_ops_toggle_nfc">prepnúť NFC</string>
+ <string name="app_ops_toggle_wifi">prepnúť Wi-Fi</string>
<string name="app_ops_use_alarm_volume">ovládať hlasitosť budíka</string>
<string name="app_ops_use_audio_focus">ovládať zvukové zdroje</string>
<string name="app_ops_use_bluetooth_volume">ovládať hlasitosť bluetooh</string>
@@ -148,6 +150,21 @@
<string name="app_ops_use_voice_volume">ovládať hlasitosť hovoru</string>
<string name="app_ops_write_mms">napísať správu MMS</string>
<string name="app_ops_write_sms">napísať správu SMS</string>
+ <string name="app_ops_use_fingerprint">použiť odtlačok prsta</string>
+ <string name="app_ops_add_voicemail">pridať hlasovú poštu</string>
+ <string name="app_ops_read_phone_state">pristupovať k stavu telefónu</string>
+ <string name="app_ops_scan_wifi">prehľadať Wi-Fi siete</string>
+ <string name="app_ops_change_wallpaper">zmeniť tapetu</string>
+ <string name="app_ops_assist_structure">použiť asistovanú štruktúru</string>
+ <string name="app_ops_assist_screenshot">urobiť snímok obrazovky</string>
+ <string name="app_ops_use_body_sensors">použiť telové senzory</string>
+ <string name="app_ops_read_cell_broadcasts">čítať bunkové vysielanie</string>
+ <string name="app_ops_mock_location">falšovať vašu polohu</string>
+ <string name="app_ops_read_external_storage">čítať externé úložisko</string>
+ <string name="app_ops_write_external_storage">zapisovať do externého úložiska</string>
+ <string name="app_ops_turn_on_screen">zapnúť obrazovku</string>
+ <string name="app_ops_get_accounts">získať účty zariadenia</string>
+ <string name="app_ops_wifi_change">zmeniť stav Wi-Fi</string>
<string name="app_ops_su">získať root prístup</string>
<!-- Notify user that they are in Lock-to-app (for devices without navbar) -->
<string name="lock_to_app_toast_no_navbar">Na odopnutie tejto obrazovky stlačte a podržte tlačidlo Späť.</string>
@@ -159,7 +176,11 @@
<!-- Sequence of characters used to separate carrier message strings in keyguard. Typically just vertical line
with spaces on either side. [CHAR LIMIT=3] -->
<!-- Protected Apps Notification -->
+ <string name="notify_package_component_protected_title">Spustenie aktivity zablokované</string>
+ <string name="notify_package_component_protected_text"><xliff:g id="app_name">%1$s</xliff:g> je chránená proti spusteniu. Kliknite na overenie a spustenie aplikácie.</string>
<!-- Battery fully charged notification -->
+ <string name="notify_battery_fully_charged_title">Batéria plne nabitá</string>
+ <string name="notify_battery_fully_charged_text">Odpojte zariadenie od nabíjačky pre zlepšenie životnosti batérie.</string>
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose
whether they want to allow the application to do this. -->
<string name="permlab_resetBatteryStats">obnoviť štatistiky batérie</string>
@@ -167,4 +188,6 @@
whether they want to allow the application to do this. -->
<string name="permdesc_resetBatteryStats">Umožňuje aplikácii obnoviť aktuálne nízkoúrovňové údaje o využití batérie.</string>
<!-- Uicc hotswapped event configuration needed notification -->
+ <string name="uicc_hot_swapped_event_title">SIM karty sa zmenili</string>
+ <string name="uicc_hot_swapped_event_text">Kliknite na nastavenie redvolieb SIM karty</string>
</resources>
diff --git a/core/res/res/values-ug/strings.xml b/core/res/res/values-ug/strings.xml
index a5d9d1e..b6dee8c 100644
--- a/core/res/res/values-ug/strings.xml
+++ b/core/res/res/values-ug/strings.xml
@@ -741,6 +741,8 @@
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_acquired_vendor">
+ </string-array>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
@@ -749,6 +751,8 @@
<!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
<!-- Template to be used to name enrolled fingerprints by default. -->
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
+ <string-array name="fingerprint_error_vendor">
+ </string-array>
<!-- Content description which should be used for the fingerprint icon. -->
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_readSyncSettings">قەدەمداش تەڭشىكىنى ئوقۇيدۇ</string>
diff --git a/core/res/res/values-zh-rCN/cm_strings.xml b/core/res/res/values-zh-rCN/cm_strings.xml
index 6f522d1..ec8af28 100644
--- a/core/res/res/values-zh-rCN/cm_strings.xml
+++ b/core/res/res/values-zh-rCN/cm_strings.xml
@@ -32,13 +32,13 @@
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permgroupdesc_security">与设备安全信息相关的权限。</string>
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permlab_readPhoneBlacklist">读取手机黑名单</string>
+ <string name="permlab_readPhoneBlacklist">读取号码黑名单</string>
<!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permdesc_readPhoneBlacklist">允许应用读取有关被阻止来电或信息的电话号码的信息。</string>
+ <string name="permdesc_readPhoneBlacklist">允许应用读取有关已阻止来电或信息的电话号码信息。</string>
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permlab_changePhoneBlacklist">更改手机黑名单</string>
+ <string name="permlab_changePhoneBlacklist">更改号码黑名单</string>
<!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
- <string name="permdesc_changePhoneBlacklist">允许应用更改被阻止来电或信息的电话号码。</string>
+ <string name="permdesc_changePhoneBlacklist">允许应用更改阻止来电或信息的电话号码。</string>
<!-- Title of an application permission, listed so the user can choose whether they want the application to do this. -->
<string name="permlab_setKeyguardWallpaper">设置锁屏壁纸</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -76,13 +76,13 @@
<string name="adb_active_generic_notification_message">触摸以禁用调试。</string>
<!-- ADB custom tile -->
<string name="adb_active_custom_tile">ADB - <xliff:g id="adb_type" example="USB">%1$s</xliff:g></string>
- <string name="adb_active_custom_tile_both">USB &amp; 网络</string>
+ <string name="adb_active_custom_tile_both">USB 和网络</string>
<string name="adb_active_custom_tile_usb">USB</string>
<string name="adb_active_custom_tile_net">网络</string>
<!-- Title of an application permission, listed so the user can choose whether they want the application to do this. -->
<string name="permlab_interceptPackageLaunch">拦截应用启动</string>
<!-- stylus gestures support -->
- <string name="stylus_app_not_installed">%s 尚未被安装</string>
+ <string name="stylus_app_not_installed">%s 尚未安装</string>
<!-- Zen mode buttons -->
<string name="silent_mode_priority">优先级</string>
<string name="silent_mode_none">无</string>
@@ -92,7 +92,7 @@
<string name="notify_turn_wifi_off_title">关闭 Wi-Fi</string>
<!-- Privacy Guard -->
<string name="permlab_changePrivacyGuardState">启用或禁用隐私防护</string>
- <string name="permdesc_changePrivacyGuardState">允许应用更改其他应用是否启用隐私防护。当一个应用运行时启用了隐私防护,它将不能访问个人数据,如联系人、通话记录、短信。</string>
+ <string name="permdesc_changePrivacyGuardState">允许应用更改其他应用是否启用隐私防护。当一个应用以启用隐私防护运行时,它将不能访问如联系人、通话记录、短信等个人数据。</string>
<string name="privacy_guard_notification">隐私防护激活</string>
<string name="privacy_guard_notification_detail"><xliff:g id="app">%1$s</xliff:g> 将不能访问个人数据</string>
<string name="privacy_guard_dialog_title">隐私防护</string>
@@ -101,7 +101,7 @@
<string name="permission_remember_choice">记住我的选择</string>
<!-- App ops requests -->
<string name="app_ops_access_camera">存取相机</string>
- <string name="app_ops_access_location">访问你的地理位置信息</string>
+ <string name="app_ops_access_location">访问您的位置信息</string>
<string name="app_ops_access_notifications">读取通知</string>
<string name="app_ops_activate_vpn">激活一个 VPN</string>
<string name="app_ops_auto_start">开机自启动</string>
@@ -113,21 +113,21 @@
<string name="app_ops_get_usage_stats">获取应用使用情况统计</string>
<string name="app_ops_keep_device_awake">保持设备唤醒</string>
<string name="app_ops_make_phone_call">拨打电话</string>
- <string name="app_ops_modify_calendar">更新你的日历</string>
+ <string name="app_ops_modify_calendar">更新您的日历</string>
<string name="app_ops_modify_call_log">更新通话记录</string>
<string name="app_ops_modify_clipboard">修改剪贴板</string>
- <string name="app_ops_modify_contacts">更新你的联系人</string>
+ <string name="app_ops_modify_contacts">更新您的联系人</string>
<string name="app_ops_modify_settings">更新系统设置</string>
<string name="app_ops_mute_unmute_microphone">麦克风静音 / 解除静音</string>
<string name="app_ops_play_audio">播放音频</string>
<string name="app_ops_post_notification">发出通知</string>
<string name="app_ops_project_media">放映媒体</string>
- <string name="app_ops_read_calendar">读取你的日历</string>
- <string name="app_ops_read_call_log">读取你的通话记录</string>
- <string name="app_ops_read_clipboard">读取你的剪贴板</string>
- <string name="app_ops_read_contacts">读取你的联系人</string>
- <string name="app_ops_read_mms">读取你的彩信</string>
- <string name="app_ops_read_sms">读取你的短信</string>
+ <string name="app_ops_read_calendar">读取您的日历</string>
+ <string name="app_ops_read_call_log">读取您的通话记录</string>
+ <string name="app_ops_read_clipboard">读取您的剪贴板</string>
+ <string name="app_ops_read_contacts">读取您的联系人</string>
+ <string name="app_ops_read_mms">读取您的彩信</string>
+ <string name="app_ops_read_sms">读取您的短信</string>
<string name="app_ops_receive_sms">接收短信</string>
<string name="app_ops_record_audio">录音</string>
<string name="app_ops_send_mms">发送彩信</string>
diff --git a/core/res/res/values-zh-rTW/cm_strings.xml b/core/res/res/values-zh-rTW/cm_strings.xml
index 950c435..2edcb8a 100644
--- a/core/res/res/values-zh-rTW/cm_strings.xml
+++ b/core/res/res/values-zh-rTW/cm_strings.xml
@@ -40,13 +40,13 @@
<!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_changePhoneBlacklist">允許應用程式變更被封鎖來電或訊息的電話號碼。</string>
<!-- Title of an application permission, listed so the user can choose whether they want the application to do this. -->
- <string name="permlab_setKeyguardWallpaper">設定鎖定畫面桌布</string>
+ <string name="permlab_setKeyguardWallpaper">設定鎖定螢幕桌布</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_setKeyguardWallpaper">允許應用程式變更鎖定畫面桌布。</string>
<!-- label for item that reboots the phone in phone options dialog -->
<string name="global_action_reboot">重新啟動</string>
<!-- label for current user in phone options dialog -->
- <string name="global_action_current_user">現在</string>
+ <string name="global_action_current_user">目前</string>
<!-- Reboot menu -->
<!-- Button to reboot the phone, within the Reboot Options dialog -->
<string name="reboot_reboot">重新啟動</string>
@@ -55,9 +55,9 @@
<!-- Button to reboot the phone into bootloader, within the Reboot Options dialog -->
<string name="reboot_bootloader">Bootloader</string>
<!-- Button to reboot the phone into download, within the Reboot Options dialog -->
- <string name="reboot_download">Download</string>
+ <string name="reboot_download">下載</string>
<!-- Button to soft reboot the device, within the Reboot Options dialog -->
- <string name="reboot_soft">軟件重新啟動</string>
+ <string name="reboot_soft">軟體重新啟動</string>
<!-- Title of dialog to confirm rebooting. -->
<string name="reboot_title">重新啟動</string>
<!-- Reboot Confirmation Dialog. When the user chooses to reboot the device, there will
@@ -65,18 +65,18 @@
<string name="reboot_confirm" product="tablet">您的平板電腦將會重新啟動。</string>
<string name="reboot_confirm" product="default">您的手機將會重新啟動。</string>
<!-- Reboot Progress Dialog. This is shown if the user chooses to reboot the phone. -->
- <string name="reboot_progress">正在重新啟動\u2026</string>
+ <string name="reboot_progress">重新啟動中\u2026</string>
<!-- Long-press back kill application -->
<string name="app_killed_message">已終止應用程式</string>
<!-- ADB over network notification -->
<string name="adb_net_active_notification_title">已啟用網路 ADB</string>
<!-- ADB over USB and network notification -->
- <string name="adb_both_active_notification_title">已啟用 USB 及網路 ADB</string>
+ <string name="adb_both_active_notification_title">ADB 透過 USB 和網路已啟用</string>
<!-- ADB notification message-->
<string name="adb_active_generic_notification_message">輕觸即可停用偵錯。</string>
<!-- ADB custom tile -->
<string name="adb_active_custom_tile">ADB - <xliff:g id="adb_type" example="USB">%1$s</xliff:g></string>
- <string name="adb_active_custom_tile_both">USB和網路</string>
+ <string name="adb_active_custom_tile_both">USB 和網路</string>
<string name="adb_active_custom_tile_usb">USB</string>
<string name="adb_active_custom_tile_net">網路</string>
<!-- Title of an application permission, listed so the user can choose whether they want the application to do this. -->
@@ -84,13 +84,15 @@
<!-- stylus gestures support -->
<string name="stylus_app_not_installed">未安裝 %s</string>
<!-- Zen mode buttons -->
- <string name="silent_mode_priority">優先度</string>
+ <string name="silent_mode_priority">優先權</string>
<string name="silent_mode_none">無</string>
<!-- Wifi Hotspot disabled due to subscription change -->
+ <string name="subscription_change_disabled_wifi_ap">由於 SIM 卡資訊變更,已停用 Wi-Fi 熱點</string>
<!-- WiFi turn off notification action text -->
+ <string name="notify_turn_wifi_off_title">關閉 Wi-Fi</string>
<!-- Privacy Guard -->
<string name="permlab_changePrivacyGuardState">啟用或停用隱私守衛</string>
- <string name="permdesc_changePrivacyGuardState">允許應用程式變更其他應用程式執行時是否啟用隱私守衛。當應用程式執行時啟用了隱私守衛,它將無法存取個人資料,例如聯絡人、通話記錄或訊息。</string>
+ <string name="permdesc_changePrivacyGuardState">允許應用程式更改其他應用程式執行時是否啟用隱私守衛。當應用程式執行時啟用了隱私守衛,它將無法存取個人資料,例如聯絡人、通話記錄或訊息。</string>
<string name="privacy_guard_notification">隱私守衛正在運作</string>
<string name="privacy_guard_notification_detail">「<xliff:g id="app">%1$s</xliff:g>」將無法存取個人資料</string>
<string name="privacy_guard_dialog_title">隱私守衛</string>
@@ -101,10 +103,10 @@
<string name="app_ops_access_camera">存取相機</string>
<string name="app_ops_access_location">存取您的位置</string>
<string name="app_ops_access_notifications">讀取您的通知</string>
- <string name="app_ops_activate_vpn">啟動 VPN</string>
+ <string name="app_ops_activate_vpn">啟用一個 VPN</string>
<string name="app_ops_auto_start">開機時啟動</string>
<string name="app_ops_delete_call_log">刪除您的通話紀錄</string>
- <string name="app_ops_delete_contacts">刪除您的連絡人</string>
+ <string name="app_ops_delete_contacts">刪除您的聯絡人</string>
<string name="app_ops_delete_mms">刪除您的多媒體訊息</string>
<string name="app_ops_delete_sms">刪除您的簡訊</string>
<string name="app_ops_draw_on_top">在頂層繪製視窗</string>
@@ -125,36 +127,36 @@
<string name="app_ops_read_clipboard">讀取剪貼簿</string>
<string name="app_ops_read_contacts">讀取您的聯絡人資料</string>
<string name="app_ops_read_mms">讀取您的多媒體簡訊</string>
- <string name="app_ops_read_sms">讀取您的簡訊</string>
- <string name="app_ops_receive_sms">接收簡訊</string>
+ <string name="app_ops_read_sms">讀取您的簡訊訊息</string>
+ <string name="app_ops_receive_sms">接收簡訊訊息</string>
<string name="app_ops_record_audio">錄製音訊</string>
<string name="app_ops_send_mms">傳送多媒體訊息</string>
- <string name="app_ops_send_sms">傳送簡訊</string>
+ <string name="app_ops_send_sms">傳送簡訊訊息</string>
<string name="app_ops_start_at_bootup">開機時啟動</string>
- <string name="app_ops_toast_window">顯示彈出信息</string>
- <string name="app_ops_toggle_bluetooth">開關藍牙</string>
- <string name="app_ops_toggle_mobile_data">切換數據用量</string>
- <string name="app_ops_toggle_nfc">開關 NFC</string>
- <string name="app_ops_toggle_wifi">切換 Wi-Fi</string>
+ <string name="app_ops_toast_window">顯示提示訊息</string>
+ <string name="app_ops_toggle_bluetooth">切換至藍牙</string>
+ <string name="app_ops_toggle_mobile_data">切換至行動數據</string>
+ <string name="app_ops_toggle_nfc">切換至 NFC</string>
+ <string name="app_ops_toggle_wifi">切換至 Wi-Fi</string>
<string name="app_ops_use_alarm_volume">控制鬧鐘音量</string>
<string name="app_ops_use_audio_focus">控制音訊焦點</string>
<string name="app_ops_use_bluetooth_volume">控制藍牙音量</string>
<string name="app_ops_use_master_volume">控制主音量</string>
- <string name="app_ops_use_media_buttons">使用媒體按鈕</string>
+ <string name="app_ops_use_media_buttons">使用媒體鍵</string>
<string name="app_ops_use_media_volume">控制媒體音量</string>
<string name="app_ops_use_notification_volume">控制通知音量</string>
<string name="app_ops_use_ring_volume">控制鈴聲音量</string>
- <string name="app_ops_use_vibrate">使用觸控震動</string>
+ <string name="app_ops_use_vibrate">使用觸覺回饋</string>
<string name="app_ops_use_voice_volume">控制語音通話音量</string>
<string name="app_ops_write_mms">撰寫多媒體訊息</string>
- <string name="app_ops_write_sms">撰寫簡訊</string>
+ <string name="app_ops_write_sms">撰寫簡訊訊息</string>
<string name="app_ops_use_fingerprint">使用指紋</string>
- <string name="app_ops_add_voicemail">新增語音訊息</string>
+ <string name="app_ops_add_voicemail">新增語音信箱</string>
<string name="app_ops_read_phone_state">存取電話狀態</string>
<string name="app_ops_scan_wifi">掃描 Wi-Fi 網路</string>
<string name="app_ops_change_wallpaper">變更桌布</string>
<string name="app_ops_assist_structure">使用協助工具</string>
- <string name="app_ops_assist_screenshot">擷取螢幕畫面</string>
+ <string name="app_ops_assist_screenshot">螢幕擷取畫面</string>
<string name="app_ops_use_body_sensors">使用人體感應器</string>
<string name="app_ops_read_cell_broadcasts">讀取區域廣播</string>
<string name="app_ops_mock_location">模擬所在位置</string>
@@ -165,7 +167,7 @@
<string name="app_ops_wifi_change">變更 Wi-Fi 狀態</string>
<string name="app_ops_su">取得 Root 權限</string>
<!-- Notify user that they are in Lock-to-app (for devices without navbar) -->
- <string name="lock_to_app_toast_no_navbar">要解鎖此螢幕,觸摸並按住返回鍵。</string>
+ <string name="lock_to_app_toast_no_navbar">要解鎖此畫面,請輕觸並按住 [返回] 鍵。</string>
<!-- Template for showing cellular network operator name while LTE calling is enabled -->
<string name="tethered_notification_no_device_message">沒有已連接的裝置</string>
<string name="tethered_notification_one_device_message"><xliff:g id="count">%1$s</xliff:g> 個已連接裝置</string>
@@ -174,11 +176,11 @@
<!-- Sequence of characters used to separate carrier message strings in keyguard. Typically just vertical line
with spaces on either side. [CHAR LIMIT=3] -->
<!-- Protected Apps Notification -->
- <string name="notify_package_component_protected_title">已阻止啟動活動</string>
- <string name="notify_package_component_protected_text"><xliff:g id="app_name">%1$s </xliff:g> 正被防止啟動。按一下以進行身份驗證並啟動應用程式。</string>
+ <string name="notify_package_component_protected_title">已封鎖啟動活動</string>
+ <string name="notify_package_component_protected_text"><xliff:g id="app_name">%1$s </xliff:g> 正被防止啟動。按一下即可進行身份驗證並啟動應用程式。</string>
<!-- Battery fully charged notification -->
<string name="notify_battery_fully_charged_title">電池完全充滿</string>
- <string name="notify_battery_fully_charged_text">請將設備與充電線拔除,以提高電池壽命。</string>
+ <string name="notify_battery_fully_charged_text">請將裝置與充電線拔除即可提高電池壽命。</string>
<!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose
whether they want to allow the application to do this. -->
<string name="permlab_resetBatteryStats">重設電池統計資訊</string>
@@ -187,5 +189,5 @@
<string name="permdesc_resetBatteryStats">允許應用程式重設目前低電量的電池使用資料。</string>
<!-- Uicc hotswapped event configuration needed notification -->
<string name="uicc_hot_swapped_event_title">SIM 卡已變更</string>
- <string name="uicc_hot_swapped_event_text">點按以設定SIM卡預設選項</string>
+ <string name="uicc_hot_swapped_event_text">輕觸即可設定 SIM卡 預設偏好</string>
</resources>
diff --git a/core/res/res/values/cm_symbols.xml b/core/res/res/values/cm_symbols.xml
index a56e5ac..19a4672 100644
--- a/core/res/res/values/cm_symbols.xml
+++ b/core/res/res/values/cm_symbols.xml
@@ -101,9 +101,6 @@
<!-- Advanced settings switch -->
<java-symbol type="string" name="lock_to_app_toast_no_navbar" />
- <!-- PlatLogo -->
- <java-symbol type="drawable" name="platlogo_cm" />
-
<!-- Automatic brightness enhancements -->
<java-symbol type="integer" name="config_autoBrightnessBrighteningLightFastDebounce"/>
diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp
index 1add6c3..e6e4563 100644
--- a/libs/androidfw/AssetManager.cpp
+++ b/libs/androidfw/AssetManager.cpp
@@ -1006,6 +1006,7 @@ void AssetManager::addSystemOverlays(const char* pathOverlaysList,
sharedRes->add(oass, oidmap, offset + 1, false, oap.pkgIdOverride);
const_cast<AssetManager*>(this)->mAssetPaths.add(oap);
const_cast<AssetManager*>(this)->mZipSet.addOverlay(targetPackagePath, oap);
+ delete oidmap;
}
}
fclose(fin);
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java
index bb75547..2c7160f 100644
--- a/media/java/android/media/ExifInterface.java
+++ b/media/java/android/media/ExifInterface.java
@@ -1374,8 +1374,7 @@ public class ExifInterface {
*/
public void saveAttributes() throws IOException {
if (!mIsSupportedFile) {
- throw new UnsupportedOperationException(
- "ExifInterface only supports saving attributes on JPEG formats.");
+ throw new IOException("ExifInterface only supports saving attributes on JPEG formats.");
}
// Keep the thumbnail in memory
mThumbnailBytes = getThumbnail();
diff --git a/packages/CaptivePortalLogin/res/values-as-rIN/strings.xml b/packages/CaptivePortalLogin/res/values-as-rIN/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-as-rIN/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-br-rFR/strings.xml b/packages/CaptivePortalLogin/res/values-br-rFR/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-br-rFR/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-csb-rPL/strings.xml b/packages/CaptivePortalLogin/res/values-csb-rPL/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-csb-rPL/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-cy/strings.xml b/packages/CaptivePortalLogin/res/values-cy/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-cy/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-en-rPT/strings.xml b/packages/CaptivePortalLogin/res/values-en-rPT/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-en-rPT/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-eo/strings.xml b/packages/CaptivePortalLogin/res/values-eo/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-eo/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-es-rCO/strings.xml b/packages/CaptivePortalLogin/res/values-es-rCO/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-es-rCO/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-es-rMX/strings.xml b/packages/CaptivePortalLogin/res/values-es-rMX/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-es-rMX/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-frp-rIT/strings.xml b/packages/CaptivePortalLogin/res/values-frp-rIT/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-frp-rIT/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-fy-rNL/strings.xml b/packages/CaptivePortalLogin/res/values-fy-rNL/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-fy-rNL/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-ga-rIE/strings.xml b/packages/CaptivePortalLogin/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-ga-rIE/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-gd-rGB/strings.xml b/packages/CaptivePortalLogin/res/values-gd-rGB/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-gd-rGB/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-oc-rFR/strings.xml b/packages/CaptivePortalLogin/res/values-oc-rFR/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-oc-rFR/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/CaptivePortalLogin/res/values-or-rIN/strings.xml b/packages/CaptivePortalLogin/res/values-or-rIN/strings.xml
new file mode 100644
index 0000000..70489fb
--- /dev/null
+++ b/packages/CaptivePortalLogin/res/values-or-rIN/strings.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources></resources>
diff --git a/packages/DocumentsUI/res/values-lb/strings.xml b/packages/DocumentsUI/res/values-lb/strings.xml
index 5bcd64f..3d6545d 100644
--- a/packages/DocumentsUI/res/values-lb/strings.xml
+++ b/packages/DocumentsUI/res/values-lb/strings.xml
@@ -42,6 +42,7 @@
<!-- Menu item title that deletes the selected documents [CHAR LIMIT=24] -->
<string name="menu_delete">Läschen</string>
<!-- Menu item title that selects all documents in the current directory [CHAR LIMIT=24] -->
+ <string name="menu_select_all">Alles auswielen</string>
<!-- Menu item title that copies the selected documents [CHAR LIMIT=24] -->
<!-- Menu item that reveals internal storage built into the device [CHAR LIMIT=24] -->
<string name="menu_advanced_show" product="nosdcard">Interne Späicher uweisen</string>
@@ -56,7 +57,9 @@
<!-- Menu item that hides the sizes of displayed files [CHAR LIMIT=24] -->
<string name="menu_file_size_hide">Fichiersgréisst verstoppen</string>
<!-- Button label that select the current directory [CHAR LIMIT=24] -->
+ <string name="button_select">Auswielen</string>
<!-- Button label that copies files to the current directory [CHAR LIMIT=24] -->
+ <string name="button_copy">Kopéieren</string>
<!-- Mode that sorts documents by their display name alphabetically [CHAR LIMIT=24] -->
<string name="sort_name">No Numm</string>
<!-- Mode that sorts documents by their last modified time in descending order; most recent first [CHAR LIMIT=24] -->
@@ -94,11 +97,14 @@
<!-- Title of dialog when prompting user to select an app to share documents with [CHAR LIMIT=32] -->
<string name="share_via">Deelen iwwer</string>
<!-- Title of the copy notification [CHAR LIMIT=24] -->
+ <string name="copy_notification_title">Fichiere gi kopéiert</string>
<!-- Text shown on the copy notification to indicate remaining time, in minutes [CHAR LIMIT=24] -->
+ <string name="copy_remaining"><xliff:g id="duration" example="3 minutes">%s</xliff:g> iwwreg</string>
<!-- Toast shown when a file copy is kicked off -->
<!-- Text shown on the copy notification while DocumentsUI performs setup in preparation for copying files [CHAR LIMIT=32] -->
<!-- Title of the copy error notification [CHAR LIMIT=48] -->
<!-- Second line for notifications saying that more information will be shown after touching [CHAR LIMIT=48] -->
<!-- Label of a dialog button for retrying a failed operation [CHAR LIMIT=24] -->
+ <string name="retry">Nees probéieren</string>
<!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] -->
</resources>
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index 46b73d8..f72832a 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -135,7 +135,8 @@ public class ExternalStorageProvider extends DocumentsProvider {
final VolumeInfo privateVol = mStorageManager.findPrivateForEmulated(volume);
title = mStorageManager.getBestVolumeDescription(privateVol);
}
- } else if (volume.getType() == VolumeInfo.TYPE_PUBLIC) {
+ } else if (volume.getType() == VolumeInfo.TYPE_PUBLIC
+ && volume.getMountUserId() == userId) {
rootId = volume.getFsUuid();
title = mStorageManager.getBestVolumeDescription(volume);
} else {
diff --git a/packages/Keyguard/res/values-gl-rES/cm_strings.xml b/packages/Keyguard/res/values-gl-rES/cm_strings.xml
index 4221609..314940a 100644
--- a/packages/Keyguard/res/values-gl-rES/cm_strings.xml
+++ b/packages/Keyguard/res/values-gl-rES/cm_strings.xml
@@ -21,6 +21,10 @@
<!-- Shown in the lock screen when there is SIM card IO error. -->
<string name="lockscreen_sim_error_message_short">Esta tarxeta non é válida.</string>
<!-- Instructions telling the user remaining times when enter SIM PIN view. -->
+ <plurals name="kg_password_default_pin_message">
+ <item quantity="one">Introduce o código PIN. Tienes <xliff:g id="number">%d</xliff:g> intento restante antes de ter que comunicarte con a tua operadora para desbloquear o dispositivo.</item>
+ <item quantity="other">Introduce o código PIN. Tienes <xliff:g id="number">%d</xliff:g> intentos restantes.</item>
+ </plurals>
<!-- Shown in the KeyguardSimPinView when entry length is too short. -->
<string name="kg_invalid_sim_length">Erro: O dato introducido é máis curto có mínimo esixido</string>
</resources>
diff --git a/packages/Keyguard/res/values-ro/cm_strings.xml b/packages/Keyguard/res/values-ro/cm_strings.xml
index c9a5723..4cfd544 100644
--- a/packages/Keyguard/res/values-ro/cm_strings.xml
+++ b/packages/Keyguard/res/values-ro/cm_strings.xml
@@ -17,9 +17,15 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- When the user inserts a sim card with some personalization enabled -->
+ <string name="keyguard_perso_locked_message">Cardul SIM este Perso blocat</string>
<!-- Shown in the lock screen when there is SIM card IO error. -->
<string name="lockscreen_sim_error_message_short">Cartelă SIM incorectă.</string>
<!-- Instructions telling the user remaining times when enter SIM PIN view. -->
+ <plurals name="kg_password_default_pin_message">
+ <item quantity="one">Introduceţi PIN-ul pentru SIM, mai aveţi <xliff:g id="number">%d</xliff:g> încercare rămasă înainte de a trebui să contactaţi compania de rețea mobilă pentru a debloca dispozitivul.</item>
+ <item quantity="few">Introduceţi PIN-ul pentru SIM, mai aveţi <xliff:g id="number">%d</xliff:g> (de) încercări rămase.</item>
+ <item quantity="other">Introduceţi PIN-ul pentru SIM, mai aveţi <xliff:g id="number">%d</xliff:g> (de) încercări rămase.</item>
+ </plurals>
<!-- Shown in the KeyguardSimPinView when entry length is too short. -->
<string name="kg_invalid_sim_length">Eroare: Introducere mai scurtă decât lungimea minimă</string>
</resources>
diff --git a/packages/Keyguard/res/values-sk/cm_strings.xml b/packages/Keyguard/res/values-sk/cm_strings.xml
index f54f1ff..bcc9ea0 100644
--- a/packages/Keyguard/res/values-sk/cm_strings.xml
+++ b/packages/Keyguard/res/values-sk/cm_strings.xml
@@ -17,8 +17,15 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- When the user inserts a sim card with some personalization enabled -->
+ <string name="keyguard_perso_locked_message">SIM/RUIM je uzamknutá pomocou Perso</string>
<!-- Shown in the lock screen when there is SIM card IO error. -->
<string name="lockscreen_sim_error_message_short">Neplatná karta.</string>
<!-- Instructions telling the user remaining times when enter SIM PIN view. -->
+ <plurals name="kg_password_default_pin_message">
+ <item quantity="one">Zadajte kód PIN. Máte <xliff:g id="number">%d</xliff:g> zostávajúci pokus predtým, ako budete musieť kontaktovať vášho operátora pre odomknutie zariadenia.</item>
+ <item quantity="few">Zadajte kód PIN. Máte <xliff:g id="number">%d</xliff:g> zostávajúce pokusy.</item>
+ <item quantity="other">Zadajte kód PIN. Máte <xliff:g id="number">%d</xliff:g> zostávajúcich pokusov.</item>
+ </plurals>
<!-- Shown in the KeyguardSimPinView when entry length is too short. -->
+ <string name="kg_invalid_sim_length">Chyba: Vstup je kratší ako minimálna dĺžka</string>
</resources>
diff --git a/packages/Keyguard/res/values-zh-rCN/cm_strings.xml b/packages/Keyguard/res/values-zh-rCN/cm_strings.xml
index 6f94967..948efc1 100644
--- a/packages/Keyguard/res/values-zh-rCN/cm_strings.xml
+++ b/packages/Keyguard/res/values-zh-rCN/cm_strings.xml
@@ -22,7 +22,7 @@
<string name="lockscreen_sim_error_message_short">无效的 SIM 卡。</string>
<!-- Instructions telling the user remaining times when enter SIM PIN view. -->
<plurals name="kg_password_default_pin_message">
- <item quantity="other">输入 SIM 卡 PIN。您还有 <xliff:g id="number">%d</xliff:g> 次尝试机会;若超出此次数,则必须联系运营商以解锁 SIM 卡。</item>
+ <item quantity="other">请输入 SIM 卡 PIN。您还有 <xliff:g id="number">%d</xliff:g> 次尝试机会。若超出此次数,则必须为解锁 SIM 卡求助运营商。</item>
</plurals>
<!-- Shown in the KeyguardSimPinView when entry length is too short. -->
<string name="kg_invalid_sim_length">错误:输入长度小于最小长度</string>
diff --git a/packages/Keyguard/res/values-zh-rTW/cm_strings.xml b/packages/Keyguard/res/values-zh-rTW/cm_strings.xml
index 9ab7837..26a9005 100644
--- a/packages/Keyguard/res/values-zh-rTW/cm_strings.xml
+++ b/packages/Keyguard/res/values-zh-rTW/cm_strings.xml
@@ -17,10 +17,13 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- When the user inserts a sim card with some personalization enabled -->
- <string name="keyguard_perso_locked_message">SIM/RUIM 卡已被鎖定</string>
+ <string name="keyguard_perso_locked_message">SIM 卡已被鎖定</string>
<!-- Shown in the lock screen when there is SIM card IO error. -->
<string name="lockscreen_sim_error_message_short">無效的 SIM 卡。</string>
<!-- Instructions telling the user remaining times when enter SIM PIN view. -->
+ <plurals name="kg_password_default_pin_message">
+ <item quantity="other">輸入 SIM 卡的 PIN,您剩餘 <xliff:g id="number">%d </xliff:g> 次嘗試機會。</item>
+ </plurals>
<!-- Shown in the KeyguardSimPinView when entry length is too short. -->
<string name="kg_invalid_sim_length">錯誤:輸入少於最小長度</string>
</resources>
diff --git a/packages/SettingsLib/res/values-am/cm_strings.xml b/packages/SettingsLib/res/values-am/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-am/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ast-rES/arrays.xml b/packages/SettingsLib/res/values-ast-rES/arrays.xml
index 6e3c7ef..1d95ab1 100644
--- a/packages/SettingsLib/res/values-ast-rES/arrays.xml
+++ b/packages/SettingsLib/res/values-ast-rES/arrays.xml
@@ -24,7 +24,7 @@
<!-- Wi-Fi settings. The status messages when the network is unknown. -->
<string-array name="wifi_status">
<!-- Status message of Wi-Fi when it is idle. -->
- <item/>
+ <item></item>
<!-- Status message of Wi-Fi when it is scanning. -->
<item>Esplorando\u2026</item>
<!-- Status message of Wi-Fi when it is connecting. -->
@@ -52,7 +52,7 @@
<!-- Wi-Fi settings. The status messages when the network is known. -->
<string-array name="wifi_status_with_ssid">
<!-- Status message of Wi-Fi when it is idle. -->
- <item/>
+ <item></item>
<!-- Status message of Wi-Fi when it is scanning. -->
<item>Esplorando\u2026</item>
<!-- Status message of Wi-Fi when it is connecting to a network. -->
diff --git a/packages/SettingsLib/res/values-az-rAZ/cm_strings.xml b/packages/SettingsLib/res/values-az-rAZ/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-az-rAZ/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-bn-rBD/cm_strings.xml b/packages/SettingsLib/res/values-bn-rBD/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-bn-rBD/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-br-rFR/cm_strings.xml b/packages/SettingsLib/res/values-br-rFR/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-br-rFR/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-bs-rBA/cm_strings.xml b/packages/SettingsLib/res/values-bs-rBA/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-bs-rBA/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-csb-rPL/cm_strings.xml b/packages/SettingsLib/res/values-csb-rPL/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-csb-rPL/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-cy/cm_strings.xml b/packages/SettingsLib/res/values-cy/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-cy/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/cm_strings.xml b/packages/SettingsLib/res/values-en-rAU/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-en-rAU/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/cm_strings.xml b/packages/SettingsLib/res/values-en-rGB/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-en-rGB/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-en-rPT/cm_strings.xml b/packages/SettingsLib/res/values-en-rPT/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-en-rPT/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-eo/arrays.xml b/packages/SettingsLib/res/values-eo/arrays.xml
index e58c1d5..f60a34d 100644
--- a/packages/SettingsLib/res/values-eo/arrays.xml
+++ b/packages/SettingsLib/res/values-eo/arrays.xml
@@ -24,7 +24,7 @@
<!-- Wi-Fi settings. The status messages when the network is unknown. -->
<string-array name="wifi_status">
<!-- Status message of Wi-Fi when it is idle. -->
- <item/>
+ <item></item>
<!-- Status message of Wi-Fi when it is scanning. -->
<item>Scanning\u2026</item>
<!-- Status message of Wi-Fi when it is connecting. -->
@@ -52,7 +52,7 @@
<!-- Wi-Fi settings. The status messages when the network is known. -->
<string-array name="wifi_status_with_ssid">
<!-- Status message of Wi-Fi when it is idle. -->
- <item/>
+ <item></item>
<!-- Status message of Wi-Fi when it is scanning. -->
<item>Scanning\u2026</item>
<!-- Status message of Wi-Fi when it is connecting to a network. -->
diff --git a/packages/SettingsLib/res/values-eo/cm_strings.xml b/packages/SettingsLib/res/values-eo/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-eo/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-es-rCO/cm_strings.xml b/packages/SettingsLib/res/values-es-rCO/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-es-rCO/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-fa/cm_strings.xml b/packages/SettingsLib/res/values-fa/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-fa/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-fil-rPH/cm_strings.xml b/packages/SettingsLib/res/values-fil-rPH/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-fil-rPH/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/cm_strings.xml b/packages/SettingsLib/res/values-fr-rCA/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-fr-rCA/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-frp-rIT/cm_strings.xml b/packages/SettingsLib/res/values-frp-rIT/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-frp-rIT/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-fy-rNL/cm_strings.xml b/packages/SettingsLib/res/values-fy-rNL/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-fy-rNL/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ga-rIE/cm_strings.xml b/packages/SettingsLib/res/values-ga-rIE/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ga-rIE/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-gd-rGB/cm_strings.xml b/packages/SettingsLib/res/values-gd-rGB/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-gd-rGB/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-hi/cm_strings.xml b/packages/SettingsLib/res/values-hi/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-hi/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-hy-rAM/cm_strings.xml b/packages/SettingsLib/res/values-hy-rAM/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-hy-rAM/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-is-rIS/cm_strings.xml b/packages/SettingsLib/res/values-is-rIS/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-is-rIS/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ka-rGE/cm_strings.xml b/packages/SettingsLib/res/values-ka-rGE/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ka-rGE/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-kk-rKZ/cm_strings.xml b/packages/SettingsLib/res/values-kk-rKZ/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-kk-rKZ/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-km-rKH/cm_strings.xml b/packages/SettingsLib/res/values-km-rKH/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-km-rKH/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ku/cm_strings.xml b/packages/SettingsLib/res/values-ku/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ku/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ky-rKG/cm_strings.xml b/packages/SettingsLib/res/values-ky-rKG/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ky-rKG/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-lo-rLA/cm_strings.xml b/packages/SettingsLib/res/values-lo-rLA/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-lo-rLA/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-lt/cm_strings.xml b/packages/SettingsLib/res/values-lt/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-lt/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-lv/cm_strings.xml b/packages/SettingsLib/res/values-lv/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-lv/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-mk-rMK/cm_strings.xml b/packages/SettingsLib/res/values-mk-rMK/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-mk-rMK/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-mn-rMN/cm_strings.xml b/packages/SettingsLib/res/values-mn-rMN/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-mn-rMN/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ms-rMY/cm_strings.xml b/packages/SettingsLib/res/values-ms-rMY/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ms-rMY/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-my-rMM/cm_strings.xml b/packages/SettingsLib/res/values-my-rMM/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-my-rMM/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-nb/cm_strings.xml b/packages/SettingsLib/res/values-nb/cm_strings.xml
index e55d4a1..28be6da 100644
--- a/packages/SettingsLib/res/values-nb/cm_strings.xml
+++ b/packages/SettingsLib/res/values-nb/cm_strings.xml
@@ -19,7 +19,7 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="profile_applist_title">Apps</string>
+ <string name="profile_applist_title">Apper</string>
<string name="picker_activities">Aktiviteter</string>
<string name="select_custom_app_title">Velg egendefinert app</string>
<string name="select_custom_activity_title">Velg egendefinert aktivitet</string>
diff --git a/packages/SettingsLib/res/values-ne-rNP/cm_strings.xml b/packages/SettingsLib/res/values-ne-rNP/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ne-rNP/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-oc-rFR/cm_strings.xml b/packages/SettingsLib/res/values-oc-rFR/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-oc-rFR/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-pa-rIN/cm_strings.xml b/packages/SettingsLib/res/values-pa-rIN/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-pa-rIN/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-rm/cm_strings.xml b/packages/SettingsLib/res/values-rm/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-rm/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-si-rLK/cm_strings.xml b/packages/SettingsLib/res/values-si-rLK/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-si-rLK/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-sk/cm_strings.xml b/packages/SettingsLib/res/values-sk/cm_strings.xml
new file mode 100644
index 0000000..a423c4d
--- /dev/null
+++ b/packages/SettingsLib/res/values-sk/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="profile_applist_title">Aplikácie</string>
+ <string name="picker_activities">Aktivity</string>
+ <string name="select_custom_app_title">Vyberte vlastnú aplikáciu</string>
+ <string name="select_custom_activity_title">Vyberte vlastnú aktivitu</string>
+ <string name="lockscreen_targets_message">Ikony obrazovky uzamknutia</string>
+</resources>
diff --git a/packages/SettingsLib/res/values-sq-rAL/cm_strings.xml b/packages/SettingsLib/res/values-sq-rAL/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-sq-rAL/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-sw/cm_strings.xml b/packages/SettingsLib/res/values-sw/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-sw/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-ug/arrays.xml b/packages/SettingsLib/res/values-ug/arrays.xml
index 584305e..e4f82d3 100644
--- a/packages/SettingsLib/res/values-ug/arrays.xml
+++ b/packages/SettingsLib/res/values-ug/arrays.xml
@@ -24,7 +24,7 @@
<!-- Wi-Fi settings. The status messages when the network is unknown. -->
<string-array name="wifi_status">
<!-- Status message of Wi-Fi when it is idle. -->
- <item/>
+ <item></item>
<!-- Status message of Wi-Fi when it is scanning. -->
<item>تەكشۈرۈۋاتىدۇ\u2026</item>
<!-- Status message of Wi-Fi when it is connecting. -->
diff --git a/packages/SettingsLib/res/values-ur-rPK/cm_strings.xml b/packages/SettingsLib/res/values-ur-rPK/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-ur-rPK/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-uz-rUZ/cm_strings.xml b/packages/SettingsLib/res/values-uz-rUZ/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-uz-rUZ/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/cm_strings.xml b/packages/SettingsLib/res/values-zh-rHK/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-zh-rHK/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsLib/res/values-zu/cm_strings.xml b/packages/SettingsLib/res/values-zu/cm_strings.xml
new file mode 100644
index 0000000..220d5f5
--- /dev/null
+++ b/packages/SettingsLib/res/values-zu/cm_strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+/*
+**
+** Copyright 2015 The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index a3a5aaa..e9169bf 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -29,13 +29,6 @@
<bool name="def_auto_time">true</bool>
<bool name="def_auto_time_zone">true</bool>
<bool name="def_accelerometer_rotation">true</bool>
- <!-- Bitmask of allowed display rotation angles:
- ROTATION_0_MODE: 1
- ROTATION_90_MODE: 2
- ROTATION_180_MODE: 4
- ROTATION_270_MODE: 8
- Default to 0, 90, 270. -->
- <integer name="def_accelerometer_rotation_angles">11</integer>
<!-- Default screen brightness, from 0 to 255. 102 is 40%. -->
<integer name="def_screen_brightness">102</integer>
<bool name="def_screen_brightness_automatic_mode">false</bool>
@@ -230,9 +223,6 @@
<!-- Default for Settings.Secure.NFC_PAYMENT_COMPONENT -->
<string name="def_nfc_payment_component"></string>
- <!-- Default for Settings.System.STATUS_BAR_NOTIF_COUNT. -->
- <integer name="def_notif_count">0</integer>
-
<!-- Default protected sms originating address values of Settings.Secure.PROTECTED_SMS_ADDRESSES -->
<string-array name="def_protected_sms_list_values"></string-array>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index fe6b079..a57ddc1 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2586,9 +2586,6 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadBooleanSetting(stmt, Settings.System.ACCELEROMETER_ROTATION,
R.bool.def_accelerometer_rotation);
- loadIntegerSetting(stmt, Settings.System.ACCELEROMETER_ROTATION_ANGLES,
- R.integer.def_accelerometer_rotation_angles);
-
loadDefaultHapticSettings(stmt);
loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE,
diff --git a/packages/StatementService/res/values-as-rIN/strings.xml b/packages/StatementService/res/values-as-rIN/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-as-rIN/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-br-rFR/strings.xml b/packages/StatementService/res/values-br-rFR/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-br-rFR/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-csb-rPL/strings.xml b/packages/StatementService/res/values-csb-rPL/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-csb-rPL/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-cy/strings.xml b/packages/StatementService/res/values-cy/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-cy/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-en-rPT/strings.xml b/packages/StatementService/res/values-en-rPT/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-en-rPT/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-eo/strings.xml b/packages/StatementService/res/values-eo/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-eo/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-es-rCO/strings.xml b/packages/StatementService/res/values-es-rCO/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-es-rCO/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-es-rMX/strings.xml b/packages/StatementService/res/values-es-rMX/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-es-rMX/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-frp-rIT/strings.xml b/packages/StatementService/res/values-frp-rIT/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-frp-rIT/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-fy-rNL/strings.xml b/packages/StatementService/res/values-fy-rNL/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-fy-rNL/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-ga-rIE/strings.xml b/packages/StatementService/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-ga-rIE/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-gd-rGB/strings.xml b/packages/StatementService/res/values-gd-rGB/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-gd-rGB/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-ku/strings.xml b/packages/StatementService/res/values-ku/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-ku/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-lb/strings.xml b/packages/StatementService/res/values-lb/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-lb/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-oc-rFR/strings.xml b/packages/StatementService/res/values-oc-rFR/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-oc-rFR/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/StatementService/res/values-or-rIN/strings.xml b/packages/StatementService/res/values-or-rIN/strings.xml
new file mode 100644
index 0000000..4987b56
--- /dev/null
+++ b/packages/StatementService/res/values-or-rIN/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/packages/SystemUI/res/drawable/cid.xml b/packages/SystemUI/res/drawable/cid.xml
deleted file mode 100644
index 614a050..0000000
--- a/packages/SystemUI/res/drawable/cid.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014 The CyanogenMod Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="48dp"
- android:height="48dp"
- android:viewportWidth="48"
- android:viewportHeight="48">
-
- <group>
- <path
- android:name="torso"
- android:pathData="M35.616,28.128l-4.185-11.17c-0.37-0.966-1.233-1.561-2.11-1.862c-0.638-0.219-1.94-0.47-4.366-0.59h-1.91 c-2.427,0.12-3.729,0.371-4.367,0.59c-0.877,0.301-1.74,0.896-2.11,1.862l-4.185,11.17c-0.496,1.122,0.396,1.59,1.148,1.385 c0.809-0.221,1.518-0.506,2.084-1.866c0.309-0.742,2.818-7.124,2.818-7.124l-1.542,27.45c0,0,0.603,0,2.095,0 c0.967,0,2.209-1.01,2.419-3.358l0.931-12.818h0.709h0.104h0.562h0.241h0.005h0.085h0.005h0.241h0.562h0.104h0.709l0.931,12.818 c0.21,2.348,1.452,3.358,2.419,3.358c1.492,0,2.095,0,2.095,0l-1.542-27.45c0,0,2.509,6.382,2.818,7.124 c0.566,1.36,1.275,1.645,2.084,1.866C35.221,29.718,36.112,29.25,35.616,28.128Z M24,25.331c-1.817,0-3.295-1.478-3.295-3.295 c0-1.817,1.478-3.295,3.295-3.295c1.817,0,3.295,1.478,3.295,3.295C27.295,23.853,25.817,25.331,24,25.331z M26.616,22.036 c0,1.443-1.174,2.616-2.616,2.616c-1.443,0-2.616-1.174-2.616-2.616c0-1.442,1.174-2.616,2.616-2.616 C25.442,19.42,26.616,20.593,26.616,22.036z"
- android:fillColor="#FFFFFF" />
- <path
- android:name="head"
- android:pathData="M29.081,3.012l0.962-2.35c0.096-0.235-0.016-0.503-0.251-0.599c-0.235-0.096-0.503,0.016-0.599,0.251l-0.997,2.435 c-1.1-0.252-2.503-0.348-4.18-0.348v0.006h0V2.4c-0.219,0-0.432,0.002-0.642,0.006h-0.001c-1.396,0.023-2.581,0.124-3.537,0.343 l-0.997-2.435c-0.096-0.235-0.364-0.347-0.599-0.251c-0.235,0.096-0.347,0.364-0.251,0.599l0.962,2.35 c-1.277,0.483-1.955,1.3-1.955,2.612v2.752V9.09v0.784c0,2.411,2.284,3.151,6.377,3.218v0.004h0.254 c0.128,0.001,0.258,0.002,0.389,0.002v-0.002h0v0.002c0.131,0,0.261-0.001,0.389-0.002h0.018c4.242-0.042,6.613-0.764,6.613-3.221 V9.09V8.376V5.624C31.037,4.311,30.358,3.495,29.081,3.012Z M20.407,9.78c-1.16,0-2.1-0.94-2.1-2.1c0-1.16,0.94-2.1,2.1-2.1 c1.16,0,2.1,0.94,2.1,2.1C22.507,8.84,21.567,9.78,20.407,9.78z M24.237,11.303h-0.443c-0.326,0-0.591-0.264-0.591-0.591 c0-0.012,0.003-0.024,0.004-0.036h1.617c0.001,0.012,0.004,0.023,0.004,0.036C24.828,11.039,24.563,11.303,24.237,11.303z M27.625,9.78c-1.16,0-2.1-0.94-2.1-2.1c0-1.16,0.94-2.1,2.1-2.1c1.16,0,2.1,0.94,2.1,2.1C29.724,8.84,28.784,9.78,27.625,9.78z"
- android:fillColor="#FFFFFF" />
- </group>
-</vector>
diff --git a/packages/SystemUI/res/layout/cmland.xml b/packages/SystemUI/res/layout/cmland.xml
deleted file mode 100644
index 3c4e561..0000000
--- a/packages/SystemUI/res/layout/cmland.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2015 The Android Open Source Project
- Copyright (C) 2014-2015 The CyanogenMod Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
- <com.android.systemui.egg.CMLand
- android:id="@+id/world"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- </com.android.systemui.egg.CMLand>
- <FrameLayout
- android:id="@+id/welcome"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:visibility="gone"
- android:background="#a0000000"
- android:clickable="true"
- >
- <FrameLayout
- android:id="@+id/play_button"
- android:layout_width="72dp"
- android:layout_height="72dp"
- android:layout_gravity="center"
- android:clickable="true"
- android:background="@drawable/ripplebg"
- android:focusable="true"
- android:onClick="startButtonPressed"
- >
- <ImageView
- android:id="@+id/play_button_image"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:scaleType="fitCenter"
- android:layout_gravity="center"
- android:tint="#000000"
- android:src="@drawable/play"
- />
- <TextView
- android:id="@+id/play_button_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:alpha="0"
- android:textSize="40dp"
- android:textColor="#000000"
- />
- </FrameLayout>
- </FrameLayout>
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="top|center_horizontal"
- android:orientation="horizontal"
- android:gravity="center_vertical"
- android:id="@+id/player_setup"
- >
- <ImageButton
- style="@android:style/Widget.Material.Button.Borderless"
- android:id="@+id/player_minus_button"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:padding="10dp"
- android:scaleType="centerInside"
- android:onClick="playerMinus"
- android:src="@drawable/minus"
- />
- <LinearLayout
- android:id="@+id/scores"
- android:layout_width="wrap_content"
- android:layout_height="64dp"
- android:padding="12dp"
- android:orientation="horizontal"
- android:clipToPadding="false"
- >
- </LinearLayout>
- <ImageButton
- style="@android:style/Widget.Material.Button.Borderless"
- android:id="@+id/player_plus_button"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:padding="10dp"
- android:scaleType="centerInside"
- android:onClick="playerPlus"
- android:src="@drawable/plus"
- />
- </LinearLayout>
-</FrameLayout>
diff --git a/packages/SystemUI/res/values-be/cm_strings.xml b/packages/SystemUI/res/values-be/cm_strings.xml
index 4db516e..6736912 100644
--- a/packages/SystemUI/res/values-be/cm_strings.xml
+++ b/packages/SystemUI/res/values-be/cm_strings.xml
@@ -35,7 +35,7 @@
<string name="lockscreen_choose_action_title">Выбар дзеяння</string>
<string name="lockscreen_none_target">Нічога</string>
<!-- Dialog title for navigation bar button selection -->
- <string name="navbar_dialog_title">Выберыце дзеянне</string>
+ <string name="navbar_dialog_title">Абяры дзеяньне</string>
<string name="navbar_home_button">Дамоў</string>
<string name="navbar_recent_button">Запушчаныя дадаткі</string>
<string name="navbar_search_button">Пошук</string>
diff --git a/packages/SystemUI/res/values-bg/cm_strings.xml b/packages/SystemUI/res/values-bg/cm_strings.xml
index 18cc9ba..d86244b 100644
--- a/packages/SystemUI/res/values-bg/cm_strings.xml
+++ b/packages/SystemUI/res/values-bg/cm_strings.xml
@@ -65,7 +65,7 @@
<string name="accessibility_quick_settings_profiles_changed">Профила е сменен с <xliff:g id="profile" example="Default">%s </xliff:g>.</string>
<string name="quick_settings_compass_init">Стартиране на\u2026</string>
<!-- Lights settings, LED notification -->
- <string name="led_notification_title">Настройки на светлината</string>
+ <string name="led_notification_title">Светлинни настройки</string>
<string name="led_notification_text">Светлинните индикации са разрешени от настройките</string>
<string name="qs_tile_edit_header_instruction">Натиснете и задръжте плочка за да я пренаредите или премахнете</string>
<string name="quick_settings_edit_label">Редактиране на плочки</string>
@@ -138,9 +138,9 @@
<!-- Content description of the lock screen tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_lock_screen_on">Включване на заключване на екран.</string>
<!-- Announcement made when lock screen changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_lock_screen_changed_off">Заключване екран е изключено.</string>
+ <string name="accessibility_quick_settings_lock_screen_changed_off">Заключване на екрана е изключено.</string>
<!-- Announcement made when lock screen changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_lock_screen_changed_on">Заключване екран е включено.</string>
+ <string name="accessibility_quick_settings_lock_screen_changed_on">Заключване на екрана е изключено.</string>
<!-- Content description of the ambient display tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_ambient_display_off">Активен дисплей е изключен.</string>
<!-- Content description of the ambient display tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
diff --git a/packages/SystemUI/res/values-cs/cm_strings.xml b/packages/SystemUI/res/values-cs/cm_strings.xml
index 4a0fc63..7f16da9 100644
--- a/packages/SystemUI/res/values-cs/cm_strings.xml
+++ b/packages/SystemUI/res/values-cs/cm_strings.xml
@@ -174,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Další budík</string>
<string name="dynamic_qs_tile_ime_selector_label">Výběr IME</string>
<string name="dynamic_qs_tile_su_label">Root přístup</string>
+ <string name="dynamic_qs_tile_themes_label">Motivy</string>
<string name="quick_settings_title_advanced_location">Třístavové nastavení určení polohy</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Zjištění polohy: úsporný režim.</string>
diff --git a/packages/SystemUI/res/values-es-rUS/cm_strings.xml b/packages/SystemUI/res/values-es-rUS/cm_strings.xml
index a193b19..43f3f98 100644
--- a/packages/SystemUI/res/values-es-rUS/cm_strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/cm_strings.xml
@@ -174,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Próxima alarma</string>
<string name="dynamic_qs_tile_ime_selector_label">Selector IME</string>
<string name="dynamic_qs_tile_su_label">Acceso a raíz</string>
+ <string name="dynamic_qs_tile_themes_label">Temas</string>
<string name="quick_settings_title_advanced_location">Localización trizona</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Informes de ubicación: modo de ahorro de batería.</string>
@@ -218,4 +219,8 @@
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">Deslizar hacia abajo para ampliar</string>
+ <string name="swipe_left_hint">Deslizar a la izquierda para <xliff:g id="app_name">%1$s</xliff:g></string>
+ <string name="swipe_right_hint">Deslizar a la derecha para las notificaciones</string>
</resources>
diff --git a/packages/SystemUI/res/values-es/cm_strings.xml b/packages/SystemUI/res/values-es/cm_strings.xml
index a9b7a8d..b342faf 100644
--- a/packages/SystemUI/res/values-es/cm_strings.xml
+++ b/packages/SystemUI/res/values-es/cm_strings.xml
@@ -174,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Próxima alarma</string>
<string name="dynamic_qs_tile_ime_selector_label">Selector IME</string>
<string name="dynamic_qs_tile_su_label">Acceso administrativo</string>
+ <string name="dynamic_qs_tile_themes_label">Temas</string>
<string name="quick_settings_title_advanced_location">Ubicación por triangulación</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Informes de ubicación: modo de ahorro de batería.</string>
@@ -218,4 +219,8 @@
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">Desliza hacia abajo para expandir</string>
+ <string name="swipe_left_hint">Desliza hacia la izquierda para <xliff:g id="app_name">%1$s</xliff:g></string>
+ <string name="swipe_right_hint">Desliza hacia la derecha para ver las notificaciones</string>
</resources>
diff --git a/packages/SystemUI/res/values-fi/cm_strings.xml b/packages/SystemUI/res/values-fi/cm_strings.xml
index c6e454d..becd5cb 100644
--- a/packages/SystemUI/res/values-fi/cm_strings.xml
+++ b/packages/SystemUI/res/values-fi/cm_strings.xml
@@ -174,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Seuraava hälytys</string>
<string name="dynamic_qs_tile_ime_selector_label">Syöttötavan valitsin</string>
<string name="dynamic_qs_tile_su_label">Root-oikeudet</string>
+ <string name="dynamic_qs_tile_themes_label">Teemat</string>
<string name="quick_settings_title_advanced_location">Sijainnin lisäasetukset</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Sijainnin raportointi: virransäästötila.</string>
diff --git a/packages/SystemUI/res/values-ja/cm_strings.xml b/packages/SystemUI/res/values-ja/cm_strings.xml
index a8e2279..8f28f93 100644
--- a/packages/SystemUI/res/values-ja/cm_strings.xml
+++ b/packages/SystemUI/res/values-ja/cm_strings.xml
@@ -63,7 +63,7 @@
<string name="accessibility_quick_settings_profiles_changed_off">プロファイルがOFFになりました。</string>
<!-- Announcement made when the profiles tile changes (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_profiles_changed">プロファイルが<xliff:g id="profile" example="Default">%s</xliff:g>に変更されました。</string>
- <string name="quick_settings_compass_init">初期化中\u2026</string>
+ <string name="quick_settings_compass_init">初期化中...</string>
<!-- Lights settings, LED notification -->
<string name="led_notification_title">ライトの設定</string>
<string name="led_notification_text">LEDライトが設定によって有効になっています</string>
diff --git a/packages/SystemUI/res/values-nb/cm_strings.xml b/packages/SystemUI/res/values-nb/cm_strings.xml
index ebef919..4a9478f 100644
--- a/packages/SystemUI/res/values-nb/cm_strings.xml
+++ b/packages/SystemUI/res/values-nb/cm_strings.xml
@@ -86,7 +86,7 @@
<string name="quick_settings_nfc_label">NFC</string>
<string name="quick_settings_profiles">System profiler</string>
<string name="quick_settings_profiles_off">Profiler deaktivert</string>
- <string name="quick_settings_heads_up_label">Flytende notifikasjoner</string>
+ <string name="quick_settings_heads_up_label">Flytende varsler</string>
<string name="quick_settings_battery_saver_label">Batterisparing</string>
<!-- quick settings battery saver label to show when device is charging and tile is disabled -->
<string name="quick_settings_battery_saver_label_charging">Batterisparing (lading)</string>
@@ -150,9 +150,9 @@
<!-- Announcement made when ambient display changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_ambient_display_changed_on">Ambient skjerm er skrudd på.</string>
<!-- Content description of the heads up tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_heads_up_off">Heads up notifikasjoner er av.</string>
+ <string name="accessibility_quick_settings_heads_up_off">Heads up varsler er av.</string>
<!-- Content description of the heads up tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_heads_up_on">Heads up notifikasjoner er på.</string>
+ <string name="accessibility_quick_settings_heads_up_on">Heads up varsler er på.</string>
<!-- Announcement made when heads up changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_heads_up_changed_off">Heads-up ble deaktivert.</string>
<!-- Announcement made when heads up changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
diff --git a/packages/SystemUI/res/values-nl/cm_strings.xml b/packages/SystemUI/res/values-nl/cm_strings.xml
index ac6ec80..eb58814 100644
--- a/packages/SystemUI/res/values-nl/cm_strings.xml
+++ b/packages/SystemUI/res/values-nl/cm_strings.xml
@@ -37,7 +37,7 @@
<!-- Dialog title for navigation bar button selection -->
<string name="navbar_dialog_title">Kies de toe te wijzen functie</string>
<string name="navbar_home_button">Thuisknop</string>
- <string name="navbar_recent_button">Recentknop</string>
+ <string name="navbar_recent_button">Recente apps-knop</string>
<string name="navbar_search_button">Zoekknop</string>
<string name="navbar_back_button">Terugknop</string>
<string name="navbar_empty_button">Lege knop</string>
diff --git a/packages/SystemUI/res/values-ro/cm_strings.xml b/packages/SystemUI/res/values-ro/cm_strings.xml
index 2ef4e1d..47f93a8 100644
--- a/packages/SystemUI/res/values-ro/cm_strings.xml
+++ b/packages/SystemUI/res/values-ro/cm_strings.xml
@@ -29,6 +29,7 @@
<!-- Strings for lockscreen shortcut hints -->
<string name="left_shortcut_hint">Glisați dreapta pentru %1$s</string>
<string name="right_shortcut_hint">Glisați stânga pentru %1$s</string>
+ <string name="lockscreen_message">Apăsaţi o pictogramă din stânga sau dreapta pentru a realoca o comandă rapidă pe ecranul de blocare.</string>
<string name="lockscreen_default_target">Implicit</string>
<string name="select_application">Selectați aplicația</string>
<string name="lockscreen_choose_action_title">Alege acțiunea</string>
@@ -53,6 +54,7 @@
<!-- Title shown in recents popup for uninstalling the application -->
<string name="advanced_dev_option_uninstall">Dezinstalați</string>
<!-- Content description of the light brightness slider (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_notification_brightness">Luminozitate lumină</string>
<!-- Content description of the profiles tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_profiles_off">Profiluri oprit.</string>
<!-- Content description of the profiles tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -64,6 +66,7 @@
<string name="quick_settings_compass_init">Inițializare\u2026</string>
<!-- Lights settings, LED notification -->
<string name="led_notification_title">Setări de lumină</string>
+ <string name="led_notification_text">Lumină LED activată de setări</string>
<string name="qs_tile_edit_header_instruction">Apăsați și țineți apăsate chenarele pentru a rearanja</string>
<string name="quick_settings_edit_label">Editare chenare</string>
<string name="quick_settings_cannot_delete_edit_tile">Nu se poate șterge chenarul Editare</string>
@@ -75,6 +78,7 @@
<string name="quick_settings_title_show_brightness_slider">Arată glisorul de luminozitate</string>
<string name="quick_settings_title_enlarge_first_row">Mărește primul rând</string>
<!-- Screen pinning dialog description (for devices without navbar) -->
+ <string name="screen_pinning_description_no_navbar">Aceasta ține în vizualizare ecranul până îl deblocați. Apăsați și țineți apăsat butonul Înapoi pentru a debloca.</string>
<string name="quick_settings_custom_tile_detail_title">Chenar personalizat</string>
<string name="quick_settings_remove">Eliminare chenar</string>
<string name="quick_settings_network_adb_label">ADB prin rețea</string>
@@ -85,6 +89,7 @@
<string name="quick_settings_heads_up_label">Atenționare</string>
<string name="quick_settings_battery_saver_label">Economizor baterie</string>
<!-- quick settings battery saver label to show when device is charging and tile is disabled -->
+ <string name="quick_settings_battery_saver_label_charging">Economizor de baterie (încărcare)</string>
<string name="quick_settings_caffeine_label">Cofeină</string>
<!-- Content description of the sync tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_sync_off">Sincronizare oprită.</string>
@@ -133,17 +138,25 @@
<!-- Content description of the lock screen tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_lock_screen_on">Blocare ecran pornit.</string>
<!-- Announcement made when lock screen changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_changed_off">Ecran de blocare dezactivat.</string>
<!-- Announcement made when lock screen changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_changed_on">Ecran de blocare activat.</string>
<!-- Content description of the ambient display tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_ambient_display_off">Afișare ambientală oprită.</string>
<!-- Content description of the ambient display tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_ambient_display_on">Afișare ambientală pornită.</string>
<!-- Announcement made when ambient display changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_ambient_display_changed_off">Afișaj ambiental dezactivat.</string>
<!-- Announcement made when ambient display changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_ambient_display_changed_on">Afișaj ambiental activat.</string>
<!-- Content description of the heads up tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_heads_up_off">Heads-up oprit.</string>
<!-- Content description of the heads up tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_heads_up_on">Heads-up pornit.</string>
<!-- Announcement made when heads up changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_heads_up_changed_off">Heads-up a fost oprit.</string>
<!-- Announcement made when heads up changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_heads_up_changed_on">Heads-up a fost pornit.</string>
<!-- Content description of the caffeine tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_caffeine_off">Cofeină oprit.</string>
<!-- Content description of the caffeine tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -161,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Următoarea alarmă</string>
<string name="dynamic_qs_tile_ime_selector_label">Selector IME</string>
<string name="dynamic_qs_tile_su_label">Acces root</string>
+ <string name="dynamic_qs_tile_themes_label">Teme</string>
<string name="quick_settings_title_advanced_location">Starea celor 3 moduri de locație</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Raportarea locației: mod economisire baterie.</string>
@@ -197,10 +211,17 @@
<item quantity="other">%1$d clienți</item>
</plurals>
<!-- CellularTile data sim not configured state string -->
+ <string name="data_sim_not_configured">Nu există date SIM</string>
<!-- Content description of the dock battery level icon for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_dock_battery_level">Procent baterie <xliff:g id="number">%d</xliff:g> andocată.</string>
<!-- Play queue -->
+ <string name="play_queue_extention">Afișare coadă de redare</string>
<!-- Path data for portrait battery -->
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">Glisați în jos pentru a extinde</string>
+ <string name="swipe_left_hint">Glisați stânga pentru a <xliff:g id="app_name">%1$s</xliff:g></string>
+ <string name="swipe_right_hint">Glisați dreapta pentru notificări</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/cm_strings.xml b/packages/SystemUI/res/values-sk/cm_strings.xml
index 68e99e4..612b5ac 100644
--- a/packages/SystemUI/res/values-sk/cm_strings.xml
+++ b/packages/SystemUI/res/values-sk/cm_strings.xml
@@ -17,7 +17,9 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Content description of the data connection type HSPA+ for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_data_connection_hspap">HSPA+</string>
<!-- Content description of the data connection type 4G+ for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_data_connection_4g_plus">4G+</string>
<!-- Weather string format in expanded statusbar header -->
<string name="status_bar_expanded_header_weather_format"><xliff:g id="temp">%1$s</xliff:g> - <xliff:g id="condition">%2$s</xliff:g></string>
<!-- Text to use when the number in a notification info is too large
@@ -27,6 +29,8 @@
<!-- Strings for lockscreen shortcut hints -->
<string name="left_shortcut_hint">Potiahnite doprava pre %1$s</string>
<string name="right_shortcut_hint">Potiahnite doľava pre %1$s</string>
+ <string name="lockscreen_message">Kliknutím na ikonu vľavo alebo vpravo a zmeňte ikony na obrazovke uzamknutia.</string>
+ <string name="lockscreen_default_target">Predvolené</string>
<string name="select_application">Vyberte aplikáciu</string>
<string name="lockscreen_choose_action_title">Vyberte akciu</string>
<string name="lockscreen_none_target">Žiadna</string>
@@ -50,6 +54,7 @@
<!-- Title shown in recents popup for uninstalling the application -->
<string name="advanced_dev_option_uninstall">Odinštalovať</string>
<!-- Content description of the light brightness slider (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_notification_brightness">Nastavenie jasu</string>
<!-- Content description of the profiles tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_profiles_off">Profily vyp.</string>
<!-- Content description of the profiles tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -60,6 +65,18 @@
<string name="accessibility_quick_settings_profiles_changed">Profil sa zmenil na <xliff:g id="profile" example="Default">%s</xliff:g>.</string>
<string name="quick_settings_compass_init">Inicializácia\u2026</string>
<!-- Lights settings, LED notification -->
+ <string name="led_notification_title">Nastavenia svetla</string>
+ <string name="led_notification_text">LED svetlo povolené nastaveniami</string>
+ <string name="qs_tile_edit_header_instruction">Stlačte a podržte dlaždicu na preusporiadanie</string>
+ <string name="quick_settings_edit_label">Upraviť dlaždice</string>
+ <string name="quick_settings_cannot_delete_edit_tile">Nie je možné vymazať dlaždicu Upraviť</string>
+ <string name="qs_tiles_reset_confirmation">Obnoviť dlaždice rýchlych nastavení na predvolené nastavenie?</string>
+ <string name="quick_settings_tile_reset_to_default">Obnoviť predvolené rozloženie</string>
+ <string name="quick_settings_title_header">Hlavička</string>
+ <string name="quick_settings_title_tiles">Dlaždice</string>
+ <string name="quick_settings_title_show_weather">Zobraziť počasie</string>
+ <string name="quick_settings_title_show_brightness_slider">Zobraziť posuvník jasu</string>
+ <string name="quick_settings_title_enlarge_first_row">Zväčšiť prvý riadok</string>
<!-- Screen pinning dialog description (for devices without navbar) -->
<string name="screen_pinning_description_no_navbar">Zobrazenie aktuálnej obrazovky je zaistené, dokým ju neuvoľníte. Dotknite a podržte tlačidlo Späť pre uvoľnenie.</string>
<string name="quick_settings_custom_tile_detail_title">Vlastná dlaždica</string>
@@ -72,6 +89,8 @@
<string name="quick_settings_heads_up_label">Plávajúce oznámenia</string>
<string name="quick_settings_battery_saver_label">Šetrič batérie</string>
<!-- quick settings battery saver label to show when device is charging and tile is disabled -->
+ <string name="quick_settings_battery_saver_label_charging">Šetrič batérie (nabíjanie)</string>
+ <string name="quick_settings_caffeine_label">Kofeín</string>
<!-- Content description of the sync tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_sync_off">Synch. vyp.</string>
<!-- Content description of the sync tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -87,6 +106,7 @@
<string name="quick_settings_lockscreen_label">Obrazovka uzamknutia</string>
<string name="quick_settings_ambient_display_label">Ambientné zobrazenie</string>
<string name="quick_settings_lockscreen_label_enforced">Obrazovka uzamknutia povolená</string>
+ <string name="quick_settings_lockscreen_label_locked_by_profile">Zakázané profilom</string>
<!-- Content description of the screen timeout tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_screen_timeout">Časový limit obrazovky: <xliff:g id="timeout" example="30 seconds">%s</xliff:g>.</string>
<!-- Announcement made when the screen timeout tile changes (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -138,7 +158,9 @@
<!-- Announcement made when heads up changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_heads_up_changed_on">Plávajúce oznámenia povolené.</string>
<!-- Content description of the caffeine tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_caffeine_off">Kofeín vypnutý.</string>
<!-- Content description of the caffeine tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_caffeine_on">Kofeín zapnutý.</string>
<!-- Content description of the battery saver tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_battery_saver_off">Šetrič batérie vypnutý.</string>
<!-- Content description of the battery saver tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -152,6 +174,8 @@
<string name="dynamic_qs_tile_next_alarm_label">Ďalší budík</string>
<string name="dynamic_qs_tile_ime_selector_label">Výber IME</string>
<string name="dynamic_qs_tile_su_label">Root prístup</string>
+ <string name="dynamic_qs_tile_themes_label">Témy</string>
+ <string name="quick_settings_title_advanced_location">Trojstavové nastavenie určenia polohy</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Hlásenie polohy: režim šetrenia batérie.</string>
<!-- Content description of the location tile in quick settings when on, sensors only mode (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -172,11 +196,22 @@
<string name="accessibility_quick_settings_location_changed_gps_only">Hlásenie polohy sa zmenilo na režim iba senzorov.</string>
<!-- Announcement made when the location tile changes to high accuracy (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_changed_high_accuracy">Hlásenie polohy sa zmenilo na režim vysokej presnosti.</string>
+ <string name="quick_settings_tiles_category_system">Systémové dlaždice</string>
<!-- detail header when adding a tile -->
+ <string name="quick_settings_tiles_add_tiles">Pridať dlaždicu</string>
<!-- Hotspot dialog message -->
+ <string name="hotspot_apm_message">Nie je možné sa pripojiť sa k mobilným sieťam, pokiaľ je povolený Režim v lietadle. Vypnite Režim v lietadle a skúste to znovu.</string>
<!-- Notification which notifies user flashlight is enabled -->
+ <string name="quick_settings_tile_flashlight_not_title">Baterka je zapnutá</string>
+ <string name="quick_settings_tile_flashlight_not_summary">Dotykom vypnúť</string>
<!-- Wi-Fi hotspot label when enabled -->
+ <plurals name="wifi_hotspot_connected_clients_label">
+ <item quantity="one">%1$d klient</item>
+ <item quantity="few">%1$d klienti</item>
+ <item quantity="other">%1$d klientov</item>
+ </plurals>
<!-- CellularTile data sim not configured state string -->
+ <string name="data_sim_not_configured">Žiadna dátová SIM</string>
<!-- Content description of the dock battery level icon for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_dock_battery_level">Batéria doku <xliff:g id="number">%d</xliff:g> percent.</string>
<!-- Play queue -->
@@ -185,4 +220,8 @@
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">Potiahnutím nadol rozbaľte</string>
+ <string name="swipe_left_hint">Potiahnite prstom doľava na <xliff:g id="app_name">%1$s </xliff:g></string>
+ <string name="swipe_right_hint">Posunutím doprava zobraziť oznámenie</string>
</resources>
diff --git a/packages/SystemUI/res/values-tr/cm_strings.xml b/packages/SystemUI/res/values-tr/cm_strings.xml
index a126402..ae49a53 100644
--- a/packages/SystemUI/res/values-tr/cm_strings.xml
+++ b/packages/SystemUI/res/values-tr/cm_strings.xml
@@ -174,6 +174,7 @@
<string name="dynamic_qs_tile_next_alarm_label">Sonraki alarm</string>
<string name="dynamic_qs_tile_ime_selector_label">IME seçici</string>
<string name="dynamic_qs_tile_su_label">Root erişimi</string>
+ <string name="dynamic_qs_tile_themes_label">Temalar</string>
<string name="quick_settings_title_advanced_location">3-durumlu konum</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_location_battery_saving">Konum bildirimi: pil tasarruf modu.</string>
@@ -218,4 +219,8 @@
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> - <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">Genişletmek için aşağı sürükleyin</string>
+ <string name="swipe_left_hint"><xliff:g id="app_name">%1$s</xliff:g> için sola sürükleyin</string>
+ <string name="swipe_right_hint">Bildirimleri açmak için sağa kaydırın</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/cm_strings.xml b/packages/SystemUI/res/values-zh-rCN/cm_strings.xml
index 525300b..0b882eb 100644
--- a/packages/SystemUI/res/values-zh-rCN/cm_strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/cm_strings.xml
@@ -42,7 +42,7 @@
<string name="navbar_back_button">返回键</string>
<string name="navbar_empty_button">空白键</string>
<string name="navbar_menu_conditional_button">菜单键 (自动隐藏)</string>
- <string name="navbar_menu_always_button">菜单键 (总是显示)</string>
+ <string name="navbar_menu_always_button">菜单键 (始终显示)</string>
<string name="navbar_menu_big_button">菜单键</string>
<string name="accessibility_dpad_left">光标左移</string>
<string name="accessibility_dpad_right">光标右移</string>
@@ -62,7 +62,7 @@
<!-- Announcement made when the profiles tile changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_profiles_changed_off">情景模式已关闭。</string>
<!-- Announcement made when the profiles tile changes (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_profiles_changed">情景模式已修改为<xliff:g id="profile" example="Default">%s</xliff:g>。</string>
+ <string name="accessibility_quick_settings_profiles_changed">情景模式已更改为<xliff:g id="profile" example="Default">%s</xliff:g>。</string>
<string name="quick_settings_compass_init">正在初始化\u2026</string>
<!-- Lights settings, LED notification -->
<string name="led_notification_title">指示灯设置</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/cm_strings.xml b/packages/SystemUI/res/values-zh-rTW/cm_strings.xml
index 09770c6..0a902a2 100644
--- a/packages/SystemUI/res/values-zh-rTW/cm_strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/cm_strings.xml
@@ -29,14 +29,14 @@
<!-- Strings for lockscreen shortcut hints -->
<string name="left_shortcut_hint">向右滑動即可%1$s</string>
<string name="right_shortcut_hint">向左滑動即可%1$s</string>
- <string name="lockscreen_message">輕觸左側或右側的圖示以設定鎖定畫面捷徑</string>
+ <string name="lockscreen_message">輕觸左側或右側的圖示即可設定鎖定畫面捷徑</string>
<string name="lockscreen_default_target">預設</string>
- <string name="select_application">選取應用程式</string>
- <string name="lockscreen_choose_action_title">選取操作</string>
+ <string name="select_application">選擇應用程式</string>
+ <string name="lockscreen_choose_action_title">選擇動作</string>
<string name="lockscreen_none_target">無</string>
<!-- Dialog title for navigation bar button selection -->
- <string name="navbar_dialog_title">選擇要指定的操作</string>
- <string name="navbar_home_button">主螢幕鍵</string>
+ <string name="navbar_dialog_title">選擇要指定的動作</string>
+ <string name="navbar_home_button">主畫面鍵</string>
<string name="navbar_recent_button">多工鍵</string>
<string name="navbar_search_button">搜尋鍵</string>
<string name="navbar_back_button">返回鍵</string>
@@ -56,66 +56,91 @@
<!-- Content description of the light brightness slider (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_notification_brightness">亮度</string>
<!-- Content description of the profiles tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_profiles_off">設定檔關閉</string>
<!-- Content description of the profiles tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_profiles">設定檔:<xliff:g id="profile" example="Default">%s</xliff:g></string>
<!-- Announcement made when the profiles tile changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_profiles_changed_off">設定檔已關閉</string>
<!-- Announcement made when the profiles tile changes (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="quick_settings_compass_init">正在初始化\u2026</string>
+ <string name="accessibility_quick_settings_profiles_changed">設定檔已變更為<xliff:g id="profile" example="Default">%s</xliff:g>。</string>
+ <string name="quick_settings_compass_init">初始化中\u2026</string>
<!-- Lights settings, LED notification -->
<string name="led_notification_title">指示燈設定</string>
<string name="led_notification_text">已透過設定啟用 LED 指示燈</string>
- <string name="qs_tile_edit_header_instruction">按住瓷磚以重新排列</string>
- <string name="quick_settings_edit_label">編輯瓷磚</string>
- <string name="quick_settings_cannot_delete_edit_tile">無法刪除編輯瓷磚</string>
- <string name="qs_tiles_reset_confirmation">將快速設定瓷磚還原至預設配置?</string>
+ <string name="qs_tile_edit_header_instruction">按住圖塊即可重新排列</string>
+ <string name="quick_settings_edit_label">編輯圖塊</string>
+ <string name="quick_settings_cannot_delete_edit_tile">無法刪除編輯圖塊</string>
+ <string name="qs_tiles_reset_confirmation">將快速設定圖塊還原至預設配置?</string>
<string name="quick_settings_tile_reset_to_default">還原至預設布局</string>
<string name="quick_settings_title_header">標題</string>
- <string name="quick_settings_title_tiles">瓷磚</string>
+ <string name="quick_settings_title_tiles">圖塊</string>
<string name="quick_settings_title_show_weather">顯示天氣資訊</string>
- <string name="quick_settings_title_show_brightness_slider">顯示亮度滑桿</string>
+ <string name="quick_settings_title_show_brightness_slider">顯示亮度滑動條</string>
<string name="quick_settings_title_enlarge_first_row">擴大首行</string>
<!-- Screen pinning dialog description (for devices without navbar) -->
- <string name="quick_settings_custom_tile_detail_title">自訂瓷磚</string>
- <string name="quick_settings_remove">移除瓷磚</string>
+ <string name="screen_pinning_description_no_navbar">此功能會固定螢幕顯示直到您取消固定。觸控並長按 [返回] 鍵即可解除固定。</string>
+ <string name="quick_settings_custom_tile_detail_title">自訂圖塊</string>
+ <string name="quick_settings_remove">移除圖塊</string>
<string name="quick_settings_network_adb_label">網路 ADB</string>
<string name="quick_settings_compass_label">指南針</string>
<string name="quick_settings_nfc_label">NFC</string>
<string name="quick_settings_profiles">系統設定檔</string>
<string name="quick_settings_profiles_off">已停用設定檔</string>
<string name="quick_settings_heads_up_label">浮動通知</string>
+ <string name="quick_settings_battery_saver_label">省電模式</string>
<!-- quick settings battery saver label to show when device is charging and tile is disabled -->
- <string name="quick_settings_battery_saver_label_charging">省電模式(充電中)</string>
+ <string name="quick_settings_battery_saver_label_charging">省電模式 (充電中)</string>
<string name="quick_settings_caffeine_label">暫停休眠</string>
<!-- Content description of the sync tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_sync_off">同步關閉</string>
+ <string name="accessibility_quick_settings_sync_off">同步處理關閉</string>
<!-- Content description of the sync tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_sync_on">同步開啟</string>
+ <string name="accessibility_quick_settings_sync_on">同步處理開啟</string>
<!-- Announcement made when sync changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_sync_changed_off">同步已關閉</string>
+ <string name="accessibility_quick_settings_sync_changed_off">同步處理已關閉</string>
<!-- Announcement made when sync changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_sync_changed_on">同步已開啟</string>
- <string name="quick_settings_sync_label">同步</string>
- <string name="quick_settings_usb_tether_label">USB 網路共用</string>
- <string name="quick_settings_screen_timeout_detail_title">螢幕閒置時間</string>
+ <string name="accessibility_quick_settings_sync_changed_on">同步處理已開啟</string>
+ <string name="quick_settings_sync_label">同步處理</string>
+ <string name="quick_settings_volume_panel_label">音量面板</string>
+ <string name="quick_settings_usb_tether_label">USB 網路共享</string>
+ <string name="quick_settings_screen_timeout_detail_title">螢幕逾時</string>
<string name="quick_settings_lockscreen_label">鎖定畫面</string>
<string name="quick_settings_ambient_display_label">環境顯示</string>
<string name="quick_settings_lockscreen_label_enforced">強制執行鎖定畫面</string>
- <string name="quick_settings_lockscreen_label_locked_by_profile">已由設定檔禁用</string>
+ <string name="quick_settings_lockscreen_label_locked_by_profile">已由設定檔停用</string>
<!-- Content description of the screen timeout tile in quick settings (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_screen_timeout">螢幕逾時:<xliff:g id="timeout" example="30 seconds">%s</xliff:g></string>
<!-- Announcement made when the screen timeout tile changes (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_screen_timeout_changed">螢幕逾時即可變更為 <xliff:g id="timeout" example="30 seconds">%s</xliff:g></string>
+ <string name="qs_tile_performance">電池模式</string>
<!-- Content description of the battery mode tile in quick settings when on, power save mode (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_pwrsv">電池模式:省電模式。</string>
<!-- Content description of the battery mode tile in quick settings when on, balanced mode (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_bal">電池模式:平衡模式。</string>
<!-- Content description of the battery mode tile in quick settings when on, performance mode (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_perf">電池模式:高效能模式。</string>
<!-- Content description of the battery mode tile in quick settings when on, efficiency mode (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_bias_power">電池模式:效率模式。</string>
<!-- Content description of the battery mode tile in quick settings when on, quick mode (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_bias_perf">電池模式:快速模式。</string>
<!-- Announcement made when the battery mode tile changes to power save (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_changed_pwrsv">電池模式已變更為省電模式。</string>
<!-- Announcement made when the battery mode tile changes to balanced (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_changed_bal">電池模式已變更為平衡模式。</string>
<!-- Announcement made when the battery mode tile changes to performance (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_changed_perf">電池模式已變更為高效能模式。</string>
<!-- Announcement made when the battery mode tile changes to efficiency (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_changed_bias_power">電池模式已變更為效率模式。</string>
<!-- Announcement made when the battery mode tile changes to quick (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_perf_profile_changed_bias_perf">電池模式已變更為快速模式。</string>
+ <string name="quick_settings_performance_profile_detail_title">電池模式</string>
<!-- Content description of the lock screen tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_off">鎖定畫面關閉</string>
<!-- Content description of the lock screen tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_on">鎖定畫面開啟</string>
<!-- Announcement made when lock screen changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_changed_off">鎖定畫面已關閉</string>
<!-- Announcement made when lock screen changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_lock_screen_changed_on">鎖定畫面已開啟</string>
<!-- Content description of the ambient display tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_ambient_display_off">環境顯示關閉</string>
<!-- Content description of the ambient display tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -137,50 +162,64 @@
<!-- Content description of the caffeine tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_caffeine_on">暫停休眠開啟</string>
<!-- Content description of the battery saver tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_battery_saver_off">省電模式關閉</string>
<!-- Content description of the battery saver tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_battery_saver_on">省電模式開啟</string>
<!-- Announcement made when battery saver changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_battery_saver_changed_off">省電模式已關閉</string>
<!-- Announcement made when battery saver changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_battery_saver_changed_on">省電模式已開啟</string>
<!-- Dynamic tiles -->
- <string name="quick_settings_dynamic_tile_detail_title">動態磚</string>
+ <string name="quick_settings_dynamic_tile_detail_title">動態圖塊</string>
<string name="dynamic_qs_tile_next_alarm_label">下一個鬧鐘</string>
<string name="dynamic_qs_tile_ime_selector_label">輸入法選擇器</string>
<string name="dynamic_qs_tile_su_label">Root 權限</string>
- <string name="quick_settings_title_advanced_location">定位模式</string>
+ <string name="dynamic_qs_tile_themes_label">主題</string>
+ <string name="quick_settings_title_advanced_location">三角定位</string>
<!-- Content description of the location tile in quick settings when on, battery saving mode (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_location_battery_saving">位置回報:節約耗電量</string>
+ <string name="accessibility_quick_settings_location_battery_saving">位置回報:省電模式。</string>
<!-- Content description of the location tile in quick settings when on, sensors only mode (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_location_gps_only">位置回報:僅限裝置</string>
+ <string name="accessibility_quick_settings_location_gps_only">位置回報:僅限感應器模式。</string>
<!-- Content description of the location tile in quick settings when on, high accuracy mode (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_location_high_accuracy">位置回報:高精確度</string>
+ <string name="accessibility_quick_settings_location_high_accuracy">位置回報:高精確度模式。</string>
<!-- QuickSettings: Location detail panel title [CHAR LIMIT=NONE] -->
<string name="quick_settings_location_detail_title">定位模式</string>
<!-- QuickSettings: Location (On, low-power) [CHAR LIMIT=NONE] -->
- <string name="quick_settings_location_battery_saving_label">節約耗電量</string>
+ <string name="quick_settings_location_battery_saving_label">省電模式</string>
<!-- QuickSettings: Location (On, gps-only) [CHAR LIMIT=NONE] -->
<string name="quick_settings_location_gps_only_label">僅限裝置</string>
<!-- QuickSettings: Location (On, high-accuracy) [CHAR LIMIT=NONE] -->
<string name="quick_settings_location_high_accuracy_label">高精確度</string>
<!-- Announcement made when the location tile changes to battery saving (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_location_changed_battery_saving">位置回報已變更為省電模式。</string>
<!-- Announcement made when the location tile changes to sensors only (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_quick_settings_location_changed_gps_only">位置回報已變更為僅限感應器模式。</string>
<!-- Announcement made when the location tile changes to high accuracy (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="quick_settings_tiles_category_system">系統瓷磚</string>
+ <string name="accessibility_quick_settings_location_changed_high_accuracy">位置回報已變更為高精確度模式。</string>
+ <string name="quick_settings_tiles_category_system">系統圖塊</string>
<!-- detail header when adding a tile -->
<string name="quick_settings_tiles_add_tiles">新增瓷磚</string>
<!-- Hotspot dialog message -->
- <string name="hotspot_apm_message">飛航模式啟用時無法連接行動網路,請停用飛航模式後再嘗試。</string>
+ <string name="hotspot_apm_message">飛航模式啟用時無法連線行動網路,請停用飛航模式後再試一次。</string>
<!-- Notification which notifies user flashlight is enabled -->
<string name="quick_settings_tile_flashlight_not_title">手電筒已經開啟</string>
- <string name="quick_settings_tile_flashlight_not_summary">點擊關閉</string>
+ <string name="quick_settings_tile_flashlight_not_summary">輕觸即可關閉</string>
<!-- Wi-Fi hotspot label when enabled -->
<plurals name="wifi_hotspot_connected_clients_label">
- <item quantity="other">%1$d 用戶</item>
+ <item quantity="other">%1$d 客戶端</item>
</plurals>
<!-- CellularTile data sim not configured state string -->
<string name="data_sim_not_configured">沒有數據資料傳輸的 SIM 卡</string>
<!-- Content description of the dock battery level icon for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
+ <string name="accessibility_dock_battery_level">座架電池百分之 <xliff:g id="number">%d</xliff:g>。</string>
<!-- Play queue -->
+ <string name="play_queue_extention">顯示播放佇列</string>
<!-- Path data for portrait battery -->
<!-- Path data for landscape battery -->
<!-- Path data for circle battery -->
<!-- Weather string format in keyguard -->
+ <string name="keyguard_status_view_weather_format"><xliff:g id="temp">%1$s</xliff:g> - <xliff:g id="condition">%2$s</xliff:g></string>
+ <string name="expand_hint">向下滑動即可展開</string>
+ <string name="swipe_left_hint">向左滑動即可 <xliff:g id="app_name">%1$s</xliff:g></string>
+ <string name="swipe_right_hint">向右滑動即可查看通知</string>
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/egg/CMLand.java b/packages/SystemUI/src/com/android/systemui/egg/CMLand.java
deleted file mode 100644
index 6020b45..0000000
--- a/packages/SystemUI/src/com/android/systemui/egg/CMLand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2014-2015 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.systemui.egg;
-
-import com.android.systemui.R;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-public class CMLand extends MLand {
- public static final String TAG = "CMLand";
-
- public CMLand(Context context) {
- this(context, null);
- }
-
- public CMLand(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public CMLand(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- @Override
- protected int getEggPlayer() {
- return R.drawable.cid;
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/egg/MLand.java b/packages/SystemUI/src/com/android/systemui/egg/MLand.java
index 1b22e04..b84777b 100644
--- a/packages/SystemUI/src/com/android/systemui/egg/MLand.java
+++ b/packages/SystemUI/src/com/android/systemui/egg/MLand.java
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2015 The Android Open Source Project
- * Copyright (C) 2014-2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -211,8 +210,6 @@ public class MLand extends FrameLayout {
// we assume everything will be laid out left|top
setLayoutDirection(LAYOUT_DIRECTION_LTR);
- Player.eggPlayer = getEggPlayer();
-
setupPlayers(DEFAULT_PLAYERS);
MetricsLogger.count(getContext(), "egg_mland_create", 1);
@@ -1010,7 +1007,7 @@ public class MLand extends FrameLayout {
public void step(long t_ms, long dt_ms, float t, float dt);
}
- protected static class Player extends ImageView implements GameView {
+ private static class Player extends ImageView implements GameView {
public float dv;
public int color;
private MLand mLand;
@@ -1020,8 +1017,6 @@ public class MLand extends FrameLayout {
private int mScore;
private TextView mScoreField;
- protected static int eggPlayer;
-
private final int[] sColors = new int[] {
//0xFF78C557,
0xFFDB4437,
@@ -1093,7 +1088,7 @@ public class MLand extends FrameLayout {
public Player(Context context) {
super(context);
- setBackgroundResource(eggPlayer);
+ setBackgroundResource(R.drawable.android);
getBackground().setTintMode(PorterDuff.Mode.SRC_ATOP);
color = sColors[(sNextColor++%sColors.length)];
getBackground().setTint(color);
@@ -1443,8 +1438,4 @@ public class MLand extends FrameLayout {
v = z = 0;
}
}
-
- protected int getEggPlayer() {
- return R.drawable.android;
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/egg/MLandActivity.java b/packages/SystemUI/src/com/android/systemui/egg/MLandActivity.java
index 6fd7387..cdda45f 100644
--- a/packages/SystemUI/src/com/android/systemui/egg/MLandActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/egg/MLandActivity.java
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2015 The Android Open Source Project
- * Copyright (C) 2014-2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,14 +29,7 @@ public class MLandActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final boolean isCM = getIntent().getBooleanExtra("is_cm", false);
- if (isCM) {
- setContentView(R.layout.cmland);
- mLand = (CMLand) findViewById(R.id.world);
- } else {
- setContentView(R.layout.mland);
- mLand = (MLand) findViewById(R.id.world);
- }
+ setContentView(R.layout.mland);
mLand = (MLand) findViewById(R.id.world);
mLand.setScoreFieldHolder((ViewGroup) findViewById(R.id.scores));
final View welcome = findViewById(R.id.welcome);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
index 4371cce..857cb08 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
@@ -90,7 +90,7 @@ public class StatusBarIconView extends AnimatedImageView {
public void setNotification(Notification notification) {
mNotification = notification;
mShowNotificationCount = CMSettings.System.getIntForUser(mContext.getContentResolver(),
- CMSettings.System.STATUS_BAR_NOTIF_COUNT, 0, UserHandle.USER_CURRENT) == 1;
+ CMSettings.System.STATUS_BAR_NOTIF_COUNT, 1, UserHandle.USER_CURRENT) == 1;
setContentDescription(notification);
}
@@ -388,7 +388,7 @@ public class StatusBarIconView extends AnimatedImageView {
@Override
public void update() {
boolean showIconCount = CMSettings.System.getIntForUser(mContext.getContentResolver(),
- CMSettings.System.STATUS_BAR_NOTIF_COUNT, 0, UserHandle.USER_CURRENT) == 1;
+ CMSettings.System.STATUS_BAR_NOTIF_COUNT, 1, UserHandle.USER_CURRENT) == 1;
for (StatusBarIconView sbiv : mIconViews) {
sbiv.mShowNotificationCount = showIconCount;
sbiv.set(sbiv.mIcon, true);
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index d539201..60d7428 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -169,6 +169,11 @@ class MountService extends IMountService.Stub
}
@Override
+ public void onSwitchUser(int userHandle) {
+ mMountService.mCurrentUserId = userHandle;
+ }
+
+ @Override
public void onStartUser(int userHandle) {
mMountService.onStartUser(userHandle);
}
@@ -307,6 +312,8 @@ class MountService extends IMountService.Stub
@GuardedBy("mLock")
private String mMoveTargetUuid;
+ private volatile int mCurrentUserId = UserHandle.USER_OWNER;
+
private VolumeInfo findVolumeByIdOrThrow(String id) {
synchronized (mLock) {
final VolumeInfo vol = mVolumes.get(id);
@@ -1193,7 +1200,7 @@ class MountService extends IMountService.Stub
vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
}
- vol.mountUserId = UserHandle.USER_OWNER;
+ vol.mountUserId = mCurrentUserId;
mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
} else if (vol.type == VolumeInfo.TYPE_PRIVATE) {
diff --git a/services/net/java/android/net/dhcp/DhcpClient.java b/services/net/java/android/net/dhcp/DhcpClient.java
index c9efc69..ac0c6a3 100644
--- a/services/net/java/android/net/dhcp/DhcpClient.java
+++ b/services/net/java/android/net/dhcp/DhcpClient.java
@@ -43,6 +43,7 @@ import android.os.SystemClock;
import android.system.ErrnoException;
import android.system.Os;
import android.system.PacketSocketAddress;
+import android.util.EventLog;
import android.util.Log;
import android.util.TimeUtils;
@@ -372,6 +373,14 @@ public class DhcpClient extends BaseDhcpStateMachine {
if (PACKET_DBG) {
Log.d(TAG, HexDump.dumpHexString(mPacket, 0, length));
}
+ } catch (Exception e) {
+ // SafetyNet logging for b/31850211
+ int snetTagId = 0x534e4554;
+ String bugId = "31850211";
+ int uid = -1;
+ String data = e.getClass().getName();
+ EventLog.writeEvent(snetTagId, bugId, uid, data);
+ Log.e(TAG, "Failed to parse DHCP packet", e);
}
}
maybeLog("Receive thread stopped");
diff --git a/services/net/java/android/net/dhcp/DhcpPacket.java b/services/net/java/android/net/dhcp/DhcpPacket.java
index f97df83..820a03d 100644
--- a/services/net/java/android/net/dhcp/DhcpPacket.java
+++ b/services/net/java/android/net/dhcp/DhcpPacket.java
@@ -6,6 +6,7 @@ import android.net.NetworkUtils;
import android.os.Build;
import android.os.SystemProperties;
import android.system.OsConstants;
+import com.android.internal.annotations.VisibleForTesting;
import java.io.UnsupportedEncodingException;
import java.net.Inet4Address;
@@ -13,9 +14,8 @@ import java.net.UnknownHostException;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
-import java.nio.charset.StandardCharsets;
import java.nio.ShortBuffer;
-
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -701,7 +701,8 @@ abstract class DhcpPacket {
* A subset of the optional parameters are parsed and are stored
* in object fields.
*/
- public static DhcpPacket decodeFullPacket(ByteBuffer packet, int pktType) throws ParseException
+ @VisibleForTesting
+ static DhcpPacket decodeFullPacket(ByteBuffer packet, int pktType) throws ParseException
{
// bootp parameters
int transactionId;
@@ -809,7 +810,11 @@ abstract class DhcpPacket {
// server-to-server packets, e.g. for relays.
if (!isPacketToOrFromClient(udpSrcPort, udpDstPort) &&
!isPacketServerToServer(udpSrcPort, udpDstPort)) {
- return null;
+ // This should almost never happen because we use SO_ATTACH_FILTER on the packet
+ // socket to drop packets that don't have the right source ports. However, it's
+ // possible that a packet arrives between when the socket is bound and when the
+ // filter is set. http://b/26696823 .
+ throw new ParseException("Unexpected UDP ports %d->%d", udpSrcPort, udpDstPort);
}
}
@@ -860,8 +865,12 @@ abstract class DhcpPacket {
+ 64 // skip server host name (64 chars)
+ 128); // skip boot file name (128 chars)
- int dhcpMagicCookie = packet.getInt();
+ // Ensure this is a DHCP packet with a magic cookie, and not BOOTP. http://b/31850211
+ if (packet.remaining() < 4) {
+ throw new ParseException("DHCP packet without a magic cookie");
+ }
+ int dhcpMagicCookie = packet.getInt();
if (dhcpMagicCookie != DHCP_MAGIC_COOKIE) {
throw new ParseException("Bad magic cookie 0x%08x, should be 0x%08x", dhcpMagicCookie,
DHCP_MAGIC_COOKIE);
@@ -1049,7 +1058,13 @@ abstract class DhcpPacket {
public static DhcpPacket decodeFullPacket(byte[] packet, int length, int pktType)
throws ParseException {
ByteBuffer buffer = ByteBuffer.wrap(packet, 0, length).order(ByteOrder.BIG_ENDIAN);
- return decodeFullPacket(buffer, pktType);
+ try {
+ return decodeFullPacket(buffer, pktType);
+ } catch (ParseException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new ParseException("DHCP parsing error: %s", e.getMessage());
+ }
}
/**
diff --git a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
index 7e60bf1..2639e26 100644
--- a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
+++ b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
@@ -16,23 +16,19 @@
package android.net.dhcp;
-import android.net.NetworkUtils;
import android.net.DhcpResults;
import android.net.LinkAddress;
+import android.net.NetworkUtils;
import android.system.OsConstants;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.internal.util.HexDump;
-
import java.net.Inet4Address;
import java.nio.ByteBuffer;
import java.util.ArrayList;
-
import junit.framework.TestCase;
-import libcore.util.HexEncoding;
import static android.net.dhcp.DhcpPacket.*;
-
public class DhcpPacketTest extends TestCase {
private static Inet4Address SERVER_ADDR = v4Address("192.0.2.1");
@@ -278,7 +274,7 @@ public class DhcpPacketTest extends TestCase {
// TODO: Turn all of these into golden files. This will probably require modifying
// Android.mk appropriately, making this into an AndroidTestCase, and adding code to read
// the golden files from the test APK's assets via mContext.getAssets().
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// IP header.
"451001480000000080118849c0a89003c0a89ff7" +
// UDP header.
@@ -297,8 +293,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options
"638253633501023604c0a89003330400001c200104fffff0000304c0a89ffe06080808080808080404" +
- "3a0400000e103b040000189cff00000000000000000000"
- ).toCharArray(), false));
+ "3a0400000e103b040000189cff00000000000000000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3);
assertTrue(offerPacket instanceof DhcpOfferPacket); // Implicitly checks it's non-null.
@@ -309,7 +304,7 @@ public class DhcpPacketTest extends TestCase {
@SmallTest
public void testOffer2() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// IP header.
"450001518d0600004011144dc0a82b01c0a82bf7" +
// UDP header.
@@ -328,8 +323,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options
"638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" +
- "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"
- ).toCharArray(), false));
+ "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"));
assertEquals(337, packet.limit());
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3);
@@ -341,8 +335,119 @@ public class DhcpPacketTest extends TestCase {
}
@SmallTest
+ public void testBadIpPacket() throws Exception {
+ final byte[] packet = HexDump.hexStringToByteArray(
+ // IP header.
+ "450001518d0600004011144dc0a82b01c0a82bf7");
+
+ try {
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3);
+ fail("Dhcp packet parsing should have failed");
+ } catch (DhcpPacket.ParseException expected) {}
+ }
+
+ @SmallTest
+ public void testBadDhcpPacket() throws Exception {
+ final byte[] packet = HexDump.hexStringToByteArray(
+ // IP header.
+ "450001518d0600004011144dc0a82b01c0a82bf7" +
+ // UDP header.
+ "00430044013d9ac7" +
+ // BOOTP header.
+ "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000");
+
+ try {
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3);
+ fail("Dhcp packet parsing should have failed");
+ } catch (DhcpPacket.ParseException expected) {}
+ }
+
+ @SmallTest
+ public void testBadTruncatedOffer() throws Exception {
+ final byte[] packet = HexDump.hexStringToByteArray(
+ // IP header.
+ "450001518d0600004011144dc0a82b01c0a82bf7" +
+ // UDP header.
+ "00430044013d9ac7" +
+ // BOOTP header.
+ "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" +
+ // MAC address.
+ "30766ff2a90c00000000000000000000" +
+ // Server name.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // File, missing one byte
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "00000000000000000000000000000000000000000000000000000000000000");
+
+ try {
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3);
+ fail("Dhcp packet parsing should have failed");
+ } catch (DhcpPacket.ParseException expected) {}
+ }
+
+ @SmallTest
+ public void testBadOfferWithoutACookie() throws Exception {
+ final byte[] packet = HexDump.hexStringToByteArray(
+ // IP header.
+ "450001518d0600004011144dc0a82b01c0a82bf7" +
+ // UDP header.
+ "00430044013d9ac7" +
+ // BOOTP header.
+ "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" +
+ // MAC address.
+ "30766ff2a90c00000000000000000000" +
+ // Server name.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // File.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ // No options
+ );
+
+ try {
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3);
+ fail("Dhcp packet parsing should have failed");
+ } catch (DhcpPacket.ParseException expected) {}
+ }
+
+ @SmallTest
+ public void testOfferWithBadCookie() throws Exception {
+ final byte[] packet = HexDump.hexStringToByteArray(
+ // IP header.
+ "450001518d0600004011144dc0a82b01c0a82bf7" +
+ // UDP header.
+ "00430044013d9ac7" +
+ // BOOTP header.
+ "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" +
+ // MAC address.
+ "30766ff2a90c00000000000000000000" +
+ // Server name.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // File.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // Bad cookie
+ "DEADBEEF3501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" +
+ "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff");
+
+ try {
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3);
+ fail("Dhcp packet parsing should have failed");
+ } catch (DhcpPacket.ParseException expected) {}
+ }
+
+ @SmallTest
public void testBadHwaddrLength() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// IP header.
"450001518d0600004011144dc0a82b01c0a82bf7" +
// UDP header.
@@ -361,8 +466,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options
"638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" +
- "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"
- ).toCharArray(), false));
+ "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"));
String expectedClientMac = "30766FF2A90C";
final int hwAddrLenOffset = 20 + 8 + 2;
@@ -419,7 +523,7 @@ public class DhcpPacketTest extends TestCase {
// store any information in the overloaded fields).
//
// For now, we just check that it parses correctly.
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// Ethernet header.
"b4cef6000000e80462236e300800" +
// IP header.
@@ -440,8 +544,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options
"638253633501023604010101010104ffff000033040000a8c03401030304ac1101010604ac110101" +
- "0000000000000000000000000000000000000000000000ff000000"
- ).toCharArray(), false));
+ "0000000000000000000000000000000000000000000000ff000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
assertTrue(offerPacket instanceof DhcpOfferPacket);
@@ -452,7 +555,7 @@ public class DhcpPacketTest extends TestCase {
@SmallTest
public void testBug2111() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// IP header.
"4500014c00000000ff119beac3eaf3880a3f5d04" +
// UDP header. TODO: fix invalid checksum (due to MAC address obfuscation).
@@ -471,8 +574,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options.
"638253633501023604c00002fe33040000bfc60104fffff00003040a3f50010608c0000201c0000202" +
- "0f0f646f6d61696e3132332e636f2e756b0000000000ff00000000"
- ).toCharArray(), false));
+ "0f0f646f6d61696e3132332e636f2e756b0000000000ff00000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3);
assertTrue(offerPacket instanceof DhcpOfferPacket);
@@ -483,7 +585,7 @@ public class DhcpPacketTest extends TestCase {
@SmallTest
public void testBug2136() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// Ethernet header.
"bcf5ac000000d0c7890000000800" +
// IP header.
@@ -504,8 +606,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options.
"6382536335010236040a20ff80330400001c200104fffff00003040a20900106089458413494584135" +
- "0f0b6c616e63732e61632e756b000000000000000000ff00000000"
- ).toCharArray(), false));
+ "0f0b6c616e63732e61632e756b000000000000000000ff00000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
assertTrue(offerPacket instanceof DhcpOfferPacket);
@@ -517,7 +618,7 @@ public class DhcpPacketTest extends TestCase {
@SmallTest
public void testUdpServerAnySourcePort() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// Ethernet header.
"9cd917000000001c2e0000000800" +
// IP header.
@@ -539,8 +640,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options.
"6382536335010236040a0169fc3304000151800104ffff000003040a0fc817060cd1818003d1819403" +
- "d18180060f0777766d2e6564751c040a0fffffff000000"
- ).toCharArray(), false));
+ "d18180060f0777766d2e6564751c040a0fffffff000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
assertTrue(offerPacket instanceof DhcpOfferPacket);
@@ -552,8 +652,40 @@ public class DhcpPacketTest extends TestCase {
}
@SmallTest
+ public void testUdpInvalidDstPort() throws Exception {
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
+ // Ethernet header.
+ "9cd917000000001c2e0000000800" +
+ // IP header.
+ "45a00148000040003d115087d18194fb0a0f7af2" +
+ // UDP header. TODO: fix invalid checksum (due to MAC address obfuscation).
+ // NOTE: The destination port is a non-DHCP port.
+ "0043aaaa01341268" +
+ // BOOTP header.
+ "02010600d628ba8200000000000000000a0f7af2000000000a0fc818" +
+ // MAC address.
+ "9cd91700000000000000000000000000" +
+ // Server name.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // File.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // Options.
+ "6382536335010236040a0169fc3304000151800104ffff000003040a0fc817060cd1818003d1819403" +
+ "d18180060f0777766d2e6564751c040a0fffffff000000"));
+
+ try {
+ DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
+ fail("Packet with invalid dst port did not throw ParseException");
+ } catch (ParseException expected) {}
+ }
+
+ @SmallTest
public void testMultipleRouters() throws Exception {
- final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray(
// Ethernet header.
"fc3d93000000" + "081735000000" + "0800" +
// IP header.
@@ -574,8 +706,7 @@ public class DhcpPacketTest extends TestCase {
"0000000000000000000000000000000000000000000000000000000000000000" +
// Options.
"638253633501023604c0abbd023304000070803a04000038403b04000062700104ffffff00" +
- "0308c0a8bd01ffffff0006080808080808080404ff000000000000"
- ).toCharArray(), false));
+ "0308c0a8bd01ffffff0006080808080808080404ff000000000000"));
DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
assertTrue(offerPacket instanceof DhcpOfferPacket);
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 5ec6950..1f63a22 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -4692,6 +4692,12 @@ public class TelephonyManager {
if (SubscriptionManager.isValidPhoneId(phoneId)) {
String prop = TelephonyProperties.PROPERTY_BASEBAND_VERSION +
((phoneId == 0) ? "" : Integer.toString(phoneId));
+ if (version != null && version.length() > SystemProperties.PROP_VALUE_MAX) {
+ Log.e(TAG, "setBasebandVersionForPhone(): version string '" + version +
+ "' too long! (" + version.length() +
+ " > " + SystemProperties.PROP_VALUE_MAX + ")");
+ version = version.substring(0, SystemProperties.PROP_VALUE_MAX);
+ }
SystemProperties.set(prop, version);
}
}