diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java
index 57b0141..6c90c41 100644
--- a/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java
+++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java
@@ -60,7 +60,7 @@ public class PerformanceManagerService extends CMSystemService {
// keep in sync with hardware/libhardware/include/hardware/power.h
private final int POWER_HINT_CPU_BOOST = 0x00000010;
private final int POWER_HINT_LAUNCH_BOOST = 0x00000011;
- private final int POWER_HINT_SET_PROFILE = 0x00000030;
+ private final int POWER_HINT_SET_PROFILE = 0x00000012;
private final int POWER_FEATURE_SUPPORTED_PROFILES = 0x00001000;
diff --git a/cm/res/res/values-es-rUS/strings.xml b/cm/res/res/values-es-rUS/strings.xml
index 4cfd8d9..58135e7 100644
--- a/cm/res/res/values-es-rUS/strings.xml
+++ b/cm/res/res/values-es-rUS/strings.xml
@@ -91,7 +91,7 @@
Automático
Ajustar automáticamente la temperatura del color de pantalla con el amanecer y el anochecer
Desactivado
- Deshabilitar todos los ajustes
+ Desactivar todos los ajustes
Día
Utilizar solo los ajustes de día
Noche
diff --git a/cm/res/res/values-hr/strings.xml b/cm/res/res/values-hr/strings.xml
index c60b895..6811a59 100644
--- a/cm/res/res/values-hr/strings.xml
+++ b/cm/res/res/values-hr/strings.xml
@@ -19,10 +19,10 @@
LineageOS sustav
- stvorite prilagođenu pločicu u brzim postavkama
- Omogućuje aplikaciji da objavi brzo postavljanje pločica.
- promijenite postavke mrežnog sustava
- Dopušta aplikaciji promijeniti postavke za zrakoplovni način i mobilne podatke.
+ stvori prilagođenu pločicu u brzim postavkama
+ Dopušta aplikaciji da stvori pločicu u brzim postavkama.
+ promijeni sistemske postavke mreže
+ Dopušta aplikaciji mijenjanje postavki za zrakoplovni način i mobilne podatke.
promijeni postavke zvukova sustava
Dopušta aplikaciji promijeniti postavke za mod prekidanja zvuka.
vezuje za zadanu pločicu usluga nadgledanja
diff --git a/cm/res/res/values-ja/strings.xml b/cm/res/res/values-ja/strings.xml
index fd48035..1a89efe 100644
--- a/cm/res/res/values-ja/strings.xml
+++ b/cm/res/res/values-ja/strings.xml
@@ -18,7 +18,7 @@
-->
- LineageOSシステム
+ LineageOS システム
クイック設定パネルでのカスタムタイルの作成
クイック設定タイルの作成をアプリに許可します
システムのネットワークの設定の変更
diff --git a/cm/res/res/values-nl/strings.xml b/cm/res/res/values-nl/strings.xml
index 77beacd..eaacd79 100644
--- a/cm/res/res/values-nl/strings.xml
+++ b/cm/res/res/values-nl/strings.xml
@@ -18,7 +18,7 @@
-->
- LineageOS Systeem
+ LineageOS-systeem
een aangepaste tegel aanmaken in het snelle instellingenpaneel
Hiermee kan een app een tegel toevoegen aan Snelle instellingen.
systeemnetwerkinstellingen wijzigen
diff --git a/cm/res/res/values-sr-rCS/strings.xml b/cm/res/res/values-sr-rCS/strings.xml
new file mode 100644
index 0000000..1d58e98
--- /dev/null
+++ b/cm/res/res/values-sr-rCS/strings.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cm/res/res/values-uk/strings.xml b/cm/res/res/values-uk/strings.xml
index fc384a7..f0b391c 100644
--- a/cm/res/res/values-uk/strings.xml
+++ b/cm/res/res/values-uk/strings.xml
@@ -22,7 +22,9 @@
Створити власну плитку для панелі швидких налаштувань
Дозволяє додатку створити плитку швидких налаштувань.
змінювати налаштування мережі системи
+ Дозволяє додатку вносити зміни в \"Режимі польоту\" і в налаштуваннях мобільної передачі даних.
змінювати звукові налаштування системи
+ Дозволяє додатку вносити зміни налаштувань звуку в режимі сповіщень.
прив’язати до власної служби
Дозволяє власникові прив\'язувати плитки до інтерфесу високого рівня служб.
@@ -33,6 +35,7 @@
Дозволяє програмі змінювати стан телефону і з’єднання даних з підтримкою до декількох SIM.
зміна системних профілів
+ Дозволяє додатку змінювати системні профілі.
Взаємодія із обладнанням
Додаток зможе отримувати доступ до підсистеми апаратних абстракцій CyanogenMod.
@@ -52,6 +55,8 @@
змінювати налаштування безпеки
Дозволяє додатку змінювати системні налаштування безпеки. Непотрібно звичайним додаткам.
+ керування постійною пам\'яттю даних
+ Дозволяє додатку зчитувати і записувати властивості, які можуть зберігатися навіть після відновлення заводських налаштувань.
Доступ до рекомендованих додатків
Додаток зможе отримувати доступ до списку рекомендованих додатків.
@@ -94,6 +99,16 @@
Надворі (яскраве сонце)
Використовувати параметри для яскравого освітлення надворі
LiveDisplay допоможе зменшити навантаження на зір та покращить Ваш сон. Натисніть тут, щоб спробувати його!
+ LiveDisplay вимкнений.
+ LiveDisplay: автоматичний режим.
+ LiveDisplay: денний режим.
+ LiveDisplay: нічний режим.
+ LiveDisplay: режим на вулиці.
+ LiveDisplay вимкнено.
+ LiveDisplay змінено до автоматичного режиму.
+ LiveDisplay змінено до денного режиму.
+ LiveDisplay змінено до нічного режиму.
+ LiveDisplay змінено до режиму на вулиці.
Нетиповий екран блокування
@@ -107,29 +122,75 @@
Вібро-відгук
Вібрувати, коли виявлено жест
+ Не вдалося встановити тему
+ %1$s не вдалося встановити
+ Скинути тему
+ Через збої в роботі додатків встановлено системну тему.
+ доступ до служби тем
+ Дозволяє додатку отримувати доступ до служби тем. Цей дозвіл не використовується звичайними додатками.
+ читати дані вашої теми
+ Дозволяє додатку читати дані про теми і
+виявляти, яку тему зараз застосовано.
+ змінювати теми
+ Дозволяє додатку встановлювати нові теми і змінювати поточну.
+ доступ до менеджера продуктивності
+ Дозволяє додатку отримувати доступ до менеджера продуктивності. Цей дозвіл не потрібний звичайним додаткам.
+ доступ до сервісу живого екрану блокування
+ Надає додатку доступ до сервісу керування живим екраном блокування.
+ доступ до сервісу живого екрану блокування
+ Надає системним додаткам доступ до сервісу керування живим екраном блокування.
+ доступ до сервісу живого екрану блокування
+ Дозволяє додатку доступ до сервісу живого екрану блокування.
+ читати погоду
+ Дозволити додатку читати дані від провайдера погоди.
+ оновлення провайдера погоди
+ Дозволяє додатку оновлювати дані провайдера погоди.
+ прив\'язати як провайдера погоди
+ Дозволяє додатку бути службою провайдера погоди.
+ доступ до служби погоди
+ Дозволити додатку доступ до служби погоди в системі. Це ніколи не потрібно для звичайних додатків.
+ змінювати дані використання бази даних
+ Дозволяє додатку оновлювати вміст БД використання даних.
+ читати дані використання бази даних
+ Дозволяє додатку читати вміст БД використання даних.
+ керування налаштуваннями LiveDisplay
+ Дозволяє додатку керувати розширеними налаштуваннями дисплея.
+ спостерігати за змінами аудіо сесії
+ Дозволяє додатку переглядати аудіопотоки, які створюються або знищуються.
+ керувати змінами аудіо сесії
+ Дозволяє додатку змінювати параметри аудіопотоків.
+ Теми
+ Налаштувати вашу тему
+ Запуск додатків\u2026
+ Оптимізація пам\'яті\u2026
+ Підготовка до запуску\u2026
+ Оптимізацію завершено.
+ Підготовка %1$s\u2026
+ Підготовка додатків\u2026
+ %1$d з %2$d додатків
diff --git a/cm/res/res/values-vi/strings.xml b/cm/res/res/values-vi/strings.xml
index 92582f9..90ce0f1 100644
--- a/cm/res/res/values-vi/strings.xml
+++ b/cm/res/res/values-vi/strings.xml
@@ -179,8 +179,17 @@
quan sát các thay đổi về phiên âm thanh
Cho phép ứng dụng quan sát dòng âm thanh được tạo và bị hủy.
+ quản lý thay đổi âm thanh phiên
+ Cho phép một ứng dụng gửi thông tin các cập nhật stream âm thanh.
Chủ đề
Tùy chỉnh chủ đề của bạn
+ Đang mở ứng dụng\u2026
+ Tối ưu hóa bộ nhớ\u2026
+ Đang chuẩn bị bắt đầu\u2026
+ Tối ưu hóa hoàn tất.
+ Đang chuẩn bị %1$s\u2026
+ Đang chuẩn bị ứng dụng\u2026
+ %1$d trong số %2$d ứng dụng
diff --git a/packages/CMSettingsProvider/res/values-ja/strings.xml b/packages/CMSettingsProvider/res/values-ja/strings.xml
index 101423f..0977b14 100644
--- a/packages/CMSettingsProvider/res/values-ja/strings.xml
+++ b/packages/CMSettingsProvider/res/values-ja/strings.xml
@@ -16,5 +16,5 @@
limitations under the License.
-->
- CM設定ストレージ
+ LineageOS 設定ストレージ
diff --git a/packages/CMSettingsProvider/res/values-sr-rCS/strings.xml b/packages/CMSettingsProvider/res/values-sr-rCS/strings.xml
new file mode 100644
index 0000000..0647eaf
--- /dev/null
+++ b/packages/CMSettingsProvider/res/values-sr-rCS/strings.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderTest.java b/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderTest.java
index 306436f..c4db088 100644
--- a/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderTest.java
+++ b/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderTest.java
@@ -126,7 +126,11 @@ import java.util.Map;
* they may change at slightly different times.
*
* Test whether the setting was properly set and is not null.
+ *
+ * @deprecated Replaced by {@link Settings.Global#DEVICE_PROVISIONED}
+ * or {@link Settings.Secure#USER_SETUP_COMPLETE}
*/
+ @Deprecated
@SmallTest
public void testCMProvisionedFlagFallbackSet() {
final String newCmFlag = CMSettings.Secure.getStringForUser(
diff --git a/sdk/src/java/cyanogenmod/providers/CMSettings.java b/sdk/src/java/cyanogenmod/providers/CMSettings.java
index ea627ce..cb1468c 100644
--- a/sdk/src/java/cyanogenmod/providers/CMSettings.java
+++ b/sdk/src/java/cyanogenmod/providers/CMSettings.java
@@ -2829,8 +2829,11 @@ public final class CMSettings {
* Set to 0 when we enter the CM Setup Wizard.
* Set to 1 when we exit the CM Setup Wizard.
*
+ * @deprecated Use {@link Secure#USER_SETUP_COMPLETE} or
+ * {@link Settings.Global#DEVICE_PROVISIONED} instead
* @hide
*/
+ @Deprecated
public static final String CM_SETUP_WIZARD_COMPLETED = "cm_setup_wizard_completed";
/**
diff --git a/sdk/src/java/org/cyanogenmod/internal/util/PackageManagerUtils.java b/sdk/src/java/org/cyanogenmod/internal/util/PackageManagerUtils.java
new file mode 100644
index 0000000..690fd48
--- /dev/null
+++ b/sdk/src/java/org/cyanogenmod/internal/util/PackageManagerUtils.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (C) 2016 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 org.cyanogenmod.internal.util;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+
+public final class PackageManagerUtils {
+ private static final int FLAG_SUSPENDED = 1 << 30;
+
+ private PackageManagerUtils() {
+ // This class is not supposed to be instantiated
+ }
+
+ /**
+ * Checks whether a given package exists
+ *
+ * @param context
+ * @param packageName
+ * @return true if the package exists
+ */
+ public static boolean isAppInstalled(final Context context, final String packageName) {
+ return getApplicationInfo(context, packageName, 0) != null;
+ }
+
+ /**
+ * Check whether a package with specific flags is enabled
+ *
+ * @param context
+ * @param packageName
+ * @param flags
+ * @return true if the package is enabled
+ */
+ public static boolean isAppEnabled(final Context context,
+ final String packageName, final int flags) {
+ final ApplicationInfo info = getApplicationInfo(context, packageName, flags);
+ return info != null && info.enabled;
+ }
+
+ /**
+ * Check whether a package is enabled
+ *
+ * @param context
+ * @param packageName
+ * @return true if the package is enabled
+ */
+ public static boolean isAppEnabled(final Context context, final String packageName) {
+ return isAppEnabled(context, packageName, 0);
+ }
+
+ /**
+ * Check if a package can possibly be on the SDCard
+ * This is just a workaround and doesn't guarantee that the app is on SD card
+ *
+ * @param context
+ * @param packageName
+ * @return true if the package is on the SDCard
+ */
+ public static boolean isAppOnSdcard(final Context context, final String packageName) {
+ return isAppEnabled(context, packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
+ }
+
+ /**
+ * Check if a package is suspended
+ *
+ * @param context
+ * @param packageName
+ * @return true if the package is suspended
+ */
+ public static boolean isAppSuspended(final Context context, final String packageName) {
+ return isAppSuspended(getApplicationInfo(context, packageName, 0));
+ }
+
+ /**
+ * Check if a package is suspended
+ *
+ * @param info
+ * @return true if the package is suspended
+ */
+ public static boolean isAppSuspended(final ApplicationInfo info) {
+ return info != null && (info.flags & FLAG_SUSPENDED) != 0;
+ }
+
+ /**
+ * Get the ApplicationInfo of a package
+ *
+ * @param context
+ * @param packageName
+ * @param flags
+ * @return null if the package cannot be found or the ApplicationInfo is null
+ */
+ public static ApplicationInfo getApplicationInfo(final Context context,
+ final String packageName, final int flags) {
+ final PackageManager packageManager = context.getPackageManager();
+ ApplicationInfo info;
+ try {
+ info = packageManager.getApplicationInfo(packageName, flags);
+ } catch (PackageManager.NameNotFoundException e) {
+ info = null;
+ }
+ return info;
+ }
+}