* empty set if none have been set.
*/
public @NonNull Set<String> getAffiliationIds(@NonNull ComponentName admin) {
+ throwIfParentInstance("getAffiliationIds");
try {
return new ArraySet<>(mService.getAffiliationIds(admin));
} catch (RemoteException e) {
* @hide
*/
boolean isFixedOrientationLandscape() {
- return screenOrientation == SCREEN_ORIENTATION_LANDSCAPE
- || screenOrientation == SCREEN_ORIENTATION_SENSOR_LANDSCAPE
- || screenOrientation == SCREEN_ORIENTATION_REVERSE_LANDSCAPE
- || screenOrientation == SCREEN_ORIENTATION_USER_LANDSCAPE;
+ return isFixedOrientationLandscape(screenOrientation);
+ }
+
+ /**
+ * Returns true if the activity's orientation is fixed to landscape.
+ * @hide
+ */
+ public static boolean isFixedOrientationLandscape(@ScreenOrientation int orientation) {
+ return orientation == SCREEN_ORIENTATION_LANDSCAPE
+ || orientation == SCREEN_ORIENTATION_SENSOR_LANDSCAPE
+ || orientation == SCREEN_ORIENTATION_REVERSE_LANDSCAPE
+ || orientation == SCREEN_ORIENTATION_USER_LANDSCAPE;
}
/**
* @hide
*/
boolean isFixedOrientationPortrait() {
- return screenOrientation == SCREEN_ORIENTATION_PORTRAIT
- || screenOrientation == SCREEN_ORIENTATION_SENSOR_PORTRAIT
- || screenOrientation == SCREEN_ORIENTATION_REVERSE_PORTRAIT
- || screenOrientation == SCREEN_ORIENTATION_USER_PORTRAIT;
+ return isFixedOrientationPortrait(screenOrientation);
+ }
+
+ /**
+ * Returns true if the activity's orientation is fixed to portrait.
+ * @hide
+ */
+ public static boolean isFixedOrientationPortrait(@ScreenOrientation int orientation) {
+ return orientation == SCREEN_ORIENTATION_PORTRAIT
+ || orientation == SCREEN_ORIENTATION_SENSOR_PORTRAIT
+ || orientation == SCREEN_ORIENTATION_REVERSE_PORTRAIT
+ || orientation == SCREEN_ORIENTATION_USER_PORTRAIT;
}
/**
*
* See PackageManager.NOTIFY_PACKAGE_USE_* for reasons.
*/
- void notifyPackageUse(String packageName, int reason);
+ oneway void notifyPackageUse(String packageName, int reason);
/**
* Notify the package manager that a list of dex files have been loaded.
* @param dexPats the list of the dex files paths that have been loaded
* @param loaderIsa the ISA of the loader process
*/
- void notifyDexLoad(String loadingPackageName, in List<String> dexPaths, String loaderIsa);
+ oneway void notifyDexLoad(String loadingPackageName, in List<String> dexPaths,
+ String loaderIsa);
/**
* Ask the package manager to perform a dex-opt for the given reason. The package
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.util.AttributeSet;
+import android.util.Log;
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
* @hide
*/
public class FontResourcesParser {
+ private static final String TAG = "FontResourcesParser";
private static final int NORMAL_WEIGHT = 400;
private static final int ITALIC = 1;
private boolean mItalic;
private int mResourceId;
- public FontFileResourceEntry(@NonNull String fileName, int weight, boolean italic,
- int resourceId) {
+ public FontFileResourceEntry(@NonNull String fileName, int weight, boolean italic) {
mFileName = fileName;
mWeight = weight;
mItalic = italic;
- mResourceId = resourceId;
}
public @NonNull String getFileName() {
public boolean isItalic() {
return mItalic;
}
-
- public int getResourceId() {
- return mResourceId;
- }
}
// A class represents file based font-family element in xml file.
return readFamily(parser, resources);
} else {
skip(parser);
+ Log.e(TAG, "Failed to find font-family tag");
return null;
}
}
if (parser.getEventType() != XmlPullParser.START_TAG) continue;
String tag = parser.getName();
if (tag.equals("font")) {
- fonts.add(readFont(parser, resources));
+ final FontFileResourceEntry entry = readFont(parser, resources);
+ if (entry != null) {
+ fonts.add(entry);
+ }
} else {
skip(parser);
}
int weight = array.getInt(R.styleable.FontFamilyFont_fontWeight, NORMAL_WEIGHT);
boolean isItalic = ITALIC == array.getInt(R.styleable.FontFamilyFont_fontStyle, 0);
String filename = array.getString(R.styleable.FontFamilyFont_font);
- int resourceId = array.getResourceId(R.styleable.FontFamilyFont_font, 0);
array.recycle();
while (parser.next() != XmlPullParser.END_TAG) {
skip(parser);
}
- return new FontFileResourceEntry(filename, weight, isItalic, resourceId);
+ if (filename == null) {
+ return null;
+ }
+ return new FontFileResourceEntry(filename, weight, isItalic);
}
private static void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
final FontResourcesParser.FamilyResourceEntry familyEntry =
FontResourcesParser.parse(rp, wrapper);
if (familyEntry == null) {
- Log.e(TAG, "Failed to find font-family tag");
return null;
}
return Typeface.createFromResources(familyEntry, mAssets, file);
import android.text.style.LeadingMarginSpan;
import android.text.style.LocaleSpan;
import android.text.style.MetricAffectingSpan;
+import android.text.style.ParagraphStyle;
import android.text.style.QuoteSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.ReplacementSpan;
import android.text.style.TypefaceSpan;
import android.text.style.URLSpan;
import android.text.style.UnderlineSpan;
+import android.text.style.UpdateAppearance;
import android.util.Log;
import android.util.Printer;
import android.view.View;
return Resources.getSystem().getQuantityString(R.plurals.selected_count, count, count);
}
+ /**
+ * Returns whether or not the specified spanned text has a style span.
+ * @hide
+ */
+ public static boolean hasStyleSpan(@NonNull Spanned spanned) {
+ Preconditions.checkArgument(spanned != null);
+ final Class<?>[] styleClasses = {
+ CharacterStyle.class, ParagraphStyle.class, UpdateAppearance.class};
+ for (Class<?> clazz : styleClasses) {
+ if (spanned.nextSpanTransition(-1, spanned.length(), clazz) < spanned.length()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private static Object sLock = new Object();
private static char[] sTemp = null;
}
if (mSmartSelection == null || !Objects.equals(mLocale, locale)) {
destroySmartSelectionIfExistsLocked();
- mSmartSelection = new SmartSelection(getFdLocked(locale));
+ final ParcelFileDescriptor fd = getFdLocked(locale);
+ mSmartSelection = new SmartSelection(fd.getFd());
+ closeAndLogError(fd);
mLocale = locale;
}
return mSmartSelection;
}
@GuardedBy("mSmartSelectionLock") // Do not call outside this lock.
- private int getFdLocked(Locale locale) throws FileNotFoundException {
+ private ParcelFileDescriptor getFdLocked(Locale locale) throws FileNotFoundException {
ParcelFileDescriptor updateFd;
try {
updateFd = ParcelFileDescriptor.open(
if (updateFd == null) {
if (factoryFd != null) {
- return factoryFd.getFd();
+ return factoryFd;
} else {
throw new FileNotFoundException(
String.format("No model file found for %s", locale));
SmartSelection.getLanguage(updateFdInt).trim().toLowerCase());
if (factoryFd == null) {
if (localeMatches) {
- return updateFdInt;
+ return updateFd;
} else {
closeAndLogError(updateFd);
throw new FileNotFoundException(
if (!localeMatches) {
closeAndLogError(updateFd);
- return factoryFd.getFd();
+ return factoryFd;
}
final int updateVersion = SmartSelection.getVersion(updateFdInt);
- final int factoryFdInt = factoryFd.getFd();
- final int factoryVersion = SmartSelection.getVersion(factoryFdInt);
+ final int factoryVersion = SmartSelection.getVersion(factoryFd.getFd());
if (updateVersion > factoryVersion) {
closeAndLogError(factoryFd);
- return updateFdInt;
+ return updateFd;
} else {
closeAndLogError(updateFd);
- return factoryFdInt;
+ return factoryFd;
}
}
private static final int MENU_ITEM_ORDER_COPY = 5;
private static final int MENU_ITEM_ORDER_PASTE = 6;
private static final int MENU_ITEM_ORDER_SHARE = 7;
- private static final int MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT = 8;
- private static final int MENU_ITEM_ORDER_SELECT_ALL = 9;
- private static final int MENU_ITEM_ORDER_REPLACE = 10;
- private static final int MENU_ITEM_ORDER_AUTOFILL = 11;
+ private static final int MENU_ITEM_ORDER_SELECT_ALL = 8;
+ private static final int MENU_ITEM_ORDER_REPLACE = 9;
+ private static final int MENU_ITEM_ORDER_AUTOFILL = 10;
+ private static final int MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT = 11;
private static final int MENU_ITEM_ORDER_PROCESS_TEXT_INTENT_ACTIONS_START = 100;
// Each Editor manages its own undo stack.
.setAlphabeticShortcut('v')
.setEnabled(mTextView.canPaste())
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
- menu.add(Menu.NONE, TextView.ID_PASTE, MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT,
+ menu.add(Menu.NONE, TextView.ID_PASTE_AS_PLAIN_TEXT, MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT,
com.android.internal.R.string.paste_as_plain_text)
- .setEnabled(mTextView.canPaste())
+ .setEnabled(mTextView.canPasteAsPlainText())
.setOnMenuItemClickListener(mOnContextMenuItemClickListener);
menu.add(Menu.NONE, TextView.ID_SHARE, MENU_ITEM_ORDER_SHARE,
com.android.internal.R.string.share)
mode.setSubtitle(null);
mode.setTitleOptionalHint(true);
populateMenuWithItems(menu);
- updateAssistMenuItem(menu);
Callback customCallback = getCustomCallback();
if (customCallback != null) {
.setShowAsAction(mode);
}
+ if (mTextView.canPasteAsPlainText()) {
+ menu.add(
+ Menu.NONE,
+ TextView.ID_PASTE_AS_PLAIN_TEXT,
+ MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT,
+ com.android.internal.R.string.paste_as_plain_text)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ }
+
updateSelectAllItem(menu);
updateReplaceItem(menu);
+ updateAssistMenuItem(menu);
}
@Override
import android.app.Activity;
import android.app.assist.AssistStructure;
import android.content.ClipData;
+import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
.hasPrimaryClip());
}
+ boolean canPasteAsPlainText() {
+ if (!canPaste()) {
+ return false;
+ }
+
+ final ClipData clipData =
+ ((ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE))
+ .getPrimaryClip();
+ final ClipDescription description = clipData.getDescription();
+ final boolean isPlainType = description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);
+ final CharSequence text = clipData.getItemAt(0).getText();
+ if (isPlainType && (text instanceof Spanned)) {
+ Spanned spanned = (Spanned) text;
+ if (TextUtils.hasStyleSpan(spanned)) {
+ return true;
+ }
+ }
+ return description.hasMimeType(ClipDescription.MIMETYPE_TEXT_HTML);
+ }
+
boolean canProcessText() {
if (getId() == View.NO_ID) {
return false;
final int hgrav = Gravity.getAbsoluteGravity(mDropDownGravity,
mAnchorView.getLayoutDirection()) & Gravity.HORIZONTAL_GRAVITY_MASK;
if (hgrav == Gravity.RIGHT) {
- xOffset -= mAnchorView.getWidth();
+ xOffset += mAnchorView.getWidth();
}
popup.setHorizontalOffset(xOffset);
mShownAnchorView, mOverflowOnly, mPopupStyleAttr, mPopupStyleRes);
subPopup.setPresenterCallback(mPresenterCallback);
subPopup.setForceShowIcon(MenuPopup.shouldPreserveIconSpacing(subMenu));
+ subPopup.setGravity(mDropDownGravity);
// Pass responsibility for handling onDismiss to the submenu.
subPopup.setOnDismissListener(mOnDismissListener);
createProcessUniqueId()));
// If the current context is protected, inform the producer.
- if (isProtectedContext()) {
- consumer->setConsumerUsageBits(GRALLOC_USAGE_PROTECTED);
- }
+ consumer->setConsumerIsProtected(isProtectedContext());
SurfaceTexture_setSurfaceTexture(env, thiz, surfaceTexture);
SurfaceTexture_setProducer(env, thiz, producer);
import static android.widget.espresso.TextViewActions.longPressOnTextAtIndex;
import static android.widget.espresso.TextViewAssertions.hasInsertionPointerAtIndex;
import static android.widget.espresso.TextViewAssertions.hasSelection;
+import static android.widget.espresso.TextViewAssertions.doesNotHaveStyledText;
import static android.widget.espresso.FloatingToolbarEspressoUtils.assertFloatingToolbarItemIndex;
import static android.widget.espresso.FloatingToolbarEspressoUtils.assertFloatingToolbarIsDisplayed;
import static android.widget.espresso.FloatingToolbarEspressoUtils.assertFloatingToolbarIsNotDisplayed;
import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.is;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.text.TextUtils;
+import android.text.Spanned;
+import android.support.test.espresso.NoMatchingViewException;
+import android.support.test.espresso.ViewAssertion;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.view.textclassifier.TextClassificationManager;
import android.view.textclassifier.TextClassifier;
import android.widget.espresso.CustomViewActions.RelativeCoordinatesProvider;
import com.android.frameworks.coretests.R;
+import junit.framework.AssertionFailedError;
+
/**
* Tests the TextView widget from an Activity
*/
}
@Override
- public void onDestroyActionMode(ActionMode actionMode) {}
+ public void onDestroyActionMode(ActionMode actionMode) {
+ }
}));
final String text = "droid@android.com";
sleepForFloatingToolbarPopup();
assertFloatingToolbarItemIndex(android.R.id.textAssist, 0);
}
+
+ public void testPastePlainText_menuAction() throws Exception {
+ initializeClipboardWithText(TextStyle.STYLED);
+
+ onView(withId(R.id.textview)).perform(replaceText(""));
+ onView(withId(R.id.textview)).perform(longClick());
+ sleepForFloatingToolbarPopup();
+ clickFloatingToolbarItem(
+ getActivity().getString(com.android.internal.R.string.paste_as_plain_text));
+ getInstrumentation().waitForIdleSync();
+
+ onView(withId(R.id.textview)).check(matches(withText("styledtext")));
+ onView(withId(R.id.textview)).check(doesNotHaveStyledText());
+ }
+
+ public void testPastePlainText_noMenuItemForPlainText() {
+ initializeClipboardWithText(TextStyle.PLAIN);
+
+ onView(withId(R.id.textview)).perform(replaceText(""));
+ onView(withId(R.id.textview)).perform(longClick());
+ sleepForFloatingToolbarPopup();
+
+ assertFloatingToolbarDoesNotContainItem(
+ getActivity().getString(com.android.internal.R.string.paste_as_plain_text));
+ }
+
+ private void initializeClipboardWithText(TextStyle textStyle) {
+ final ClipData clip;
+ switch (textStyle) {
+ case STYLED:
+ clip = ClipData.newHtmlText("html", "styledtext", "<b>styledtext</b>");
+ break;
+ case PLAIN:
+ clip = ClipData.newPlainText("plain", "plaintext");
+ break;
+ default:
+ throw new IllegalArgumentException("Invalid text style");
+ }
+ getActivity().getWindow().getDecorView().post(() ->
+ getActivity().getSystemService(ClipboardManager.class).setPrimaryClip( clip));
+ getInstrumentation().waitForIdleSync();
+ }
+
+ private enum TextStyle {
+ PLAIN, STYLED
+ }
}
import android.graphics.drawable.Drawable;
import android.support.test.espresso.NoMatchingViewException;
import android.support.test.espresso.ViewAssertion;
+import android.text.Spanned;
+import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
* @param index A matcher representing the expected index.
*/
public static ViewAssertion hasInsertionPointerAtIndex(final Matcher<Integer> index) {
- return new ViewAssertion() {
- @Override
- public void check(View view, NoMatchingViewException exception) {
- if (view instanceof TextView) {
- TextView textView = (TextView) view;
- int selectionStart = textView.getSelectionStart();
- int selectionEnd = textView.getSelectionEnd();
- try {
- assertThat(selectionStart, index);
- assertThat(selectionEnd, index);
- } catch (IndexOutOfBoundsException e) {
- throw new AssertionFailedError(e.getMessage());
- }
- } else {
- throw new AssertionFailedError("TextView not found");
+ return (view, exception) -> {
+ if (view instanceof TextView) {
+ TextView textView = (TextView) view;
+ int selectionStart = textView.getSelectionStart();
+ int selectionEnd = textView.getSelectionEnd();
+ try {
+ assertThat(selectionStart, index);
+ assertThat(selectionEnd, index);
+ } catch (IndexOutOfBoundsException e) {
+ throw new AssertionFailedError(e.getMessage());
}
+ } else {
+ throw new AssertionFailedError("TextView not found");
}
};
}
}
/**
+ * Returns a {@link ViewAssertion} that asserts that the TextView does not contain styled text.
+ */
+ public static ViewAssertion doesNotHaveStyledText() {
+ return (view, exception) -> {
+ final CharSequence text = ((TextView) view).getText();
+ if (text instanceof Spanned && !TextUtils.hasStyleSpan((Spanned) text)) {
+ return;
+ }
+ throw new AssertionFailedError("TextView has styled text");
+ };
+ }
+
+ /**
* A {@link ViewAssertion} to check the selected text in a {@link TextView}.
*/
private static final class TextSelectionAssertion implements ViewAssertion {
<allow-in-power-save package="com.android.cellbroadcastreceiver" />
<allow-in-power-save package="com.android.shell" />
+ <!-- STOPSHIP(b/36856786): Revert this once it is fixed properly -->
+ <allow-in-power-save package="com.google.android.apps.enterprise.dmagent" />
+
<!-- These are the packages that are white-listed to be able to run as system user -->
<system-user-whitelisted-app package="com.android.settings" />
FontFamily fontFamily = new FontFamily();
for (final FontFileResourceEntry fontFile : filesEntry.getEntries()) {
+ // TODO: Add ttc and variation font support. (b/37853920)
if (!fontFamily.addFontFromAssetManager(mgr, fontFile.getFileName(),
0 /* resourceCookie */, false /* isAsset */, 0 /* ttcIndex */,
fontFile.getWeight(), fontFile.isItalic() ? STYLE_ITALIC : STYLE_NORMAL,
return null;
}
}
- // Due to backward compatibility, even if the font is not supported by our font stack,
- // we need to place the empty font at the first place. The typeface with empty font
- // behaves different from default typeface especially in fallback font selection.
- fontFamily.allowUnsupportedFont();
- fontFamily.freeze();
+ if (!fontFamily.freeze()) {
+ return null;
+ }
FontFamily[] familyChain = { fontFamily };
typeface = createFromFamiliesWithDefault(familyChain,
RESOLVE_BY_FONT_TABLE, RESOLVE_BY_FONT_TABLE);
throw new IllegalArgumentException("Use of STREAM_ACCESSIBILITY is reserved for "
+ "volume control");
}
- Log.e(className, "Use of stream types is deprecated for operations other than " +
- "volume control.");
- Log.e(className, "See the documentation of " + opName + " for what to use instead with " +
+ Log.w(className, "Use of stream types is deprecated for operations other than " +
+ "volume control");
+ Log.w(className, "See the documentation of " + opName + " for what to use instead with " +
"android.media.AudioAttributes to qualify your playback use case");
}
}
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Protanomalija (crveno-zeleno)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Tritanomalija (plavo-žuto)"</string>
<string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Korekcija boja"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ova funkcija je eksperimentalna i može da utiče na performanse."</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ova funkcija je eksperimentalna i može da utiče na kvalitet rada."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Zamenjuje ga <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Još oko <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> do potpunog punjenja"</string>
<string name="tether_settings_title_wifi" msgid="3277144155960302049">"Партатыўная кропка доступу"</string>
<string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-мадэм"</string>
<string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Мадэм"</string>
- <string name="tether_settings_title_all" msgid="8356136101061143841">"Ð\9cадÑ\8dм Ñ\96 паÑ\80Ñ\82аÑ\82Ñ\8bÑ\9eнÑ\8b Ñ\85оÑ\82Ñ\81поÑ\82"</string>
+ <string name="tether_settings_title_all" msgid="8356136101061143841">"Ð Ñ\8dжÑ\8bм мадÑ\8dма"</string>
<string name="managed_user_title" msgid="8109605045406748842">"Усе працоўныя праграмы"</string>
<string name="user_guest" msgid="8475274842845401871">"Госць"</string>
<string name="unknown" msgid="1592123443519355854">"Невядома"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Пераход..."</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Шыфраванне файлаў ужо дзейнічае"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Пераход на шыфраванне файлаў"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Перайдзіце з шыфравання раздзелаў даных на шыфраванне файлаў.\n !!Увага!! Гэта прывядзе да выдалення ўсіх даных.\n Гэта функцыя ў альфа-версіі, яна можа працаваць няправільна.\n Каб працягнуць, націсніце «Сцерці і перайсці...»."</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Перайдзіце з шыфравання раздзелаў даных на шыфраванне файлаў.\n !!Увага!! Гэта прывядзе да выдалення ўсіх даных.\n Гэта функцыя ў альфа-версіі, яна можа працаваць няправільна.\n Каб працягнуць, націсніце \"Сцерці і перайсці...\"."</string>
<string name="button_convert_fbe" msgid="5152671181309826405">"Сцерці і перайсці..."</string>
<string name="picture_color_mode" msgid="4560755008730283695">"Каляровы рэжым выявы"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"Выкарыстоўваць sRGB"</string>
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Пратанамалія (чырвоны-зялёны)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Трытанамалія (сіні-жоўты)"</string>
<string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Карэкцыя колеру"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Гэтая функцыя з\'яўляецца эксперыментальнай і можа паўплываць на прадукцыйнасць."</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Гэта функцыя з\'яўляецца эксперыментальнай і можа паўплываць на прадукцыйнасць."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Перавызначаны <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Засталося каля <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Да поўнай зарадкі засталося <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="enable_terminal_title" msgid="95572094356054120">"Локален терминал"</string>
<string name="enable_terminal_summary" msgid="67667852659359206">"Актив. на прил. за терминал с достъп до локалния команден ред"</string>
<string name="hdcp_checking_title" msgid="8605478913544273282">"Проверка с HDCP"</string>
- <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"Повед. за проверка с HDCP"</string>
+ <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"Проверка с HDCP"</string>
<string name="debug_debugging_category" msgid="6781250159513471316">"Отстраняване на грешки"</string>
<string name="debug_app" msgid="8349591734751384446">"Избор на прил. за отстран. на грешки"</string>
<string name="debug_app_not_set" msgid="718752499586403499">"Няма зададено приложение за отстраняване на грешки"</string>
<string name="launch_defaults_some" msgid="313159469856372621">"Neke zadane vrijednosti su postavljene"</string>
<string name="launch_defaults_none" msgid="4241129108140034876">"Nema postavljenih zadanih vrijednosti"</string>
<string name="tts_settings" msgid="8186971894801348327">"Postavke za pretvaranje teksta u govor"</string>
- <string name="tts_settings_title" msgid="1237820681016639683">"Izlaz za pretvaranje teksta u govor"</string>
+ <string name="tts_settings_title" msgid="1237820681016639683">"Pretvaranje teksta u govor"</string>
<string name="tts_default_rate_title" msgid="6030550998379310088">"Brzina govora"</string>
<string name="tts_default_rate_summary" msgid="4061815292287182801">"Brzina kojom se izgovara tekst"</string>
<string name="tts_default_pitch_title" msgid="6135942113172488671">"Visina"</string>
<string name="tts_default_pitch_summary" msgid="1944885882882650009">"Utječe na ton sintetiziranog govora"</string>
<string name="tts_default_lang_title" msgid="8018087612299820556">"Jezik"</string>
- <string name="tts_lang_use_system" msgid="2679252467416513208">"Koristi sistemski jezik"</string>
+ <string name="tts_lang_use_system" msgid="2679252467416513208">"Korištenje sistemskog jezika"</string>
<string name="tts_lang_not_selected" msgid="7395787019276734765">"Jezik nije izabran"</string>
<string name="tts_default_lang_summary" msgid="5219362163902707785">"Postavlja glas za dati jezik za izgovoreni tekst"</string>
<string name="tts_play_example_title" msgid="7094780383253097230">"Poslušajte primjer"</string>
<string name="tts_install_data_title" msgid="4264378440508149986">"Instaliraj glasovne podatke"</string>
<string name="tts_install_data_summary" msgid="5742135732511822589">"Instalirajte glasovne podatke potrebne za sintetiziranje govora"</string>
<string name="tts_engine_security_warning" msgid="8786238102020223650">"Ovaj program za sintetiziranje govora u mogućnosti je da prikuplja sav tekst koji se izgovara, uključujući lične podatke kao što su lozinke i brojevi kreditnih kartica. Program omogućava aplikacija <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Da li želite koristiti ovaj program za sintetiziranje govora?"</string>
- <string name="tts_engine_network_required" msgid="1190837151485314743">"Ovaj jezik zahtijeva mrežnu vezu radi za izlaz tekst-u-govor."</string>
+ <string name="tts_engine_network_required" msgid="1190837151485314743">"Ovaj jezik zahtijeva aktivnu mrežnu vezu za pretvaranje teksta u govor."</string>
<string name="tts_default_sample_string" msgid="4040835213373086322">"Ovo je primjer sinteze govora"</string>
<string name="tts_status_title" msgid="7268566550242584413">"Zadani status jezika"</string>
<string name="tts_status_ok" msgid="1309762510278029765">"<xliff:g id="LOCALE">%1$s</xliff:g> je u potpunosti podržan"</string>
<string name="tts_status_checking" msgid="5339150797940483592">"Provjerava se…"</string>
<string name="tts_engine_settings_title" msgid="3499112142425680334">"Postavke za <xliff:g id="TTS_ENGINE_NAME">%s</xliff:g>"</string>
<string name="tts_engine_settings_button" msgid="1030512042040722285">"Pokreni postavke programa"</string>
- <string name="tts_engine_preference_section_title" msgid="448294500990971413">"Željeni program"</string>
+ <string name="tts_engine_preference_section_title" msgid="448294500990971413">"Željeni alat"</string>
<string name="tts_general_section_title" msgid="4402572014604490502">"Opće postavke"</string>
<string name="tts_reset_speech_pitch_title" msgid="5789394019544785915">"Postavite visinu glasa"</string>
<string name="tts_reset_speech_pitch_summary" msgid="8700539616245004418">"Visinu glasa koji izgovara tekst postavite na podrazumjevanu."</string>
<string name="enable_terminal_title" msgid="95572094356054120">"Lokalni terminal"</string>
<string name="enable_terminal_summary" msgid="67667852659359206">"Omogući terminalnu aplik. koja nudi pristup lok. kom. okruženju"</string>
<string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP provjeravanje"</string>
- <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"Pos. ponaš. kod HDCP pr."</string>
+ <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"Postavke HDCP provjere"</string>
<string name="debug_debugging_category" msgid="6781250159513471316">"Otklanjanje grešaka"</string>
<string name="debug_app" msgid="8349591734751384446">"Odaberi aplikaciju za otklanjanje grešaka"</string>
<string name="debug_app_not_set" msgid="718752499586403499">"Nema postavljenih aplikac. za otklanjanje grešaka"</string>
<string name="force_resizable_activities_summary" msgid="6667493494706124459">"Neka sve aktivnosti budu takve da mogu mijenjati veličinu za prikaz sa više prozora, bez obzira na prikazane vrijednosti."</string>
<string name="enable_freeform_support" msgid="1461893351278940416">"Omogući prozore nepravilnih oblika"</string>
<string name="enable_freeform_support_summary" msgid="8247310463288834487">"Omogućiti podršku za eksperimentalne prozore nepravilnih oblika."</string>
- <string name="local_backup_password_title" msgid="3860471654439418822">"Lozinka za rezervnu kopiju radne površine"</string>
+ <string name="local_backup_password_title" msgid="3860471654439418822">"Lozinka za sigurnosnu kopiju radne površine"</string>
<string name="local_backup_password_summary_none" msgid="6951095485537767956">"Potpune sigurnosne kopije za računare trenutno nisu zaštićene"</string>
<string name="local_backup_password_summary_change" msgid="5376206246809190364">"Dodirnite da promijenite ili uklonite lozinku za potpune rezervne kopije sa radne površine"</string>
- <string name="local_backup_password_toast_success" msgid="582016086228434290">"Nova lozinka za rezervnu kopiju postavljena"</string>
+ <string name="local_backup_password_toast_success" msgid="582016086228434290">"Nova lozinka za sigurnosnu kopiju postavljena"</string>
<string name="local_backup_password_toast_confirmation_mismatch" msgid="7805892532752708288">"Nova lozinka i potvrda se ne podudaraju"</string>
- <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Nije uspjelo postavljanje lozinke za rezervnu kopiju"</string>
+ <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Nije uspjelo postavljanje lozinke za sigurnosnu kopiju"</string>
<string-array name="color_mode_names">
<item msgid="2425514299220523812">"Živopisan (zadano)"</item>
<item msgid="8446070607501413455">"Prirodan"</item>
<string name="select_webview_provider_title" msgid="4628592979751918907">"Postavljanje WebViewa"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Podesi WebView"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ovaj izbor više ne vrijedi. Pokušajte ponovo."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Pretvori u šifrirani fajl"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Pretvaranje u šifrirani fajl"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Pretvaranje…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Fajl je već šifriran"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Pretvaranje u šifrirane fajlove"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Pretvori particiju sa podacima u particiju šifriranu sistemom fajlova.\n !! Upozorenje!! Ovo će izbrisati sve vaše podatke.\n Ova funkcija je u alfa fazi razvoja i možda neće ispravno raditi.\n Pritisnite \'Obriši i pretvori…\" da nastavite."</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Pretvorite particiju sa podacima u particiju šifriranu sistemom fajlova.\n !! Upozorenje!! Ovo će izbrisati sve vaše podatke.\n Ova funkcija je u alfa fazi razvoja i možda neće ispravno raditi.\n Pritisnite \"Obriši i pretvori…\" da nastavite."</string>
<string name="button_convert_fbe" msgid="5152671181309826405">"Obriši i pretvori…"</string>
<string name="picture_color_mode" msgid="4560755008730283695">"Režim boja Slika"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"Koristi sRGB"</string>
<string name="select_webview_provider_title" msgid="4628592979751918907">"Implementació de WebView"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Configura la implementació de WebView"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Aquesta opció ja no és vàlida. Torna-ho a provar."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Converteix en l\'encriptació de fitxers"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Converteix en encriptació de fitxers"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Converteix…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"El fitxer ja està encriptat"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"S\'està convertint en l\'encriptació basada en fitxers"</string>
<string name="process_kernel_label" msgid="3916858646836739323">"SO Android"</string>
<string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Aplicacións eliminadas"</string>
<string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"Aplicacións e usuarios eliminados"</string>
- <string name="tether_settings_title_usb" msgid="6688416425801386511">"Ancoraxe de USB"</string>
- <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Zona interactiva portátil"</string>
- <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Ancoraxe de Bluetooth"</string>
- <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Ancoraxe á rede"</string>
- <string name="tether_settings_title_all" msgid="8356136101061143841">"Ancoraxe á rede e zona wifi"</string>
+ <string name="tether_settings_title_usb" msgid="6688416425801386511">"Conexión compart. por USB"</string>
+ <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Zona wifi portátil"</string>
+ <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Conexión por Bluetooth"</string>
+ <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Conexión compartida"</string>
+ <string name="tether_settings_title_all" msgid="8356136101061143841">"Conexión comp./zona wifi"</string>
<string name="managed_user_title" msgid="8109605045406748842">"Aplicacións de traballo"</string>
<string name="user_guest" msgid="8475274842845401871">"Convidado"</string>
<string name="unknown" msgid="1592123443519355854">"Descoñecida"</string>
<string name="development_settings_summary" msgid="1815795401632854041">"Definir as opcións de desenvolvemento de aplicacións"</string>
<string name="development_settings_not_available" msgid="4308569041701535607">"As opcións de programador non están dispoñibles para este usuario"</string>
<string name="vpn_settings_not_available" msgid="956841430176985598">"A configuración da VPN non está dispoñible para este usuario"</string>
- <string name="tethering_settings_not_available" msgid="6765770438438291012">"A configuración da ancoraxe non está dispoñible para este usuario"</string>
+ <string name="tethering_settings_not_available" msgid="6765770438438291012">"A configuración da conexión compartida non está dispoñible para este usuario"</string>
<string name="apn_settings_not_available" msgid="7873729032165324000">"A configuración do nome do punto de acceso non está dispoñible para este usuario"</string>
<string name="enable_adb" msgid="7982306934419797485">"Depuración de USB"</string>
<string name="enable_adb_summary" msgid="4881186971746056635">"Modo de depuración de erros cando o USB está conectado"</string>
<string name="local_backup_password_title" msgid="3860471654439418822">"Contrasinal para copias"</string>
<string name="local_backup_password_summary_none" msgid="6951095485537767956">"As copias de seguridade de ordenador completas non están protexidas"</string>
<string name="local_backup_password_summary_change" msgid="5376206246809190364">"Toca para cambiar ou eliminar o contrasinal para as copias de seguranza completas do escritorio"</string>
- <string name="local_backup_password_toast_success" msgid="582016086228434290">"Novo contrasinal de copia de seguranza definido"</string>
+ <string name="local_backup_password_toast_success" msgid="582016086228434290">"Novo contrasinal da copia de seguranza definido"</string>
<string name="local_backup_password_toast_confirmation_mismatch" msgid="7805892532752708288">"O contrasinal novo e a confirmación non coinciden"</string>
- <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Erro ao definir un contrasinal de copia de seguranza"</string>
+ <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Erro ao definir un contrasinal da copia de seguranza"</string>
<string-array name="color_mode_names">
<item msgid="2425514299220523812">"Brillante (predeterminado)"</item>
<item msgid="8446070607501413455">"Natural"</item>
<string name="inactive_apps_title" msgid="1317817863508274533">"Aplicacións inactivas"</string>
<string name="inactive_app_inactive_summary" msgid="5091363706699855725">"Aplicación inactiva. Toca para alternar a configuración."</string>
<string name="inactive_app_active_summary" msgid="4174921824958516106">"Aplicación activa. Toca para alternar a configuración."</string>
- <string name="runningservices_settings_title" msgid="8097287939865165213">"Servizos en execución"</string>
+ <string name="runningservices_settings_title" msgid="8097287939865165213">"En execución"</string>
<string name="runningservices_settings_summary" msgid="854608995821032748">"Ver e controlar servizos actualmente en execución"</string>
<string name="select_webview_provider_title" msgid="4628592979751918907">"Implementación de WebView"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Definir implementación de WebView"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opción xa non é válida. Téntao de novo."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Converter no encriptado baseado en ficheiros"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Cambiar a cifraxe de ficheiros"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Converter..."</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Xa se encriptou o ficheiro"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Convertendo no encriptado baseado en ficheiros"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Converte a partición de datos nun encriptado baseado en ficheiros.\n Advertencia: Esta acción borrará todos os datos.\n Esta función é alfa e quizais non funcione correctamente.\n Toca Borrar e converter... para continuar."</string>
- <string name="button_convert_fbe" msgid="5152671181309826405">"Borrar e converter..."</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Converte a partición de datos nunha encriptación baseada en ficheiros.\n Advertencia: Esta acción borrará todos os datos.\n Esta función é alfa e quizais non funcione correctamente.\n Para continuar, toca Limpar e converter..."</string>
+ <string name="button_convert_fbe" msgid="5152671181309826405">"Limpar e converter..."</string>
<string name="picture_color_mode" msgid="4560755008730283695">"Modo de cor da imaxe"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"Utiliza sRGB"</string>
<string name="daltonizer_mode_disabled" msgid="7482661936053801862">"Desactivado"</string>
<string name="inactive_app_active_summary" msgid="4174921824958516106">"Ակտիվ է: Հպեք՝ փոխելու համար:"</string>
<string name="runningservices_settings_title" msgid="8097287939865165213">"Աշխատեցվող ծառայություններ"</string>
<string name="runningservices_settings_summary" msgid="854608995821032748">"Դիտել և վերահսկել ընթացիկ աշխատեցվող ծառայությունները"</string>
- <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-ի իրականացում"</string>
+ <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ծառայություն"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Ընտրեք WebView-ի իրականացումը"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Այս ընտրանքն այլևս վավեր չէ: Փորձեք նորից:"</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Վերածել ֆայլային գաղտնագրման"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Անցում ֆայլերի գաղտնագրման"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Փոխարկել…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Ֆայլային գաղտնագրումն արդեն կատարվել է"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Վերածում ֆայլային գաղտնագրման"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Ստեղծեք ֆայլային գաղտնագրում՝ փոխարկելով տվյալների բաժինը:\n !!Ուշադրություն!! Ձեր բոլոր տվյալները կջնջվեն:\n Այս գործառույթը դեռ գտնվում է փորձարկման փուլում և հնարավոր է ճիշտ չաշխատի:\n Շարունակելու համար սեղմեք «Սրբել և փոխարկել...» կոճակը:"</string>
- <string name="button_convert_fbe" msgid="5152671181309826405">"Սրբել և փոխարկել…"</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Անցնել առանձին ֆայլերի գաղտնագրման։\n Ուշադրությո՛ւն։ Ձեր բոլոր տվյալները կջնջվեն:\n Այս գործառույթը դեռ գտնվում է փորձարկման փուլում և, հնարավոր է, ճիշտ չաշխատի:\n Շարունակելու համար սեղմեք «Սրբել և անցնել...» կոճակը:"</string>
+ <string name="button_convert_fbe" msgid="5152671181309826405">"Սրբել և անցնել…"</string>
<string name="picture_color_mode" msgid="4560755008730283695">"Նկարի գունային ռեժիմ"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"Օգտագործել sRGB"</string>
<string name="daltonizer_mode_disabled" msgid="7482661936053801862">"Կասեցված է"</string>
<string name="daltonizer_mode_deuteranomaly" msgid="5475532989673586329">"Դեյտերանոմալիա (կարմիր-կանաչ)"</string>
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Պրոտանոմալիա (կարմիր-կանաչ)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Տրիտանոմալիա (կապույտ-դեղին)"</string>
- <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Ô³Õ¸Ö\82Õ¶Õ¡ÕµÕ«Õ¶ Õ¯Õ¡Ö\80Õ£Õ¡Õ¢Õ¥Ö\80ում"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Սա փորձնական գործառույթ է և կարող է ազդել աշխատանքի վրա:"</string>
+ <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Ô³Õ¸Ö\82Õ¶Õ¡Õ·Õ¿Õ¯ում"</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Õ\8dÕ¡ Ö\83Õ¸Ö\80Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ Õ£Õ¸Ö\80Õ®Õ¡Õ¼Õ¸Ö\82ÕµÕ© Õ§ Ö\87 Õ¯Õ¡Ö\80Õ¸Õ² Õ§ Õ¡Õ¦Õ¤Õ¥Õ¬ Õ½Õ¡Ö\80Ö\84Õ« Õ¡Õ·ÕÕ¡Õ¿Õ¡Õ¶Ö\84Õ« Õ¾Ö\80Õ¡:"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Գերազանցված է <xliff:g id="TITLE">%1$s</xliff:g>-ից"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Մնացել է մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Մինչև լրիվ լիցքավորումը մնացել է <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="animator_duration_scale_title" msgid="3406722410819934083">"קנה מידה למשך זמן אנימציה"</string>
<string name="overlay_display_devices_title" msgid="5364176287998398539">"צור הדמיית תצוגות משניות"</string>
<string name="debug_applications_category" msgid="4206913653849771549">"אפליקציות"</string>
- <string name="immediately_destroy_activities" msgid="1579659389568133959">"×\90×\9c תש×\9e×\95ר פעילויות"</string>
+ <string name="immediately_destroy_activities" msgid="1579659389568133959">"×\9c×\9c×\90 ש×\9e×\99רת פעילויות"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"השמד כל פעילות ברגע שהמשתמש עוזב אותה"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"מגבלה של תהליכים ברקע"</string>
<string name="show_all_anrs" msgid="28462979638729082">"הצג את כל פריטי ה-ANR"</string>
<string name="select_webview_provider_title" msgid="4628592979751918907">"יישום WebView"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"הגדרת יישום WebView"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"אפשרות זו כבר אינה תקפה. נסה שוב."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"המר להצפנת קבצים"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"המרה לצורך הצפנת קבצים"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"המר..."</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"הצפנת קבצים כבר מוגדרת"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"המרה להצפנה מבוססת קבצים"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"×\94×\9eר ×\90ת ×\9e×\97×\99צת ×\94× ×ª×\95× ×\99×\9d ×\9c×\94×¦×¤× ×\94 ×\9e×\91×\95ססת-ק×\91צ×\99×\9d.\n ×\90×\96×\94ר×\94!! פע×\95×\9c×\94 ×\96×\95 ת×\9e×\97ק ×\90ת ×\9b×\9c ×\94× ×ª×\95× ×\99×\9d.\n ת×\9b×\95× ×\94 ×\96×\95 ×\96×\9e×\99× ×\94 ×\91×\92רסת ×\90×\9cפ×\90 ×\95×\99×\99ת×\9b×\9f ש×\9c×\90 תפע×\9c ×\9bר×\90×\95×\99.\n ×\94קש ×¢×\9c \'×\9e×\97ק ×\95×\94×\9eר...\' כדי להמשיך."</string>
- <string name="button_convert_fbe" msgid="5152671181309826405">"×\9e×\97ק ×\95×\94×\9eר..."</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"×\94×\9eר ×\90ת ×\9e×\97×\99צת ×\94× ×ª×\95× ×\99×\9d ×\9c×\94×¦×¤× ×\94 ×\9e×\91×\95ססת-ק×\91צ×\99×\9d.\n ×\90×\96×\94ר×\94!! פע×\95×\9c×\94 ×\96×\95 ת×\9e×\97ק ×\90ת ×\9b×\9c ×\94× ×ª×\95× ×\99×\9d.\n ת×\9b×\95× ×\94 ×\96×\95 ×\96×\9e×\99× ×\94 ×\91×\92רסת ×\90×\9cפ×\90 ×\95×\99×\99ת×\9b×\9f ש×\9c×\90 תפע×\9c ×\9bר×\90×\95×\99.\n ×\94קש ×¢×\9c \'×\9e×\97×\99ק×\94 ×\95×\94×\9eר×\94â\80¦\' כדי להמשיך."</string>
+ <string name="button_convert_fbe" msgid="5152671181309826405">"×\9e×\97×\99ק×\94 ×\95×\94×\9eר×\94â\80¦"</string>
<string name="picture_color_mode" msgid="4560755008730283695">"מצב צבע התמונה"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"שימוש ב-sRGB"</string>
<string name="daltonizer_mode_disabled" msgid="7482661936053801862">"מושבת"</string>
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"პროტოანომალია (წითელი-მწვანე)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"ტრიტანომალია (ლურჯი-ყვითელი)"</string>
<string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"ფერის კორექცია"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"á\83\94á\83¡ á\83¤á\83£á\83\9cá\83¥á\83ªá\83\98á\83\90 á\83¡á\83\90á\83ªá\83\93á\83\94á\83\9aá\83\98á\83\90 á\83\93á\83\90 á\83¨á\83\94á\83\98á\83«á\83\9aá\83\94á\83\91á\83\90 á\83\92á\83\90á\83\95á\83\9aá\83\94á\83\9cá\83\90 á\83\98á\83¥á\83\9dá\83\9cá\83\98á\83\9dá\83¡ á\83¨á\83\94á\83¡á\83 á\83£á\83\9aá\83\94ბაზე."</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"á\83\94á\83¡ á\83¤á\83£á\83\9cá\83¥á\83ªá\83\98á\83\90 á\83¡á\83\90á\83ªá\83\93á\83\94á\83\9aá\83\98á\83\90 á\83\93á\83\90 á\83¨á\83\94á\83\98á\83«á\83\9aá\83\94á\83\91á\83\90 á\83\92á\83\90á\83\95á\83\9aá\83\94á\83\9cá\83\90 á\83\98á\83¥á\83\9dá\83\9cá\83\98á\83\9dá\83¡ á\83¤á\83£á\83\9cá\83¥á\83ªá\83\98á\83\9dá\83\9cá\83\90á\83\9aá\83\9dბაზე."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"უკუგებულია <xliff:g id="TITLE">%1$s</xliff:g>-ის მიერ"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"დარჩა დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"სრულ დატენვამდე დარჩენილია <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="enable_terminal_title" msgid="95572094356054120">"Жергиликтүү терминал"</string>
<string name="enable_terminal_summary" msgid="67667852659359206">"Жергиликтүү буйрук кабыгын сунуштаган терминалга уруксат берүү"</string>
<string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP текшерүү"</string>
- <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"HDCP текшерүү арактн коюу"</string>
+ <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"HDCP текшерүү тартиби"</string>
<string name="debug_debugging_category" msgid="6781250159513471316">"Жөндөө"</string>
<string name="debug_app" msgid="8349591734751384446">"Жөндөөчү колдонмону тандоо"</string>
<string name="debug_app_not_set" msgid="718752499586403499">"Эч бир жөндөөчү колдонмо орнотулган жок."</string>
<string name="inactive_app_active_summary" msgid="4174921824958516106">"Иштеп турат. Которуштуруу үчүн таптап коюңуз."</string>
<string name="runningservices_settings_title" msgid="8097287939865165213">"Иштеп жаткан кызматтар"</string>
<string name="runningservices_settings_summary" msgid="854608995821032748">"Учурда иштеп жаткан кызматтарды көрүү жана көзөмөлдөө"</string>
- <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView аÑ\82каÑ\80Ñ\8bлÑ\8bÑ\88ы"</string>
+ <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView кÑ\8bзмаÑ\82ы"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView аткарылышын коюу"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Тандалган нерсе жараксыз болуп калган. Кайра аракет кылыңыз."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Файл шифрлөөсүнө айландыруу"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Файлдарды шифрлөөгө өтүү"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Айландыруу…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Файл мурунтан эле шифрленген"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Файл негизиндеги шифрлөөгө айландырылууда"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Ð\94айÑ\8bндаÑ\80дÑ\8bн бөлүнүÑ\88үн Ñ\84айл негизиндеги Ñ\88иÑ\84Ñ\80лөөгө айландÑ\8bÑ\80Ñ\83Ñ\83.\n !!ÐÑ\81кеÑ\80Ñ\82Ò¯Ò¯!! Ð\91Ñ\83л баÑ\80дÑ\8bк дайÑ\8bндаÑ\80Ñ\8bÒ£Ñ\8bздÑ\8b Ñ\82азалайÑ\82.\n Ð\91Ñ\83л Ñ\84Ñ\83нкÑ\86иÑ\8f - алÑ\8cÑ\84а жана Ñ\82Ñ\83Ñ\83Ñ\80а иÑ\88Ñ\82ебеÑ\88и мүмкүн.\n УланÑ\82Ñ\83Ñ\83 Ò¯Ñ\87үн \'СүÑ\80үп Ñ\81алÑ\83Ñ\83 жана айландÑ\8bÑ\80Ñ\83Ñ\83…\' дегенди басыңыз."</string>
- <string name="button_convert_fbe" msgid="5152671181309826405">"Сүрүп салуу жана айландыруу…"</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"Ð\90йÑ\80Ñ\8bм Ñ\84айлдаÑ\80дÑ\8b Ñ\88иÑ\84Ñ\80лөөгө Ó©Ñ\82Ó©Ñ\81үз.\n !!ÐÑ\81кеÑ\80Ñ\82Ò¯Ò¯!! УÑ\88Ñ\83нÑ\83 менен баÑ\80дÑ\8bк дайÑ\8bндаÑ\80 Ó©Ñ\87Ó©Ñ\82.\n Ð\91Ñ\83л алÑ\8cÑ\84а веÑ\80Ñ\81иÑ\8f болгондÑ\83кÑ\82ан, Ñ\84Ñ\83нкÑ\86иÑ\8f Ñ\82алапÑ\82агÑ\8bдай иÑ\88Ñ\82ебеÑ\88и мүмкүн.\n УланÑ\82Ñ\83Ñ\83 Ò¯Ñ\87үн \'Ó¨Ñ\87Ò¯Ñ\80үп Ñ\82Ñ\83Ñ\80Ñ\83п, кийинкиге Ó©Ñ\82Ò¯Ò¯…\' дегенди басыңыз."</string>
+ <string name="button_convert_fbe" msgid="5152671181309826405">"Өчүрүп туруп, кийинкиге өтүү…"</string>
<string name="picture_color_mode" msgid="4560755008730283695">"Сүрөт түсү режими"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"sRGB колдонуңуз"</string>
<string name="daltonizer_mode_disabled" msgid="7482661936053801862">"Токтотулган"</string>
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Протаномалија (црвено-зелено)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Тританомалија (плаво-жуто)"</string>
<string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Корекција боја"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ð\9eва Ñ\84Ñ\83нкÑ\86иÑ\98а Ñ\98е екÑ\81пеÑ\80именÑ\82ална и може да Ñ\83Ñ\82иÑ\87е на пеÑ\80Ñ\84оÑ\80манÑ\81е."</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ð\9eва Ñ\84Ñ\83нкÑ\86иÑ\98а Ñ\98е екÑ\81пеÑ\80именÑ\82ална и може да Ñ\83Ñ\82иÑ\87е на квалиÑ\82еÑ\82 Ñ\80ада."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Замењује га <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Још око <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> до потпуног пуњења"</string>
<string name="launch_defaults_some" msgid="313159469856372621">"Налаштовано деякі значення за умовчанням"</string>
<string name="launch_defaults_none" msgid="4241129108140034876">"Немає значень за умовчанням"</string>
<string name="tts_settings" msgid="8186971894801348327">"Налашт. синтезу мовлення"</string>
- <string name="tts_settings_title" msgid="1237820681016639683">"Ð\92ивÑ\96д Ñ\81инÑ\82езÑ\83 мовленнÑ\8f з Ñ\82екÑ\81Ñ\82Ñ\83"</string>
+ <string name="tts_settings_title" msgid="1237820681016639683">"СинÑ\82ез мовленнÑ\8f"</string>
<string name="tts_default_rate_title" msgid="6030550998379310088">"Темп мовлення"</string>
<string name="tts_default_rate_summary" msgid="4061815292287182801">"Швидкість відтворення тексту"</string>
- <string name="tts_default_pitch_title" msgid="6135942113172488671">"Ð\92иÑ\81. зв."</string>
+ <string name="tts_default_pitch_title" msgid="6135942113172488671">"Тон"</string>
<string name="tts_default_pitch_summary" msgid="1944885882882650009">"Впливає на тон синтезованого мовлення"</string>
<string name="tts_default_lang_title" msgid="8018087612299820556">"Мова"</string>
<string name="tts_lang_use_system" msgid="2679252467416513208">"Використовувати мову системи"</string>
<string name="select_webview_provider_title" msgid="4628592979751918907">"Застосування WebView"</string>
<string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Налаштувати застосування WebView"</string>
<string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ця опція більше не дійсна. Повторіть спробу."</string>
- <string name="convert_to_file_encryption" msgid="3060156730651061223">"Ð\9aонвеÑ\80Ñ\82Ñ\83ваÑ\82и в заÑ\88иÑ\84Ñ\80ований Ñ\84айл"</string>
+ <string name="convert_to_file_encryption" msgid="3060156730651061223">"Ð\9fеÑ\80еÑ\85Ñ\96д до Ñ\88иÑ\84Ñ\80Ñ\83ваннÑ\8f Ñ\84айлÑ\96в"</string>
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"Конвертація…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"Уже конвертовано в зашифрований файл"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"Конвертація в зашифрований файл"</string>
<string name="wifi_disabled_by_recommendation_provider" msgid="5168315140978066096">"Sifatsiz tarmoq sababli ulanib bo‘lmadi"</string>
<string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"Wi-Fi ulanishini o‘rnatib bo‘lmadi"</string>
<string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Tasdiqdan o‘tishda muammo"</string>
- <string name="wifi_not_in_range" msgid="1136191511238508967">"Aloqada emas"</string>
+ <string name="wifi_not_in_range" msgid="1136191511238508967">"Xizmat doirasidan tashqarida"</string>
<string name="wifi_no_internet_no_reconnect" msgid="5724903347310541706">"Avtomatik ravishda ulanilmaydi"</string>
<string name="wifi_no_internet" msgid="3880396223819116454">"Internet aloqasi yo‘q"</string>
<string name="saved_network" msgid="4352716707126620811">"<xliff:g id="NAME">%1$s</xliff:g> tomonidan saqlangan"</string>
final IPackageStatsObserver.Stub mStatsObserver = new IPackageStatsObserver.Stub() {
public void onGetStatsCompleted(PackageStats stats, boolean succeeded) {
+ if (!succeeded) {
+ // There is no meaningful information in stats if the call failed.
+ return;
+ }
+
boolean sizeChanged = false;
synchronized (mEntriesMap) {
if (DEBUG_LOCKING) Log.v(TAG, "onGetStatsCompleted acquired lock");
<string name="keyguard_low_battery" msgid="9218432555787624490">"Tilslut din oplader."</string>
<string name="keyguard_instructions_when_pattern_disabled" msgid="8566679946700751371">"Tryk på menuen for at låse op."</string>
<string name="keyguard_network_locked_message" msgid="6743537524631420759">"Netværket er låst"</string>
- <string name="keyguard_missing_sim_message_short" msgid="6327533369959764518">"Der er ikke noget SIM-kort"</string>
+ <string name="keyguard_missing_sim_message_short" msgid="6327533369959764518">"Intet SIM-kort"</string>
<string name="keyguard_missing_sim_message" product="tablet" msgid="4550152848200783542">"Der er ikke noget SIM-kort i denne tablet."</string>
<string name="keyguard_missing_sim_message" product="default" msgid="6585414237800161146">"Der er ikke noget SIM-kort i telefonen."</string>
<string name="keyguard_missing_sim_instructions" msgid="7350295932015220392">"Indsæt et SIM-kort."</string>
<string name="keyguard_missing_sim_message_short" msgid="6327533369959764518">"SIM karta yo‘q"</string>
<string name="keyguard_missing_sim_message" product="tablet" msgid="4550152848200783542">"Planshetingizda SIM karta yo‘q."</string>
<string name="keyguard_missing_sim_message" product="default" msgid="6585414237800161146">"Telefoningizda SIM karta yo‘q."</string>
- <string name="keyguard_missing_sim_instructions" msgid="7350295932015220392">"Telefonga SIM kartani joylashtiring."</string>
- <string name="keyguard_missing_sim_instructions_long" msgid="589889372883904477">"SIM karta qo‘yilmagan yoki o‘qib bo‘lmayapti. SIM kartani joylashtiring."</string>
+ <string name="keyguard_missing_sim_instructions" msgid="7350295932015220392">"Telefonga SIM karta soling."</string>
+ <string name="keyguard_missing_sim_instructions_long" msgid="589889372883904477">"SIM karta solinmagan yoki u yaroqsiz. SIM karta soling."</string>
<string name="keyguard_permanent_disabled_sim_message_short" msgid="654102080186420706">"Foydalanib bo‘lmaydigan SIM karta."</string>
<string name="keyguard_permanent_disabled_sim_instructions" msgid="4683178224791318347">"SIM kartangiz butunlay bloklab qo‘yilgan.\n Yangi SIM karta olish uchun aloqa operatoringiz bilan bog‘laning."</string>
<string name="keyguard_sim_locked_message" msgid="953766009432168127">"SIM karta qulflangan."</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"Tot <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Hou"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Vervang"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"እስከ <xliff:g id="ID_1">%s</xliff:g> ድረስ"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"አቆይ"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ተካ"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"حتى <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"الإبقاء على الإعدادات"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"استبدال"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> vaxtına qədər"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Saxlayın"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Əvəz edin"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Zadrži"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zameni"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Да <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Пакінуць"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Замяніць"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"До <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Запазване"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Замяна"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> পর্যন্ত"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"রাখুন"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"বদলে দিন"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="accessibility_cell_data_off" msgid="443267573897409704">"Mobilni podaci su isključeni"</string>
<string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Dijeljenje Bluetooth veze."</string>
<string name="accessibility_airplane_mode" msgid="834748999790763092">"Način rada u avionu."</string>
- <string name="accessibility_vpn_on" msgid="5993385083262856059">"VPN uključen"</string>
+ <string name="accessibility_vpn_on" msgid="5993385083262856059">"VPN uključen."</string>
<string name="accessibility_no_sims" msgid="3957997018324995781">"Nema SIM kartice."</string>
<string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Promjena mreže operatera."</string>
<string name="accessibility_battery_details" msgid="7645516654955025422">"Otvori detalje o potrošnji baterije"</string>
<string name="quick_settings_cast_title" msgid="7709016546426454729">"Prebacivanje"</string>
<string name="quick_settings_casting" msgid="6601710681033353316">"Prebacivanje"</string>
<string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Neimenovani uređaj"</string>
- <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Spreman za prebacivanje"</string>
+ <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Spreman za emitiranje"</string>
<string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"Nema dostupnih uređaja"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Osvjetljenje"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
<string name="description_target_search" msgid="3091587249776033139">"Pretraživanje"</string>
<string name="description_direction_up" msgid="7169032478259485180">"Povucite gore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Povucite lijevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
- <string name="zen_priority_introduction" msgid="3070506961866919502">"Zvukovi i vibracije vas neće uznemiravati, osim alarma, podsjetnika, događaja i pozivalaca koje odredite."</string>
+ <string name="zen_priority_introduction" msgid="3070506961866919502">"Neće vas ometati zvukovi i vibracije, osim alarma, podsjetnika, događaja i pozivalaca koje odredite."</string>
<string name="zen_priority_customize_button" msgid="7948043278226955063">"Prilagodi"</string>
<string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Ovim se blokiraju SVI zvukovi i vibracije, uključujući alarme, muziku, videozapise i igre. I dalje ćete moći obavljati pozive."</string>
<string name="zen_silence_introduction" msgid="3137882381093271568">"Ovim se blokiraju SVI zvukovi i vibracije, uključujući alarme, muziku, video zapise i igre."</string>
<string name="right_keycode" msgid="708447961000848163">"Kôd tipke desno"</string>
<string name="left_icon" msgid="3096287125959387541">"Ikona lijevo"</string>
<string name="right_icon" msgid="3952104823293824311">"Ikona desno"</string>
- <string name="drag_to_add_tiles" msgid="7058945779098711293">"Povucite da dodate polja"</string>
+ <string name="drag_to_add_tiles" msgid="7058945779098711293">"Prevucite da dodate pločice"</string>
<string name="drag_to_remove_tiles" msgid="3361212377437088062">"Prevucite ovdje za uklanjanje"</string>
<string name="qs_edit" msgid="2232596095725105230">"Uredi"</string>
<string name="tuner_time" msgid="6572217313285536011">"Vrijeme"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Zadrži"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zamijeni"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Fins a les <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Conserva"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Substitueix"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Zachovat"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Nahradit"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="pip_phone_minimize" msgid="1079119422589131792">"Minimer"</string>
<string name="pip_phone_close" msgid="8416647892889710330">"Luk"</string>
<string name="pip_phone_dismiss_hint" msgid="6351678169095923899">"Træk nedad for at afvise"</string>
- <string name="pip_menu_title" msgid="3328510504196964712">"Billede i billede-menu"</string>
- <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> vises i billede i billede"</string>
+ <string name="pip_menu_title" msgid="3328510504196964712">"Menu for integreret billede"</string>
+ <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> vises som integreret billede"</string>
<string name="pip_notification_message" msgid="4171698133469539591">"Hvis du ikke ønsker, at <xliff:g id="NAME">%s</xliff:g> skal benytte denne funktion, kan du åbne indstillingerne og deaktivere den."</string>
<string name="pip_play" msgid="1417176722760265888">"Afspil"</string>
<string name="pip_pause" msgid="8881063404466476571">"Sæt på pause"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"Indtil <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Behold"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Erstat"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Bis <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Beibehalten"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Ersetzen"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Έως τις <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Διατήρηση"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Αντικατάσταση"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Until <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Keep"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Replace"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Until <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Keep"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Replace"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Until <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Keep"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Replace"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hasta la(s) <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Mantener"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Reemplazar"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hasta <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Conservar"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Reemplazar"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Kuni ajani <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Säilita"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Asenda"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> arte"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Utzi bere horretan"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Ordeztu"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"تا <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"حفظ شود"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"جایگزین کردن"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> asti"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Säilytä"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Korvaa"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Jusqu\'à <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Garder"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Remplacer"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Jusqu\'à <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Conserver"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Remplacer"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificacións"</string>
<string name="battery_low_title" msgid="6456385927409742437">"Queda pouca batería"</string>
<string name="battery_low_percent_format" msgid="2900940511201380775">"<xliff:g id="PERCENTAGE">%s</xliff:g> restante"</string>
- <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> restante. A función aforro de batería está activada."</string>
+ <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> restante. A función de aforro da batería está activada."</string>
<string name="invalid_charger" msgid="4549105996740522523">"Non compatible coa carga por USB.\nUtiliza só o cargador proporcionado."</string>
<string name="invalid_charger_title" msgid="3515740382572798460">"Non se admite a carga mediante USB."</string>
<string name="invalid_charger_text" msgid="5474997287953892710">"Utiliza soamente o cargador fornecido."</string>
<string name="status_bar_settings_mute_label" msgid="554682549917429396">"APAGAR"</string>
<string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
<string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificacións"</string>
- <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth ancorado"</string>
+ <string name="bluetooth_tethered" msgid="7094101612161133267">"Conexión compartida por Bluetooth"</string>
<string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Configurar métodos de entrada"</string>
<string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Teclado físico"</string>
<string name="usb_device_permission_prompt" msgid="834698001271562057">"Queres permitir que a aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> acceda ao dispositivo USB?"</string>
<string name="accessibility_cell_data" msgid="5326139158682385073">"Datos móbiles"</string>
<string name="accessibility_cell_data_on" msgid="5927098403452994422">"Os datos móbiles están activados"</string>
<string name="accessibility_cell_data_off" msgid="443267573897409704">"Os datos móbiles están desactivados"</string>
- <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Ancoraxe de Bluetooth."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Conexión compartida por Bluetooth."</string>
<string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avión"</string>
<string name="accessibility_vpn_on" msgid="5993385083262856059">"A VPN está activada."</string>
<string name="accessibility_no_sims" msgid="3957997018324995781">"Non hai tarxeta SIM"</string>
<string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"Activouse a lanterna."</string>
<string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"Desactivouse a inversión da cor."</string>
<string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"Activouse a inversión da cor."</string>
- <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Desactivouse a zona interactiva móbil."</string>
- <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Activouse a zona interactiva móbil."</string>
+ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Desactivouse a zona wifi móbil."</string>
+ <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Activouse a zona wifi móbil."</string>
<string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Detívose a emisión en pantalla."</string>
<string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de traballo desactivado."</string>
<string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de traballo activado."</string>
<string name="quick_settings_done" msgid="3402999958839153376">"Feito"</string>
<string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string>
<string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string>
- <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Ancoraxe á rede"</string>
+ <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Conexión compartida"</string>
<string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona wifi"</string>
<string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notificacións"</string>
<string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Lanterna"</string>
<string name="description_target_search" msgid="3091587249776033139">"Buscar"</string>
<string name="description_direction_up" msgid="7169032478259485180">"Pasa o dedo cara arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Pasa o dedo cara a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
- <string name="zen_priority_introduction" msgid="3070506961866919502">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas, recordatorios, eventos de emisores de chamada especificados."</string>
+ <string name="zen_priority_introduction" msgid="3070506961866919502">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas, recordatorios, eventos e os emisores de chamada especificados."</string>
<string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string>
<string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Esta acción bloquea TODOS os sons e vibracións, incluídos os das alarmas, música, vídeos e xogos. Aínda podes facer chamadas de teléfono."</string>
<string name="zen_silence_introduction" msgid="3137882381093271568">"Esta acción bloquea TODOS os sons e vibracións, incluídos os das alarmas, música, vídeos e xogos."</string>
<string name="snooze_undo" msgid="6074877317002985129">"DESFACER"</string>
<string name="snoozed_for_time" msgid="2390718332980204462">"Adiouse <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
<string name="battery_panel_title" msgid="7944156115535366613">"Uso de batería"</string>
- <string name="battery_detail_charging_summary" msgid="1279095653533044008">"A función aforro de batería non está dispoñible durante a carga"</string>
+ <string name="battery_detail_charging_summary" msgid="1279095653533044008">"A función de aforro da batería non está dispoñible durante a carga"</string>
<string name="battery_detail_switch_title" msgid="6285872470260795421">"Aforro de batería"</string>
<string name="battery_detail_switch_summary" msgid="9049111149407626804">"Reduce o rendemento e os datos en segundo plano"</string>
<string name="keyboard_key_button_template" msgid="6230056639734377300">"Botón <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"Ata: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Manter"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Substituír"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> સુધી"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"રાખો"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"બદલો"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> तक"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"रखें"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"बदलें"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Zadrži"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zamijeni"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Eddig: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Megtartás"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Csere"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Մինչև <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Պահել"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Փոխարինել"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hingga <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Simpan"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Ganti"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Þar til <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Halda"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Skipta út"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Fino alle ore <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Mantieni"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Sostituisci"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"אתרנט מנותק."</string>
<string name="accessibility_ethernet_connected" msgid="2692130313069182636">"אתרנט מחובר."</string>
<string name="accessibility_no_signal" msgid="7064645320782585167">"אין אות."</string>
- <string name="accessibility_not_connected" msgid="6395326276213402883">"×\9c×\90 ×\9e×\97×\95×\91ר."</string>
+ <string name="accessibility_not_connected" msgid="6395326276213402883">"×\90×\99×\9f ×\97×\99×\91×\95ר."</string>
<string name="accessibility_zero_bars" msgid="3806060224467027887">"אפס פסים."</string>
<string name="accessibility_one_bar" msgid="1685730113192081895">"פס אחד."</string>
<string name="accessibility_two_bars" msgid="6437363648385206679">"שני פסים."</string>
<string name="quick_settings_user_title" msgid="4467690427642392403">"משתמש"</string>
<string name="quick_settings_user_new_user" msgid="9030521362023479778">"משתמש חדש"</string>
<string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
- <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"×\9c×\90 ×\9e×\97×\95×\91ר"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"×\90×\99×\9f ×\97×\99×\91×\95ר"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"אין רשת"</string>
<string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi כבוי"</string>
<string name="quick_settings_wifi_on_label" msgid="7607810331387031235">"Wi-Fi פועל"</string>
<string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"החלף משתמש. המשתמש הנוכחי הוא <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string>
<string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"משתמש נוכחי <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string>
<string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"הצג פרופיל"</string>
- <string name="user_add_user" msgid="5110251524486079492">"×\94×\95סף משתמש"</string>
+ <string name="user_add_user" msgid="5110251524486079492">"×\94×\95ספת משתמש"</string>
<string name="user_new_user_name" msgid="426540612051178753">"משתמש חדש"</string>
<string name="guest_nickname" msgid="8059989128963789678">"אורח"</string>
<string name="guest_new_guest" msgid="600537543078847803">"הוסף אורח"</string>
<string name="snooze_option_15_min" msgid="1068727451405610715">"15 דקות"</string>
<string name="snooze_option_30_min" msgid="867081342535195788">"30 דקות"</string>
<string name="snooze_option_1_hour" msgid="1098086401880077154">"שעה אחת"</string>
- <string name="snooze_undo" msgid="6074877317002985129">"×\91×\98ל"</string>
+ <string name="snooze_undo" msgid="6074877317002985129">"×\91×\99×\98×\95ל"</string>
<string name="snoozed_for_time" msgid="2390718332980204462">"נדחה לטיפול בעוד <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
<string name="battery_panel_title" msgid="7944156115535366613">"שימוש בסוללה"</string>
<string name="battery_detail_charging_summary" msgid="1279095653533044008">"תכונת החיסכון בסוללה אינה זמינה בעת טעינת המכשיר"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"עד <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"שמור"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"החלף"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"終了時間: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"設定を維持"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"設定を変更"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g>-მდე"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"შენარჩუნება"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ჩანაცვლება"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> дейін"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Қалсын"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Ауыстыру"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"រហូតដល់ <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"រក្សានៅដដែល"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ជំនួស"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> ತನಕ"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"ಇರಿಸಿ"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ಬದಲಿಸಿ"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g>까지"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"유지"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"바꾸기"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="quick_settings_media_device_label" msgid="1302906836372603762">"Медиа түзмөгү"</string>
<string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
<string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Куткаруучуларга чалуу гана"</string>
- <string name="quick_settings_settings_label" msgid="5326556592578065401">"ТÑ\83Ñ\83Ñ\80алоолор"</string>
+ <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ð\96өндөөлөр"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Убакыт"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Мен"</string>
<string name="quick_settings_user_title" msgid="4467690427642392403">"Колдонуучу"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> чейин"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Ушундай калтыруу"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Алмаштыруу"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"ບໍ່ມີອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ຄວາມແຈ້ງ"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ອັດຕະໂນມັດ"</string>
- <string name="quick_settings_inversion_label" msgid="8790919884718619648">"ສະລັບສີ"</string>
+ <string name="quick_settings_inversion_label" msgid="8790919884718619648">"ສະຫຼັບສີ"</string>
<string name="quick_settings_color_space_label" msgid="853443689745584770">"ໂໝດການແກ້ໄຂສີ"</string>
<string name="quick_settings_more_settings" msgid="326112621462813682">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
<string name="quick_settings_done" msgid="3402999958839153376">"ແລ້ວໆ"</string>
<string name="description_direction_left" msgid="7207478719805562165">"ເລື່ອນໄປທາງຊ້າຍເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_priority_introduction" msgid="3070506961866919502">"ທ່ານຈະບໍ່ຖືກລົບກວນຈາກສຽງ ແລະການສັ່ນ, ຍົກເວັ້ນຈາກໂມງປຸກ, ການເຕືອນ, ເຫດການ, ແລະຜູ້ໂທທີ່ທ່ານລະບຸ."</string>
<string name="zen_priority_customize_button" msgid="7948043278226955063">"ປັບແຕ່ງ"</string>
- <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"àºàº±àº\99â\80\8bàº\99ີà»\89àº\9aâ\80\8bລັàºàº\81â\80\8bàº\97ຸàº\81â\80\8bສຽàº\87 à»\81ລະâ\80\8bàº\81າàº\99â\80\8bສັà»\88àº\99, ລວມâ\80\8bàº\97ັàº\87â\80\8bàº\88າàº\81â\80\8bà»\82ມàº\87â\80\8bàº\9bຸàº\81, à»\80àº\9eàº\87, ວິâ\80\8bàº\94ີâ\80\8bà»\82àº, à»\81ລະâ\80\8bà»\80àº\81ມ. àº\97à»\88າàº\99â\80\8bàº\8dັàº\87â\80\8bàº\88ະâ\80\8bສາâ\80\8bມາàº\94â\80\8bà»\82àº\97â\80\8bລະâ\80\8bສັàº\9aâ\80\8bà»\84àº\94à»\89."</string>
+ <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"àº\99ີà»\89àº\88ະà»\80àº\9bັàº\99àº\81າàº\99àº\9bິàº\94ສຽàº\87 à»\81ລະ àº\81າàº\99ສັà»\88àº\99àº\97ັàº\87à»\9dົàº\94 ຮວມàº\97ັàº\87ສຽàº\87à»\82ມàº\87àº\9bຸàº\81, à»\80àº\9eàº\87, ວິàº\94ີà»\82ຠà»\81ລະ à»\80àº\81ມàº\99ຳ. à»\81àº\95à»\88àº\97à»\88າàº\99àº\8dັàº\87ສາມາàº\94à»\82àº\97ລະສັàº\9aà»\84àº\94à»\89àº\9bົàº\81àº\81ະàº\95ິ."</string>
<string name="zen_silence_introduction" msgid="3137882381093271568">"ອັນນີ້ບລັອກທຸກສຽງ ແລະການສັ່ນ, ລວມທັງຈາກໂມງປຸກ, ເພງ, ວິດີໂອ, ແລະເກມ."</string>
<string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
<string name="speed_bump_explanation" msgid="1288875699658819755">"ການແຈ້ງເຕືອນທີ່ສຳຄັນໜ້ອຍກວ່າຢູ່ດ້ານລຸ່ມ"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"ຈົນຮອດ <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"ເກັບໄວ້"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ແທນທີ່"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Iki <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Palikti"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Pakeisti"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Līdz: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Paturēt"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Aizstāt"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"До <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Задржи"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Замени"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> വരെ"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"സൂക്ഷിക്കുക"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"മാറ്റിസ്ഥാപിക്കുക"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> хүртэл"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Хадгалах"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Солих"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> पर्यंत"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"ठेवा"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"पुनर्स्थित करा"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hingga <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Simpan"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Gantikan"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="accessibility_desc_notification_icon" msgid="8352414185263916335">"<xliff:g id="ID_1">%1$s</xliff:g> အကြောင်းကြားချက် − <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="dock_forced_resizable" msgid="5914261505436217520">"မျက်နှာပြင် ခွဲခြမ်းပြသမှုဖြင့် အက်ပ်သည် အလုပ်လုပ်မည် မဟုတ်ပါ။"</string>
<string name="dock_non_resizeble_failed_to_dock_text" msgid="3871617304250207291">"အက်ပ်သည် မျက်နှာပြင်ခွဲပြရန် ပံ့ပိုးထားခြင်းမရှိပါ။"</string>
- <string name="forced_resizable_secondary_display" msgid="4230857851756391925">"á\80¡á\80\80á\80ºá\80\95á\80ºá\80\9eá\80\8aá\80º á\80\92á\80¯á\80\90á\80á\80\9aá\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\95á\80¼á\80\84á\80ºá\80\95á\80¼á\80\9eá\80\99á\80¾á\80¯တွင် အလုပ်လုပ်မည် မဟုတ်ပါ။"</string>
- <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"á\80¡á\80\80á\80ºá\80\95á\80ºá\80\80á\80á\80¯ á\80\92á\80¯á\80\90á\80á\80\9aá\80\96á\80\94á\80ºá\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\95á\80¼á\80\84á\80ºá\80\95á\80¼á\80\9eá\80\99á\80¾á\80¯á\80\90á\80½á\80\84á\80º á\80\96á\80½á\80\84á\80·á\80ºရန်အတွက် ပံ့ပိုးမထားပါ။"</string>
+ <string name="forced_resizable_secondary_display" msgid="4230857851756391925">"á\80¤á\80¡á\80\80á\80ºá\80\95á\80ºá\80¡á\80\94á\80±á\80\96á\80¼á\80\84á\80·á\80º á\80\92á\80¯á\80\90á\80á\80\9aá\80\96á\80\94á\80ºá\80\9eá\80¬á\80¸á\80\95á\80¼á\80\84á\80ºá\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\95á\80¼á\80\84á\80ºá\80\95á\80±á\80«á\80ºတွင် အလုပ်လုပ်မည် မဟုတ်ပါ။"</string>
+ <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"á\80¤á\80¡á\80\80á\80ºá\80\95á\80ºá\80¡á\80\94á\80±á\80\96á\80¼á\80\84á\80·á\80º á\80\92á\80¯á\80\90á\80á\80\9aá\80\96á\80\94á\80ºá\80\9eá\80¬á\80¸á\80\95á\80¼á\80\84á\80ºá\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\95á\80¼á\80\84á\80ºá\80\95á\80±á\80«á\80ºá\80\90á\80½á\80\84á\80º á\80\96á\80½á\80\84á\80·á\80ºá\80\95á\80¼ရန်အတွက် ပံ့ပိုးမထားပါ။"</string>
<string name="accessibility_quick_settings_settings" msgid="6132460890024942157">"ဆက်တင်များကို ဖွင့်ပါ။"</string>
<string name="accessibility_quick_settings_expand" msgid="2375165227880477530">"အမြန်ဆက်တင်များကို ဖွင့်ပါ။"</string>
<string name="accessibility_quick_settings_collapse" msgid="1792625797142648105">"အမြန်ဆက်တင်များကို ပိတ်ပါ။"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> အထိ"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"သိမ်းထားရန်"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"အစားထိုးရန်"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Til <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Behold"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Erstatt"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
</string-array>
<string name="menu_ime" msgid="4998010205321292416">"किबोर्ड स्विचर"</string>
<string name="save" msgid="2311877285724540644">"सुरक्षित गर्नुहोस्"</string>
- <string name="reset" msgid="2448168080964209908">"पà¥\81नà¤\83सà¥\87à¤\9f à¤\97रà¥\8dनà¥\81"</string>
+ <string name="reset" msgid="2448168080964209908">"रिसà¥\87à¤\9f à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d"</string>
<string name="adjust_button_width" msgid="6138616087197632947">"बटनको चौडाइ समायोजन गर्नुहोस्"</string>
<string name="clipboard" msgid="1313879395099896312">"क्लिपबोर्ड"</string>
<string name="accessibility_key" msgid="5701989859305675896">"अनुकूलनको नेभिगेशन बटन"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> सम्म"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"राख्नुहोस्"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"प्रतिस्थापन गर्नुहोस्"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Tot <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Behouden"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Vervangen"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="dock_forced_resizable" msgid="5914261505436217520">"ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਐਪ ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਨਾਲ ਕੰਮ ਨਾ ਕਰੇ।"</string>
<string name="dock_non_resizeble_failed_to_dock_text" msgid="3871617304250207291">"ਐਪ ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਨੂੰ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।"</string>
<string name="forced_resizable_secondary_display" msgid="4230857851756391925">"ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਐਪ ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਕੰਮ ਨਾ ਕਰ ਸਕੇ।"</string>
- <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"à¨\90ਪ ਸà©\88à¨\95ੰਡਰà©\80 ਡਿਸਪਲà©\87à¨\9c਼ ਨà©\82à©° ਲਾਂਚ ਕਰਨ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।"</string>
+ <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"à¨\90ਪ ਸà©\88à¨\95ੰਡਰà©\80 ਡਿਸਪਲà©\87à¨\86à¨\82 \'ਤà©\87 ਲਾਂਚ ਕਰਨ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।"</string>
<string name="accessibility_quick_settings_settings" msgid="6132460890024942157">"ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ।"</string>
<string name="accessibility_quick_settings_expand" msgid="2375165227880477530">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਨੂੰ ਖੋਲ੍ਹੋ।"</string>
<string name="accessibility_quick_settings_collapse" msgid="1792625797142648105">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> ਤੱਕ"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"ਰੱਖੋ"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ਬਦਲੋ"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Zachowaj"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zastąp"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Até <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Manter"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Substituir"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Até à(s) <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Manter"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Substituir"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Até <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Manter"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Substituir"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Până la <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Păstrați"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Înlocuiți"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"До <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Сохранить"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Заменить"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> දක්වා"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"තබන්න"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"ප්රතිස්ථාපනය"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Ponechať"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Nahradiť"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Do <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Obdrži"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zamenjaj"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Deri në <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Mbaj"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Zëvendëso"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"До <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Задржи"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Замени"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Till <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Behåll"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Ersätt"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="dock_forced_resizable" msgid="5914261505436217520">"Huenda programu isifanye kazi kwenye skrini inayogawanywa."</string>
<string name="dock_non_resizeble_failed_to_dock_text" msgid="3871617304250207291">"Programu haiwezi kutumia skrini iliyogawanywa."</string>
<string name="forced_resizable_secondary_display" msgid="4230857851756391925">"Huenda programu isifanye kazi kwenye dirisha lingine."</string>
- <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"Programu haiwezi kutumia kipengele cha uzinduzi kwenye madirisha mengine."</string>
+ <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"Programu haiwezi kutumia kipengele cha kuonyesha kwenye madirisha mengine."</string>
<string name="accessibility_quick_settings_settings" msgid="6132460890024942157">"Fungua mipangilio."</string>
<string name="accessibility_quick_settings_expand" msgid="2375165227880477530">"Fungua mipangilio ya haraka."</string>
<string name="accessibility_quick_settings_collapse" msgid="1792625797142648105">"Funga mipangilio ya haraka."</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hadi <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Usibadilishe"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Badilisha"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> வரை"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"வைத்திரு"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"மாற்று"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="accessibility_desc_notification_icon" msgid="8352414185263916335">"<xliff:g id="ID_1">%1$s</xliff:g> నోటిఫికేషన్: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="dock_forced_resizable" msgid="5914261505436217520">"స్క్రీన్ విభజనతో అనువర్తనం పని చేయకపోవచ్చు."</string>
<string name="dock_non_resizeble_failed_to_dock_text" msgid="3871617304250207291">"అనువర్తనంలో స్క్రీన్ విభజనకు మద్దతు లేదు."</string>
- <string name="forced_resizable_secondary_display" msgid="4230857851756391925">"à°ªà±\8dà°°à°¤à±\8dయామà±\8dనాయ à°ªà±\8dరదరà±\8dశనపà±\88 యాప్ పని చేయకపోవచ్చు."</string>
- <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"à°ªà±\8dà°°à°¤à±\8dయామà±\8dనాయ à°ªà±\8dరదరà±\8dశనలపà±\88 à°ªà±\8dరారà°\82à°à°¾à°¨à°¿à°\95à°¿ యాప్ మద్దతు లేదు."</string>
+ <string name="forced_resizable_secondary_display" msgid="4230857851756391925">"à°ªà±\8dà°°à°¤à±\8dయామà±\8dనాయ à°ªà±\8dరదరà±\8dశనపà±\88 à°\86ప్ పని చేయకపోవచ్చు."</string>
+ <string name="activity_launch_on_secondary_display_failed_text" msgid="7793821742158306742">"à°ªà±\8dà°°à°¤à±\8dయామà±\8dనాయ à°ªà±\8dరదరà±\8dశనలపà±\88 à°ªà±\8dరారà°\82à°à°¾à°¨à°¿à°\95à°¿ à°\86ప్ మద్దతు లేదు."</string>
<string name="accessibility_quick_settings_settings" msgid="6132460890024942157">"సెట్టింగ్లను తెరవండి."</string>
<string name="accessibility_quick_settings_expand" msgid="2375165227880477530">"శీఘ్ర సెట్టింగ్లను తెరవండి."</string>
<string name="accessibility_quick_settings_collapse" msgid="1792625797142648105">"శీఘ్ర సెట్టింగ్లను మూసివేయండి."</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> వరకు"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"ఉంచు"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"భర్తీ చేయి"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"จนถึง <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"เก็บไว้"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"แทนที่"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Hanggang <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Panatilihin"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Palitan"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Bitiş: <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Koru"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Değiştir"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"До <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Залишити"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Замінити"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> تک"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"رکھیں"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"بدلیں"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="volume_dialog_accessibility_shown_message" msgid="1834631467074259998">"Ovoz balandligini boshqarish tugmalari ko‘rsatilgan: %s. Yopish uchun tepaga suring."</string>
<string name="volume_dialog_accessibility_dismissed_message" msgid="51543526013711399">"Ovoz balandligini boshqarish tugmalari yashirilgan"</string>
<string name="system_ui_tuner" msgid="708224127392452018">"SystemUI Tuner"</string>
- <string name="show_battery_percentage" msgid="5444136600512968798">"Batareya foizi ko‘rsatilsin"</string>
- <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Batareya quvvat olmayotgan vaqtda uning foizi holat qatorida ko‘rsatilsin"</string>
+ <string name="show_battery_percentage" msgid="5444136600512968798">"Batareya foizini chiqarish"</string>
+ <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Quvvat olmayotgan vaqtda batareya foizi holat qatorida chiqib turadi"</string>
<string name="quick_settings" msgid="10042998191725428">"Tezkor sozlamalar"</string>
<string name="status_bar" msgid="4877645476959324760">"Holat qatori"</string>
<string name="overview" msgid="4018602013895926956">"Umumiy ma’lumot"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"<xliff:g id="ID_1">%s</xliff:g> gacha"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Saqlab qolish"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Almashtirish"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Cho tới <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Giữ"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Thay thế"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"直到<xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"保留"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"替换"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"直向"</string>
<string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"橫向"</string>
<string name="quick_settings_ime_label" msgid="7073463064369468429">"輸入法"</string>
- <string name="quick_settings_location_label" msgid="5011327048748762257">"位置"</string>
- <string name="quick_settings_location_off_label" msgid="7464544086507331459">"位置關閉"</string>
+ <string name="quick_settings_location_label" msgid="5011327048748762257">"位置資訊"</string>
+ <string name="quick_settings_location_off_label" msgid="7464544086507331459">"位置資訊已關閉"</string>
<string name="quick_settings_media_device_label" msgid="1302906836372603762">"媒體裝置"</string>
<string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
<string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"只可撥打緊急電話"</string>
<string name="qs_dnd_until" msgid="3469471136280079874">"直至<xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"保留"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"取代"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"直到 <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"保留"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"取代"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
<string name="qs_dnd_until" msgid="3469471136280079874">"Kuze kube-<xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="qs_dnd_keep" msgid="1825009164681928736">"Gcina"</string>
<string name="qs_dnd_replace" msgid="8019520786644276623">"Buyisela"</string>
+ <!-- no translation found for running_foreground_services_title (381024150898615683) -->
+ <skip />
+ <!-- no translation found for running_foreground_services_msg (6326247670075574355) -->
+ <skip />
</resources>
private final ArrayMap<String, Integer> mPowerSaveWhitelistAppsExceptIdle = new ArrayMap<>();
/**
+ * Package names the user has white-listed using commandline option to opt out of
+ * power save restrictions, except for device idle mode.
+ */
+ private final ArraySet<String> mPowerSaveWhitelistUserAppsExceptIdle = new ArraySet<>();
+
+ /**
* Package names the system has white-listed to opt out of power save restrictions for
* all modes.
*/
}
}
+ public boolean addPowerSaveWhitelistExceptIdleInternal(String name) {
+ synchronized (this) {
+ try {
+ final ApplicationInfo ai = getContext().getPackageManager().getApplicationInfo(name,
+ PackageManager.MATCH_ANY_USER);
+ if (mPowerSaveWhitelistAppsExceptIdle.put(name, UserHandle.getAppId(ai.uid))
+ == null) {
+ mPowerSaveWhitelistUserAppsExceptIdle.add(name);
+ reportPowerSaveWhitelistChangedLocked();
+ mPowerSaveWhitelistExceptIdleAppIdArray = buildAppIdArray(
+ mPowerSaveWhitelistAppsExceptIdle, mPowerSaveWhitelistUserApps,
+ mPowerSaveWhitelistExceptIdleAppIds);
+ }
+ return true;
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+ }
+
+ public void resetPowerSaveWhitelistExceptIdleInternal() {
+ synchronized (this) {
+ if (mPowerSaveWhitelistAppsExceptIdle.removeAll(
+ mPowerSaveWhitelistUserAppsExceptIdle)) {
+ reportPowerSaveWhitelistChangedLocked();
+ mPowerSaveWhitelistExceptIdleAppIdArray = buildAppIdArray(
+ mPowerSaveWhitelistAppsExceptIdle, mPowerSaveWhitelistUserApps,
+ mPowerSaveWhitelistExceptIdleAppIds);
+ mPowerSaveWhitelistUserAppsExceptIdle.clear();
+ }
+ }
+ }
+
+ public boolean getPowerSaveWhitelistExceptIdleInternal(String name) {
+ synchronized (this) {
+ return mPowerSaveWhitelistAppsExceptIdle.containsKey(name);
+ }
+ }
+
public String[] getSystemPowerWhitelistExceptIdleInternal() {
synchronized (this) {
int size = mPowerSaveWhitelistAppsExceptIdle.size();
pw.println(" Print currently whitelisted apps.");
pw.println(" whitelist [package ...]");
pw.println(" Add (prefix with +) or remove (prefix with -) packages.");
+ pw.println(" except-idle-whitelist [package ...|reset]");
+ pw.println(" Prefix the package with '+' to add it to whitelist or "
+ + "'=' to check if it is already whitelisted");
+ pw.println(" [reset] will reset the whitelist to it's original state");
+ pw.println(" Note that unlike <whitelist> cmd, "
+ + "changes made using this won't be persisted across boots");
pw.println(" tempwhitelist");
pw.println(" Print packages that are temporarily whitelisted.");
pw.println(" tempwhitelist [-u USER] [-d DURATION] [package ..]");
} else {
dumpTempWhitelistSchedule(pw, false);
}
+ } else if ("except-idle-whitelist".equals(cmd)) {
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+ final long token = Binder.clearCallingIdentity();
+ try {
+ String arg = shell.getNextArg();
+ if (arg == null) {
+ pw.println("No arguments given");
+ return -1;
+ } else if ("reset".equals(arg)) {
+ resetPowerSaveWhitelistExceptIdleInternal();
+ } else {
+ do {
+ if (arg.length() < 1 || (arg.charAt(0) != '-'
+ && arg.charAt(0) != '+' && arg.charAt(0) != '=')) {
+ pw.println("Package must be prefixed with +, -, or =: " + arg);
+ return -1;
+ }
+ char op = arg.charAt(0);
+ String pkg = arg.substring(1);
+ if (op == '+') {
+ if (addPowerSaveWhitelistExceptIdleInternal(pkg)) {
+ pw.println("Added: " + pkg);
+ } else {
+ pw.println("Unknown package: " + pkg);
+ }
+ } else if (op == '=') {
+ pw.println(getPowerSaveWhitelistExceptIdleInternal(pkg));
+ } else {
+ pw.println("Unknown argument: " + arg);
+ return -1;
+ }
+ } while ((arg = shell.getNextArg()) != null);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
} else {
return shell.handleDefaultCommands(cmd);
}
import static android.app.ActivityManagerInternal.APP_TRANSITION_TIMEOUT;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_CALLING_PACKAGE_NAME;
-import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_CLASS_NAME;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_DELAY_MS;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_DEVICE_UPTIME_SECONDS;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_IS_EPHEMERAL;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_STARTING_WINDOW_DELAY_MS;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS;
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_CLASS_NAME;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_INSTANT_APP_LAUNCH_TOKEN;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_COLD_LAUNCH;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_HOT_LAUNCH;
final int stackId = launchedActivity != null && launchedActivity.getStack() != null
? launchedActivity.getStack().mStackId
: INVALID_STACK_ID;
+
+ if (mCurrentTransitionStartTime == INVALID_START_TIME) {
+ return;
+ }
+
final StackTransitionInfo info = mStackTransitionInfo.get(stackId);
if (launchedActivity != null && info != null) {
info.launchedActivity = launchedActivity;
}
}
+ /**
+ * Notifies the tracker that the visibility of an app is changing.
+ *
+ * @param activityRecord the app that is changing its visibility
+ * @param visible whether it's going to be visible or not
+ */
+ void notifyVisibilityChanged(ActivityRecord activityRecord, boolean visible) {
+ final StackTransitionInfo info = mStackTransitionInfo.get(activityRecord.getStackId());
+
+ // If we have an active transition that's waiting on a certain activity that will be
+ // invisible now, we'll never get onWindowsDrawn, so abort the transition if necessary.
+ if (info != null && !visible && info.launchedActivity == activityRecord) {
+ mStackTransitionInfo.remove(activityRecord.getStackId());
+ if (mStackTransitionInfo.size() == 0) {
+ reset(true /* abort */);
+ }
+ }
+ }
+
private boolean allStacksWindowsDrawn() {
for (int index = mStackTransitionInfo.size() - 1; index >= 0; index--) {
if (!mStackTransitionInfo.valueAt(index).loggedWindowsDrawn) {
import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE;
import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION;
import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+import static android.content.pm.ActivityInfo.isFixedOrientationLandscape;
+import static android.content.pm.ActivityInfo.isFixedOrientationPortrait;
import static android.content.res.Configuration.EMPTY;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
return task != null ? (T) task.getStack() : null;
}
- private int getStackId() {
+ int getStackId() {
return getStack() != null ? getStack().mStackId : INVALID_STACK_ID;
}
void setVisibility(boolean visible) {
mWindowContainerController.setVisibility(visible, mDeferHidingClient);
+ mStackSupervisor.mActivityMetricsLogger.notifyVisibilityChanged(this, visible);
}
// TODO: Look into merging with #setVisibility()
}
@Override
- void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
- super.onOverrideConfigurationChanged(overrideConfiguration);
- if (mWindowContainerController != null) {
- mWindowContainerController.onOverrideConfigurationChanged(
- overrideConfiguration, mBounds);
- // TODO(b/36505427): Can we consolidate the call points of onOverrideConfigurationSent()
- // to just use this method instead?
- onOverrideConfigurationSent();
+ void onOverrideConfigurationChanged(Configuration newConfig) {
+ final Configuration currentConfig = getOverrideConfiguration();
+ if (currentConfig.equals(newConfig)) {
+ return;
+ }
+ super.onOverrideConfigurationChanged(newConfig);
+ if (mWindowContainerController == null) {
+ return;
}
+ mWindowContainerController.onOverrideConfigurationChanged(newConfig, mBounds);
+ // TODO(b/36505427): Can we consolidate the call points of onOverrideConfigurationSent()
+ // to just use this method instead?
+ onOverrideConfigurationSent();
}
// TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
mTmpConfig.unset();
computeBounds(mTmpBounds);
if (mTmpBounds.equals(mBounds)) {
+ final ActivityStack stack = getStack();
+ if (!mBounds.isEmpty() || task == null || stack == null || !task.mFullscreen) {
+ // We don't want to influence the override configuration here if our task is in
+ // multi-window mode or there is a bounds specified to calculate the override
+ // config. In both of this cases the app should be compatible with whatever the
+ // current configuration is or will be.
+ return;
+ }
+
+ // Currently limited to the top activity for now to avoid situations where non-top
+ // visible activity and top might have conflicting requests putting the non-top activity
+ // windows in an odd state.
+ final ActivityRecord top = mStackSupervisor.topRunningActivityLocked();
+ final Configuration parentConfig = getParent().getConfiguration();
+ if (top != this || isConfigurationCompatible(parentConfig)) {
+ onOverrideConfigurationChanged(mTmpConfig);
+ } else if (isConfigurationCompatible(
+ mLastReportedConfiguration.getMergedConfiguration())) {
+ onOverrideConfigurationChanged(mLastReportedConfiguration.getMergedConfiguration());
+ }
return;
}
onOverrideConfigurationChanged(mTmpConfig);
}
+ /** Returns true if the configuration is compatible with this activity. */
+ private boolean isConfigurationCompatible(Configuration config) {
+ final int orientation = mWindowContainerController != null
+ ? mWindowContainerController.getOrientation() : info.screenOrientation;
+ if (isFixedOrientationPortrait(orientation)
+ && config.orientation != ORIENTATION_PORTRAIT) {
+ return false;
+ }
+ if (isFixedOrientationLandscape(orientation)
+ && config.orientation != ORIENTATION_LANDSCAPE) {
+ return false;
+ }
+ return true;
+ }
+
/**
* Computes the bounds to fit the Activity within the bounds of the {@link Configuration}.
*/
result.matchedByRootAffinity = false;
break;
} else if (!isDocument && !taskIsDocument
- && result.r == null && task.canMatchRootAffinity()) {
+ && result.r == null && task.rootAffinity != null) {
if (task.rootAffinity.equals(target.taskAffinity)) {
if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Found matching affinity candidate!");
// It is possible for multiple tasks to have the same root affinity especially
if (!mTmpFindTaskResult.matchedByRootAffinity) {
return mTmpFindTaskResult.r;
} else if (mTmpFindTaskResult.r.getDisplayId() == displayId) {
+ // Note: since the traversing through the stacks is top down, the floating
+ // tasks should always have lower priority than any affinity-matching tasks
+ // in the fullscreen stacks
affinityMatch = mTmpFindTaskResult.r;
}
}
}
}
+
if (DEBUG_TASKS && affinityMatch == null) Slog.d(TAG_TASKS, "No task found");
return affinityMatch;
}
sendPowerHintForLaunchStartIfNeeded(false /* forceSend */);
reusedActivity = setTargetStackAndMoveToFrontIfNeeded(reusedActivity);
- if (outActivity != null && outActivity.length > 0) {
- outActivity[0] = reusedActivity;
- }
if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) {
// We don't need to start a new activity, and the client said not to do anything
// We didn't do anything... but it was needed (a.k.a., client don't use that
// intent!) And for paranoia, make sure we have correctly resumed the top activity.
resumeTargetStackIfNeeded();
+ if (outActivity.length > 0) {
+ outActivity[0] = reusedActivity;
+ }
return START_TASK_TO_FRONT;
}
}
resolvedType = key.requestResolvedType;
}
+ final int callingUid = Binder.getCallingUid();
+ final int callingPid = Binder.getCallingPid();
+
+ final long origId = Binder.clearCallingIdentity();
+
if (whitelistDuration > 0) {
StringBuilder tag = new StringBuilder(64);
tag.append("pendingintent:");
- UserHandle.formatUid(tag, Binder.getCallingUid());
+ UserHandle.formatUid(tag, callingUid);
tag.append(":");
if (finalIntent.getAction() != null) {
tag.append(finalIntent.getAction());
} else if (finalIntent.getData() != null) {
tag.append(finalIntent.getData());
}
- owner.tempWhitelistForPendingIntentLocked(Binder.getCallingPid(),
- Binder.getCallingUid(), uid, whitelistDuration, tag.toString());
+ owner.tempWhitelistForPendingIntentLocked(callingPid,
+ callingUid, uid, whitelistDuration, tag.toString());
}
- final long origId = Binder.clearCallingIdentity();
-
boolean sendFinish = finishedReceiver != null;
int userId = key.userId;
if (userId == UserHandle.USER_CURRENT) {
return mLastNonFullscreenBounds;
}
- boolean canMatchRootAffinity() {
- // We don't allow root affinity matching on the pinned stack as no other task should
- // be launching in it based on affinity.
- return rootAffinity != null && getStackId() != PINNED_STACK_ID;
- }
-
void addStartingWindowsForVisibleActivities(boolean taskSwitch) {
for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) {
final ActivityRecord r = mActivities.get(activityNdx);
mFocusLossWasNotified = false;
// before dispatching a focus loss, check if the following conditions are met:
// 1/ the framework is not supposed to notify the focus loser on a DUCK loss
+ // (i.e. it has a focus controller that implements a ducking policy)
// 2/ it is a DUCK loss
// 3/ the focus loser isn't flagged as pausing in a DUCK loss
// if they are, do not notify the focus loser
&& fr != null) {
// candidate for enforcement by the framework
if (fr.mCallingUid != this.mCallingUid) {
- handled = mFocusController.duckPlayers(fr, this);
+ if ((mGrantFlags
+ & AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS) != 0) {
+ // the focus loser declared it would pause instead of duck, let it
+ // handle it (the framework doesn't pause for apps)
+ handled = false;
+ } else {
+ handled = mFocusController.duckPlayers(fr, this);
+ }
} // else: the focus change is within the same app, so let the dispatching
// happen as if the framework was not involved.
}
scheduleOpTimeOutLocked();
final Intent intent = new Intent().setComponent(job.getServiceComponent());
boolean binding = mContext.bindServiceAsUser(intent, this,
- Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND
- | Context.BIND_IMPORTANT_BACKGROUND,
+ Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,
new UserHandle(job.getUserId()));
if (!binding) {
if (DEBUG) {
return ;
}
- final boolean isSystemToast = isCallerSystem() || ("android".equals(pkg));
+ final boolean isSystemToast = isCallerSystemOrPhone() || ("android".equals(pkg));
final boolean isPackageSuspended =
isPackageSuspendedForUser(pkg, Binder.getCallingUid());
Binder.getCallingUid(), userId, true, false, "cancelNotificationWithTag", pkg);
// Don't allow client applications to cancel foreground service notis or autobundled
// summaries.
+ final int mustNotHaveFlags = isCallingUidSystem() ? 0 :
+ (Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_AUTOGROUP_SUMMARY);
cancelNotification(Binder.getCallingUid(), Binder.getCallingPid(), pkg, tag, id, 0,
- (Binder.getCallingUid() == Process.SYSTEM_UID
- ? 0 : Notification.FLAG_FOREGROUND_SERVICE)
- | (Binder.getCallingUid() == Process.SYSTEM_UID
- ? 0 : Notification.FLAG_AUTOGROUP_SUMMARY), false, userId,
- REASON_APP_CANCEL, null);
+ mustNotHaveFlags, false, userId, REASON_APP_CANCEL, null);
}
@Override
}
private void enforceSystemOrSystemUI(String message) {
- if (isCallerSystem()) return;
+ if (isCallerSystemOrPhone()) return;
getContext().enforceCallingPermission(android.Manifest.permission.STATUS_BAR_SERVICE,
message);
}
private int resolveNotificationUid(String opPackageName, int callingUid, int userId) {
// The system can post notifications on behalf of any package it wants
- if (isCallerSystem() && opPackageName != null && !"android".equals(opPackageName)) {
+ if (isCallerSystemOrPhone() && opPackageName != null && !"android".equals(opPackageName)) {
try {
return getContext().getPackageManager()
.getPackageUidAsUser(opPackageName, userId);
private boolean checkDisqualifyingFeatures(int userId, int callingUid, int id, String tag,
NotificationRecord r) {
final String pkg = r.sbn.getPackageName();
- final boolean isSystemNotification = isUidSystem(callingUid) || ("android".equals(pkg));
+ final boolean isSystemNotification =
+ isUidSystemOrPhone(callingUid) || ("android".equals(pkg));
final boolean isNotificationFromListener = mListeners.isListenerPackage(pkg);
// Limit the number of notifications that any given package except the android
mNotificationsByKey.remove(recordInList.sbn.getKey());
wasPosted = true;
}
- if ((recordInList = findNotificationByListLocked(mEnqueuedNotifications, r.getKey()))
+ while ((recordInList = findNotificationByListLocked(mEnqueuedNotifications, r.getKey()))
!= null) {
mEnqueuedNotifications.remove(recordInList);
}
}
}
- protected boolean isUidSystem(int uid) {
+ protected boolean isCallingUidSystem() {
+ final int uid = Binder.getCallingUid();
+ return uid == Process.SYSTEM_UID;
+ }
+
+ protected boolean isUidSystemOrPhone(int uid) {
final int appid = UserHandle.getAppId(uid);
return (appid == Process.SYSTEM_UID || appid == Process.PHONE_UID || uid == 0);
}
- protected boolean isCallerSystem() {
- return isUidSystem(Binder.getCallingUid());
+ // TODO: Most calls should probably move to isCallerSystem.
+ protected boolean isCallerSystemOrPhone() {
+ return isUidSystemOrPhone(Binder.getCallingUid());
}
private void checkCallerIsSystem() {
- if (isCallerSystem()) {
+ if (isCallerSystemOrPhone()) {
return;
}
throw new SecurityException("Disallowed call for uid " + Binder.getCallingUid());
}
private void checkCallerIsSystemOrSameApp(String pkg) {
- if (isCallerSystem()) {
+ if (isCallerSystemOrPhone()) {
return;
}
checkCallerIsSameApp(pkg);
private boolean isCallerInstantApp(String pkg) {
// System is always allowed to act for ephemeral apps.
- if (isCallerSystem()) {
+ if (isCallerSystemOrPhone()) {
return false;
}
private final SurfaceFlingerVsyncChoreographer mSfChoreographer;
private Choreographer mChoreographer;
- private boolean mAnimationScheduled;
+ /**
+ * Indicates whether we have an animation frame callback scheduled, which will happen at
+ * vsync-app and then schedule the animation tick at the right time (vsync-sf).
+ */
+ private boolean mAnimationFrameCallbackScheduled;
+
+ /**
+ * Indicates whether we have an animation tick scheduled. The tick is the thing that actually
+ * executes the animation step, which will happen at vsync-sf.
+ */
+ private boolean mAnimationTickScheduled;
WindowAnimator(final WindowManagerService service) {
mService = service;
mService.getDefaultDisplayContentLocked().getDisplay(), mChoreographer);
mAnimationTick = () -> {
synchronized (mService.mWindowMap) {
- mAnimationScheduled = false;
+ mAnimationTickScheduled = false;
animateLocked(mCurrentFrameTime);
}
};
mAnimationFrameCallback = frameTimeNs -> {
- mCurrentFrameTime = frameTimeNs;
- mSfChoreographer.scheduleAtSfVsync(mAnimationTick);
+ synchronized (mService.mWindowMap) {
+ mCurrentFrameTime = frameTimeNs;
+ mAnimationFrameCallbackScheduled = false;
+ if (mAnimationTickScheduled) {
+ return;
+ }
+ mAnimationTickScheduled = true;
+ mSfChoreographer.scheduleAtSfVsync(mAnimationTick);
+ }
};
}
}
void scheduleAnimation() {
- if (!mAnimationScheduled) {
- mAnimationScheduled = true;
+ if (!mAnimationFrameCallbackScheduled) {
+ mAnimationFrameCallbackScheduled = true;
mChoreographer.postFrameCallback(mAnimationFrameCallback);
}
}
}
boolean isAnimationScheduled() {
- return mAnimationScheduled;
+ return mAnimationFrameCallbackScheduled || mAnimationTickScheduled;
}
Choreographer getChoreographer() {
public TestableNotificationManagerService(Context context) { super(context); }
@Override
- protected boolean isCallerSystem() {
+ protected boolean isCallingUidSystem() {
+ return true;
+ }
+
+ @Override
+ protected boolean isCallerSystemOrPhone() {
return true;
}
}
@Test
+ public void testCancelAfterSecondEnqueueDoesNotSpecifyForegroundFlag() throws Exception {
+ final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ sbn.getNotification().flags =
+ Notification.FLAG_ONGOING_EVENT | Notification.FLAG_FOREGROUND_SERVICE;
+ mBinderService.enqueueNotificationWithTag(PKG, "opPkg", "tag",
+ sbn.getId(), sbn.getNotification(), sbn.getUserId());
+ sbn.getNotification().flags = Notification.FLAG_ONGOING_EVENT;
+ mBinderService.enqueueNotificationWithTag(PKG, "opPkg", "tag",
+ sbn.getId(), sbn.getNotification(), sbn.getUserId());
+ mBinderService.cancelNotificationWithTag(PKG, "tag", sbn.getId(), sbn.getUserId());
+ waitForIdle();
+ assertEquals(0, mBinderService.getActiveNotifications(sbn.getPackageName()).length);
+ }
+
+ @Test
public void testFindGroupNotificationsLocked() throws Exception {
// make sure the same notification can be found in both lists and returned
final NotificationRecord group1 = generateNotificationRecord(
}
}
-
@Test
public void testTvExtenderChannelOverride_onTv() throws Exception {
mNotificationManagerService.setIsTelevision(true);