diff options
407 files changed, 3866 insertions, 1930 deletions
diff --git a/api/current.txt b/api/current.txt index 38bb68be55a9..d3910764cac0 100644 --- a/api/current.txt +++ b/api/current.txt @@ -6106,17 +6106,15 @@ package android.app { public final class WallpaperColors implements android.os.Parcelable { ctor public WallpaperColors(android.os.Parcel); - ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color, int); + ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color); method public int describeContents(); method public static android.app.WallpaperColors fromBitmap(android.graphics.Bitmap); method public static android.app.WallpaperColors fromDrawable(android.graphics.drawable.Drawable); - method public int getColorHints(); method public android.graphics.Color getPrimaryColor(); method public android.graphics.Color getSecondaryColor(); method public android.graphics.Color getTertiaryColor(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; - field public static final int HINT_SUPPORTS_DARK_TEXT = 1; // 0x1 } public final class WallpaperInfo implements android.os.Parcelable { @@ -52248,6 +52246,7 @@ package dalvik.system { } public final class InMemoryDexClassLoader extends dalvik.system.BaseDexClassLoader { + ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.ClassLoader); ctor public InMemoryDexClassLoader(java.nio.ByteBuffer, java.lang.ClassLoader); } diff --git a/api/system-current.txt b/api/system-current.txt index d98319cc9c79..a2bb2181360f 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6318,17 +6318,15 @@ package android.app { public final class WallpaperColors implements android.os.Parcelable { ctor public WallpaperColors(android.os.Parcel); - ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color, int); + ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color); method public int describeContents(); method public static android.app.WallpaperColors fromBitmap(android.graphics.Bitmap); method public static android.app.WallpaperColors fromDrawable(android.graphics.drawable.Drawable); - method public int getColorHints(); method public android.graphics.Color getPrimaryColor(); method public android.graphics.Color getSecondaryColor(); method public android.graphics.Color getTertiaryColor(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; - field public static final int HINT_SUPPORTS_DARK_TEXT = 1; // 0x1 } public final class WallpaperInfo implements android.os.Parcelable { @@ -56173,6 +56171,7 @@ package dalvik.system { } public final class InMemoryDexClassLoader extends dalvik.system.BaseDexClassLoader { + ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.ClassLoader); ctor public InMemoryDexClassLoader(java.nio.ByteBuffer, java.lang.ClassLoader); } diff --git a/api/test-current.txt b/api/test-current.txt index 94bfe84c88d0..deb32586c535 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -6127,17 +6127,15 @@ package android.app { public final class WallpaperColors implements android.os.Parcelable { ctor public WallpaperColors(android.os.Parcel); - ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color, int); + ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color); method public int describeContents(); method public static android.app.WallpaperColors fromBitmap(android.graphics.Bitmap); method public static android.app.WallpaperColors fromDrawable(android.graphics.drawable.Drawable); - method public int getColorHints(); method public android.graphics.Color getPrimaryColor(); method public android.graphics.Color getSecondaryColor(); method public android.graphics.Color getTertiaryColor(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR; - field public static final int HINT_SUPPORTS_DARK_TEXT = 1; // 0x1 } public final class WallpaperInfo implements android.os.Parcelable { @@ -44233,6 +44231,7 @@ package android.view { method public abstract void invalidate(); method public void invalidateContentRect(); method public boolean isTitleOptional(); + method public boolean isUiFocusable(); method public void onWindowFocusChanged(boolean); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); @@ -52686,6 +52685,7 @@ package dalvik.system { } public final class InMemoryDexClassLoader extends dalvik.system.BaseDexClassLoader { + ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.ClassLoader); ctor public InMemoryDexClassLoader(java.nio.ByteBuffer, java.lang.ClassLoader); } diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index cb648d59b222..1c1d2cebc3a1 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -5692,11 +5692,12 @@ public final class ActivityThread { // Allow disk access during application and provider setup. This could // block processing ordered broadcasts, but later processing would // probably end up doing the same disk access. + Application app; final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskWrites(); try { // If the app is being launched for full backup or restore, bring it up in // a restricted environment with the base application class. - Application app = data.info.makeApplication(data.restrictedBackupMode, null); + app = data.info.makeApplication(data.restrictedBackupMode, null); mInitialApplication = app; // don't bring up providers in restricted mode; they may depend on the @@ -5720,20 +5721,20 @@ public final class ActivityThread { "Exception thrown in onCreate() of " + data.instrumentationName + ": " + e.toString(), e); } - - try { - mInstrumentation.callApplicationOnCreate(app); - } catch (Exception e) { - if (!mInstrumentation.onException(app, e)) { - throw new RuntimeException( - "Unable to create application " + app.getClass().getName() - + ": " + e.toString(), e); - } - } } finally { StrictMode.setThreadPolicy(savedPolicy); } + try { + mInstrumentation.callApplicationOnCreate(app); + } catch (Exception e) { + if (!mInstrumentation.onException(app, e)) { + throw new RuntimeException( + "Unable to create application " + app.getClass().getName() + + ": " + e.toString(), e); + } + } + // Preload fonts resources FontsContract.setApplicationContextForResources(appContext); try { diff --git a/core/java/android/app/ProgressDialog.java b/core/java/android/app/ProgressDialog.java index 8ec9622ebe34..8a083ebcd7e9 100644 --- a/core/java/android/app/ProgressDialog.java +++ b/core/java/android/app/ProgressDialog.java @@ -42,8 +42,12 @@ import java.text.NumberFormat; * * <p>The progress range is 0 to {@link #getMax() max}.</p> * - * @deprecated Use a progress indicator such as ProgressBar inline inside of - * an activity rather than using this modal dialog. + * @deprecated <code>ProgressDialog</code> is a modal dialog, which prevents the + * user from interacting with the app. Instead of using this class, you should + * use a progress indicator like {@link android.widget.ProgressBar}, which can + * be embedded in your app's UI. Alternatively, you can use a + * <a href="/guide/topics/ui/notifiers/notifications.html">notification</a> + * to inform the user of the task's progress. */ @Deprecated public class ProgressDialog extends AlertDialog { diff --git a/core/java/android/app/WallpaperColors.java b/core/java/android/app/WallpaperColors.java index 8f172ba806f6..57c7efca5715 100644 --- a/core/java/android/app/WallpaperColors.java +++ b/core/java/android/app/WallpaperColors.java @@ -36,16 +36,9 @@ import java.util.List; /** * Provides information about the colors of a wallpaper. * <p> - * This class contains two main components: - * <ul> - * <li>Named colors: Most visually representative colors of a wallpaper. Can be either + * Exposes the 3 most visually representative colors of a wallpaper. Can be either * {@link WallpaperColors#getPrimaryColor()}, {@link WallpaperColors#getSecondaryColor()} * or {@link WallpaperColors#getTertiaryColor()}. - * </li> - * <li>Hints: How colors may affect other system components. Currently the only supported hint is - * {@link WallpaperColors#HINT_SUPPORTS_DARK_TEXT}, which specifies if dark text is preferred - * over the wallpaper.</li> - * </ul> */ public final class WallpaperColors implements Parcelable { @@ -53,6 +46,7 @@ public final class WallpaperColors implements Parcelable { * Specifies that dark text is preferred over the current wallpaper for best presentation. * <p> * eg. A launcher may set its text color to black if this flag is specified. + * @hide */ public static final int HINT_SUPPORTS_DARK_TEXT = 0x1; @@ -91,9 +85,8 @@ public final class WallpaperColors implements Parcelable { /** * Constructs {@link WallpaperColors} from a drawable. * <p> - * Main colors will be extracted from the drawable and hints will be calculated. + * Main colors will be extracted from the drawable. * - * @see WallpaperColors#HINT_SUPPORTS_DARK_TEXT * @param drawable Source where to extract from. */ public static WallpaperColors fromDrawable(Drawable drawable) { @@ -122,9 +115,8 @@ public final class WallpaperColors implements Parcelable { /** * Constructs {@link WallpaperColors} from a bitmap. * <p> - * Main colors will be extracted from the bitmap and hints will be calculated. + * Main colors will be extracted from the bitmap. * - * @see WallpaperColors#HINT_SUPPORTS_DARK_TEXT * @param bitmap Source where to extract from. */ public static WallpaperColors fromBitmap(@NonNull Bitmap bitmap) { @@ -185,6 +177,20 @@ public final class WallpaperColors implements Parcelable { } /** + * Constructs a new object from three colors. + * + * @param primaryColor Primary color. + * @param secondaryColor Secondary color. + * @param tertiaryColor Tertiary color. + * @see WallpaperColors#fromBitmap(Bitmap) + * @see WallpaperColors#fromDrawable(Drawable) + */ + public WallpaperColors(@NonNull Color primaryColor, @Nullable Color secondaryColor, + @Nullable Color tertiaryColor) { + this(primaryColor, secondaryColor, tertiaryColor, 0); + } + + /** * Constructs a new object from three colors, where hints can be specified. * * @param primaryColor Primary color. @@ -194,6 +200,7 @@ public final class WallpaperColors implements Parcelable { * @see WallpaperColors#HINT_SUPPORTS_DARK_TEXT * @see WallpaperColors#fromBitmap(Bitmap) * @see WallpaperColors#fromDrawable(Drawable) + * @hide */ public WallpaperColors(@NonNull Color primaryColor, @Nullable Color secondaryColor, @Nullable Color tertiaryColor, int colorHints) { @@ -307,6 +314,7 @@ public final class WallpaperColors implements Parcelable { * * @see WallpaperColors#HINT_SUPPORTS_DARK_TEXT * @return True if dark text is supported. + * @hide */ public int getColorHints() { return mColorHints; diff --git a/core/java/android/app/admin/ConnectEvent.java b/core/java/android/app/admin/ConnectEvent.java index 423ee52ee6a1..ffd38e2b8760 100644 --- a/core/java/android/app/admin/ConnectEvent.java +++ b/core/java/android/app/admin/ConnectEvent.java @@ -23,7 +23,11 @@ import java.net.InetAddress; import java.net.UnknownHostException; /** - * A class that represents a connect library call event. + * A class that represents a TCP connect event initiated through the standard network stack. + * + * <p>It contains information about the originating app as well as the remote TCP endpoint. + * + * <p>Support both IPv4 and IPv6 connections. */ public final class ConnectEvent extends NetworkEvent implements Parcelable { diff --git a/core/java/android/app/admin/DnsEvent.java b/core/java/android/app/admin/DnsEvent.java index c21725f0e86f..f84c5b00a135 100644 --- a/core/java/android/app/admin/DnsEvent.java +++ b/core/java/android/app/admin/DnsEvent.java @@ -26,7 +26,10 @@ import java.util.Collections; import java.util.List; /** - * A class that represents a DNS lookup event. + * A class that represents a DNS lookup event initiated through the standard network stack. + * + * <p>It contains information about the originating app as well as the DNS hostname and resolved + * IP addresses. */ public final class DnsEvent extends NetworkEvent implements Parcelable { diff --git a/core/java/android/app/usage/ExternalStorageStats.java b/core/java/android/app/usage/ExternalStorageStats.java index d7e570fea4d7..f00e5c29cd75 100644 --- a/core/java/android/app/usage/ExternalStorageStats.java +++ b/core/java/android/app/usage/ExternalStorageStats.java @@ -33,6 +33,7 @@ public final class ExternalStorageStats implements Parcelable { /** {@hide} */ public long videoBytes; /** {@hide} */ public long imageBytes; /** {@hide} */ public long appBytes; + /** {@hide} */ public long obbBytes; /** * Return the total bytes used by all files in the shared/external storage @@ -97,6 +98,11 @@ public final class ExternalStorageStats implements Parcelable { } /** {@hide} */ + public @BytesLong long getObbBytes() { + return obbBytes; + } + + /** {@hide} */ public ExternalStorageStats() { } @@ -107,6 +113,7 @@ public final class ExternalStorageStats implements Parcelable { this.videoBytes = in.readLong(); this.imageBytes = in.readLong(); this.appBytes = in.readLong(); + this.obbBytes = in.readLong(); } @Override @@ -121,6 +128,7 @@ public final class ExternalStorageStats implements Parcelable { dest.writeLong(videoBytes); dest.writeLong(imageBytes); dest.writeLong(appBytes); + dest.writeLong(obbBytes); } public static final Creator<ExternalStorageStats> CREATOR = new Creator<ExternalStorageStats>() { diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index be31d1b0b5e5..9b4ad73508d9 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -1291,7 +1291,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration changed |= ActivityInfo.CONFIG_SCREEN_SIZE; setAppBounds(delta.appBounds); } - if (delta.assetsSeq != ASSETS_SEQ_UNDEFINED) { + if (delta.assetsSeq != ASSETS_SEQ_UNDEFINED && delta.assetsSeq != assetsSeq) { changed |= ActivityInfo.CONFIG_ASSETS_PATHS; assetsSeq = delta.assetsSeq; } diff --git a/core/java/android/database/ContentObserver.java b/core/java/android/database/ContentObserver.java index 5f01e300bf42..4795e979f644 100644 --- a/core/java/android/database/ContentObserver.java +++ b/core/java/android/database/ContentObserver.java @@ -193,6 +193,11 @@ public abstract class ContentObserver { */ private void dispatchChange(boolean selfChange, Uri uri, int userId) { if (mHandler == null) { + synchronized (mLock) { + if (mTransport == null) { + return; + } + } onChange(selfChange, uri, userId); } else { mHandler.post(new NotificationRunnable(selfChange, uri, userId)); @@ -213,6 +218,11 @@ public abstract class ContentObserver { @Override public void run() { + synchronized (mLock) { + if (mTransport == null) { + return; + } + } ContentObserver.this.onChange(mSelfChange, mUri, mUserId); } } diff --git a/core/java/android/database/sqlite/SQLiteConnectionPool.java b/core/java/android/database/sqlite/SQLiteConnectionPool.java index 3a1714cedde9..cba730363c3d 100644 --- a/core/java/android/database/sqlite/SQLiteConnectionPool.java +++ b/core/java/android/database/sqlite/SQLiteConnectionPool.java @@ -16,8 +16,7 @@ package android.database.sqlite; -import dalvik.system.CloseGuard; - +import android.app.ActivityManager; import android.database.sqlite.SQLiteDebug.DbStats; import android.os.CancellationSignal; import android.os.OperationCanceledException; @@ -26,6 +25,8 @@ import android.util.Log; import android.util.PrefixPrinter; import android.util.Printer; +import dalvik.system.CloseGuard; + import java.io.Closeable; import java.util.ArrayList; import java.util.Map; @@ -147,6 +148,11 @@ public final class SQLiteConnectionPool implements Closeable { private SQLiteConnectionPool(SQLiteDatabaseConfiguration configuration) { mConfiguration = new SQLiteDatabaseConfiguration(configuration); + // Disable lookaside allocator on low-RAM devices + if (ActivityManager.isLowRamDeviceStatic()) { + mConfiguration.lookasideSlotCount = 0; + mConfiguration.lookasideSlotSize = 0; + } setMaxConnectionPoolSizeLocked(); } @@ -1004,7 +1010,10 @@ public final class SQLiteConnectionPool implements Closeable { printer.println("Connection pool for " + mConfiguration.path + ":"); printer.println(" Open: " + mIsOpen); printer.println(" Max connections: " + mMaxConnectionPoolSize); - + if (mConfiguration.isLookasideConfigSet()) { + printer.println(" Lookaside config: sz=" + mConfiguration.lookasideSlotSize + + " cnt=" + mConfiguration.lookasideSlotCount); + } printer.println(" Available primary connection:"); if (mAvailablePrimaryConnection != null) { mAvailablePrimaryConnection.dump(indentedPrinter, verbose); diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index 7406b3fd1f28..ea2b89e010e7 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -2366,6 +2366,10 @@ public final class SQLiteDatabase extends SQLiteClosable { * <p>SQLite default settings will be used, if this method isn't called. * Use {@code setLookasideConfig(0,0)} to disable lookaside * + * <p><strong>Note:</strong> Provided slotSize/slotCount configuration is just a + * recommendation. The system may choose different values depending on a device, e.g. + * lookaside allocations can be disabled on low-RAM devices + * * @param slotSize The size in bytes of each lookaside slot. * @param slotCount The total number of lookaside memory slots per database connection. */ diff --git a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java index 1435c83c53dc..7f09b73adaa7 100644 --- a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java +++ b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java @@ -180,4 +180,8 @@ public final class SQLiteDatabaseConfiguration { } return EMAIL_IN_DB_PATTERN.matcher(path).replaceAll("XX@YY"); } + + boolean isLookasideConfigSet() { + return lookasideSlotCount >= 0 && lookasideSlotSize >= 0; + } } diff --git a/core/java/android/database/sqlite/SQLiteOpenHelper.java b/core/java/android/database/sqlite/SQLiteOpenHelper.java index 44a72ddd1f7a..c19db82a81f7 100644 --- a/core/java/android/database/sqlite/SQLiteOpenHelper.java +++ b/core/java/android/database/sqlite/SQLiteOpenHelper.java @@ -176,6 +176,10 @@ public abstract class SQLiteOpenHelper { * <p>SQLite default settings will be used, if this method isn't called. * Use {@code setLookasideConfig(0,0)} to disable lookaside * + * <p><strong>Note:</strong> Provided slotSize/slotCount configuration is just a recommendation. + * The system may choose different values depending on a device, e.g. lookaside allocations + * can be disabled on low-RAM devices + * * @param slotSize The size in bytes of each lookaside slot. * @param slotCount The total number of lookaside memory slots per database connection. */ diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java index 7678678f3513..218e4f223549 100644 --- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java +++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java @@ -253,6 +253,20 @@ public final class ApduServiceInfo implements Parcelable { Log.e(TAG, "Ignoring invalid or duplicate aid: " + aid); } a.recycle(); + } else if (eventType == XmlPullParser.START_TAG && + tagName.equals("aid-suffix-filter") && currentGroup != null) { + final TypedArray a = res.obtainAttributes(attrs, + com.android.internal.R.styleable.AidFilter); + String aid = a.getString(com.android.internal.R.styleable.AidFilter_name). + toUpperCase(); + // Add wildcard char to indicate suffix + aid = aid.concat("#"); + if (CardEmulation.isValidAid(aid) && !currentGroup.aids.contains(aid)) { + currentGroup.aids.add(aid); + } else { + Log.e(TAG, "Ignoring invalid or duplicate aid: " + aid); + } + a.recycle(); } } } catch (NameNotFoundException e) { @@ -297,6 +311,17 @@ public final class ApduServiceInfo implements Parcelable { return prefixAids; } + public List<String> getSubsetAids() { + final ArrayList<String> subsetAids = new ArrayList<String>(); + for (AidGroup group : getAidGroups()) { + for (String aid : group.aids) { + if (aid.endsWith("#")) { + subsetAids.add(aid); + } + } + } + return subsetAids; + } /** * Returns the registered AID group for this category. */ diff --git a/core/java/android/nfc/cardemulation/CardEmulation.java b/core/java/android/nfc/cardemulation/CardEmulation.java index b49288e6e59e..6dd799396599 100644 --- a/core/java/android/nfc/cardemulation/CardEmulation.java +++ b/core/java/android/nfc/cardemulation/CardEmulation.java @@ -606,6 +606,8 @@ public final class CardEmulation { * <li>Consist of only hex characters * <li>Additionally, we allow an asterisk at the end, to indicate * a prefix + * <li>Additinally we allow an (#) at symbol at the end, to indicate + * a subset * </ul> * * @hide @@ -614,20 +616,20 @@ public final class CardEmulation { if (aid == null) return false; - // If a prefix AID, the total length must be odd (even # of AID chars + '*') - if (aid.endsWith("*") && ((aid.length() % 2) == 0)) { + // If a prefix/subset AID, the total length must be odd (even # of AID chars + '*') + if ((aid.endsWith("*") || aid.endsWith("#")) && ((aid.length() % 2) == 0)) { Log.e(TAG, "AID " + aid + " is not a valid AID."); return false; } - // If not a prefix AID, the total length must be even (even # of AID chars) - if (!aid.endsWith("*") && ((aid.length() % 2) != 0)) { + // If not a prefix/subset AID, the total length must be even (even # of AID chars) + if ((!(aid.endsWith("*") || aid.endsWith("#"))) && ((aid.length() % 2) != 0)) { Log.e(TAG, "AID " + aid + " is not a valid AID."); return false; } // Verify hex characters - if (!aid.matches("[0-9A-Fa-f]{10,32}\\*?")) { + if (!aid.matches("[0-9A-Fa-f]{10,32}\\*?\\#?")) { Log.e(TAG, "AID " + aid + " is not a valid AID."); return false; } diff --git a/core/java/android/nfc/cardemulation/HostNfcFService.java b/core/java/android/nfc/cardemulation/HostNfcFService.java index 27c4976786f4..fd0d8adf2998 100644 --- a/core/java/android/nfc/cardemulation/HostNfcFService.java +++ b/core/java/android/nfc/cardemulation/HostNfcFService.java @@ -64,6 +64,7 @@ import android.util.Log; * android:description="@string/servicedesc"> * <system-code-filter android:name="4000"/> * <nfcid2-filter android:name="02FE000000000000"/> + <t3tPmm-filter android:name="FFFFFFFFFFFFFFFF"/> * </host-nfcf-service> * </pre> * @@ -76,6 +77,7 @@ import android.util.Log; * <ul> * <li>Exactly one {@link android.R.styleable#SystemCodeFilter <system-code-filter>} tag.</li> * <li>Exactly one {@link android.R.styleable#Nfcid2Filter <nfcid2-filter>} tag.</li> + * <li>Zero or one {@link android.R.styleable#T3tPmmFilter <t3tPmm-filter>} tag.</li> * </ul> * </p> * diff --git a/core/java/android/nfc/cardemulation/NfcFServiceInfo.java b/core/java/android/nfc/cardemulation/NfcFServiceInfo.java index b93eec11c342..4201935241d9 100644 --- a/core/java/android/nfc/cardemulation/NfcFServiceInfo.java +++ b/core/java/android/nfc/cardemulation/NfcFServiceInfo.java @@ -18,9 +18,9 @@ package android.nfc.cardemulation; import android.content.ComponentName; import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; -import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; @@ -80,11 +80,16 @@ public final class NfcFServiceInfo implements Parcelable { final int mUid; /** + * LF_T3T_PMM of the service + */ + final String mT3tPmm; + + /** * @hide */ public NfcFServiceInfo(ResolveInfo info, String description, String systemCode, String dynamicSystemCode, String nfcid2, String dynamicNfcid2, - int uid) { + int uid, String t3tPmm) { this.mService = info; this.mDescription = description; this.mSystemCode = systemCode; @@ -92,6 +97,7 @@ public final class NfcFServiceInfo implements Parcelable { this.mNfcid2 = nfcid2; this.mDynamicNfcid2 = dynamicNfcid2; this.mUid = uid; + this.mT3tPmm = t3tPmm; } public NfcFServiceInfo(PackageManager pm, ResolveInfo info) @@ -130,6 +136,7 @@ public final class NfcFServiceInfo implements Parcelable { String systemCode = null; String nfcid2 = null; + String t3tPmm = null; final int depth = parser.getDepth(); while (((eventType = parser.next()) != XmlPullParser.END_TAG || @@ -160,10 +167,22 @@ public final class NfcFServiceInfo implements Parcelable { nfcid2 = null; } a.recycle(); + } else if (eventType == XmlPullParser.START_TAG && tagName.equals("t3tPmm-filter") + && t3tPmm == null) { + final TypedArray a = res.obtainAttributes(attrs, + com.android.internal.R.styleable.T3tPmmFilter); + t3tPmm = a.getString( + com.android.internal.R.styleable.T3tPmmFilter_name).toUpperCase(); + if (t3tPmm == null) { + String defaultT3tPmm = "FFFFFFFFFFFFFFFF"; + t3tPmm = defaultT3tPmm; + } + a.recycle(); } } mSystemCode = (systemCode == null ? "NULL" : systemCode); mNfcid2 = (nfcid2 == null ? "NULL" : nfcid2); + mT3tPmm = (t3tPmm == null ? "NULL" : t3tPmm); } catch (NameNotFoundException e) { throw new XmlPullParserException("Unable to create context for: " + si.packageName); } finally { @@ -202,6 +221,10 @@ public final class NfcFServiceInfo implements Parcelable { return mUid; } + public String getT3tPmm() { + return mT3tPmm; + } + public CharSequence loadLabel(PackageManager pm) { return mService.loadLabel(pm); } @@ -223,6 +246,7 @@ public final class NfcFServiceInfo implements Parcelable { if (mDynamicNfcid2 != null) { out.append(", dynamic NFCID2: " + mDynamicNfcid2); } + out.append(", T3T PMM:" + mT3tPmm); return out.toString(); } @@ -235,7 +259,7 @@ public final class NfcFServiceInfo implements Parcelable { if (!thatService.getComponent().equals(this.getComponent())) return false; if (!thatService.mSystemCode.equalsIgnoreCase(this.mSystemCode)) return false; if (!thatService.mNfcid2.equalsIgnoreCase(this.mNfcid2)) return false; - + if (!thatService.mT3tPmm.equalsIgnoreCase(this.mT3tPmm)) return false; return true; } @@ -264,6 +288,7 @@ public final class NfcFServiceInfo implements Parcelable { dest.writeString(mDynamicNfcid2); } dest.writeInt(mUid); + dest.writeString(mT3tPmm); }; public static final Parcelable.Creator<NfcFServiceInfo> CREATOR = @@ -283,8 +308,9 @@ public final class NfcFServiceInfo implements Parcelable { dynamicNfcid2 = source.readString(); } int uid = source.readInt(); + String t3tPmm = source.readString(); NfcFServiceInfo service = new NfcFServiceInfo(info, description, - systemCode, dynamicSystemCode, nfcid2, dynamicNfcid2, uid); + systemCode, dynamicSystemCode, nfcid2, dynamicNfcid2, uid, t3tPmm); return service; } @@ -299,6 +325,7 @@ public final class NfcFServiceInfo implements Parcelable { " (Description: " + getDescription() + ")"); pw.println(" System Code: " + getSystemCode()); pw.println(" NFCID2: " + getNfcid2()); + pw.println(" T3tPmm: " + getT3tPmm()); } } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index b710cf1846be..1ae9e1551e9f 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7023,6 +7023,16 @@ public final class Settings { "automatic_storage_manager_last_run"; /** + * If the automatic storage manager has been disabled by policy. Note that this doesn't + * mean that the automatic storage manager is prevented from being re-enabled -- this only + * means that it was turned off by policy at least once. + * + * @hide + */ + public static final String AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY = + "automatic_storage_manager_turned_off_by_policy"; + + /** * Whether SystemUI navigation keys is enabled. * @hide */ diff --git a/core/java/android/view/ActionMode.java b/core/java/android/view/ActionMode.java index ea979c8b4621..05d9167589d4 100644 --- a/core/java/android/view/ActionMode.java +++ b/core/java/android/view/ActionMode.java @@ -18,6 +18,7 @@ package android.view; import android.annotation.StringRes; +import android.annotation.TestApi; import android.graphics.Rect; /** @@ -278,6 +279,7 @@ public abstract class ActionMode { * @return true if the UI used to show this action mode can take focus * @hide Internal use only */ + @TestApi public boolean isUiFocusable() { return true; } diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index b035b7fd53ed..a19f05c6ae38 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -491,10 +491,10 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb if (myHeight <= 0) myHeight = getHeight(); final boolean formatChanged = mFormat != mRequestedFormat; - final boolean creating = (mSurfaceControl == null || formatChanged) + final boolean visibleChanged = mVisible != mRequestedVisible; + final boolean creating = (mSurfaceControl == null || formatChanged || visibleChanged) && mRequestedVisible; final boolean sizeChanged = mSurfaceWidth != myWidth || mSurfaceHeight != myHeight; - final boolean visibleChanged = mVisible != mRequestedVisible; final boolean windowVisibleChanged = mWindowVisibility != mLastWindowVisibility; boolean redrawNeeded = false; diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index 13ffeecd235e..7538f6561c1e 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -74,6 +74,7 @@ import android.graphics.Rect; import android.os.Bundle; import android.os.IBinder; import android.os.Looper; +import android.os.PowerManager; import android.os.RemoteException; import android.util.Slog; import android.view.animation.Animation; @@ -1311,6 +1312,14 @@ public interface WindowManagerPolicy { public boolean isScreenOn(); /** + * @return whether the device is currently {@link PowerManager#isInteractive() interactive}. + * + * Note: the screen can be on while the device is not interactive, e.g. when the device is + * showing Ambient Display. + */ + boolean isInteractive(); + + /** * Tell the policy that the lid switch has changed state. * @param whenNanos The time when the change occurred in uptime nanoseconds. * @param lidOpen True if the lid is now open. diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 37961ffc0e66..454f5b74aeb4 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -1578,12 +1578,14 @@ public class RemoteViews implements Parcelable, Filter { ViewGroupActionAdd(Parcel parcel, BitmapCache bitmapCache, ApplicationInfo info, int depth) { viewId = parcel.readInt(); + mIndex = parcel.readInt(); mNestedViews = new RemoteViews(parcel, bitmapCache, info, depth); } public void writeToParcel(Parcel dest, int flags) { dest.writeInt(VIEW_GROUP_ACTION_ADD_TAG); dest.writeInt(viewId); + dest.writeInt(mIndex); mNestedViews.writeToParcel(dest, flags); } diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java index d61096d63db5..526246b28530 100644 --- a/core/java/android/widget/TimePickerClockDelegate.java +++ b/core/java/android/widget/TimePickerClockDelegate.java @@ -26,6 +26,7 @@ import android.content.res.TypedArray; import android.icu.text.DecimalFormatSymbols; import android.os.Parcelable; import android.text.SpannableStringBuilder; +import android.text.TextUtils; import android.text.format.DateFormat; import android.text.format.DateUtils; import android.text.style.TtsSpan; @@ -111,7 +112,11 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { private int mCurrentHour; private int mCurrentMinute; private boolean mIs24Hour; - private boolean mIsAmPmAtStart; + + // The portrait layout puts AM/PM at the right by default. + private boolean mIsAmPmAtLeft = false; + // The landscape layouts put AM/PM at the bottom by default. + private boolean mIsAmPmAtTop = false; // Localization data. private boolean mHourFormatShowLeadingZero; @@ -435,34 +440,70 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { if (mIs24Hour) { mAmPmLayout.setVisibility(View.GONE); } else { - // Ensure that AM/PM layout is in the correct position. + // Find the location of AM/PM based on locale information. final String dateTimePattern = DateFormat.getBestDateTimePattern(mLocale, "hm"); final boolean isAmPmAtStart = dateTimePattern.startsWith("a"); - setAmPmAtStart(isAmPmAtStart); - + setAmPmStart(isAmPmAtStart); updateAmPmLabelStates(mCurrentHour < 12 ? AM : PM); } } - private void setAmPmAtStart(boolean isAmPmAtStart) { - if (mIsAmPmAtStart != isAmPmAtStart) { - mIsAmPmAtStart = isAmPmAtStart; - - final RelativeLayout.LayoutParams params = - (RelativeLayout.LayoutParams) mAmPmLayout.getLayoutParams(); - if (params.getRule(RelativeLayout.RIGHT_OF) != 0 || - params.getRule(RelativeLayout.LEFT_OF) != 0) { - if (isAmPmAtStart) { - params.removeRule(RelativeLayout.RIGHT_OF); - params.addRule(RelativeLayout.LEFT_OF, mHourView.getId()); - } else { - params.removeRule(RelativeLayout.LEFT_OF); - params.addRule(RelativeLayout.RIGHT_OF, mMinuteView.getId()); - } + private void setAmPmStart(boolean isAmPmAtStart) { + final RelativeLayout.LayoutParams params = + (RelativeLayout.LayoutParams) mAmPmLayout.getLayoutParams(); + if (params.getRule(RelativeLayout.RIGHT_OF) != 0 + || params.getRule(RelativeLayout.LEFT_OF) != 0) { + // Horizontal mode, with AM/PM appearing to left/right of hours and minutes. + final boolean isAmPmAtLeft; + if (TextUtils.getLayoutDirectionFromLocale(mLocale) == View.LAYOUT_DIRECTION_LTR) { + isAmPmAtLeft = isAmPmAtStart; + } else { + isAmPmAtLeft = !isAmPmAtStart; + } + if (mIsAmPmAtLeft == isAmPmAtLeft) { + // AM/PM is already at the correct location. No change needed. + return; } - mAmPmLayout.setLayoutParams(params); + if (isAmPmAtLeft) { + params.removeRule(RelativeLayout.RIGHT_OF); + params.addRule(RelativeLayout.LEFT_OF, mHourView.getId()); + } else { + params.removeRule(RelativeLayout.LEFT_OF); + params.addRule(RelativeLayout.RIGHT_OF, mMinuteView.getId()); + } + mIsAmPmAtLeft = isAmPmAtLeft; + } else if (params.getRule(RelativeLayout.BELOW) != 0 + || params.getRule(RelativeLayout.ABOVE) != 0) { + // Vertical mode, with AM/PM appearing to top/bottom of hours and minutes. + if (mIsAmPmAtTop == isAmPmAtStart) { + // AM/PM is already at the correct location. No change needed. + return; + } + + final int otherViewId; + if (isAmPmAtStart) { + otherViewId = params.getRule(RelativeLayout.BELOW); + params.removeRule(RelativeLayout.BELOW); + params.addRule(RelativeLayout.ABOVE, otherViewId); + } else { + otherViewId = params.getRule(RelativeLayout.ABOVE); + params.removeRule(RelativeLayout.ABOVE); + params.addRule(RelativeLayout.BELOW, otherViewId); + } + + // Switch the top and bottom paddings on the other view. + final View otherView = mRadialTimePickerHeader.findViewById(otherViewId); + final int top = otherView.getPaddingTop(); + final int bottom = otherView.getPaddingBottom(); + final int left = otherView.getPaddingLeft(); + final int right = otherView.getPaddingRight(); + otherView.setPadding(left, bottom, right, top); + + mIsAmPmAtTop = isAmPmAtStart; } + + mAmPmLayout.setLayoutParams(params); } /** diff --git a/core/java/com/android/internal/app/IMediaContainerService.aidl b/core/java/com/android/internal/app/IMediaContainerService.aidl index 81ea191462f0..36e4c1c61f0e 100644 --- a/core/java/com/android/internal/app/IMediaContainerService.aidl +++ b/core/java/com/android/internal/app/IMediaContainerService.aidl @@ -27,9 +27,6 @@ interface IMediaContainerService { PackageInfoLite getMinimalPackageInfo(String packagePath, int flags, String abiOverride); ObbInfo getObbInfo(String filename); - long calculateDirectorySize(String directory); - /** Return file system stats: [0] is total bytes, [1] is available bytes */ - long[] getFileSystemStats(String path); void clearDirectory(String directory); long calculateInstalledSize(String packagePath, boolean isForwardLocked, String abiOverride); } diff --git a/core/java/com/android/internal/backup/package.html b/core/java/com/android/internal/backup/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/backup/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/ColorExtractor.java b/core/java/com/android/internal/colorextraction/ColorExtractor.java index 2d794fb01ad6..2608698f5b63 100644 --- a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/ColorExtractor.java +++ b/core/java/com/android/internal/colorextraction/ColorExtractor.java @@ -14,19 +14,20 @@ * limitations under the License */ -package com.google.android.colorextraction; +package com.android.internal.colorextraction; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.WallpaperColors; import android.app.WallpaperManager; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; -import android.support.v4.graphics.ColorUtils; +import android.os.Trace; import android.util.Log; import android.util.SparseArray; -import com.google.android.colorextraction.types.ExtractionType; -import com.google.android.colorextraction.types.Tonal; +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.colorextraction.types.ExtractionType; +import com.android.internal.colorextraction.types.Tonal; import java.util.ArrayList; @@ -50,6 +51,8 @@ public class ColorExtractor implements WallpaperManager.OnColorsChangedListener private final ArrayList<OnColorsChangedListener> mOnColorsChangedListeners; private final Context mContext; private final ExtractionType mExtractionType; + private WallpaperColors mSystemColors; + private WallpaperColors mLockColors; public ColorExtractor(Context context) { this(context, new Tonal()); @@ -70,7 +73,6 @@ public class ColorExtractor implements WallpaperManager.OnColorsChangedListener } mOnColorsChangedListeners = new ArrayList<>(); - WallpaperManager wallpaperManager = mContext.getSystemService(WallpaperManager.class); if (wallpaperManager == null) { Log.w(TAG, "Can't listen to color changes!"); @@ -78,17 +80,25 @@ public class ColorExtractor implements WallpaperManager.OnColorsChangedListener wallpaperManager.addOnColorsChangedListener(this); // Initialize all gradients with the current colors - GradientColors[] systemColors = mGradientColors.get(WallpaperManager.FLAG_SYSTEM); - extractInto(wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_SYSTEM), + Trace.beginSection("ColorExtractor#getWallpaperColors"); + mSystemColors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_SYSTEM); + mLockColors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK); + + GradientColors[] systemColors = mGradientColors.get( + WallpaperManager.FLAG_SYSTEM); + extractInto(mSystemColors, systemColors[TYPE_NORMAL], systemColors[TYPE_DARK], systemColors[TYPE_EXTRA_DARK]); GradientColors[] lockColors = mGradientColors.get(WallpaperManager.FLAG_LOCK); - extractInto(wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK), + extractInto(mLockColors, lockColors[TYPE_NORMAL], lockColors[TYPE_DARK], lockColors[TYPE_EXTRA_DARK]); + triggerColorsChanged(WallpaperManager.FLAG_SYSTEM + | WallpaperManager.FLAG_LOCK); + Trace.endSection(); } } @@ -110,6 +120,7 @@ public class ColorExtractor implements WallpaperManager.OnColorsChangedListener * @param type TYPE_NORMAL, TYPE_DARK or TYPE_EXTRA_DARK * @return colors */ + @NonNull public GradientColors getColors(int which, int type) { if (type != TYPE_NORMAL && type != TYPE_DARK && type != TYPE_EXTRA_DARK) { throw new IllegalArgumentException( @@ -121,16 +132,35 @@ public class ColorExtractor implements WallpaperManager.OnColorsChangedListener return mGradientColors.get(which)[type]; } + /** + * Get the last available WallpaperColors without forcing new extraction. + * + * @param which FLAG_LOCK or FLAG_SYSTEM + * @return Last cached colors + */ + @Nullable + public WallpaperColors getWallpaperColors(int which) { + if (which == WallpaperManager.FLAG_LOCK) { + return mLockColors; + } else if (which == WallpaperManager.FLAG_SYSTEM) { + return mSystemColors; + } else { + throw new IllegalArgumentException("Invalid value for which: " + which); + } + } + @Override public void onColorsChanged(WallpaperColors colors, int which) { boolean changed = false; if ((which & WallpaperManager.FLAG_LOCK) != 0) { + mLockColors = colors; GradientColors[] lockColors = mGradientColors.get(WallpaperManager.FLAG_LOCK); extractInto(colors, lockColors[TYPE_NORMAL], lockColors[TYPE_DARK], lockColors[TYPE_EXTRA_DARK]); changed = true; } if ((which & WallpaperManager.FLAG_SYSTEM) != 0) { + mSystemColors = colors; GradientColors[] systemColors = mGradientColors.get(WallpaperManager.FLAG_SYSTEM); extractInto(colors, systemColors[TYPE_NORMAL], systemColors[TYPE_DARK], systemColors[TYPE_EXTRA_DARK]); diff --git a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/drawable/GradientDrawable.java b/core/java/com/android/internal/colorextraction/drawable/GradientDrawable.java index 2b212c11b732..500c028ed4c6 100644 --- a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/drawable/GradientDrawable.java +++ b/core/java/com/android/internal/colorextraction/drawable/GradientDrawable.java @@ -14,11 +14,13 @@ * limitations under the License */ -package com.google.android.colorextraction.drawable; +package com.android.internal.colorextraction.drawable; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import android.graphics.Canvas; import android.graphics.ColorFilter; @@ -29,13 +31,11 @@ import android.graphics.Rect; import android.graphics.Shader; import android.graphics.Xfermode; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; -import android.support.v4.graphics.ColorUtils; import android.view.animation.DecelerateInterpolator; -import com.google.android.colorextraction.ColorExtractor; +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.graphics.ColorUtils; /** * Draws a gradient based on a Palette diff --git a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/types/ExtractionType.java b/core/java/com/android/internal/colorextraction/types/ExtractionType.java index 4c3ac3e038de..762b54fb1e6b 100644 --- a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/types/ExtractionType.java +++ b/core/java/com/android/internal/colorextraction/types/ExtractionType.java @@ -14,11 +14,11 @@ * limitations under the License */ -package com.google.android.colorextraction.types; +package com.android.internal.colorextraction.types; import android.app.WallpaperColors; -import com.google.android.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.ColorExtractor; /** * Interface to allow various color extraction implementations. diff --git a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/types/Tonal.java b/core/java/com/android/internal/colorextraction/types/Tonal.java index f59c4a56bf3b..b8ebe3000d8e 100644 --- a/packages/SystemUI/colorextraction/src/com/google/android/colorextraction/types/Tonal.java +++ b/core/java/com/android/internal/colorextraction/types/Tonal.java @@ -14,20 +14,19 @@ * limitations under the License */ -package com.google.android.colorextraction.types; +package com.android.internal.colorextraction.types; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.WallpaperColors; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; -import android.support.v4.graphics.ColorUtils; import android.util.Log; import android.util.MathUtils; -import android.util.Pair; import android.util.Range; -import com.google.android.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.graphics.ColorUtils; import java.util.Arrays; import java.util.List; @@ -616,7 +615,7 @@ public class Tonal implements ExtractionType { @SuppressWarnings("WeakerAccess") @VisibleForTesting - static final ColorRange[] BLACKLISTED_COLORS = new ColorRange[] { + public static final ColorRange[] BLACKLISTED_COLORS = new ColorRange[] { // Red new ColorRange( @@ -768,18 +767,18 @@ public class Tonal implements ExtractionType { * </ul> */ @VisibleForTesting - static class ColorRange { + public static class ColorRange { private Range<Float> mHue; private Range<Float> mSaturation; private Range<Float> mLightness; - ColorRange(Range<Float> hue, Range<Float> saturation, Range<Float> lightness) { + public ColorRange(Range<Float> hue, Range<Float> saturation, Range<Float> lightness) { mHue = hue; mSaturation = saturation; mLightness = lightness; } - boolean containsColor(float h, float s, float l) { + public boolean containsColor(float h, float s, float l) { if (!mHue.contains(h)) { return false; } else if (!mSaturation.contains(s)) { @@ -790,8 +789,7 @@ public class Tonal implements ExtractionType { return true; } - @VisibleForTesting - float[] getCenter() { + public float[] getCenter() { return new float[] { mHue.getLower() + (mHue.getUpper() - mHue.getLower()) / 2f, mSaturation.getLower() + (mSaturation.getUpper() - mSaturation.getLower()) / 2f, diff --git a/core/java/com/android/internal/inputmethod/package.html b/core/java/com/android/internal/inputmethod/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/inputmethod/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/core/java/com/android/internal/logging/package.html b/core/java/com/android/internal/logging/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/logging/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/core/java/com/android/internal/os/KernelMemoryBandwidthStats.java b/core/java/com/android/internal/os/KernelMemoryBandwidthStats.java index aa56e9333deb..15a5e3e53fd3 100644 --- a/core/java/com/android/internal/os/KernelMemoryBandwidthStats.java +++ b/core/java/com/android/internal/os/KernelMemoryBandwidthStats.java @@ -1,6 +1,7 @@ package com.android.internal.os; import android.os.StrictMode; +import android.os.SystemClock; import android.text.TextUtils; import android.util.LongSparseLongArray; import android.util.Slog; @@ -37,6 +38,8 @@ public class KernelMemoryBandwidthStats { return; } + final long startTime = SystemClock.uptimeMillis(); + StrictMode.ThreadPolicy policy = StrictMode.allowThreadDiskReads(); try (BufferedReader reader = new BufferedReader(new FileReader(mSysfsFile))) { parseStats(reader); @@ -50,6 +53,11 @@ public class KernelMemoryBandwidthStats { } finally { StrictMode.setThreadPolicy(policy); } + + final long readTime = SystemClock.uptimeMillis() - startTime; + if (DEBUG || readTime > 100) { + Slog.w(TAG, "Reading memory bandwidth file took " + readTime + "ms"); + } } @VisibleForTesting diff --git a/core/java/com/android/internal/os/KernelWakelockReader.java b/core/java/com/android/internal/os/KernelWakelockReader.java index 8036f257823b..7178ec7af20b 100644 --- a/core/java/com/android/internal/os/KernelWakelockReader.java +++ b/core/java/com/android/internal/os/KernelWakelockReader.java @@ -16,6 +16,7 @@ package com.android.internal.os; import android.os.Process; +import android.os.SystemClock; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; @@ -66,6 +67,7 @@ public class KernelWakelockReader { byte[] buffer = new byte[32*1024]; int len; boolean wakeup_sources; + final long startTime = SystemClock.uptimeMillis(); try { FileInputStream is; @@ -90,6 +92,11 @@ public class KernelWakelockReader { return null; } + final long readTime = SystemClock.uptimeMillis() - startTime; + if (readTime > 100) { + Slog.w(TAG, "Reading wakelock stats took " + readTime + "ms"); + } + if (len > 0) { if (len >= buffer.length) { Slog.wtf(TAG, "Kernel wake locks exceeded buffer size " + buffer.length); diff --git a/core/java/com/android/internal/os/WebViewZygoteInit.java b/core/java/com/android/internal/os/WebViewZygoteInit.java index 7f46a0c1abde..cadb66ae6e08 100644 --- a/core/java/com/android/internal/os/WebViewZygoteInit.java +++ b/core/java/com/android/internal/os/WebViewZygoteInit.java @@ -29,7 +29,7 @@ import android.webkit.WebViewFactoryProvider; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; /** * Startup class for the WebView zygote process. @@ -91,13 +91,18 @@ class WebViewZygoteInit { try { Class<WebViewFactoryProvider> providerClass = WebViewFactory.getWebViewProviderClass(loader); - Object result = providerClass.getMethod("preloadInZygote").invoke(null); - preloadSucceeded = ((Boolean) result).booleanValue(); - if (!preloadSucceeded) { - Log.e(TAG, "preloadInZygote returned false"); + Method preloadInZygote = providerClass.getMethod("preloadInZygote"); + preloadInZygote.setAccessible(true); + if (preloadInZygote.getReturnType() != Boolean.TYPE) { + Log.e(TAG, "Unexpected return type: preloadInZygote must return boolean"); + } else { + preloadSucceeded = (boolean) providerClass.getMethod("preloadInZygote") + .invoke(null); + if (!preloadSucceeded) { + Log.e(TAG, "preloadInZygote returned false"); + } } - } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | - IllegalAccessException | InvocationTargetException e) { + } catch (ReflectiveOperationException e) { Log.e(TAG, "Exception while preloading package", e); } diff --git a/core/java/com/android/internal/os/package.html b/core/java/com/android/internal/os/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/os/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/core/java/com/android/internal/statusbar/package.html b/core/java/com/android/internal/statusbar/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/statusbar/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/core/java/com/android/internal/widget/package.html b/core/java/com/android/internal/widget/package.html new file mode 100644 index 000000000000..db6f78bbf628 --- /dev/null +++ b/core/java/com/android/internal/widget/package.html @@ -0,0 +1,3 @@ +<body> +{@hide} +</body>
\ No newline at end of file diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp index 5a25d5e06f07..1bc50b0c8bcc 100644 --- a/core/jni/android/graphics/BitmapFactory.cpp +++ b/core/jni/android/graphics/BitmapFactory.cpp @@ -579,6 +579,9 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding if (isHardware) { sk_sp<Bitmap> hardwareBitmap = Bitmap::allocateHardwareBitmap(outputBitmap); + if (!hardwareBitmap.get()) { + return nullObjectReturn("Failed to allocate a hardware bitmap"); + } return bitmap::createBitmap(env, hardwareBitmap.release(), bitmapCreateFlags, ninePatchChunk, ninePatchInsets, -1); } diff --git a/core/jni/android_os_VintfObject.cpp b/core/jni/android_os_VintfObject.cpp index fa9379ee2075..8b4cc91565b6 100644 --- a/core/jni/android_os_VintfObject.cpp +++ b/core/jni/android_os_VintfObject.cpp @@ -102,7 +102,10 @@ static jint android_os_VintfObject_verify(JNIEnv* env, jclass, jobjectArray pack cPackageInfo[i] = cString; env->ReleaseStringUTFChars(element, cString); } - int32_t status = VintfObject::CheckCompatibility(cPackageInfo); + std::string error; + int32_t status = VintfObject::CheckCompatibility(cPackageInfo, &error); + if (status) + LOG(WARNING) << "VintfObject.verify() returns " << status << ": " << error; return status; } diff --git a/core/res/res/layout-land/time_picker_material.xml b/core/res/res/layout-land/time_picker_material.xml index dc47dcf7a6ce..f3d4a84a2554 100644 --- a/core/res/res/layout-land/time_picker_material.xml +++ b/core/res/res/layout-land/time_picker_material.xml @@ -34,6 +34,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" + android:layout_centerVertical="true" android:paddingTop="@dimen/timepicker_radial_picker_top_margin" android:orientation="horizontal"> diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 0e7b5c03226d..a35d61d544bd 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Ontruim kusgebiede en riviergebiede dadelik en gaan na \'n veiliger plek, soos \'n hoogliggende omgewing."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Bly kalm en soek skuiling naby."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Noodboodskappetoets"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Antwoord"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM word nie toegelaat nie"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM is nie opgestel nie"</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 8356efa748b2..9f67ea29c20d 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ወዲያውኑ ከባህር ዳርቻ አካባቢዎች እና የወንዝ ዳርቻ አካባቢዎች ይውጡና እንደ ከፍ ያለ መሬት ያሉ ከአደጋ የተሻለ ደህንነት ወዳቸው ቦታዎች ይሂዱ።"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"ረጋ ይበሉና በአቅራቢያ ያለ መጠለያ ይፈልጉ።"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"የአስቸኳይ አደጋ መልእክቶች ሙከራ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ምላሽ ስጥ"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"ሲም አይፈቀድም"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"ሲም አልቀረበም"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 26e43ca1cf41..cc277561dec6 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -1905,8 +1905,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"يُرجى النزوح في الحال من المناطق الساحلية وضفاف النهر إلى مكان أكثر أمانًا مثل الأراضي المرتفعة."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"يُرجى الثبات والبحث عن ملاذ بالجوار."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"اختبار رسائل الطوارئ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"الرد"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"غير مسموح باستخدام SIM"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"لم يتم تقديم SIM"</string> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 10198de5daec..dad5802ec0c6 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Dərhal sahil bölgələrindən və çay kənarı ərazilərdən daha təhlükəsiz yüksək yerlərə evakuasiya edin."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Sakit qalın və yaxınlıqda sığınacaq axtarın."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Təcili mesaj testi"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Cavablayın"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-ə icazə verilmir"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM təmin edilməyib"</string> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 58495367d5f3..5f1ca49c6105 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -1803,8 +1803,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Odmah se sklonite iz priobalnih regiona i oblasti pored reka na neko bezbednije mesto, na primer, na neko uzvišenje."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Ostanite mirni i potražite sklonište u okolini."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Testiranje poruka u hitnim slučajevima"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odgovori"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM kartica nije dozvoljena"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM kartica nije podešena"</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 316ee495f91c..7ec47510e490 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Неадкладна эвакуіруйцеся з прыбярэжных раёнаў у больш бяспечнае месца, напрыклад на ўзвышша."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Заставайцеся спакойнымі і пашукайце прытулак паблізу."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Праверка экстранных паведамленняў"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Адказаць"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-карта не дапускаецца"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-карты няма"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 83ae33899b00..e61e49c981db 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Евакуирайте се незабавно от крайбрежните и крайречните региони на по-безопасно място – например такова с по-високо надморско равнище."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Запазете спокойствие и потърсете убежище в района."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Тест за спешни съобщения"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Отговор"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM картата не е разрешена"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM картата не е обезпечена"</string> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index 3e487b94ade1..939a45ca4b7a 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"উপকূলবর্তী এবং নদীর পাশের অঞ্চল থেকে অবিলম্বে উঁচু কোনো জায়গার দিকে যান।"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"শান্ত থাকুন, আশেপাশে আশ্রয় খুঁজুন।"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"বিপদকালীন বার্তাগুলির পরীক্ষা"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"উত্তর দিন"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"সিম অনুমোদিত নয়"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"সিম প্রস্তুত নয়"</string> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index 4539121ed267..186cbbf3837e 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -84,7 +84,7 @@ <string name="RestrictedOnAllVoiceTitle" msgid="158800171499150681">"Nema govornih/hitnih usluga"</string> <string name="RestrictedStateContent" msgid="4278821484643362350">"Trenutno nije u ponudi mobilne mreže na vašoj lokaciji"</string> <string name="NetworkPreferenceSwitchTitle" msgid="4008877505368566980">"Nije moguće dosegnuti mrežu"</string> - <string name="NetworkPreferenceSwitchSummary" msgid="1203771446683319957">"Da poboljšate prijem, pokušajte promijeniti odabrani tip u meniju Postavke < Mreža i internet < Mobilne mreže < Preferirani tip mreže."</string> + <string name="NetworkPreferenceSwitchSummary" msgid="1203771446683319957">"Da poboljšate prijem, pokušajte promijeniti odabranu vrstu u meniju Postavke < Mreža i internet < Mobilne mreže < Preferirana vrsta mreže."</string> <string name="notification_channel_network_alert" msgid="4427736684338074967">"Upozorenja"</string> <string name="notification_channel_call_forward" msgid="2419697808481833249">"Preusmjeravanje poziva"</string> <string name="notification_channel_emergency_callback" msgid="6686166232265733921">"Način rada za hitni povratni poziv"</string> @@ -195,10 +195,10 @@ <string name="reboot_to_update_title" msgid="6212636802536823850">"Ažuriranje sistema Android"</string> <string name="reboot_to_update_prepare" msgid="6305853831955310890">"Priprema za ažuriranje..."</string> <string name="reboot_to_update_package" msgid="3871302324500927291">"Obrađuje se paket ažuriranja..."</string> - <string name="reboot_to_update_reboot" msgid="6428441000951565185">"Ponovno se pokreće..."</string> + <string name="reboot_to_update_reboot" msgid="6428441000951565185">"Ponovno pokretanje......"</string> <string name="reboot_to_reset_title" msgid="4142355915340627490">"Vraćanje na fabričke postavke"</string> - <string name="reboot_to_reset_message" msgid="2432077491101416345">"Ponovno se pokreće..."</string> - <string name="shutdown_progress" msgid="2281079257329981203">"Gašenje u toku…"</string> + <string name="reboot_to_reset_message" msgid="2432077491101416345">"Ponovno pokretanje......"</string> + <string name="shutdown_progress" msgid="2281079257329981203">"Isključivanje...…"</string> <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"Vaš tablet će se isključiti."</string> <string name="shutdown_confirm" product="tv" msgid="476672373995075359">"TV će se isključiti."</string> <string name="shutdown_confirm" product="watch" msgid="3490275567476369184">"Sat će se isključiti."</string> @@ -1281,7 +1281,7 @@ <string name="permdesc_requestIgnoreBatteryOptimizations" msgid="8359147856007447638">"Omogućava aplikaciji da traži dozvolu za zanemarivanje optimizacije baterije za tu aplikaciju."</string> <string name="tutorial_double_tap_to_zoom_message_short" msgid="1311810005957319690">"Dodirnite dvaput za kontrolu uvećanja"</string> <string name="gadget_host_error_inflating" msgid="4882004314906466162">"Dodavanje vidžeta nije uspjelo."</string> - <string name="ime_action_go" msgid="8320845651737369027">"Počni"</string> + <string name="ime_action_go" msgid="8320845651737369027">"Započni"</string> <string name="ime_action_search" msgid="658110271822807811">"Pretraži"</string> <string name="ime_action_send" msgid="2316166556349314424">"Poslati"</string> <string name="ime_action_next" msgid="3138843904009813834">"Naprijed"</string> @@ -1700,7 +1700,7 @@ <string name="toolbar_collapse_description" msgid="2821479483960330739">"Skupi"</string> <string name="zen_mode_feature_name" msgid="5254089399895895004">"Ne ometaj"</string> <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Odmor"</string> - <string name="zen_mode_default_weeknights_name" msgid="3081318299464998143">"Radni dan uveče"</string> + <string name="zen_mode_default_weeknights_name" msgid="3081318299464998143">"Radni dan uvečer"</string> <string name="zen_mode_default_weekends_name" msgid="2786495801019345244">"Vikend"</string> <string name="zen_mode_default_events_name" msgid="8158334939013085363">"Događaj"</string> <string name="muted_by" msgid="6147073845094180001">"Ton isključila aplikacija <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string> @@ -1809,8 +1809,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Odmah se evakuirajte iz priobalnih područja i područja oko rijeka na sigurnije mjesto kao što su viši predjeli."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Ostanite smireni i potražite sklonište u blizini."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test poruka za hitne slučajeve"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odgovori"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM kartica nije dozvoljena"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM kartica nije dodijeljena"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 7036603881b7..0dbae8b3973c 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Abandona immediatament les regions costaneres i riberenques, i cerca un lloc més segur, com ara un terreny elevat."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Mantén la calma i busca refugi a prop."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Prova de missatges d\'emergència"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Respon"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM no compatible"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM no proporcionada"</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 04190d598ed2..a3072dcf603f 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Z pobřežních oblastí a okolí řek se co nejrychleji přesuňte do většího bezpečí (například na výše položené místo)."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Zachovejte klid a přesuňte se na bezpečné místo v okolí."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test nouzových zpráv"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odpovědět"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM karta není povolena"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM karta není poskytována"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 3834d7cc5437..22d4c3af1df5 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Forlad omgående kyst- og flodområder, og søg mod et mere sikkert sted, f.eks. et højere terræn."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Bevar roen, og søg ly i nærheden."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test af nødbeskeder"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Svar"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kortet har ikke adgangstilladelse"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-kortet er ikke aktiveret"</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 27bd4a91ec03..b22322430af4 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Verlasse so schnell wie möglich Flussufer und Küstengebiete und suche in einer höher gelegenen Umgebung Schutz."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Bleibe ruhig und suche in der Nähe Schutz."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test der Notfallwarnungen"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Antworten"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-Karte nicht zulässig"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM nicht eingerichtet"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 24217973956a..88440cb1dfbf 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Εκκενώστε αμέσως τις παράκτιες περιοχές και τις περιοχές δίπλα σε ποτάμια και μετακινηθείτε σε ένα ασφαλέστερο μέρος, όπως περιοχές με υψόμετρο."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Μείνετε ψύχραιμοι και αναζητήστε κάποιο κοντινό καταφύγιο."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Δοκιμαστικό μήνυμα έκτακτης ανάγκης"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Απάντηση"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Η κάρτα SIM δεν επιτρέπεται"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Δεν παρέχεται κάρτα SIM"</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index f54625648c61..9b5528c32e1f 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evacuate immediately from coastal regions and riverside areas to a safer place such as high ground."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Stay calm and seek shelter nearby."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Emergency messages test"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Reply"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM not allowed"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM not provisioned"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index f54625648c61..9b5528c32e1f 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evacuate immediately from coastal regions and riverside areas to a safer place such as high ground."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Stay calm and seek shelter nearby."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Emergency messages test"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Reply"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM not allowed"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM not provisioned"</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index f54625648c61..9b5528c32e1f 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evacuate immediately from coastal regions and riverside areas to a safer place such as high ground."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Stay calm and seek shelter nearby."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Emergency messages test"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Reply"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM not allowed"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM not provisioned"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 68fb34b6cf0b..5bf170bc4bbc 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evacúa inmediatamente las regiones costeras y ribereñas en busca de un lugar seguro, como un terreno elevado."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Mantén la calma y busca un refugio cercano."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Prueba de mensajes de emergencia"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Responder"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM no permitida"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM no provista"</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 95f0dffb0bee..e8df21f36558 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Aléjate inmediatamente de las zonas costeras y situadas junto a un río para dirigirte hacia un lugar más seguro, por ejemplo, un terreno elevado."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Mantén la calma y busca refugio en algún lugar cercano."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Prueba de mensajes de emergencia"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Responder"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM no compatible"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM no proporcionada"</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index bd05d6420d93..b4d4cff5c4c4 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evakueeruge ranniku ja jõekallaste piirkondadest viivitamatult ohutusse kohta, näiteks kõrgematesse kohtadesse."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Jääge rahulikuks ja otsige lähedusest peavarju."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Hädaabisõnumite test"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Vasta"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kaart pole lubatud"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-kaart on ettevalmistamata"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 46788fbb817f..9aeae4aff957 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"فوراً مناطق ساحلی و محدوده رودخانه را ترک کنید و به جایی امن، مثل ارتفاعات بروید."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"آرام باشید و پناهگاهی در این اطراف پیدا کنید."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"آزمایش پیامهای اضطراری"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"پاسخ"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"سیمکارت مجاز نیست"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"سیمکارت مجوز لازم را ندارد"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 3459e3916886..44c5efa6c50b 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -1408,7 +1408,7 @@ <string name="activity_resolver_use_always" msgid="8017770747801494933">"Aina"</string> <string name="activity_resolver_use_once" msgid="2404644797149173758">"Vain kerran"</string> <string name="activity_resolver_work_profiles_support" msgid="185598180676883455">"%1$s ei tue työprofiilia"</string> - <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet-laite"</string> + <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tabletti"</string> <string name="default_audio_route_name" product="tv" msgid="9158088547603019321">"Televisio"</string> <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Puhelin"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kuulokkeet"</string> @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Siirry heti rannikkoalueilta ja jokien varsilta korkeampiin tai muuten turvallisempiin paikkoihin."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Pysy rauhallisena ja hakeudu lähimpään suojapaikkaan."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Hätäilmoitustesti"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Vastaa"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kortti estetty"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-kortti ei käyttäjien hallinnassa"</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 7d27a5b2bc4c..728de0546f1d 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Évacuez immédiatement les zones côtières et les berges des fleuves, et réfugiez-vous dans un endroit plus sûr, comme un terrain surélevé."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Restez calme et cherchez un abri à proximité."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test de messages d\'urgence"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Répondre"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Carte SIM non autorisée"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Carte SIM non configurée"</string> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index 4352845d1d0d..8745c647816c 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"દરિયાકિનારાના પ્રદેશો તથા નદીકાંઠાના વિસ્તારો ખાલી કરીને તાત્કાલિક સુરક્ષિત ઊંચા સ્થાન પર જાઓ."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"શાંત રહો અને નજીકમાં આશ્રય લો."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"કટોકટી સંદેશાઓનું પરીક્ષણ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"જવાબ આપો"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM મંજૂર નથી"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIMની જોગવાઈ કરી નથી"</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 391ad9f1df97..f0732d41fd37 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"तटीय क्षेत्रों और नदी के किनारे वाले क्षेत्रों को जल्द से जल्द खाली करके किसी सुरक्षित ऊंची जगह पर चले जाएं."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"शांत रहें और आस-पास आश्रय खोजें."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"आपातकालीन संदेश परीक्षण"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"जवाब दें"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM की अनुमति नहीं है"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM का प्रावधान नहीं किया गया है"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index f43c600cba62..094af8d8110a 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -1803,8 +1803,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Odmah se evakuirajte s obalnih područja i područja uz rijeku na sigurnije mjesto, primjerice povišeno područje."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Ostanite mirni i potražite sklonište u blizini."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test hitnih poruka"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odgovori"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM nije dopušten"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Ne pruža se usluga za SIM"</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 285babebd8dc..29a79e54c890 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Azonnal meneküljön biztonságosabb helyre a tengerparti, illetve folyóparti területekről, például valamilyen magaslatra."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Őrizze meg nyugalmát, és keressen menedéket a közelben."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Vészhelyzetben küldött üzenetek tesztelése"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Válasz"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"A SIM-kártya nem engedélyezett"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Nem engedélyezett SIM-kártya"</string> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index 02da2cc74471..5b741ca5fb21 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Ափամերձ և գետափնյա տարածքներից անմիջապես էվակուացվեք դեպի ավելի ապահով վայրեր (օրինակ՝ բարձրադիր գոտիներ):"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Պահպանեք հանգստությունը և մոտակայքում ապաստարան փնտրեք:"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Արտակարգ իրավիճակների հաղորդագրությունների թեստ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Պատասխանել"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM քարտի օգտագործումն արգելված է"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM քարտը նախապատրաստված չէ"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 15ea8d28fde8..81fe2471a59e 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evakuasi segera dari daerah pesisir dan area tepi sungai ke tempat yang lebih aman seperti dataran tinggi."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Tetap tenang dan cari tempat berlindung terdekat."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Tes pesan darurat"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Balas"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM tidak diizinkan"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM tidak di-provisioning"</string> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index 2e0fa2e9a7cb..2ce334e187d9 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Fólk sem statt er á strandsvæðum eða við ár á tafarlaust að leita öryggis á svæðum sem eru í meiri hæð yfir sjávarmáli."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Sýndu stillingu og leitaðu skjóls."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Prófun neyðarskilaboða"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Svara"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kort er ekki leyft"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-korti ekki úthlutað"</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 5dcd3aafb878..29ebdd8b4f3b 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evacuare immediatamente le zone costiere e in riva ai fiumi e recarsi in un luogo più sicuro, ad esempio un\'altura."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Mantieni la calma e cerca riparo nelle vicinanze."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Testo messaggi di emergenza"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Rispondi"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Scheda SIM non consentita"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Scheda SIM non predisposta"</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index c34e09e5de92..0dcc4e013a1c 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"沿岸部の方はただちに高台へ避難してください"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"強い揺れと津波に注意してください"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"テスト用緊急速報メール"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"返信"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM 使用不可"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM には対応していません"</string> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index 6bd2ce1970dc..0ff01ab2100f 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"დაუყოვნებლივ გადაინაცვლეთ სანაპირო რეგიონებიდან და მდინარისპირა ტერიტორიებიდან უსაფრთხო ადგილზე (მაგალითად, შემაღლებულ ადგილზე)."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"შეინარჩუნეთ სიმშვიდე და იპოვეთ ახლომდებარე თავშესაფარი."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"სატესტო საგანგებო შეტყობინება"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"პასუხი"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM ბარათი დაუშვებელია"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM ბარათი უზრუნველყოფილი არ არის"</string> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index 70801fa1c3ff..08e1e912391b 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Жағалау аймақтан биіктеу қауіпсіз жерге дереу көшіңіз."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Сабыр сақтап, жақын жерден баспана іздеңіз."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Төтенше хабарлар сынағы"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Жауап"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM картасына рұқсат етілмеген"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM картасы белсендірілмеген"</string> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 76f06028803f..f841721562d4 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -1771,8 +1771,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ភៀសខ្លួនជាបន្ទាន់ពីតំបន់ឆ្នេរ និងតំបន់តាមមាត់ទន្លេទៅកាន់កន្លែងដែលមានសុវត្ថិភាពជាងនេះ ដូចជាទីទួលណាមួយ។"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"សូមរក្សាភាពស្ងប់ស្ងាត់ ហើយស្វែងរកជម្រកសុវត្ថិភាពដែលនៅជិត។"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"សារសាកល្បងពេលមានអាសន្ន"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ឆ្លើយតប"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"មិនអនុញ្ញាតសីុមកាតទេ"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"សីុមមិនត្រូវបានផ្តល់ជូនទេ"</string> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index fad951ee5bb0..7527362f7aad 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ಕರಾವಳಿ ಪ್ರದೇಶಗಳು ಮತ್ತು ನದಿ ತೀರಗಳಿಂದ ತಕ್ಷಣವೇ ಎತ್ತರದ ಪ್ರದೇಶಗಳಂತಹ ಸುರಕ್ಷಿತ ಸ್ಥಳಕ್ಕೆ ಹೋಗಿ."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"ಶಾಂತರಾಗಿರಿ ಮತ್ತು ಸಮೀಪದಲ್ಲೆಲ್ಲಾದರೂ ಆಶ್ರಯ ಪಡೆದುಕೊಳ್ಳಿ."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"ತುರ್ತು ಸಂದೇಶಗಳ ಪರೀಕ್ಷೆ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ಪ್ರತ್ಯುತ್ತರ"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"ಸಿಮ್ಗೆ ಅನುಮತಿಯಿಲ್ಲ"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"ಸಿಮ್ ಸಿದ್ಧವಾಗಿಲ್ಲ"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 9685e832dcdf..bab45194f54f 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"즉시 해안 지대나 강가에서 떨어져 고지대 등 안전한 장소로 대피하세요."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"침착하게 가까운 대피소를 찾으세요."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"긴급 메시지 테스트"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"답장"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM이 허용되지 않음"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM이 프로비저닝되지 않음"</string> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index b9e143c958b1..284253760f97 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Деңиз жана дарыя жээгинде жайгашкан аймактардан бийик тоо сыяктуу коопсуз жерге тезинен чыгып кетиңиз."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Эс алып, жакын жерден калканч издеңиз."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Өзгөчө кырдаалда жөнөтүлүүчү билдирүүлөрдү сыноо"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Жооп берүү"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM картаны колдонууга тыюу салынган"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM карта таанылган жок"</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index f10d02545d82..a31dcc7e831e 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Nedelsdami pasitraukite nuo pakrančių ir paupių. Eikite į saugią vietą, pvz., vietą, kuri yra aukštai."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Nesijaudinkite ir ieškokite prieglobsčio netoliese."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Kritinės padėties pranešimo bandymas"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Atsakyti"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM kortelė neleidžiama"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM kortelė neteikiama"</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index c9e9e1f735f7..8cc3d909cb62 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -1803,8 +1803,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Nekavējoties pametiet piekrastes un upju zonas un dodieties uz drošākām (piemēram, augstākām) vietām."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Saglabājiet mieru un meklējiet tuvumā patvērumu."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Ārkārtas ziņojuma pārbaude"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Atbildēt"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM karti nav atļauts izmantot"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM karte netiek nodrošināta"</string> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index 6b68427b3cdd..efac04215fe9 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -1772,8 +1772,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Итна евакуација од крајбрежните региони и областите покрај реки на побезбедно место, како на пр., терени на повисока надморска височина."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Бидете смирени и побарајте засолниште во близина."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Тестирање пораки за итни случаи"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Одговори"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Не е дозволена SIM-картичка"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Не е обезбедена SIM-картичка"</string> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index 344f9f2e40df..4f8d39dd6c3f 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"തീരപ്രദേശങ്ങളിൽ നിന്നും നദിക്കരകളിൽ നിന്നും ആളുകളെ ഉടനടി ഒഴിപ്പിച്ച് ഉയർന്ന ഭൂമിയിൽ എത്തിക്കുക."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"പരിഭ്രമിക്കാതിരിക്കുക, അടുത്തുള്ള അഭയകേന്ദ്രം തേടുക."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"അടിയന്തര സന്ദേശ ടെസ്റ്റ്"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"മറുപടി നൽകുക"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM അനുവദനീയമല്ല"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM പ്രൊവിഷൻ ചെയ്തിട്ടില്ല"</string> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index c9a585360330..65b6b5b0a869 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -1767,8 +1767,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Эргийн бүс, голын эргийн бүсээс өндөрлөг газар зэрэг аюулгүй газар руу нэн даруй шилжинэ үү."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Тайван байж, ойролцоох нуугдах газар хайна уу."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Онцгой байдлын зурвасын тест"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Хариу бичих"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM боломжгүй"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-г хийгээгүй"</string> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index cd9124a9fa7a..ea3705fae574 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"किनारपट्टीचे प्रदेश आणि नदीकाठची क्षेत्रे त्वरित रिकामी करून उंच मैदानासारख्या अधिक सुरक्षित ठिकाणी जा."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"शांत रहा आणि जवळपास निवारा शोधा."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"आणीबाणी संदेश चाचणी"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"प्रत्युत्तर द्या"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"सिमला अनुमती नाही"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"सिमसाठी तरतूद नाही"</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 19bc7d7da8be..f322d4ee581b 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Segera beredar dari kawasan pinggir laut dan tepi sungai dan berpindah ke tempat yang lebih selamat seperti kawasan tinggi."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Bertenang dan cari perlindungan di kawasan yang berdekatan."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Ujian mesej kecemasan"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Balas"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM tidak dibenarkan"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM tidak diperuntukkan"</string> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index f24ab13c6bb7..7234cd955f32 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ကမ်းရိုးတန်းနှင့် မြစ်ကမ်းရိုးတစ်လျှောက်ရှိ နေရာဒေသတို့မှ ချက်ချင်းထွက်ခွာပြီး ဘေးကင်းရာကုန်းမြင့်ဒေသသို့ ပြောင်းရွှေ့ပါ။"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"စိတ်ငြိမ်ငြိမ်ထားပြီး အနီးအနားတဝိုက်တွင် ခိုနားစရာ နေရာရှာပါ။"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"အရေးပေါ် မက်ဆေ့ဂျ် စမ်းသပ်မှု"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"စာပြန်ရန်"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"ဆင်းမ်ကို ခွင့်မပြုပါ"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"ဆင်းမ်ကို ထောက်ပံ့မထားပါ"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 72ad6d1e20f8..dabe298900b2 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evakuer umiddelbart fra kyst- og elveområder til et tryggere sted, for eksempel høyt terreng."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Hold deg rolig og søk ly i nærheten."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test av nødmeldinger"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Svar"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kortet er ikke tillatt"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-kortet er ikke klargjort"</string> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index c576c89e7d2e..44f17bcb3b23 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -1775,8 +1775,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"तटीय क्षेत्र र नदीछेउका ठाउँहरू छाडी उच्च सतहमा अवस्थित कुनै अझ सुरक्षित ठाउँमा जानुहोस्।"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"शान्त रहनुहोस् र नजिकै आश्रयस्थल खोज्नुहोस्।"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"आपतकालीन सन्देशहरूको परीक्षण"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"जवाफ दिनुहोस्"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM लाई अनुमति छैन"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM को प्रावधान छैन"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index d690fc6e25c4..3c1f06775fbf 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Verlaat kustgebieden en rivieroevers onmiddellijk en zoek een hoger gelegen gebied op."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Blijf kalm en zoek onderdak in de buurt."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test voor noodberichten"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Beantwoorden"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Simkaart niet toegestaan"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Simkaart niet geregistreerd"</string> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index 0a237b18211f..64d267ee8e27 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ਤੁਰੰਤ ਤੱਟੀ ਖੇਤਰਾਂ ਅਤੇ ਨਦੀ ਦੇ ਕਿਨਾਰੇ ਵਾਲੇ ਖੇਤਰਾਂ ਨੂੰ ਖਾਲੀ ਕਰ ਕੇ ਕਿਸੇ ਸੁਰੱਖਿਅਤ ਸਥਾਨ \'ਤੇ ਚਲੇ ਜਾਓ ਜਿਵੇਂ ਕਿ ਉੱਚੀ ਜ਼ਮੀਨ।"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"ਸ਼ਾਂਤ ਰਹੋ ਅਤੇ ਆਸ-ਪਾਸ ਪਨਾਹ ਮੰਗੋ।"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"ਸੰਕਟਕਾਲੀਨ ਸੰਦੇਸ਼ ਟੈਸਟ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ਜਵਾਬ ਦਿਓ"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM ਦੀ ਵਿਵਸਥਾ ਨਹੀਂ ਹੈ"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index b730e3c54603..1747f2759d6d 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -1448,7 +1448,7 @@ <string name="activity_chooser_view_see_all" msgid="4292569383976636200">"Zobacz wszystkie"</string> <string name="activity_chooser_view_dialog_title_default" msgid="4710013864974040615">"Wybierz działanie"</string> <string name="share_action_provider_share_with" msgid="5247684435979149216">"Udostępnij przez:"</string> - <string name="sending" msgid="3245653681008218030">"Wysyłanie..."</string> + <string name="sending" msgid="3245653681008218030">"Wysyłam..."</string> <string name="launchBrowserDefault" msgid="2057951947297614725">"Uruchomić przeglądarkę?"</string> <string name="SetupCallDefault" msgid="5834948469253758575">"Odebrać połączenie?"</string> <string name="activity_resolver_use_always" msgid="8017770747801494933">"Zawsze"</string> @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Niezwłocznie ewakuuj się z regionów nabrzeżnych i położonych przy rzekach w bezpieczniejsze miejsce, np. na wzniesienie."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Zachowaj spokój i poszukaj schronienia w pobliżu."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test komunikatów alarmowych"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odpowiedz"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Niedozwolona karta SIM"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Nieobsługiwana karta SIM"</string> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index a373b452a280..05af3261c9ea 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Saia imediatamente de regiões costeiras e áreas ribeirinhas e vá para um lugar mais seguro, como terrenos elevados."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Fique calmo e procure um abrigo por perto."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Teste de mensagens de emergência"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Responder"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM não permitido"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM não aprovisionado"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 4c3399de1808..04a78cab1a17 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Abandone imediatamente regiões costeiras e zonas ribeirinhas em direção a um local mais seguro, como um terreno elevado."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Mantenha a calma e procure abrigo nas proximidades."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Teste de mensagens de emergência"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Responder"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM não permitido"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM não ativado"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index a373b452a280..05af3261c9ea 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Saia imediatamente de regiões costeiras e áreas ribeirinhas e vá para um lugar mais seguro, como terrenos elevados."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Fique calmo e procure um abrigo por perto."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Teste de mensagens de emergência"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Responder"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM não permitido"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM não aprovisionado"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 83afac8b20f2..795b71be31f4 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1803,8 +1803,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Părăsiți imediat zonele de coastă și din apropierea râurilor și îndreptați-vă spre un loc mai sigur, cum ar fi o zonă aflată la înălțime."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Păstrați-vă calmul și căutați un adăpost în apropiere."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Testarea mesajelor de urgență"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Răspundeți"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Cardul SIM nu este permis"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Cardul SIM nu este activat"</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 913c93bd9985..d22022d88b4d 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Немедленно эвакуируйтесь из прибрежной зоны в более высокое место."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Сохраняйте спокойствие и поищите укрытие поблизости."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Тестовое экстренное сообщение"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Ответить"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Использование SIM-карты запрещено"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-карта не активирована"</string> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index 641bd4053cdf..0292f82bf37c 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -1771,8 +1771,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"මුහුදු බඩ ප්රදේශ සහ ගංඉවුරු ප්රදේශ සිට ඉහළ ප්රදේශයක් වැනි ආරක්ෂිත තැනකට දැන්ම යන්න."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"සන්සුන්ව ඉන්න සහ අවට ඇති නවාතැන් පහසුකම් බලන්න."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"හදිසි පණිවිඩ පරීක්ෂණය"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"පිළිතුරු දෙන්න"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM එක සඳහා ඉඩ නොදේ"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM එක සක්රීය කර නොමැත"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index d68ebc450efc..4c22ae7ea01d 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Okamžite začnite evakuáciu z prímorských a nábrežných oblastí na bezpečnejšie miesto, napríklad do vyššie položených regiónov."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Zachovajte pokoj a vyhľadajte úkryt v okolí."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test tiesňových správ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Odpovedať"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM karta je zakázaná"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM karta nie je k dispozícii"</string> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index 381154f8c6ea..c31c8a4b9d88 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Evakuohu menjëherë nga rajonet bregdetare dhe zonat pranë lumenjve drejt një vendi më të sigurt, si për shembull në një terren të ngritur."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Qëndro i qetë dhe kërko strehim në afërsi."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Testim për mesazhet e urgjencës"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Përgjigju"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Karta SIM nuk lejohet"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Karta SIM nuk është dhënë"</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 704869dd78c3..02dddb882bd7 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -1803,8 +1803,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Одмах се склоните из приобалних региона и области поред река на неко безбедније место, на пример, на неко узвишење."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Останите мирни и потражите склониште у околини."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Тестирање порука у хитним случајевима"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Одговори"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM картица није дозвољена"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM картица није подешена"</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 7339480b71cb..b1a13511ecd7 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Utrym kust- och flodområden omedelbart och förflytta er till en säkrare plats, till exempel ett högt beläget område."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Håll dig lugn och sök skydd i närheten."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Test för nödmeddelanden"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Svara"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-kort tillåts inte"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-kort tillhandahålls inte"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index a8552314dbbf..2eb17206205d 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -1767,8 +1767,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Ondoka mara moja kwenye maeneo ya ufuo na mito ili uende kwenye sehemu salama kama vile milimani."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Tulia na utafute hifadhi ya karibu."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Jaribio la ujumbe wa dharura"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Jibu"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM imekataliwa"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM haikubaliwi"</string> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index 45ac5c5f0834..714602ffe568 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"கடலோரப் பகுதிகளிலும் ஆற்றங்கரைகளிலும் வசிப்பவர்கள் உடனடியாகப் பாதுகாப்பான இடத்திற்குச் (மேட்டுப்பகுதி) செல்லவும்."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"பதட்டப்படாதீர்கள், அருகில் ஏதேனும் பாதுகாப்பான இடம் உள்ளதா எனப் பாருங்கள்."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"அவசரக் காலச் செய்திகளுக்கான சோதனை"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"பதிலளிக்கும்"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"சிம் அனுமதிக்கப்படவில்லை"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"சிம் அமைக்கப்படவில்லை"</string> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 307833068913..92fba6ea1f5a 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"వెంటనే తీర ప్రాంతాలు మరియు నదీ పరీవాహక ప్రాంతాలను ఖాళీ చేసి మెట్ట ప్రాంతాలకు తరలి వెళ్లండి."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"ప్రశాంతంగా ఉండండి మరియు దగ్గర్లో తలదాచుకోండి."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"అత్యవసర సందేశాల పరీక్ష"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ప్రత్యుత్తరం పంపండి"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM అనుమతించబడదు"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM సక్రియం కాలేదు"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 9be0d4a9e365..3c33686d1a85 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -1618,7 +1618,7 @@ <string name="package_installed_device_owner" msgid="6875717669960212648">"ติดตั้งโดยผู้ดูแลระบบ"</string> <string name="package_updated_device_owner" msgid="1847154566357862089">"อัปเดตโดยผู้ดูแลระบบ"</string> <string name="package_deleted_device_owner" msgid="2307122077550236438">"ลบโดยผู้ดูแลระบบ"</string> - <string name="battery_saver_description" msgid="1960431123816253034">"เพื่อช่วยปรับปรุงอายุการใช้งานแบตเตอรี่ โหมดประหยัดแบตเตอรี่จะลดการทำงานของอุปกรณ์และจำกัดการสั่น บริการตำแหน่ง และข้อมูลแบ็กกราวด์ส่วนใหญ่ สำหรับอีเมล การรับส่งข้อความ และแอปอื่นๆ ที่ใช้การซิงค์จะไม่อัปเดตหากคุณไม่เปิดขึ้นมา\n\nโหมดประหยัดแบตเตอรี่จะปิดโดยอัตโนมัติขณะชาร์จอุปกรณ์"</string> + <string name="battery_saver_description" msgid="1960431123816253034">"เพื่อช่วยยืดอายุการใช้งานแบตเตอรี่ โหมดประหยัดแบตเตอรี่จะลดการทำงานของอุปกรณ์และจำกัดการสั่น บริการตำแหน่ง และข้อมูลแบ็กกราวด์ส่วนใหญ่ สำหรับอีเมล การรับส่งข้อความ และแอปอื่นๆ ที่ใช้การซิงค์จะไม่อัปเดตหากคุณไม่เปิดขึ้นมา\n\nโหมดประหยัดแบตเตอรี่จะปิดโดยอัตโนมัติขณะชาร์จอุปกรณ์"</string> <string name="data_saver_description" msgid="6015391409098303235">"เพื่อช่วยลดปริมาณการใช้อินเทอร์เน็ต โปรแกรมประหยัดอินเทอร์เน็ตจะช่วยป้องกันไม่ให้แอปบางส่วนส่งหรือรับข้อมูลเครือข่ายมือถือในพื้นหลัง แอปที่คุณกำลังใช้งานสามารถเข้าถึงข้อมูลเครือข่ายมือถือได้ แต่อาจไม่บ่อยเท่าเดิม ตัวอย่างเช่น ภาพต่างๆ จะไม่แสดงจนกว่าคุณจะแตะที่ภาพเหล่านั้น"</string> <string name="data_saver_enable_title" msgid="4674073932722787417">"เปิดการประหยัดอินเทอร์เน็ตไหม"</string> <string name="data_saver_enable_button" msgid="7147735965247211818">"เปิด"</string> @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"อพยพออกจากจากเขตชายฝั่งทะเลและบริเวณริมแม่น้ำไปยังสถานที่ที่ปลอดภัยกว่า เช่น ที่สูง โดยทันที"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"ทำใจให้สงบและหาที่กำบังในบริเวณใกล้เคียง"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"การทดสอบข้อความกรณีฉุกเฉิน"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"ตอบ"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"ไม่อนุญาตให้ใช้ซิม"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"ไม่มีการจัดสรรซิม"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index a85e2e52d85a..2976911b3a73 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Umalis kaagad sa mga baybayin at pampang, at pumunta sa isang mas ligtas na lokasyon tulad ng isang mataas na lugar."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Manatiling kalmado at maghanap ng matutuluyan sa malapit."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Pagsubok sa mga mensaheng pang-emergency"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Tumugon"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"Hindi pinahihintulutan ang SIM"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"Hindi naprobisyon ang SIM"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 0e318e7438a7..715a019d85d7 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -1837,8 +1837,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Негайно евакуюйтеся з прибережних районів і територій поблизу річок у безпечніше місце, як-от на територію на підвищенні."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Не хвилюйтеся та знайдіть прихисток поблизу."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Перевірка екстрених повідомлень"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Відповісти"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM-карта заборонена"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM-карту не затверджено"</string> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index da90d589052d..ca753697142e 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"ساحلی خطوں اور دریائی کناروں کے علاقوں کو فوری طور پر خالی کر کے اونچے ٹیلے جیسے کسی زیادہ محفوظ مقام پر چلے جائیں۔"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"پُرسکون رہیں اور قریبی پناہ حاصل کریں۔"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"ایمرجنسی پیغامات کی جانچ"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"جواب دیں"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM کی اجازت نہیں ہے"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM فراہم کردہ نہیں ہے"</string> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index d93a0f5e640f..e26289386e2e 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -1770,8 +1770,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Qirg‘oq va daryo bo‘ylaridan yuqori tepalik kabi xavfsiz joylarga darhol evakuatsiya qiling."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Tinchlaning va yaqin-atrofdan boshpana qidiring."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Favqulodda holatlar uchun sinov xabarlari"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Javob berish"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM karta ishlatish taqiqlangan"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM karta yo‘q"</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 4e935127d573..73a65b727e6d 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Ngay lập tức sơ tán khỏi các vùng ven biển và khu vực ven sông để tới một nơi an toàn hơn như vùng đất cao."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Hãy bình tĩnh và tìm kiếm nơi trú ẩn gần đó."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Kiểm tra thông báo khẩn cấp"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Trả lời"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"SIM không được cho phép"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"SIM không được cấp phép"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index e9a19ca59826..57798ee01ad6 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"請立即從沿海和河岸地區撤離,前往高地等較安全的地點。"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"請保持冷靜,並尋找附近的避難所。"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"緊急訊息測試"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"回覆"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"不允許使用 SIM 卡"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"無法識別 SIM 卡"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index a040520e388c..39564ea543fc 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"請立即從沿海與河岸地區撤離,前往高地這類較安全的地點。"</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"請保持冷靜並尋找附近的避難地點。"</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"緊急訊息測試"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"回覆"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"不受允許的 SIM 卡"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"未佈建的 SIM 卡"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 5ab61a6763aa..85180965d084 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -1769,8 +1769,7 @@ <string name="etws_primary_default_message_tsunami" msgid="1887685943498368548">"Phuma ngokushesha kusukela kuzifunda ezingasolwandle nasezindaweni zemifula uye endaweni ephephile efana nendawo ephakeme."</string> <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="998797956848445862">"Hlala ubeke umoya phansi uphinde ufune ukukhuselwa eduze."</string> <string name="etws_primary_default_message_test" msgid="2709597093560037455">"Ukuhlolwa kwemilayezo yesimo esiphuthumayo"</string> - <!-- no translation found for notification_reply_button_accessibility (3621714652387814344) --> - <skip /> + <string name="notification_reply_button_accessibility" msgid="3621714652387814344">"Phendula"</string> <string name="etws_primary_default_message_others" msgid="6293148756130398971"></string> <string name="mmcc_authentication_reject" msgid="7729819349669603406">"I-SIM ayivunyelwe"</string> <string name="mmcc_imsi_unknown_in_hlr" msgid="6321202257374418726">"I-SIM ayinikezelwe"</string> diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 79bb109cd20e..dd840b0e5b10 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -3619,6 +3619,13 @@ <attr name="name" /> </declare-styleable> + <!-- Specify one or more <code>t3tPmm-filter</code> elements inside a + <code>host-nfcf-service</code> element to specify a LF_T3T_PMM --> + <declare-styleable name="T3tPmmFilter"> + <attr name="name" /> + + </declare-styleable> + <declare-styleable name="ActionMenuItemView"> <attr name="minWidth" /> </declare-styleable> diff --git a/core/tests/coretests/src/android/net/SSLSessionCacheTest.java b/core/tests/coretests/src/android/net/SSLSessionCacheTest.java index ec130e049676..11d066b3afb0 100644 --- a/core/tests/coretests/src/android/net/SSLSessionCacheTest.java +++ b/core/tests/coretests/src/android/net/SSLSessionCacheTest.java @@ -44,12 +44,9 @@ public class SSLSessionCacheTest extends TestCase { try { SSLSessionCache.install(new SSLSessionCache(mock), ctx); - clientCtx.getSession("www.foogle.com", 443); - Mockito.verify(mock).getSessionData(Mockito.anyString(), Mockito.anyInt()); } finally { // Restore cacheless behaviour. SSLSessionCache.install(null, ctx); - clientCtx.getSession("www.foogle.com", 443); Mockito.verifyNoMoreInteractions(mock); } } diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index b96bda1596b6..956c862026f6 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -418,6 +418,7 @@ public class SettingsBackupTest { Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN, + Settings.Secure.AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY, Settings.Secure.BACKUP_AUTO_RESTORE, Settings.Secure.BACKUP_ENABLED, Settings.Secure.BACKUP_PROVISIONED, diff --git a/core/tests/coretests/src/android/text/TextUtilsTest.java b/core/tests/coretests/src/android/text/TextUtilsTest.java index 4cc648def549..472b3e2cd20d 100644 --- a/core/tests/coretests/src/android/text/TextUtilsTest.java +++ b/core/tests/coretests/src/android/text/TextUtilsTest.java @@ -363,14 +363,23 @@ public class TextUtilsTest { @Test public void testCharSequenceCreator() { Parcel p = Parcel.obtain(); - TextUtils.writeToParcel(null, p, 0); - CharSequence text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); - assertNull("null CharSequence should generate null from parcel", text); + CharSequence text; + try { + TextUtils.writeToParcel(null, p, 0); + text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); + assertNull("null CharSequence should generate null from parcel", text); + } finally { + p.recycle(); + } p = Parcel.obtain(); - TextUtils.writeToParcel("test", p, 0); - p.setDataPosition(0); - text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); - assertEquals("conversion to/from parcel failed", "test", text); + try { + TextUtils.writeToParcel("test", p, 0); + p.setDataPosition(0); + text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); + assertEquals("conversion to/from parcel failed", "test", text); + } finally { + p.recycle(); + } } @Test @@ -378,10 +387,14 @@ public class TextUtilsTest { Parcel p; CharSequence text; p = Parcel.obtain(); - TextUtils.writeToParcel(null, p, 0); - p.setDataPosition(0); - text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); - assertNull("null CharSequence should generate null from parcel", text); + try { + TextUtils.writeToParcel(null, p, 0); + p.setDataPosition(0); + text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); + assertNull("null CharSequence should generate null from parcel", text); + } finally { + p.recycle(); + } } @Test @@ -389,10 +402,14 @@ public class TextUtilsTest { Parcel p; CharSequence text; p = Parcel.obtain(); - TextUtils.writeToParcel(new SpannableString("test"), p, 0); - p.setDataPosition(0); - text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); - assertEquals("conversion to/from parcel failed", "test", text.toString()); + try { + TextUtils.writeToParcel(new SpannableString("test"), p, 0); + p.setDataPosition(0); + text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); + assertEquals("conversion to/from parcel failed", "test", text.toString()); + } finally { + p.recycle(); + } } @Test @@ -400,10 +417,14 @@ public class TextUtilsTest { Parcel p; CharSequence text; p = Parcel.obtain(); - TextUtils.writeToParcel("test", p, 0); - p.setDataPosition(0); - text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); - assertEquals("conversion to/from parcel failed", "test", text.toString()); + try { + TextUtils.writeToParcel("test", p, 0); + p.setDataPosition(0); + text = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(p); + assertEquals("conversion to/from parcel failed", "test", text.toString()); + } finally { + p.recycle(); + } } /** diff --git a/libs/androidfw/include/androidfw/StringPiece.h b/libs/androidfw/include/androidfw/StringPiece.h index a873d66803e7..99b424568a1f 100644 --- a/libs/androidfw/include/androidfw/StringPiece.h +++ b/libs/androidfw/include/androidfw/StringPiece.h @@ -37,6 +37,7 @@ class BasicStringPiece { public: using const_iterator = const TChar*; using difference_type = size_t; + using size_type = size_t; // End of string marker. constexpr static const size_t npos = static_cast<size_t>(-1); diff --git a/libs/hwui/OpenGLReadback.cpp b/libs/hwui/OpenGLReadback.cpp index 19d5d9d2250e..e798edfc095a 100644 --- a/libs/hwui/OpenGLReadback.cpp +++ b/libs/hwui/OpenGLReadback.cpp @@ -238,6 +238,7 @@ inline CopyResult copyTextureInto(Caches& caches, RenderState& renderState, // TODO: We should convert to linear space when the target is RGBA16F glReadPixels(0, 0, bitmap->width(), bitmap->height(), format, type, bitmap->getPixels()); + bitmap->notifyPixelsChanged(); } // Cleanup diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp index 89697d7445c6..e865b57aa800 100644 --- a/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp +++ b/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp @@ -97,6 +97,7 @@ CopyResult SkiaOpenGLReadback::copyImageInto(EGLImageKHR eglImage, const Matrix4 image = scaledSurface->makeImageSnapshot(); if (image->readPixels(bitmap->info(), bitmap->getPixels(), bitmap->rowBytes(), 0, 0)) { + bitmap->notifyPixelsChanged(); copyResult = CopyResult::Success; } } diff --git a/libs/hwui/tests/common/LeakChecker.cpp b/libs/hwui/tests/common/LeakChecker.cpp index d935382cc9a4..fe38ec958527 100644 --- a/libs/hwui/tests/common/LeakChecker.cpp +++ b/libs/hwui/tests/common/LeakChecker.cpp @@ -58,9 +58,8 @@ static void logUnreachable(initializer_list<UnreachableMemoryInfo> infolist) { if (merged.num_leaks) { cout << endl << "Leaked memory!" << endl; if (!merged.leaks[0].backtrace.num_frames) { - cout << "Re-run with 'setprop libc.debug.malloc.program hwui_unit_test'" - << endl << "and 'setprop libc.debug.malloc.options backtrace=8'" - << " to get backtraces" << endl; + cout << "Re-run with 'export LIBC_DEBUG_MALLOC_OPTIONS=backtrace' to get backtraces" + << endl; } cout << merged.ToString(false); } diff --git a/media/java/android/media/audiopolicy/AudioPolicy.java b/media/java/android/media/audiopolicy/AudioPolicy.java index 61d642f50179..7e88c277cc23 100644 --- a/media/java/android/media/audiopolicy/AudioPolicy.java +++ b/media/java/android/media/audiopolicy/AudioPolicy.java @@ -186,9 +186,9 @@ public class AudioPolicy { /** * Declares whether this policy will grant and deny audio focus through - * the {@link AudioPolicy.AudioPolicyStatusListener}. + * the {@link AudioPolicy.AudioPolicyFocusListener}. * If set to {@code true}, it is mandatory to set an - * {@link AudioPolicy.AudioPolicyStatusListener} in order to successfully build + * {@link AudioPolicy.AudioPolicyFocusListener} in order to successfully build * an {@code AudioPolicy} instance. * @param enforce true if the policy will govern audio focus decisions. * @return the same Builder instance. diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java index 934787774637..3800e6f7e509 100644 --- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java +++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java @@ -213,27 +213,6 @@ public class DefaultContainerService extends IntentService { } @Override - public long calculateDirectorySize(String path) throws RemoteException { - Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); - - final File dir = Environment.maybeTranslateEmulatedPathToInternal(new File(path)); - if (dir.exists() && dir.isDirectory()) { - final String targetPath = dir.getAbsolutePath(); - return MeasurementUtils.measureDirectory(targetPath); - } else { - return 0L; - } - } - - @Override - public long[] getFileSystemStats(String path) { - Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); - - final File file = new File(path); - return new long[] { file.getTotalSpace(), file.getUsableSpace() }; - } - - @Override public void clearDirectory(String path) throws RemoteException { Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); diff --git a/packages/SettingsLib/res/drawable/ic_expand_more.xml b/packages/SettingsLib/res/drawable/ic_expand_more.xml new file mode 100644 index 000000000000..a8ff5397c839 --- /dev/null +++ b/packages/SettingsLib/res/drawable/ic_expand_more.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2017 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?android:attr/colorControlNormal"> + + <path + android:fillColor="@android:color/white" + android:pathData="M16.59,8.59L12.0,13.17 7.41,8.59 6.0,10.0l6.0,6.0 6.0,-6.0z"/> + +</vector> diff --git a/packages/SettingsLib/res/layout/preference_category_divider.xml b/packages/SettingsLib/res/layout/preference_category_divider.xml new file mode 100644 index 000000000000..6644eecd71fa --- /dev/null +++ b/packages/SettingsLib/res/layout/preference_category_divider.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2017 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/two_target_divider" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:gravity="start|center_vertical" + android:orientation="horizontal"> + <View + android:layout_height="1dp" + android:layout_width="match_parent" + android:background="?android:attr/dividerHorizontal" /> +</LinearLayout>
\ No newline at end of file diff --git a/packages/SettingsLib/res/layout/preference_category_material_settings_with_divider.xml b/packages/SettingsLib/res/layout/preference_category_material_settings_with_divider.xml new file mode 100644 index 000000000000..70d0898f71c1 --- /dev/null +++ b/packages/SettingsLib/res/layout/preference_category_material_settings_with_divider.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2017 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<!-- Similar to preference_category_material_settings.xml, except that this always adds + a divider above category. --> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <include layout="@layout/preference_category_divider"/> + <include layout="@layout/preference_category_material_settings"/> +</LinearLayout>
\ No newline at end of file diff --git a/packages/SettingsLib/res/layout/preference_two_target.xml b/packages/SettingsLib/res/layout/preference_two_target.xml index 7000940d3720..2309ec6f1f8d 100644 --- a/packages/SettingsLib/res/layout/preference_two_target.xml +++ b/packages/SettingsLib/res/layout/preference_two_target.xml @@ -18,6 +18,7 @@ <!-- Based off preference_material_settings.xml except that ripple on only on the left side. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeightSmall" @@ -50,8 +51,8 @@ android:id="@android:id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:maxWidth="48dp" - android:maxHeight="48dp" /> + settings:maxWidth="48dp" + settings:maxHeight="48dp" /> </LinearLayout> <RelativeLayout diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml index 7e50996a76ec..41694b133067 100644 --- a/packages/SettingsLib/res/values-af/strings.xml +++ b/packages/SettingsLib/res/values-af/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Gekoppel (geen media nie)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Gekoppel (geen boodskaptoegang nie)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Gekoppel (geen foon of media nie)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Gekoppel, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Gekoppel (geen foon nie), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Gekoppel (geen media nie), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Gekoppel (geen foon en media nie), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media-oudio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Foonoproepe"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Lêeroordrag"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressiewe Wi‑Fi-na-mobiel-oorhandiging"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Laat altyd Wi-Fi-swerfskanderings toe"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobiele data is altyd aktief"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Deaktiveer absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Aktiveer inband-luitoon"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP-weergawe"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Laat skynliggings toe"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Aktiveer aansigkenmerkinspeksie"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hou mobiele data altyd aktief, selfs wanneer Wi‑Fi aktief is (vir vinnige netwerkwisseling)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Laat USB-ontfouting toe?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-ontfouting is net vir ontwikkelingsdoeleindes bedoel. Gebruik dit om data te kopieer tussen jou rekenaar en jou toestel, programme op jou toestel te installeer sonder kennisgewing en om loglêerdata te lees."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Herroep toegang tot USB-ontfouting vanaf alle rekenaars wat jy voorheen gemagtig het?"</string> diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml index 79cedfa58789..c24c930b4e96 100644 --- a/packages/SettingsLib/res/values-am/strings.xml +++ b/packages/SettingsLib/res/values-am/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ተያይዟል (ምንም ማህደረ መረጃ የለም)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ተገናኝቷል (ምንም የመልዕክት መዳረሻ የለም)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ተያይዟል (ምንም ስልክ ወይም ማህደረ መረጃ የለም)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ተገናኝቷል፣ ባትሪ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ተገናኝቷል (ምንም ስልክ የለም)፣ ባትሪ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ተገናኝቷል (ምንም ማህደረ መረጃ የለም)፣ ባትሪ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ተገናኝቷል (ምንም ስልክ ወይም ማህደረ መረጃ የለም)፣ ባትሪ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"የማህደረ መረጃ ኦዲዮ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"የስልክ ጥሪዎች"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ፋይል ማስተላለፍ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"አስገዳጅ ከWi‑Fi ወደ ሞባይል ማቀበል"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ሁልጊዜ የWi‑Fi ማንቀሳቀስ ቅኝቶችን ይፍቀዱ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"የተንቀሳቃሽ ስልክ ውሂብ ሁልጊዜ ገቢር ነው"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ፍጹማዊ ድምፅን አሰናክል"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"የውስጠ-ሞገድ ማስጮህን አንቃ"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"የብሉቱዝ AVRCP ስሪት"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"አስቂኝ ሥፍራዎችን ፍቀድ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"የእይታ አይነታ ምርመራን አንቃ"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ምንም እንኳን Wi‑Fi ንቁ ቢሆንም የሞባይል ውሂብን ንቁ እንደሆነ አቆይ (ለፈጣን የአውታረ መረብ ቅይይር)።"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"የUSB ማረሚያ ይፈቀድ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"የUSB አድስ ለግንባታ አላማ ብቻ የታሰበ ነው። ከኮምፒዩተርህ ወደ መሳሪያህ ውሂብ ለመገልበጥ፣ መሣሪያህ ላይ ያለ ማሳወቂያ መተግበሪያዎችን መጫን፣ እና ማስታወሻ ውሂብ ማንበብ ለመጠቀም ይቻላል።"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"የዩ ኤስ ቢ ማረም መዳረሻ ከዚህ ቀደም ፍቃድ ከሰጧቸው ኮምፒውተሮች ላይ ይሻሩ?"</string> diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml index d1b13a4da61b..9384cab89986 100644 --- a/packages/SettingsLib/res/values-ar/strings.xml +++ b/packages/SettingsLib/res/values-ar/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"متصل (بجهاز غير الوسائط)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"تم الاتصال (يتعذر الدخول إلى الرسائل)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"متصل (بجهاز غير الهاتف أو الوسائط)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"الجهاز متّصل، ومستوى طاقة البطارية <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"الجهاز متّصل (من دون هاتف)، ومستوى طاقة البطارية <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"الجهاز متّصل (من دون وسائط)، ومستوى طاقة البطارية <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"الجهاز متّصل (من دون هاتف أو وسائط)، ومستوى طاقة البطارية <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"الإعدادات الصوتية للوسائط"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"المكالمات الهاتفية"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"نقل الملف"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"تسليم Wi-Fi حاد إلى جوّال"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"السماح دائمًا بعمليات فحص Wi-Fi للتجوال"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"بيانات الجوّال نشطة دائمًا"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"تعطيل مستوى الصوت المطلق"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"تمكين الرنين ضمن النطاق الأساسي"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"إصدار Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"السماح بمواقع وهمية"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"تمكين فحص سمة العرض"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"اجعل بيانات الجوّال نشطة دائمًا، حتى عندما يكون اتصال Wi‑Fi نشطًا (لتبديل الشبكة بسرعة)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"هل تريد السماح بتصحيح أخطاء USB؟"</string> <string name="adb_warning_message" msgid="7316799925425402244">"تم تصميم تصحيح أخطاء USB لأغراض التطوير فقط. يمكن استخدامه لنسخ البيانات بين الكمبيوتر والجهاز، وتثبيت التطبيقات على جهازك بدون تنبيه، وقراءة بيانات السجل."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"هل تريد إلغاء إمكانية الدخول إلى تصحيح أخطاء USB من جميع أجهزة الكمبيوتر التي تم التصريح لها سابقًا؟"</string> diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml index 95ea112a6f3a..5b65f0c7f0a8 100644 --- a/packages/SettingsLib/res/values-az/strings.xml +++ b/packages/SettingsLib/res/values-az/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Qoşuludur (media yoxdur)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Qoşulu (mesaj girişi yoxdur)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Bağlantı yaradılıb (telefon və ya media deyil)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Qoşuldu, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Qoşuldu (telefondan başqa), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Qoşuldu (mediadan başqa), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Qoşuldu (telefon və ya mediadan başqa), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefon zəngləri"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Fayl transferi"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Möbül ötürücüyə aqressiv Wi‑Fi"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi axtarışlarına həmişə icazə verin"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobil data həmişə aktiv"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Mütləq səs həcmi deaktiv edin"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Diapazon daxili zəngi aktiv edin"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP Versiya"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Sınaq yerləşmələrə icazə verin"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Atribut inspeksiyasına baxışa icazə verin"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hətta Wi‑Fi aktiv olanda da mobil datanı həmişə aktiv saxlayın (sürətli şəbəkək keçidi üçün)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB debaq funksiyasına icazə verilsin?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB sazlanması yalnız inkişaf məqsədlidir. Kompüteriniz və cihazınız arasında datanı kopyalamaq üçün ondan istifadə edin, bildiriş olmadan tətbiqləri cihazınıza quraşdırın və qeydiyyat datasını oxuyun."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Əvvəl icazə verdiyiniz kompüterlərdən USB debaq əməliyyatına giriş ləğv olunsun?"</string> diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml index 7a2ee50fd3bb..38586590d718 100644 --- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml +++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Povezano (bez medija)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Povezano je (nema pristupa porukama)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Povezano (bez telefona ili medija)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Povezano, nivo baterije je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Povezano (bez telefona), nivo baterije je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Povezano (bez medija), nivo baterije je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Povezano (bez telefona ili medija), nivo baterije je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Zvuk medija"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonski pozivi"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Prenos datoteke"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresivan prelaz sa Wi‑Fi mreže na mobilnu"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Uvek dozvoli skeniranje Wi‑Fi-ja u romingu"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilni podaci su uvek aktivni"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Onemogući glavno podešavanje jačine zvuka"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Omogućavanje zvonjave na istom kanalu"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Verzija Bluetooth AVRCP-a"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Dozvoli lažne lokacije"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Omogući proveru atributa za pregled"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Neka mobilni podaci uvek budu aktivni, čak i kada je Wi‑Fi aktivan (radi brze promene mreže)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Dozvoli otklanjanje USB grešaka?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Otklanjanje USB grešaka namenjeno je samo za svrhe programiranja. Koristite ga za kopiranje podataka sa računara na uređaj i obrnuto, instaliranje aplikacija na uređaju bez obaveštenja i čitanje podataka iz evidencije."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Želite li da opozovete pristup otklanjanju USB grešaka sa svih računara koje ste prethodno odobrili?"</string> diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml index 834e6897da09..52185909f43a 100644 --- a/packages/SettingsLib/res/values-be/strings.xml +++ b/packages/SettingsLib/res/values-be/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Падключэнне (без носьбіта)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Падлучана (без доступу да паведамленняў)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Падключаны (без тэлефона або носьбіта)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Падключана, узровень зараду акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Падключана (без тэлефона), узровень зараду акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Падключана (без носьбіта), узровень зараду акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Падключана (без тэлефона ці носьбіта), узровень зараду акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Аўдыё медыяпрылады"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Тэлефонныя выклікі"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Перадача файлаў"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Інтэнсіўны пераход з Wi‑Fi на маб. сетку"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Заўсёды дазваляць роўмінгавае сканіраванне Wi‑Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мабільная перадача даных заўсёды актыўная"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Адключыць абсалютны гук"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Уключыць унутрыпалосны празвон"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Версія Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Дазволіць несапраўдныя месцы"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Уключыць прагляд атрыбутаў"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Перадача даных мабільнай сувязі заўсёды актыўна, нават калі актыўна сетка Wi‑Fi (для хуткага пераключэння паміж сеткамі)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Дазволіць адладку USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Адладка USB прызначана толькі для мэтаў распрацоўкі. Яна можа выкарыстоўвацца, каб капіяваць дадзеныя паміж кампутарам і прыладай, усталёўваць прыкладанні на прыладзе без папярэдняга апавяшчэння і чытаць дадзеныя дзённiка."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Адклікаць доступ да адладкі USB з усіх камп\'ютараў, на якiх вы уваходзiлi ў сiстэму?"</string> diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml index ce9ee567dfa4..0596376d3005 100644 --- a/packages/SettingsLib/res/values-bg/strings.xml +++ b/packages/SettingsLib/res/values-bg/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Свързано (без мултимедията)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Има връзка (няма достъп до съобщенията)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Свързано (без телефона или мултимедията)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Свързано, батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Свързано (без телефона), батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Свързано (без мултимедията), батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Свързано (без телефона или мултимедията), батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Мултимедийно аудио"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефонни обаждания"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Прехвърляне на файл"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi-Fi към моб. мрежи: Агресивно предав."</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Сканирането за роуминг на Wi-Fi да е разрешено винаги"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Винаги активни мобилни данни"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Деактивиране на пълната сила на звука"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Активиране на звъненето в една и съща честотна лента"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Версия на AVRCP за Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Разрешаване на измислени местоположения"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Актив. на инспектирането на атрибутите за преглед"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Мобилните данни са активни винаги – дори когато функцията за Wi‑Fi е включена (за бързо превключване между мрежите)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Разрешаване на отстраняването на грешки през USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Отстраняването на грешки през USB е предназначено само за програмни цели. Използвайте го за копиране на данни между компютъра и устройството си, за инсталиране на приложения на устройството си без известяване и за четене на регистрационни данни."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Да се отмени ли достъпът до отстраняването на грешки през USB от всички по-рано упълномощени от вас компютри?"</string> diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml index 5093a6a75455..b374be775da9 100644 --- a/packages/SettingsLib/res/values-bn/strings.xml +++ b/packages/SettingsLib/res/values-bn/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"সংযুক্ত (কোনো মিডিয়া নেই)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"সংযুক্ত (কোনো বার্তা অ্যাক্সেস নেই)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"সংযুক্ত (কোনো ফোন বা মিডিয়া নেই)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"সংযুক্ত হয়েছে, ব্যাটারি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"সংযুক্ত হয়েছে (ফোন ছাড়া), ব্যাটারি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"সংযুক্ত হয়েছে (মিডিয়া ছাড়া), ব্যাটারি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"সংযুক্ত হয়েছে (ফোন বা মিডিয়া ছাড়া), ব্যাটারি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"মিডিয়া অডিও"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ফোন কল"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ফাইল স্থানান্তর"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ওয়াই-ফাই থেকে মোবাইলে তৎপর হস্তান্তর"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"সর্বদা ওয়াই ফাই রোম স্ক্যানকে অনুমতি দিন"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"মোবাইল ডেটা সব সময় সক্রিয় থাক"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"চূড়ান্ত ভলিউম অক্ষম করুন"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ইন-ব্যান্ড রিং করা সক্ষম করুন"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ব্লুটুথ AVRCP সংস্করণ"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"মক অবস্থানগুলি মঞ্জুর করুন"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"অ্যাট্রিবিউট পরিদর্শন দেখা সক্ষম করুন"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ওয়াই-ফাই সক্রিয় থাকার সময়েও (দ্রুত নেটওয়ার্কে পাল্টানোর জন্য) সর্বদা মোবাইল ডেটা সক্রিয় রাখুন।"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ডিবাগিং মঞ্জুর করবেন?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ডিবাগিং কেবলমাত্র বিকাশ করার উদ্দেশ্যে। আপনার কম্পিউটার এবং আপনার ডিভাইসের মধ্যে ডেটা অনুলিপি করতে এটি ব্যবহার করুন, বিজ্ঞপ্তি ছাড়া আপনার ডিভাইসে অ্যাপ্লিকেশানগুলি ইনস্টল করুন এবং ডেটা লগ পড়ুন।"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"আপনি আগে যে সব কম্পিউটার USB ডিবাগিং এর অ্যাক্সেসের অনুমতি দিয়েছিলেন তা প্রত্যাহার করবেন?"</string> diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml index 1af6e30725b0..ce5c3dc443dc 100644 --- a/packages/SettingsLib/res/values-bs/strings.xml +++ b/packages/SettingsLib/res/values-bs/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Povezano (bez medija)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Povezano (bez pristupa porukama)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Povezano (bez zvuka telefona ili medija)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Povezano, baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Povezano (bez telefona), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Povezano (bez medija), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Povezano (bez telefona ili medija), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Zvuk medija"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonski pozivi"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Prenošenje fajla"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresivni prijenos s Wi-Fi mreže na mob."</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Uvijek dopustiti Wi-Fi lutajuće skeniranje"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilna mreža za prijenos podataka je uvijek aktivna"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Onemogućite apsolutnu jačinu zvuka"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Omogući zvono unutar pojasa"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP verzija"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Dozvoli lažne lokacije"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Omogući pregled atributa prikaza"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Uvijek drži mobilne podatke aktivnim, čak i kada je Wi-Fi je aktivan (za brzo prebacivanje između mreža)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti otklanjanje grešaka putem uređaja spojenog na USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Otklanjanje grešaka putem uređaja spojenog na USB je namijenjeno samo u svrhe razvoja aplikacija. Koristite ga za kopiranje podataka između računara i uređaja, instaliranje aplikacija na uređaj bez obavještenja te čitanje podataka iz zapisnika."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Opozvati pristup otklanjanju grešaka putem uređaja spojenog na USB za sve računare koje ste prethodno ovlastili?"</string> diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml index a5524ae1c2fc..28f2338283ec 100644 --- a/packages/SettingsLib/res/values-ca/strings.xml +++ b/packages/SettingsLib/res/values-ca/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connectat (sense fitxers multimèdia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connectat (no hi ha accés als missatges)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connectat (sense telèfon o disp. mult.)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connectat (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria)"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connectat, sense telèfon (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria)"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connectat, sense àudio multimèdia (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria)"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connectat, sense telèfon ni àudio multimèdia (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria)"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Àudio multimèdia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Trucades telefòniques"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferència del fitxer"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Transferència agressiva de Wi-Fi a mòbil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Permet sempre cerca de Wi-Fi en ininerància"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dades mòbils sempre actives"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desactiva el volum absolut"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Activa el so al mateix canal"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versió AVRCP de Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permet les ubicacions simulades"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Inspecció d\'atributs de visualització"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mantén les dades mòbils sempre actives, fins i tot quan la Wi‑Fi està activada (per canviar de xarxa ràpidament)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Voleu permetre la depuració USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"La depuració USB només està indicada per a activitats de desenvolupament. Fes-la servir intercanviar dades entre l\'ordinador i el dispositiu, per instal·lar aplicacions al dispositiu sense rebre notificacions i per llegir dades de registre."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Vols revocar l\'accés a la depuració d\'USB dels ordinadors que has autoritzat anteriorment?"</string> diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml index 8d82e80cf939..45b139fd67a7 100644 --- a/packages/SettingsLib/res/values-cs/strings.xml +++ b/packages/SettingsLib/res/values-cs/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Připojeno (žádná média)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Připojeno (bez přístupu ke zprávám)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Připojeno (žádný telefon nebo média)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Připojeno, baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Připojeno (žádný telefon), baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Připojeno (žádná média), baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Připojeno (žádný telefon ani média), baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Zvuk médií"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonní hovory"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Přenos souborů"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresivní předání z Wi-Fi na mobilní síť"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Vždy povolit Wi-Fi roaming"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilní data jsou vždy aktivní"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Zakázat absolutní hlasitost"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Povolit vyzvánění v hovorovém pásmu"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Verze profilu Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Povolit simulované polohy"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Kontrola atributu zobrazení"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mobilní data budou vždy ponechána aktivní, i když bude aktivní Wi-Fi (za účelem rychlého přepínání sítí)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Povolit ladění USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ladění prostřednictvím rozhraní USB je určeno pouze pro účely vývoje. Použijte je ke kopírování dat mezi počítačem a zařízením, instalaci aplikací do zařízení bez upozornění a čtení dat protokolů."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Zrušit přístup k ladění USB ze všech počítačů, které jste v minulosti autorizovali?"</string> diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml index 73662943730d..e9e2d2a64a07 100644 --- a/packages/SettingsLib/res/values-da/strings.xml +++ b/packages/SettingsLib/res/values-da/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Tilsluttet (intet medie)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Forbundet (ingen adgang til meddelelse)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Forbundet (ingen telefon eller medier)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Tilsluttet – batteriniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Tilsluttet (ingen telefon) – batteriniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Tilsluttet (ingen medier) – batteriniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Tilsluttet (ingen telefon eller medier) – batteriniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Medielyd"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonopkald"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Filoverførsel"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Tvungen skift fra Wi-Fi til mobildata"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Tillad altid scanning af Wi-Fi-roaming"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobildata er altid aktiveret"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Deaktiver absolut lydstyrke"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Afspil ringetone via Bluetooth"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"AVRCP-version for Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Tillad imiterede placeringer"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Aktivér visning af attributinspektion"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hold altid mobildata aktiveret, selv når Wi-Fi er aktiveret (for at skifte hurtigt mellem netværk)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Vil du tillade USB-fejlretning?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-fejlretning er kun beregnet til udvikling og kan bruges til at kopiere data mellem din computer og enheden, installere apps på enheden uden meddelelser og læse logdata."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Vil du ophæve adgangen til USB-fejlfinding for alle computere, du tidligere har godkendt?"</string> diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml index ccfa67535ee4..846068fb6fae 100644 --- a/packages/SettingsLib/res/values-de/strings.xml +++ b/packages/SettingsLib/res/values-de/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Verbunden (außer Audiomedien)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Verbunden (ohne Nachrichtenzugriff)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Verbunden (außer Telefon- und Audiomedien)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Verbunden, Akkustand <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Verbunden (außer Telefon), Akkustand <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Verbunden (außer Audiomedien), Akkustand <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Verbunden (außer Telefon und Audiomedien), Akkustand <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media-Audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonanrufe"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Dateiübertragung"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressives Handover von WLAN an Mobilfunk"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"WLAN-Roamingsuchen immer zulassen"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobile Datennutzung immer aktiviert"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Maximallautstärke deaktivieren"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"In-Band-Klingeln aktivieren"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP-Version"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Simulierte Standorte zulassen"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Inspektion der Anzeigeattribute aktivieren"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Die mobile Datennutzung bleibt auch dann aktiviert, wenn WLAN aktiviert ist. Dies dient einem schnelleren Wechsel zwischen Netzwerken."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB-Debugging zulassen?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-Debugging ist nur für Entwicklungszwecke vorgesehen. Damit kannst du Daten zwischen deinem Computer und deinem Gerät kopieren, Apps auf deinem Gerät ohne Benachrichtigung installieren und Protokolldaten lesen."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Zugriff auf USB-Debugging für alle zuvor autorisierten Computer aufheben?"</string> diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml index e424b285793e..07ba15d4da88 100644 --- a/packages/SettingsLib/res/values-el/strings.xml +++ b/packages/SettingsLib/res/values-el/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Συνδεδεμένο (όχι μέσα)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Συνδεδεμένο (χωρίς πρόσβαση μηνύματος)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Συνδεδεμένο (χωρίς τηλέφωνο ή πολυμέσα)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Σύνδεση, μπαταρία <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Σύνδεση (όχι σε τηλέφωνο), μπαταρία <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Σύνδεση (όχι σε πολυμέσα), μπαταρία <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Σύνδεση (όχι σε τηλέφωνο ή πολυμέσα), μπαταρία <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Ήχος πολυμέσων"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Τηλεφωνικές κλήσεις"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Μεταφορά αρχείου"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Επιθ.μεταβ. Wi-Fi σε δίκτυο κιν.τηλ."</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Να επιτρέπεται πάντα η σάρωση Wi-Fi κατά την περιαγωγή"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Πάντα ενεργά δεδομένα κινητής τηλεφωνίας"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Απενεργοποίηση απόλυτης έντασης"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ενεργοποίηση κλήσης εντός εύρους"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Έκδοση AVRCP Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Να επιτρέπονται ψευδείς τοποθεσίες"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Ενεργοποίηση του ελέγχου χαρακτηριστικών προβολής"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Τα δεδομένα κινητής τηλεφωνίας να διατηρούνται πάντα ενεργά, ακόμα και όταν είναι ενεργό το Wi-Fi (για γρήγορη εναλλαγή δικτύου)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Να επιτρέπεται ο εντοπισμός σφαλμάτων USB;"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ο εντοπισμός σφαλμάτων USB προορίζεται μόνο για σκοπούς προγραμματισμού. Χρησιμοποιήστε τον για αντιγραφή δεδομένων μεταξύ του υπολογιστή και της συσκευής σας, για την εγκατάσταση εφαρμογών στη συσκευή σας χωρίς προειδοποίηση και για την ανάγνωση δεδομένων καταγραφής."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Ανάκληση πρόσβασης στον εντοπισμό σφαλμάτων USB από όλους τους υπολογιστές για τους οποίους είχατε εξουσιοδότηση στο παρελθόν;"</string> diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml index de32f3c69bb2..7e5f7ac4a100 100644 --- a/packages/SettingsLib/res/values-en-rAU/strings.xml +++ b/packages/SettingsLib/res/values-en-rAU/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connected (no media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connected (no message access)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connected (no phone or media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connected (no phone), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connected (no media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connected (no phone or media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Phone calls"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"File transfer"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressive Wi‑Fi to mobile handover"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Always allow Wi‑Fi Roam Scans"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobile data always active"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Disable absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Enable in-band ringing"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP Version"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Allow mock locations"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Enable view attribute inspection"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Always keep mobile data active, even when Wi‑Fi is active (for fast network switching)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Allow USB debugging?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB debugging is intended for development purposes only. Use it to copy data between your computer and your device, install apps on your device without notification and read log data."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revoke access to USB debugging from all computers you\'ve previously authorised?"</string> diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml index de32f3c69bb2..7e5f7ac4a100 100644 --- a/packages/SettingsLib/res/values-en-rGB/strings.xml +++ b/packages/SettingsLib/res/values-en-rGB/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connected (no media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connected (no message access)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connected (no phone or media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connected (no phone), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connected (no media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connected (no phone or media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Phone calls"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"File transfer"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressive Wi‑Fi to mobile handover"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Always allow Wi‑Fi Roam Scans"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobile data always active"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Disable absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Enable in-band ringing"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP Version"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Allow mock locations"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Enable view attribute inspection"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Always keep mobile data active, even when Wi‑Fi is active (for fast network switching)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Allow USB debugging?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB debugging is intended for development purposes only. Use it to copy data between your computer and your device, install apps on your device without notification and read log data."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revoke access to USB debugging from all computers you\'ve previously authorised?"</string> diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml index de32f3c69bb2..7e5f7ac4a100 100644 --- a/packages/SettingsLib/res/values-en-rIN/strings.xml +++ b/packages/SettingsLib/res/values-en-rIN/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connected (no media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connected (no message access)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connected (no phone or media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connected (no phone), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connected (no media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connected (no phone or media), battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Phone calls"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"File transfer"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressive Wi‑Fi to mobile handover"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Always allow Wi‑Fi Roam Scans"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobile data always active"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Disable absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Enable in-band ringing"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP Version"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Allow mock locations"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Enable view attribute inspection"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Always keep mobile data active, even when Wi‑Fi is active (for fast network switching)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Allow USB debugging?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB debugging is intended for development purposes only. Use it to copy data between your computer and your device, install apps on your device without notification and read log data."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revoke access to USB debugging from all computers you\'ve previously authorised?"</string> diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml index f261cbff8102..35a2c947c315 100644 --- a/packages/SettingsLib/res/values-es-rUS/strings.xml +++ b/packages/SettingsLib/res/values-es-rUS/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sin audio multimedia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectado (sin acceso a mensajes)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (sin tel. ni audio multimedia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Conectado. Batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Conectado (sin teléfono). Batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Conectado (sin audio multimedia). Batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Conectado (sin teléfono ni audio multimedia). Batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio multimedia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Llamadas telefónicas"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferencia de archivos"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Priorizar cambio de red Wi-Fi a móvil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Permitir siempre búsquedas de Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Datos móviles siempre activados"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Inhabilitar volumen absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Habilitar sonido dentro de banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versión de AVRCP del Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir ubicaciones de prueba"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Habilitar inspección de atributos de vista"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Siempre mantén los datos móviles activos, incluso cuando esté activada la conexión Wi‑Fi (para cambiar de red de forma rápida)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"¿Permitir depuración por USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"La depuración por USB solo está indicada para actividades de programación. Úsala para copiar datos entre tu computadora y el dispositivo, para instalar aplicaciones en el dispositivo sin recibir notificaciones y para leer datos de registro."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"¿Quieres revocar el acceso a la depuración por USB desde todas la computadoras que autorizaste hasta ahora?"</string> diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml index d52ac0682e83..5d971b876bd4 100644 --- a/packages/SettingsLib/res/values-es/strings.xml +++ b/packages/SettingsLib/res/values-es/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sin audio multimedia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectado (sin acceso a mensajes)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (sin teléfono ni multimedia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Conectado (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería)"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Conectado sin teléfono (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería)"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Conectado sin audio multimedia (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería)"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Conectado sin teléfono ni audio multimedia (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería)"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio multimedia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Llamadas de teléfono"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferencia de archivos"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Transferencia agresiva de Wi-Fi a móvil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Permitir siempre búsquedas de Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Datos móviles siempre activos"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Inhabilitar volumen absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Habilitar tono de llamada por Bluetooth"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versión AVRCP del Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir ubicaciones simuladas"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Inspección de atributos de vista"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mantén los datos móviles siempre activos, aunque la conexión Wi‑Fi esté activada (para cambiar de red rápidamente)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"¿Permitir depuración por USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"La depuración por USB solo está indicada para actividades de desarrollo. Puedes utilizarla para intercambiar datos entre el ordenador y el dispositivo, para instalar aplicaciones en el dispositivo sin recibir notificaciones y para leer datos de registro."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"¿Quieres revocar el acceso a la depuración por USB de todos los ordenadores que has autorizado?"</string> diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml index 5cb3e2a6dff9..4a26fd4f0eec 100644 --- a/packages/SettingsLib/res/values-et/strings.xml +++ b/packages/SettingsLib/res/values-et/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Ühendatud (meediat pole)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Ühendatud (sõnumita juurdepääs)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Ühendatud (pole telefoni ega meediat)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Ühendatud, aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Ühendatud (telefoni pole), aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Ühendatud (meediat pole), aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Ühendatud (telefoni ega meediat pole), aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Meedia heli"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonikõned"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Failiedastus"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agress. üleminek WiFi-lt mobiilsidele"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Luba alati WiFi-rändluse skannimine"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobiilne andmeside on alati aktiivne"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Keela absoluutne helitugevus"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Luba ribasisene helisemine"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetoothi AVRCP versioon"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Luba võltsasukohti"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Luba kuva atribuudi hindamine"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hoidke mobiilne andmeside alati aktiivsena, isegi kui WiFi on aktiivne (võrkude kiireks vahetamiseks)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Luban USB silumise?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-silumine on mõeldud ainult arendamiseks. Kasutage seda andmete kopeerimiseks oma arvuti ja seadme vahel, seadmesse rakenduste installimiseks ilma teatisteta ning logiandmete lugemiseks."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Kas tühistada juurdepääs USB silumisele kõikides arvutites, mille olete varem volitanud?"</string> diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml index e4b6c95d5d3e..4ad06b3dc182 100644 --- a/packages/SettingsLib/res/values-eu/strings.xml +++ b/packages/SettingsLib/res/values-eu/strings.xml @@ -190,6 +190,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Behartu Wi-Fi konexiotik datuenera aldatzera"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Onartu beti ibiltaritzan Wi-Fi sareak bilatzea"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Datu mugikorrak beti aktibo"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desgaitu bolumen absolutua"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Gaitu tonuak audio-kanal berean erreproduzitzeko aukera"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP bertsioa"</string> @@ -221,6 +223,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Onartu kokapen faltsuak"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Gaitu ikuspegiaren atributuak ikuskatzeko aukera"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mantendu mugikorreko datuak beti aktibo, baita Wi-Fi konexioa aktibo dagoenean ere (sarez bizkor aldatu ahal izateko)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB arazketa onartu?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB arazketa garapen-xedeetarako soilik dago diseinatuta. Erabil ezazu ordenagailuaren eta gailuaren artean datuak kopiatzeko, aplikazioak gailuan jakinarazi gabe instalatzeko eta erregistro-datuak irakurtzeko."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Aurretik baimendutako ordenagailu guztiei USB arazketarako sarbidea baliogabetu nahi diezu?"</string> @@ -289,7 +293,7 @@ <string name="app_process_limit_title" msgid="4280600650253107163">"Atzeko planoko prozesuen muga"</string> <string name="show_all_anrs" msgid="28462979638729082">"Erakutsi ANR guztiak"</string> <string name="show_all_anrs_summary" msgid="641908614413544127">"\"Erantzunik ez\" mezua atz. planoko aplikazioetarako"</string> - <string name="show_notification_channel_warnings" msgid="1399948193466922683">"Erakutsi jakinarazpenen kanaleko abisuak"</string> + <string name="show_notification_channel_warnings" msgid="1399948193466922683">"Erakutsi jakinarazpenen kanalen abisuak"</string> <string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Bistaratu abisuak aplikazioek baliozko kanalik gabeko jakinarazpenak argitaratzean"</string> <string name="force_allow_on_external" msgid="3215759785081916381">"Behartu aplikazioak onartzea kanpoko biltegian"</string> <string name="force_allow_on_external_summary" msgid="3640752408258034689">"Aplikazioek kanpoko memorian idatz dezakete, manifestuaren balioak kontuan izan gabe"</string> diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml index bf10b1ab3d41..512c9c7849eb 100644 --- a/packages/SettingsLib/res/values-fa/strings.xml +++ b/packages/SettingsLib/res/values-fa/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"متصل شد (بدون رسانه)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"متصل (عدم دسترسی به پیام)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"متصل شد (بدون تلفن یا رسانه)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"متصل، باتری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"متصل (بدون تلفن)، باتری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"متصل (بدون رسانه)، باتری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"متصل (بدون تلفن یا رسانه)، باتری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"رسانه صوتی"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"تماسهای تلفنی"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"انتقال فایل"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi قوی برای واگذاری به دستگاه همراه"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"اسکنهای رومینگ Wi‑Fi همیشه مجاز است"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"داده تلفن همراه همیشه فعال باشد"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"غیرفعال کردن میزان صدای مطلق"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"فعال کردن زنگ زدن درون باندی"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"نسخه AVRCP بلوتوث"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"مکانهای کاذب مجاز هستند"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"فعال کردن نمایش بازبینی ویژگی"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"داده سلولی همیشه فعال نگه داشته میشود، حتی وقتی Wi-Fi فعال است (برای جابهجایی سریع شبکه)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"اشکالزدایی USB انجام شود؟"</string> <string name="adb_warning_message" msgid="7316799925425402244">"اشکالزدایی USB فقط برای اهداف برنامهنویسی در نظر گرفته شده است. از آن برای رونوشتبرداری داده بین رایانه و دستگاهتان، نصب برنامهها در دستگاهتان بدون اعلان و خواندن دادههای گزارش استفاده کنید."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"دسترسی به اشکالزدایی USB از تمام رایانههایی که قبلاً مجاز دانستهاید لغو شود؟"</string> diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml index 42a0127a4937..095b72f70d4e 100644 --- a/packages/SettingsLib/res/values-fi/strings.xml +++ b/packages/SettingsLib/res/values-fi/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Yhdistetty (ei median ääntä)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Yhdistetty (ei MAP)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Yhdistetty (ei puhelimen/median ääntä)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Yhdistetty, akun varaus <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Yhdistetty (ei puhelimen ääntä), akun varaus <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Yhdistetty (ei median ääntä), akun varaus <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Yhdistetty (ei puhelimen tai median ääntä), akun varaustaso <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Median ääni"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Puhelut"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Tiedostonsiirto"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Vaihda herkästi Wi-Fi mobiiliyhteyteen"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Salli Wi-Fi-verkkovierailuskannaus aina"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobiilidata aina käytössä"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Poista yleinen äänenvoimakkuuden säätö käytöstä"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ota käyttöön kaistalla soitto"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetoothin AVRCP-versio"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Salli sijaintien imitointi"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Ota attribuuttinäkymän tarkistus käyttöön"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Pidä mobiilidata aina käytössä, vaikka Wi-Fi olisi aktiivinen. Tämä mahdollistaa nopeamman vaihtelun verkkojen välillä."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Sallitaanko USB-vianetsintä?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-vianetsintä on tarkoitettu vain kehittäjien käyttöön. Sen avulla voidaan kopioida tietoja tietokoneesi ja laitteesi välillä, asentaa laitteeseesi sovelluksia ilmoittamatta siitä sinulle ja lukea lokitietoja."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Haluatko peruuttaa USB-vianetsinnän käyttöoikeuden kaikilta tietokoneilta, joille olet antanut luvan aiemmin?"</string> diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml index 88fd9cbacb80..97f080017974 100644 --- a/packages/SettingsLib/res/values-fr-rCA/strings.xml +++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connecté (sans audio contenu mutimédia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connecté (sans accès aux messages)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connecté (sans audio tel./multimédia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connecté. Pile : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connecté (sans téléphone). Pile : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connecté (sans média). Pile : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connecté (sans téléphone ni média). Pile : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Paramètres audio du support"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Appels téléphoniques"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transfert de fichier"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Passage forcé du Wi-Fi aux données cell."</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Toujours autoriser la détection de réseaux Wi-Fi en itinérance"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Données cellulaires toujours actives"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Désactiver le volume absolu"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Activer la signalisation intra-bande"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Version du profil Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Autoriser les positions fictives"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Activer l\'inspection d\'attribut d\'affichage"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Toujours garder les données cellulaires actives, même lorsque le Wi-Fi est activé (pour la commutation rapide entre les réseaux)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Autoriser le débogage USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Le débogage USB est conçu uniquement pour le développement. Utilisez-le pour copier des données entre votre ordinateur et votre appareil, installer des applications sur votre appareil sans notification et lire les données de journal."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Voulez-vous vraiment désactiver l\'accès au débogage USB de tous les ordinateurs précédemment autorisés?"</string> diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml index c5f951d8b308..eb6bdf0d850c 100644 --- a/packages/SettingsLib/res/values-fr/strings.xml +++ b/packages/SettingsLib/res/values-fr/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Connecté (sans audio contenu mutimédia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connecté (sans accès aux messages)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Connecté (sans audio tel./multimédia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connecté, batterie à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connecté (aucun téléphone), batterie à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connecté (aucun contenu multimédia), batterie à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connecté (aucun téléphone ni contenu multimédia), batterie à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Multimédia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Appels téléphoniques"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transfert de fichier"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Passage forcé Wi-Fi vers données mobiles"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Toujours autoriser la détection de réseaux Wi-Fi en itinérance"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Données mobiles toujours actives"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Désactiver le volume absolu"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Activer la signalisation intra-bande"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Version Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Autoriser les positions fictives"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Activer inspect. attribut affich."</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Maintenir l\'état actif des données mobiles, même lorsque le Wi‑Fi est actif (pour changer rapidement de réseau)"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Autoriser le débogage USB ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Le débogage USB est conçu uniquement pour le développement. Utilisez-le pour copier des données entre votre ordinateur et votre appareil, installer des applications sur votre appareil sans notification et lire les données de journal."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Voulez-vous vraiment désactiver l\'accès au débogage USB de tous les ordinateurs précédemment autorisés ?"</string> diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml index d60d072426a1..e0f92c86b07c 100644 --- a/packages/SettingsLib/res/values-gl/strings.xml +++ b/packages/SettingsLib/res/values-gl/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sen ficheiros multimedia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectado (sen acceso ás mensaxes)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (ningún teléfono nin soporte)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Dispositivo conectado. Nivel da batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Dispositivo conectado (sen teléfono). Nivel da batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Dispositivo conectado (sen audio multimedia). Nivel da batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Dispositivo conectado (sen teléfono nin audio multimedia). Nivel da batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio multimedia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Chamadas telefónicas"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferencia de ficheiros"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Transferencia agresiva de wifi a móbil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Permitir sempre buscas de itinerancia da wifi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Datos móbiles sempre activados"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desactivar volume absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Activar a función de soar na mesma banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versión AVRCP de Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permite localizacións falsas"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Activar a inspección de atributos de visualización"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mantén sempre os datos móbiles activos, aínda que a wifi estea activada (para un rápido cambio de rede)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Queres permitir a depuración USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"A depuración de erros USB está deseñada unicamente para fins de programación. Utilízaa para copiar datos entre o ordenador e o dispositivo, instalar aplicacións no dispositivo sen enviar notificacións e ler os datos do rexistro."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Queres revogar o acceso á depuración USB desde todos os ordenadores que autorizaches previamente?"</string> diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml index 20d92f2b7052..bc996d0b8831 100644 --- a/packages/SettingsLib/res/values-gu/strings.xml +++ b/packages/SettingsLib/res/values-gu/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"કનેક્ટ કર્યું (મીડિયા નથી)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"કનેક્ટ કર્યું (કોઇ સંદેશ ઍક્સેસ નથી)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"કનેક્ટ કરેલ (કોઈ ફોન અથવા મીડિયા નથી)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"કનેક્ટ કરેલ, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"કનેક્ટ કરેલ (કોઈ ફોન નથી), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"કનેક્ટ કરેલ (કોઈ મીડિયા નથી), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"કનેક્ટ કરેલ (કોઈ ફોન અથવા મીડિયા નથી), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"મીડિયા ઑડિઓ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ફોન કૉલ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ફાઇલ સ્થાનાંતરણ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"સશક્ત Wi‑Fiથી મોબાઇલ પર હૅન્ડઓવર"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"હંમેશા Wi‑Fi રોમ સ્કૅન્સને મંજૂરી આપો"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"મોબાઇલ ડેટા હંમેશાં સક્રિય"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ચોક્કસ વૉલ્યૂમને અક્ષમ કરો"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"બેંડમાં રિંગ કરવાનું સક્ષમ કરો"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP સંસ્કરણ"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"મોક સ્થાનોની મંજૂરી આપો"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"લક્ષણ નિરીક્ષણ જોવાનું સક્ષમ કરો"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi સક્રિય હોય ત્યારે પણ, હંમેશા મોબાઇલ ડેટાને સક્રિય રાખો (ઝડપી નેટવર્ક સ્વિચિંગ માટે)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ડિબગિંગને મંજૂરી આપીએ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ડિબગીંગ ફક્ત વિકાસ હેતુઓ માટે જ બનાવાયેલ છે. તેનો ઉપયોગ તમારા કમ્પ્યુટર અને તમારા ઉપકરણ વચ્ચે ડેટાને કૉપિ કરવા, સૂચના વગર તમારા ઉપકરણ પર ઍપ્લિકેશનો ઇન્સ્ટોલ કરવા અને લૉગ ડેટા વાંચવા માટે કરો."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"તમે અગાઉ અધિકૃત કરેલા તમામ કમ્પ્યુટર્સમાંથી USB ડિબગિંગ પરની અૅક્સેસ રદબાતલ કરીએ?"</string> diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml index 217099d0547a..8ccaae8962bb 100644 --- a/packages/SettingsLib/res/values-hi/strings.xml +++ b/packages/SettingsLib/res/values-hi/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"कनेक्ट है (मीडिया नहीं)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"कनेक्ट किया गया (कोई संदेश एक्सेस नहीं)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"कनेक्ट है (फ़ोन या मीडिया नहीं)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"कनेक्ट किया गया, बैटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> है"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"कनेक्ट किया गया (कोई फ़ोन नहीं), बैटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> है"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"कनेक्ट किया गया (कोई मीडिया नहीं), बैटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> है"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"कनेक्ट किया गया (कोई फ़ोन या मीडिया नहीं), बैटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> है"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"मीडिया ऑडियो"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"फ़ोन कॉल"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"फ़ाइल स्थानांतरण"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"वाई-फ़ाई से मोबाइल पर ज़्यादा तेज़ी से हैंडओवर"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"हमेशा वाई-फ़ाई रोम स्कैन करने दें"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"मोबाइल डेटा हमेशा सक्रिय"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"पूर्ण वॉल्यूम अक्षम करें"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"इन-बैंड रिंग करना सक्षम करें"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ब्लूटूथ AVRCP वर्शन"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"कृत्रिम स्थानों को अनुमति दें"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"दृश्य विशेषता निरीक्षण सक्षम करें"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"वाई-फ़ाई के सक्रिय रहने पर भी, हमेशा मोबाइल डेटा सक्रिय रखें (तेज़ी से नेटवर्क स्विच करने के लिए)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB डीबग करने की अनुमति दें?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB डीबग डीबग करने का उद्देश्य केवल विकास है. इसका उपयोग आपके कंप्यूटर और आपके डिवाइस के बीच डेटा की प्रतिलिपि बनाने, बिना नोटिफिकेशन के आपके डिवाइस पर ऐप्स इंस्टॉल करने और लॉग डेटा पढ़ने के लिए करें."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"आपके द्वारा पूर्व में प्राधिकृत सभी कंप्यूटर से USB डीबगिंग की पहुंच निरस्त करें?"</string> diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml index 6c4f29386d3c..f7ba8402e82b 100644 --- a/packages/SettingsLib/res/values-hr/strings.xml +++ b/packages/SettingsLib/res/values-hr/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Povezano (bez medija)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Povezano (bez pristupa porukama)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Povezano (bez telefona ili medija)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Povezano, baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Povezano (bez telefona), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Povezano (bez medija), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Povezano (bez telefona i medija), baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Medijski zvuk"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonski pozivi"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Prijenos datoteke"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aktivni prijelaz s Wi‑Fi na mob. mrežu"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Uvijek dopusti slobodno traženje Wi-Fi mreže"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilni podaci uvijek aktivni"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Onemogući apsolutnu glasnoću"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Omogući zvuk zvona unutar pojasne širine"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Verzija AVRCP-a za Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Dopusti probne lokacije"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Omogući pregled atributa prikaza"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Neka mobilni podaci uvijek budu aktivni, čak i kada je Wi‑Fi aktivan (za brzo prebacivanje s jedne na drugu mrežu)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti otklanjanje pogrešaka putem USB-a?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Otklanjanje pogrešaka putem USB-a namijenjeno je samo u razvojne svrhe. Može se upotrijebiti za kopiranje podataka s računala na uređaj i obrnuto, instalaciju aplikacija na uređaju bez obavijesti i za čitanje dnevničkih zapisa."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Želite li opozvati pristup uklanjanju pogrešaka putem USB-a sa svih računala koja ste prethodno autorizirali?"</string> diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml index 479290ff225a..ce84d7a29a87 100644 --- a/packages/SettingsLib/res/values-hu/strings.xml +++ b/packages/SettingsLib/res/values-hu/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Csatlakoztatva (nincs hordozó)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Csatlakoztatva (nincs üzenet-hozzáférés)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Csatlakoztatva (nincs telefon vagy hordozó)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Csatlakoztatva; az akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Csatlakoztatva (telefonhang nélkül); az akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Csatlakoztatva (médiahang nélkül); az akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Csatlakoztatva (telefon- vagy médiahang nélkül); az akkumulátor töltöttségi szintje:<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Média audió"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonhívások"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Fájlátvitel"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresszív Wi‑Fi–mobilhálózat átadás"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi-roaming ellenőrzésének engedélyezése mindig"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"A mobilhálózati kapcsolat mindig aktív"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Abszolút hangerő funkció letiltása"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Sávon belüli csörgetés engedélyezése"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"A Bluetooth AVRCP-verziója"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Helyutánzatok engedélyezése"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Nézetattribútum vizsgálatának engedélyezése"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"A mobiladat-kapcsolat mindig maradjon aktív, még akkor is, ha a Wi‑Fi aktív (a gyors hálózatváltás érdekében)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Engedélyezi az USB hibakeresést?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Az USB hibakeresés fejlesztési célokat szolgál. Használhatja adatok másolására a számítógép és a készülék között, alkalmazások a készülékre való értesítés nélküli telepítésére és naplózási adatok olvasására."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Visszavonja a hozzáférést az USB-s hibakereséshez az összes számítógépről, ahol korábban engedélyezte azt?"</string> diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml index ec6c1a2f852c..7b2fcbe1e62a 100644 --- a/packages/SettingsLib/res/values-hy/strings.xml +++ b/packages/SettingsLib/res/values-hy/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Միացված է (առանց մեդիա)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Միացված է (հաղորդագրությանը մուտք չկա)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Միացված է (առանց հեռախոսի և մեդիայի)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Միացված է, մարտկոցի լիցք՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Միացած է (հեռախոս չկա), մարտկոցի լիցք՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Միացված է (մեդիա չկա), մարտկոցի լիցք՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Միացված է (հեռախոս կամ մեդիա չկա), մարտկոցի լիցք՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Մեդիա աուդիո"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Հեռախոսազանգեր"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Ֆայլերի փոխանցում"</string> @@ -73,8 +69,8 @@ <string name="bluetooth_profile_pan_nap" msgid="8429049285027482959">"Ինտերնետ կապի տարածում"</string> <string name="bluetooth_profile_map" msgid="1019763341565580450">"SMS հաղորդագրություններ"</string> <string name="bluetooth_profile_sap" msgid="5764222021851283125">"SIM քարտի հասանելիություն"</string> - <string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"HD ձայն՝ <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> - <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"HD ձայն"</string> + <string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"HD աուդիո՝ <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> + <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"HD աուդիո"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Միացված է մեդիա աուդիոյին"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Միացված է հեռախոսի ձայնային տվյալներին"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Միացված է ֆայլերի փոխանցման սերվերին"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi-Fi-ից կտրուկ անցում բջջային ինտերնետի"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Միշտ թույլատրել Wi‑Fi ռոումինգի որոնումը"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Բջջային ինտերնետը միշտ ակտիվ է"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Անջատել ձայնի բացարձակ ուժգնությունը"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Միացնել ներխմբային զանգը"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP տարբերակը"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Թույլ տալ կեղծ տեղադրություններ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Միացնել ցուցադրման հատկանիշների ստուգումը"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Միշտ ակտիվացրած պահել բջջային տվյալները, նույնիսկ Wi‑Fi-ը միացրած ժամանակ (ցանցերի միջև արագ փոխարկման համար):"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Թույլատրե՞լ USB-ի վրիպազերծումը:"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB վրիպազերծումը միայն ծրագրավորման նպատակների համար է: Օգտագործեք այն ձեր համակարգչից տվյալները ձեր սարք պատճենելու համար, առանց ծանուցման ձեր սարքի վրա ծրագրեր տեղադրելու և տվյալների մատյանը ընթերցելու համար:"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Փակե՞լ USB-ի վրիպազերծման մուտքը` անջատելով այն բոլոր համակարգիչներից, որտեղ նախկինում թույլատրել էիք:"</string> diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml index 6027821a79c9..dc546cf7fa6b 100644 --- a/packages/SettingsLib/res/values-in/strings.xml +++ b/packages/SettingsLib/res/values-in/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Terhubung (kecuali media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Tersambung (tidak ada akses pesan)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Terhubung (bukan telepon atau media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Terhubung, daya baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Terhubung (tanpa ponsel), daya baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Terhubung (tanpa media), daya baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Terhubung (tanpa ponsel atau media), daya baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio media"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Panggilan telepon"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transfer file"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Pengalihan Wi-Fi Agresif ke seluler"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Selalu izinkan Pemindaian Roaming Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Data seluler selalu aktif"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Nonaktifkan volume absolut"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Aktifkan dering in-band"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versi AVRCP Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Mengizinkan lokasi palsu"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Aktifkan inspeksi atribut tampilan"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Selalu aktifkan data seluler, meski Wi-Fi aktif (agar jaringan beralih dengan cepat)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Izinkan melakukan debug USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Debugging USB dimaksudkan untuk tujuan pengembangan saja. Gunakan untuk menyalin data antara komputer dan perangkat Anda, memasang apl pada perangkat tanpa notifikasi, dan membaca data log."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Cabut akses ke debug USB dari semua komputer yang telah Anda otorisasi sebelumnya?"</string> diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml index 4db2d5eb5399..3d8a809a2d12 100644 --- a/packages/SettingsLib/res/values-is/strings.xml +++ b/packages/SettingsLib/res/values-is/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Tengt (ekki efnisspilun)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Tengt (enginn skilaboðaaðgangur)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Tengt (ekki sími eða efnisspilun)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Tengt, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlaða"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Tengt (ekki sími), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlaða"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Tengt (ekki efnisspilun), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlaða"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Tengt (ekki sími eða efnisspilun), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlaða"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Hljóð efnis"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Símtöl"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Skráaflutningur"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Hröð skipti úr Wi‑Fi í farsímagögn"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Leyfa alltaf reikileit með Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Alltaf kveikt á farsímagögnum"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Slökkva á samstillingu hljóðstyrks"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Leyfa símtöl á sömu rás"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP-útgáfa"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Leyfa gervistaðsetningar"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Virkja yfirlit skoðunar eiginda"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hafa alltaf kveikt á farsímagögnum, líka þegar kveikt er á Wi-Fi (til að skipta megi hratt milli kerfa)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Leyfa USB-villuleit?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-villuleit er aðeins ætluð til nota í þróunarskyni. Hana má nota til að afrita gögn á milli tölvu og tækis, setja forrit upp í tækinu án tilkynninga og lesa annálagögn."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Afturkalla aðgang að USB-villuleit í öllum tölvum sem þú hefur áður veitt heimild?"</string> diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml index 2ab2f7eebeff..b44c42cd0bbd 100644 --- a/packages/SettingsLib/res/values-it/strings.xml +++ b/packages/SettingsLib/res/values-it/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Collegato (contenuti multimed. esclusi)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Connesso (nessun accesso ai messaggi)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Collegato (telef. o conten. mult. esclusi)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Connesso, batteria al <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Connesso (telefono escluso), batteria al <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Connesso (contenuti multimediali esclusi), batteria al <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Connesso (telefono o contenuti multimediali esclusi), batteria al <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio multimediale"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonate"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Trasferimento file"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi aggressivo per passaggio a cellulare"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Consenti sempre scansioni roaming Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dati mobili sempre attivi"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Disattiva volume assoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Attiva suoneria in banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versione Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Consenti posizioni fittizie"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Attiva controllo attributi visualizzazione"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mantieni sempre i dati cellulare attivi, anche se il Wi‑Fi è attivo (per un passaggio fra reti rapido)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Consentire debug USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Il debug USB è solo a scopo di sviluppo. Utilizzalo per copiare dati tra il computer e il dispositivo, per installare applicazioni sul tuo dispositivo senza notifica e per leggere i dati dei log."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revocare l\'accesso al debug USB da tutti i computer precedentemente autorizzati?"</string> diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml index 5c9ef23be142..047a9e6163bb 100644 --- a/packages/SettingsLib/res/values-iw/strings.xml +++ b/packages/SettingsLib/res/values-iw/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"מחובר (ללא מדיה)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"מחובר (אין גישה להודעות)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"מחובר (ללא טלפון או מדיה)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"מחובר, הסוללה ב-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"מחובר (ללא טלפון), הסוללה ב-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"מחובר (ללא מדיה), הסוללה ב-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"מחובר (ללא טלפון וללא מדיה), הסוללה ב-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"אודיו של מדיה"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"שיחות טלפון"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"העברת קבצים"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"העברה אגרסיבית מ-Wi‑Fi לרשת סלולרית"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"התר תמיד סריקות נדידה של Wi‑Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"חבילת הגלישה פעילה תמיד"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"השבת עוצמת קול מוחלטת"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"הפעל צלצולים בערוץ ה-Bluetooth (in-band ringing)"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth גרסה AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"אפשר מיקומים מדומים"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"אפשר בדיקת תכונת תצוגה"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"השאר את חבילת הגלישה פעילה תמיד, גם כש-Wi‑Fi פעיל (למעבר מהיר בין רשתות)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"לאפשר ניפוי באגים של USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"ניפוי באגים באמצעות USB מיועד למטרות פיתוח בלבד. השתמש בו להעתקת נתונים בין המחשב והמכשיר שלך, להתקנת אפליקציות במכשיר ללא התראה ולקריאת נתוני יומן."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"האם לבטל את הגישה לניפוי ב-USB מכל המחשבים שהענקת להם בעבר הרשאה?"</string> diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml index 0d6334db8869..6c69f93b33af 100644 --- a/packages/SettingsLib/res/values-ja/strings.xml +++ b/packages/SettingsLib/res/values-ja/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"接続済み(メディアを除く)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"接続済み(メッセージへのアクセスなし)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"接続済み(電話/メディアを除く)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"接続済み、電池 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"接続済み(スマートフォンを除く)、電池 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"接続済み(メディアを除く)、電池 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"接続済み(スマートフォンやメディアを除く)、電池 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"メディアの音声"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"電話"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ファイル転送"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi-Fi を強制的にモバイル接続に切り替える"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fiローミングスキャンを常に許可する"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"モバイルデータを常に ON にする"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"絶対音量を無効にする"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"インバンド リンギングを有効にする"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP バージョン"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"擬似ロケーションを許可する"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"表示属性検査を有効にする"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fiが(ネットワークの自動切り替えで)ONのときでもモバイルデータが常にONになります。"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USBデバッグを許可しますか?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USBデバッグは開発専用に設計されています。パソコンと端末の間でデータをコピーする場合や、アプリを通知なしで端末にインストールする場合、ログデータを読み取る場合に使用できます。"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"以前に許可したすべてのパソコンからのUSBデバッグへのアクセスを取り消しますか?"</string> diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml index c48018d46aee..8d6af5e43196 100644 --- a/packages/SettingsLib/res/values-ka/strings.xml +++ b/packages/SettingsLib/res/values-ka/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"მიერთებულია (მედიის გარდა)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"დაკავშირებულია (შეტყობინებაზე წვდომა არ არის)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"დაკავშირება (გარდა ტელეფონისა და მედიისა)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"დაკავშირებულია. ბატარეის დონე: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"დაკავშირებულია (ტელეფონი არ არის). ბატარეის დონე: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"დაკავშირებულია (მედია არ არის). ბატარეის დონე: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"დაკავშირებულია (მედია ან ტელეფონი არ არის). ბატარეის დონე: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"მედია აუდიო"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"სატელეფონო ზარები"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ფაილების გადაცემა"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi-ს მობ. ინტერნეტზე აგრესიული გადართვა"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi Roam სკანირების მუდამ დაშვება"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"მობილური ინტერნეტის ყოველთვის გააქტიურება"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ხმის აბსოლუტური სიძლიერის გათიშვა"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ზოლსშიდა დარეკვის ჩართვა"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth-ის AVRCP-ის ვერსია"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ფიქტიური მდებარეობების დაშვება"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"ნახვის ატრიბუტის ინსპექტირების ჩართვა"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"მობილური მოწყობილობის მონაცემები ყოველთვის აქტიური დარჩეს, მაშინაც კი, როდესაც Wi-Fi აქტიურია (ქსელის სწრაფი გადართვისთვის)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"ჩაირთოს USB გამართვა?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB გამართვა განკუთვნილია მხოლოდ დეველოპერული მიზნებისთვის. გამოიყენეთ კომპიუტერსა და თქვენ მოწყობილობას შორის მონაცემების გადასატანად, თქვენ მოწყობილობაზე აპების შეტყობინების გარეშე დასაყენებლად და ჟურნალის მონაცემების წასაკითხად."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"გავაუქმოთ ყველა იმ კომპიუტერიდან USB გამართვაზე წვდომა, რომლებიდანაც აქამდე განახორციელეთ შესვლა?"</string> diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml index be03821ed55a..70d0f4842cc8 100644 --- a/packages/SettingsLib/res/values-kk/strings.xml +++ b/packages/SettingsLib/res/values-kk/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Жалғанған (медиа жоқ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Жалғанған (хабарлар қол жетімсіз)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Жалғанған (телефон және медиа жоқ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Қосылды, батарея деңгейі: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Қосылды (телефон емес), батарея деңгейі: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Қосылды (медиа емес), батарея деңгейі: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Қосылды (телефон не медиа емес), батарея деңгейі: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Meдиа аудиосы"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефон қоңыраулары"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Файл жіберу"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi-Fi желісінен мобильдік желіге ауысу"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi роумингін іздеулерге әрқашан рұқсат ету"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мобильдік деректер әрқашан қосулы"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Абсолютті дыбыс деңгейін өшіру"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ішкі жолақтағы шылдырлауды қосу"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP нұсқасы"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Жасанды аймақтарды пайдалануға рұқсат беру"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Көру төлсипатын тексеруді қосу"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi қосулы кезде де ұялы деректерді белсенді етіп ұстау (желіні жылдам ауыстыру үшін)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB жөндеулеріне рұқсат берілсін бе?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB жөндеу дамыту мақсаттарына ғана арналған. Оны компьютер және құрылғы арасында дерек көшіру, құрылғыға ескертусіз қолданба орнату және тіркелім деректерін оқу үшін қолданыңыз."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Бұған дейін рұқсат берілген барлық компьютерлерде USB жөндеу функциясына тыйым салынсын ба?"</string> diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml index d8fac1663d03..c3c9bb256b10 100644 --- a/packages/SettingsLib/res/values-km/strings.xml +++ b/packages/SettingsLib/res/values-km/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"បានតភ្ជាប់ (គ្មានមេឌៀ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"បានភ្ជាប់ (គ្មានការចូលដំណើរការសារ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"បានតភ្ជាប់ (គ្មានទូរស័ព្ទ ឬមេឌៀ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"បានភ្ជាប់ ហើយថ្មមានកម្រិត <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"បានភ្ជាប់ (គ្មានទូរសព្ទ) ហើយថ្មមានកម្រិត <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"បានភ្ជាប់ (គ្មានមេឌៀ) ហើយថ្មមានកម្រិត <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"បានភ្ជាប់ (គ្មានទូរសព្ទ ឬមេឌៀ) ហើយថ្មមានកម្រិត <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"សំឡេងមេឌៀ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ការហៅទូរសព្ទ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ផ្ទេរឯកសារ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ប្តូរទៅប្រើបណ្តាញចល័តពេល Wi‑Fi មានរលកសញ្ញាខ្លាំងពេក"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"តែងតែអនុញ្ញាតការវិភាគរ៉ូមវ៉ាយហ្វាយ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"ទិន្នន័យទូរសព្ទចល័តដំណើរការជានិច្ច"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"បិទកម្រិតសំឡេងលឺខ្លាំង"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"បើកការរោទ៍ក្នុងបណ្តាញ"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"កំណែប្ល៊ូធូស AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"អនុញ្ញាតទីតាំងក្លែងក្លាយ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"បើកការត្រួតពិនិត្យគុណលក្ខណៈទិដ្ឋភាព"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"រក្សាទិន្នន័យចល័តឲ្យសកម្មជានិច្ច បើទោះបីជា Wi‑Fi សកម្មក៏ដោយ (សម្រាប់ការប្តូរបណ្តាញដែលមានល្បឿនលឿន)។"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"អនុញ្ញាតការកែកំហុសយូអេសប៊ី?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"ការកែកំហុសយូអេសប៊ីគឺសម្រាប់តែការអភិវឌ្ឍប៉ុណ្ណោះ។ ប្រើវាដើម្បីចម្លងទិន្នន័យរវាងកុំព្យូទ័រ និងឧបករណ៍របស់អ្នក ដំឡើងកម្មវិធីក្នុងឧបករណ៍របស់អ្នកដោយមិនជូនដំណឹង និងអានទិន្នន័យកំណត់ហេតុ។"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ដកសិទ្ធិចូលការកែកំហុសតាមយូអេសប៊ីពីគ្រប់កុំព្យូទ័រដែលអ្នកបានផ្ដល់សិទ្ធិពីមុន?"</string> diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml index 3989e98fbfee..e15205392d34 100644 --- a/packages/SettingsLib/res/values-kn/strings.xml +++ b/packages/SettingsLib/res/values-kn/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ಸಂಪರ್ಕಗೊಂಡಿದೆ (ಮಾಧ್ಯಮವಿಲ್ಲ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ (ಯಾವುದೇ ಸಂದೇಶ ಪ್ರವೇಶವಿಲ್ಲ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ಸಂಪರ್ಕಗೊಂಡಿದೆ (ಫೋನ್ ಅಥವಾ ಮಾಧ್ಯಮವಿಲ್ಲ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ಸಂಪರ್ಕಗೊಂಡಿದೆ, ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಮಟ್ಟ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ಸಂಪರ್ಕಗೊಂಡಿದೆ (ಫೋನ್ ಇಲ್ಲ), ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಮಟ್ಟ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ಸಂಪರ್ಕಗೊಂಡಿದೆ (ಮಾಧ್ಯಮವಿಲ್ಲ), ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಮಟ್ಟ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ಸಂಪರ್ಕಗೊಂಡಿದೆ (ಫೋನ್ ಅಥವಾ ಮಾಧ್ಯಮವಿಲ್ಲ), ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಮಟ್ಟ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"ಮಾಧ್ಯಮ ಆಡಿಯೋ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ಫೋನ್ ಕರೆಗಳು"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ಫೈಲ್ ವರ್ಗಾವಣೆ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ವೈ-ಫೈನಿಂದ ಮೊಬೈಲ್ಗೆ ಆಕ್ರಮಣಕಾರಿ ಹಸ್ತಾಂತರ"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ವೈ-ಫೈ ರೋಮ್ ಸ್ಕ್ಯಾನ್ಗಳನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"ಮೊಬೈಲ್ ಡೇಟಾ ಯಾವಾಗಲೂ ಸಕ್ರಿಯ"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ಸಂಪೂರ್ಣ ವಾಲ್ಯೂಮ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ಇನ್ ಬ್ಯಾಂಡ್ ರಿಂಗಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ಬ್ಲೂಟೂತ್ AVRCP ಆವೃತ್ತಿ"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ಅಣಕು ಸ್ಥಾನಗಳನ್ನು ಅನುಮತಿಸಿ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"ವೀಕ್ಷಣೆ ಆಟ್ರಿಬ್ಯೂಟ್ ಪರಿಶೀಲನೆ"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ವೈ-ಫೈ ಸಕ್ರಿಯವಾಗಿರುವಾಗಲೂ, ಯಾವಾಗಲೂ ಮೊಬೈಲ್ ಡೇಟಾ ಸಕ್ರಿಯವಾಗಿರಿಸಿ (ವೇಗವಾಗಿ ನೆಟ್ವರ್ಕ್ ಬದಲಾಯಿಸಲು)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸುವುದೇ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯು ಅಭಿವೃದ್ಧಿ ಉದ್ದೇಶಗಳಿಗೆ ಮಾತ್ರ ಆಗಿದೆ. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ನಡುವೆ ಡೇಟಾವನ್ನು ನಕಲಿಸಲು, ಅಧಿಸೂಚನೆ ಇಲ್ಲದೆ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಮತ್ತು ಲಾಗ್ ಡೇಟಾ ಓದಲು ಅದನ್ನು ಬಳಸಿ."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ನೀವು ಹಿಂದೆ ಅಧಿಕೃತಗೊಳಿಸಿದ ಎಲ್ಲ ಕಂಪ್ಯೂಟರ್ಗಳಿಂದ USB ಡೀಬಗ್ಗೆ ಪ್ರವೇಶವನ್ನು ರದ್ದುಗೊಳಿಸುವುದೇ?"</string> diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml index 385172daf875..89c0c03d63b2 100644 --- a/packages/SettingsLib/res/values-ko/strings.xml +++ b/packages/SettingsLib/res/values-ko/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"연결됨(미디어 없음)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"연결됨(메시지 액세스 없음)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"연결됨(전화 또는 미디어 없음)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"연결됨, 배터리 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"연결됨(전화 없음), 배터리 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"연결됨(미디어 없음), 배터리 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"연결됨(전화 또는 미디어 없음), 배터리 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"미디어 오디오"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"전화 통화"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"파일 전송"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"적극적인 Wi-Fi-모바일 핸드오버"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi 로밍 스캔 항상 허용"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"항상 모바일 데이터 활성화"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"절대 볼륨 사용 안함"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"대역 내 벨소리 사용 설정"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"블루투스 AVRCP 버전"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"모의 위치 허용"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"보기 속성 검사 사용"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi가 활성화되어 있을 때에도 빠른 네트워크 전환을 위하여 항상 모바일 데이터를 활성 상태로 유지합니다."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB 디버깅을 허용하시겠습니까?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB 디버깅은 개발용으로만 설계되었습니다. 이 기능을 사용하면 컴퓨터와 기기 간에 데이터를 복사하고 알림 없이 기기에 앱을 설치하며 로그 데이터를 읽을 수 있습니다."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"이전에 승인한 모든 컴퓨터에서 USB 디버깅에 대한 액세스 권한을 취소하시겠습니까?"</string> diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml index a5cee81a3af7..cc5d758825da 100644 --- a/packages/SettingsLib/res/values-ky/strings.xml +++ b/packages/SettingsLib/res/values-ky/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Туташып турат (медиасыз)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Байланышта (билдирүү алмашуу жок)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Туташып турат (телефониясыз же медиасыз)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Туташып турат, батареянын деңгээли – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Туташып турат (телефониясыз), батареянын деңгээли – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Туташып турат (медиасыз), батареянын деңгээли – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Туташып турат (телефониясыз же медиасыз), батареянын деңгээли – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Аудио"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефон чалуулар"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Файл алмашуу"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi начар болсо, мобилдик Инт-ке өтсүн"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi-Fi Роуминг Скандоо мүмкүнчүлүгүнө ар дайым уруксат берилсин"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мобилдик Интернет иштей берсин"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Үндүн абсолюттук деңгээли өчүрүлсүн"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Канал аралык чалууну иштетүү"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP версиясы"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Жасалма жайгашкан жерди көрсөтүүгө уруксат берилсин"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Аттрибут текшерүүсүнүн көрүнүшүн иштетүү"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi-Fi иштеп турганда да дайындар мобилдик тармак аркылуу өткөрүлө берсин (тармактар ортосунда тезирээк которулуу үчүн)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB аркылуу жөндөөгө уруксат берилсинби?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-жөндөө - өндүрүү максатында гана түзүлгөн. Аны компүтериңиз менен түзмөгүңүздүн ортосунда берилиштерди алмашуу, түзмөгүңүзгө колдонмолорду эскертүүсүз орнотуу жана лог берилиштерин окуу үчүн колдонсоңуз болот."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Сиз мурун USB жөндөөлөрүнө уруксат берген бардык компүтерлердин жеткиси жокко чыгарылсынбы?"</string> diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml index ddacdf26ef5a..6ac0b859fd62 100644 --- a/packages/SettingsLib/res/values-lo/strings.xml +++ b/packages/SettingsLib/res/values-lo/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ເຊື່ອມຕໍ່ແລ້ວ (ບໍ່ມີສື່)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ເຊື່ອມຕໍ່ (ບໍ່ມີການເຂົ້າເຖິງຂໍ້ຄວາມ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ເຊື່ອມຕໍ່ແລ້ວ (ບໍ່ມີໂທລະສັບ ຫຼືສື່)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ເຊື່ອມຕໍ່ແລ້ວ, ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ເຊື່ອມຕໍ່ແລ້ວ (ບໍ່ມີໂທລະສັບ), ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ເຊື່ອມຕໍ່ແລ້ວ (ບໍ່ມີມີເດຍ), ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ເຊື່ອມຕໍ່ແລ້ວ (ບໍ່ມີໂທລະສັບ ຫຼື ມີເດຍ), ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"ສຽງ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ການໂທ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ການໂອນຍ້າຍໄຟລ໌"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ສະຫຼັບເປັນ Wi-Fi ເມື່ອມືຖືສັນຍານອ່ອນ"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ອະນຸຍາດການສະແກນການໂຣມ Wi‑Fi ສະເໝີ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"ເປີດໃຊ້ອິນເຕີເນັດມືຖືຕະຫຼອດເວລາ"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ປິດໃຊ້ລະດັບສຽງສົມບູນ"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ເປີດສຽງເຕືອນແບບອິນແບນ"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ເວີຊັນ Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ອະນຸຍາດໃຫ້ຈຳລອງຕຳແໜ່ງ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"ເປີດນຳໃຊ້ການກວດສອບຄຸນສົມບັດມຸມມອງ"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ໃຫ້ຂໍ້ມູນມືຖືເປີດຢູ່ສະເໝີ, ແມ້ແຕ່ເມື່ອ Wi‑Fi ເປີດຢູ່ (ສຳລັບການສະຫຼັບເຄືອຂ່າຍໄວ)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"ອະນຸຍາດໃຫ້ດີບັ໊ກຜ່ານ USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"ການດີບັ໊ກຜ່ານ USB ແມ່ນມີຈຸດປະສົງເພື່ອການພັດທະນາເທົ່ານັ້ນ. ມັນສາມາດໃຊ້ເພື່ອສຳເນົາຂໍ້ມູນລະຫວ່າງຄອມພິວເຕີ ແລະອຸປະກອນຂອງທ່ານ, ຕິດຕັ້ງແອັບຯໂດຍບໍ່ຜ່ານການແຈ້ງເຕືອນ ແລະອ່ານຂໍ້ມູນການບັນທຶກ."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ຖອດຖອນການເຂົ້າເຖິງການດີບັ໊ກຜ່ານ USB ຈາກຄອມພິວເຕີທຸກເຄື່ອງ ທີ່ທ່ານເຄີຍອະນຸຍາດກ່ອນໜ້ານີ້?"</string> diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml index 99d28751ed85..3ccb45784eb0 100644 --- a/packages/SettingsLib/res/values-lt/strings.xml +++ b/packages/SettingsLib/res/values-lt/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Prijungta (be laikmenos)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Prisijungta (be prieigos prie pranešimų)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Prijungta (be telefono ar laikmenos)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Prijungta, akumuliatorius <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Prijungta (be telefono), akumuliatorius <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Prijungta (be medijos), akumuliatorius <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Prijungta (be telefono ar medijos), akumuliatorius <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Laikmenos garsas"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefono skambučiai"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Failo perkėlimas"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agres. „Wi‑Fi“ perd. į mob. r. tinklą"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Visada leisti „Wi-Fi“ tarptiklinio ryšio nuskaitymą"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobiliojo ryšio duomenys visada suaktyvinti"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Išjungti didžiausią garsą"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Įgalinti diapazono skambėjimą"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"„Bluetooth“ AVRCP versija"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Leisti imituoti vietas"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Įgalinti peržiūros atributų tikrinimą"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Visada suaktyvinti mobiliojo ryšio duomenis, net kai aktyvus „Wi‑Fi“ ryšys (kad būtų galima greitai perjungti tinklą)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Leisti USB perkrovimą?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB derinimas skirtas naudoti tik kūrimo tikslais. Jis gali būti naudojamas norint kopijuoti duomenis iš kompiuterio į įrenginį ir atvirkščiai, įdiegti programas įrenginyje be pranešimo ir skaityti žurnalo duomenis."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Panaikinti visų kompiuterių, kuriems anksčiau suteikėte prieigos teisę, prieigą prie USB derinimo?"</string> diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml index 8ade7d4bb6ac..fe91c7cf1e9a 100644 --- a/packages/SettingsLib/res/values-lv/strings.xml +++ b/packages/SettingsLib/res/values-lv/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Sav. ir izveidots (nav multivides)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Savienots (nav piekļuves ziņojumam)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Sav. ir izveidots (nav tel. vai multiv.)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Savienojums izveidots, akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Savienojums izveidots (nav tālrunis), akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Savienojums izveidots (nav multivide), akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Savienojums izveidots (nav tālrunis vai multivide), akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Multivides audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Tālruņa zvani"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Failu pārsūtīšana"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresīva pāreja no Wi‑Fi uz mobilo tīklu"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Vienmēr atļaut Wi‑Fi meklēšanu"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Vienmēr aktīvs mobilo datu savienojums"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Atspējot absolūto skaļumu"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Iespējot iekšjoslas zvanīšanu"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP versija"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Atļaut neīstas vietas"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Iespējot atribūtu pārbaudi"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mobilo datu savienojums būs vienmēr aktīvs, pat ja būs aktīvs Wi-Fi savienojums (ātrai ierīces pārslēgšanai uz citu tīklu)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Vai atļaut USB atkļūdošanu?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB atkļūdošana ir paredzēta tikai ar izstrādi saistītām darbībām. Izmantojiet to datu kopēšanai no datora uz ierīci un pretēji, lietotņu instalēšanai ierīcē bez paziņojumiem un žurnāla datu lasīšanai."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Vai atcelt piekļuvi USB atkļūdošanai no visiem datoriem, kuriem iepriekš piešķīrāt piekļuvi?"</string> diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml index 666cc12fe297..10d88e715fd1 100644 --- a/packages/SettingsLib/res/values-mk/strings.xml +++ b/packages/SettingsLib/res/values-mk/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Поврзани (без медиуми)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Поврзано (без порака за пристап)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Поврзан (без телефон или медиуми)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Поврзан, ниво на батеријата <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Поврзан (освен телефонот), ниво на батеријата <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Поврзан (освен аудио-визуелните содржини), ниво на батеријата <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Поврзан (освен телефонот и аудио-визуелните содржини), ниво на батеријата <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Аудио на медиуми"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефонски повици"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Пренос на датотека"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Агресивно предавање од Wi‑Fi на мобилен"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Секогаш дозволувај Wi‑Fi скенирање во роаминг"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мобилниот интернет е секогаш активен"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Оневозможете апсолутна јачина на звук"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Овозможете ѕвонење во појас"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Верзија Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Овозможи лажни локации"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Овозможете проверка на атрибутот на приказот"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Секогаш држи го активен мобилниот интернет, дури и при активно Wi-Fi (за брзо префрлување мрежа)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Овозможи отстранување грешки на USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Отстранувањето грешки на USB е наменето само за целите на развој. Користете го за копирање податоци меѓу вашиот компјутер и вашиот уред, за инсталирање апликации на вашиот уред без известување и за читање евиденција на податоци."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Отповикај пристап кон отстранување грешка од USB од сите претходно овластени компјутери?"</string> diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml index f657b4305fb7..ebafc671f666 100644 --- a/packages/SettingsLib/res/values-ml/strings.xml +++ b/packages/SettingsLib/res/values-ml/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"കണക്റ്റുചെയ്തു (മീഡിയ ഇല്ല)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"കണക്റ്റുചെയ്തു (സന്ദേശ ആക്സസ്സില്ല)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"കണക്റ്റുചെയ്തു (ഫോണോ മീഡിയയോ അല്ല)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"കണക്റ്റുചെയ്തു, ബാറ്ററി നില <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"കണക്റ്റുചെയ്തു (ഫോൺ ഇല്ല), ബാറ്ററി നില <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"കണക്റ്റുചെയ്തു (മീഡിയ ഇല്ല), ബാറ്ററി നില <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"കണക്റ്റുചെയ്തു (ഫോണോ മീഡിയയോ ഇല്ല), ബാറ്ററി നില<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"മീഡിയ ഓഡിയോ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ഫോണ് കോളുകൾ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ഫയൽ കൈമാറൽ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"മൊബൈൽ ഹാൻഡ്ഓവറിലേക്ക് വൈഫൈ സക്രിയമാക്കുക"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"എപ്പോഴും വൈഫൈ റോം സ്കാൻ അനുവദിക്കൂ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"മൊബൈൽ ഡാറ്റ എല്ലായ്പ്പോഴും സജീവം"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"അബ്സൊല്യൂട്ട് വോളിയം പ്രവർത്തനരഹിതമാക്കുക"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ഇൻ-ബാൻഡ് റിംഗുചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP പതിപ്പ്"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"വ്യാജ ലൊക്കേഷനുകൾ അനുവദിക്കുക"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"ആട്രിബ്യൂട്ട് പരിശോധന കാണൽ സജീവമാക്കൂ"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"വൈഫൈ സജീവമാണെങ്കിലും, മൊബൈൽ ഡാറ്റ സജീവമായി നിർത്തുക (വേഗത്തിൽ നെറ്റ്വർക്ക് മാറുന്നതിനായി)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ഡീബഗ്ഗുചെയ്യാൻ അനുവദിക്കണോ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ഡീബഗ്ഗിംഗ് വികസന ആവശ്യകതകൾക്ക് മാത്രമുള്ളതാണ്. നിങ്ങളുടെ കമ്പ്യൂട്ടറിനും ഉപകരണത്തിനുമിടയിൽ ഡാറ്റ പകർത്തുന്നതിനും അറിയിപ്പില്ലാതെ തന്നെ നിങ്ങളുടെ ഉപകരണത്തിൽ അപ്ലിക്കേഷനുകൾ ഇൻസ്റ്റാളുചെയ്യുന്നതിനും ലോഗ് ഡാറ്റ റീഡുചെയ്യുന്നതിനും ഇത് ഉപയോഗിക്കുക."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"നിങ്ങൾ മുമ്പ് അംഗീകരിച്ച എല്ലാ കമ്പ്യൂട്ടറുകളിൽ നിന്നും USB ഡീബഗ്ഗുചെയ്യുന്നതിനുള്ള ആക്സസ്സ് പിൻവലിക്കണോ?"</string> diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml index a0f3cee765d0..af353fd0d1a1 100644 --- a/packages/SettingsLib/res/values-mn/strings.xml +++ b/packages/SettingsLib/res/values-mn/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Холбогдсон (медиа байхгүй)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Холбогдсон (зурвас хандалт байхгүй)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Холбогдсон (утас буюу медиа байхгүй)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Холбогдсон, батерей <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Холбогдсон (утас байхгүй), батерей <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Холбогдсон (медиа байхгүй), батерей <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Холбогдсон (утас эсвэл медиа байхгүй), батерей <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Медиа аудио"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Утасны дуудлага"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Файл дамжуулалт"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Идэвхтэй Wi‑Fi-с мобайл сүлжээнд"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi Роум сканыг байнга зөвшөөрөх"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мобайл дата байнга идэвхтэй"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Үнэмлэхүй дууны түвшинг идэвхгүй болгох"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Сүлжээний хонхны аяыг идэвхжүүлэх"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP хувилбар"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Хуурамч байршлыг зөвшөөрөх"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Харах тохируулгын шалгалтыг идэвхжүүлэх"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi идэвхтэй байхад ч гэсэн гар утасны датаг идэвхтэй байлгадаг (сүлжээг түргэн солихын тулд)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB дебаг хийхийг зөвшөөрөх үү?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB дебаг нь зөвхөн хөгжүүлэлтийн зорилготой. Үүнийг өөрийн компьютер болон төхөөрөмжийн хооронд өгөгдөл хуулах, өөрийн төхөөрөмж дээр мэдэгдэлгүйгээр аппликейшн суулгах, лог датаг унших зэрэгт ашиглаж болно."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Таны өмнө нь зөвшөөрөл өгсөн бүх компьютерээс USB дебаг хандалтыг нь хураах уу?"</string> diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml index 0a90722ab813..d7583874e3c2 100644 --- a/packages/SettingsLib/res/values-mr/strings.xml +++ b/packages/SettingsLib/res/values-mr/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"कनेक्ट केले (मीडिया नाही)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"कनेक्ट केलेले आहे (कोणत्याही संदेशामध्ये प्रवेश नाही)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"कनेक्ट केले (फोन किंवा मीडिया नाही)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"कनेक्ट केलेले आहे, बॅटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"कनेक्ट केलेले आहे (कोणताही फोन नाही), बॅटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"कनेक्ट केलेले आहे (कोणताही मीडिया नाही), बॅटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"कनेक्ट केलेले आहे (कोणताही फोन किंवा मीडिया नाही), बॅटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"मीडिया ऑडिओ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"फोन कॉल"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"फाइल स्थानांतरण"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"मोबाइलकडे सोपवण्यासाठी आक्रमक वाय-फाय"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"वाय-फाय रोम स्कॅनला नेहमी अनुमती द्या"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"मोबाइल डेटा नेहमी सक्रिय"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"संपूर्ण आवाज अक्षम करा"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"इन-बँड रिंगिंग सक्षम करा"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ब्लूटुथ AVRCP आवृत्ती"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"बनावट स्थानांना अनुमती द्या"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"दृश्य विशेषता तपासणी सक्षम करा"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"जरी वाय-फाय सक्रिय असले तरीही, नेहमी मोबाईल डेटा सक्रिय ठेवा (जलद नेटवर्क स्विच करण्यासाठी)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB डीबग करण्यास अनुमती द्यायची?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB डीबग करण्याचा हेतू फक्त विकासाच्या उद्देशांसाठी आहे. याचा वापर आपला संगणक आणि आपले डिव्हाइस यांच्या दरम्यान डेटा कॉपी करण्यासाठी करा, सूचनेशिवाय आपल्या डिव्हाइसवर अॅप्स स्थापित करा आणि लॉग डेटा वाचा."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"आपण पूर्वी प्राधिकृत केलेल्या सर्व संगणकांवरुन USB डीबग करण्यासाठी प्रवेश पुनर्प्राप्त करायचा?"</string> diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml index 8aadf7c02356..abd7e0e87bd3 100644 --- a/packages/SettingsLib/res/values-ms/strings.xml +++ b/packages/SettingsLib/res/values-ms/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Disambungkan (tiada media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Disambungkan (tiada akses mesej)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Disambungkan (tiada telefon atau media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Disambungkan, bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Disambungkan (tiada telefon), bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Disambungkan (tiada media), bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Disambungkan (tiada telefon atau media), bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio media"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Panggilan telefon"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Pemindahan fail"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Penyerahan Wi-Fi ke mudah alih agresif"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Sentiasa benarkan Imbasan Perayauan Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Data mudah alih sentiasa aktif"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Lumpuhkan kelantangan mutlak"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Dayakan dering dalam jalur"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versi AVRCP Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Benarkan lokasi olokan"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Dayakan pemeriksaan atribut paparan"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Pastikan data mudah alih sentiasa aktif, walaupun Wi-Fi aktif (untuk penukaran rangkaian yang pantas)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Benarkan penyahpepijatan USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Penyahpepijatan USB adalah dimaksudkan untuk tujuan pembangunan sahaja. Gunakannya untuk menyalin data antara komputer dan peranti anda, memasang aplikasi pada peranti anda tanpa pemberitahuan, dan membaca data log."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Batalkan akses ke penyahpepijatan USB dari semua komputer yang anda berikan kebenaran sebelum ini?"</string> diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml index 85f89a1f8d5d..1e4c33c24637 100644 --- a/packages/SettingsLib/res/values-my/strings.xml +++ b/packages/SettingsLib/res/values-my/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ချိတ်ဆက်ထားပြီး (မီဒီယာမရှိ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ချိတ်ဆက်မိသည် (သတင်းရယူမှုမရှိ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ချိတ်ဆက်ပြီး (ဖုန်း သို့ မီဒီယာမဟုတ်ပါ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ချိတ်ဆက်ပြီးပါပြီ၊ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ချိတ်ဆက်ပြီးပါပြီ (မည်သည့်ဖုန်းမျှ မရှိပါ)၊ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ချိတ်ဆက်ပြီးပါပြီ (မည်သည့် မီဒီယာမျှ မရှိပါ)၊ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ချိတ်ဆက်ပြီးပါပြီ (မည်သည့် ဖုန်း သို့မဟုတ် မီဒီယာမျှ မရှိပါ)၊ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"မီဒီယာ အသံ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ဖုန်းခေါ်ဆိုမှုများ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ဖိုင်လွဲပြောင်းခြင်း"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi မှ မိုဘိုင်းသို့ လွှဲပြောင်းရန်"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi ရွမ်းရှာဖွေမှုကို အမြဲတမ်း ခွင့်ပြုမည်"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"မိုဘိုင်းဒေတာကို အမြဲဖွင့်ထားရန်"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ပကတိ အသံနှုန်း သတ်မှတ်ချက် ပိတ်ရန်"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"သတ်မှတ်ထားသည့်ဖုန်းမြည်သံကို အသုံးပြုခြင်းအား ဖွင့်ရန်"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ဘလူးတုသ် AVRCP ဗားရှင်း"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ပုံစံတုတည်နေရာများကို ခွင့်ပြုရန်"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"အရည်အချင်းများ စူးစမ်းမှု မြင်ကွင်းကို ဖွင့်ပေးရန်"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ဝိုင်ဖိုင်ဖွင့်ထားလျှင်တောင် မိုဘိုင်းဒေတာအမြဲတမ်းဖွင့်မည် (မြန်ဆန်သည့် ကွန်ရက် ပြောင်းခြင်းအတွက်)။"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ပြသနာရှာခြင်း ခွင့်ပြုပါမလား?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USBအမှားရှားခြင်းမှာ ဆော့ဝဲလ်ရေးသားရန်အတွက်သာ ရည်ရွယ်ပါသည်။ သင့်ကွန်ပြုတာနှင့်သင့်စက်ကြားတွင် ဒေတာများကိုကူးယူရန်၊ အကြောင်းမကြားပဲနှင့် သင့်စက်အတွင်းသို့ အပလီကေးရှင်းများထည့်သွင်းခြင်းနှင့် ဒေတာမှတ်တမ်းများဖတ်ရန်အတွက် အသုံးပြုပါ"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"သင် ယခင်က ခွင့်ပြုခဲ့သော ကွန်ပျူတာအားလုံးမှ ယူအက်စ်ဘီ အမှားစစ်ခွင့်ကို ရုတ်သိမ်းမည်လား ?"</string> diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml index 7cb6816efaec..a3797d1164c4 100644 --- a/packages/SettingsLib/res/values-nb/strings.xml +++ b/packages/SettingsLib/res/values-nb/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Tilkoblet (ingen medier)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Tilkoblet (ingen meldingstilgang)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Tilkoblet (ingen telefon eller media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Tilkoblet, batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Tilkoblet (ingen telefon), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Tilkoblet (ingen medier), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Tilkoblet (ingen telefon eller medier), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Medielyd"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonsamtaler"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Filoverføring"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressiv overføring fra Wi-Fi til mobil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Tillat alltid skanning for Wi-Fi-roaming"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobildata er alltid aktiv"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Slå av funksjonen for absolutt volum"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Slå på innenbåndsringing"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP-versjon"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Tillat bruk av simulerte GPS-koordinater"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Slå på inspeksjon av visningsattributt"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Ha alltid mobildata slått på, selv når Wi-Fi er aktiv (for hurtig nettverksbytting)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Tillate USB-feilsøking?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-feilsøking er bare ment for utviklingsformål. Bruk det til å kopiere data mellom datamaskinen og enheten, installere apper på enheten uten varsel og lese loggdata."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Vil du oppheve tilgangen til USB-feilsøking fra alle datamaskiner du tidligere har autorisert?"</string> diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml index 5abcf195e309..420296438ac9 100644 --- a/packages/SettingsLib/res/values-ne/strings.xml +++ b/packages/SettingsLib/res/values-ne/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"जडित (कुनै पनि मिडिया छैन)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"जडित छ (सन्देशमा पहुँच छैन)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"जडित (फोन वा मिडिया छैन)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"यन्त्र जडान भयो, ब्याट्रीको चार्ज स्तर <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"यन्त्र जडान भयो (फोनको अडियो छैन), ब्याट्रीको चार्ज स्तर <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"यन्त्र जडान भयो (मिडियाको अडियो छैन), ब्याट्रीको चार्ज स्तर <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"यन्त्र जडान भयो (फोन वा मिडियाको अडियो छैन), ब्याट्रीको चार्ज स्तर <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"मिडिया अडियो"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"फोन कलहरू"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"फाइल स्थानान्तरण"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"आक्रामक ढंगले Wi‑Fi बाट मोबाइलमा हस्तान्तरण"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi-Fi घुम्ने स्क्यान गर्न सधैँ अनुमति दिनुहोस्"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"मोबाइल डेटा सधैँ सक्रिय राख्नुहोस्"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"निरपेक्ष आवाज असक्षम गर्नुहोस्"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"इन-ब्यान्ड घन्टी बज्ने सुविधालाई सक्षम पार्नुहोस्"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ब्लुटुथको AVRCP संस्करण"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"नक्कली स्थानहरूलाई अनुमति दिनुहोस्"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"दृष्टिकोण विशेषता निरीक्षण सक्षम पार्नुहोस्"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi-Fi सक्रिय हुँदा पनि मोबाइल डेटा सधैँ सक्रिय राख्नुहोस् (द्रूत नेटवर्क स्विच गर्नको लागि)।"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB डिबग गर्न लागि अनुमति दिने हो?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"युएसबी डिबगिङ विकास प्रयोजनका लागि मात्र निर्मित हुन्छ। यसलाई तपाईँको कम्प्युटर र तपाईँको उपकरणका बीच डेटा प्रतिलिपि गर्न, बिना सूचना तपाईँको उपकरणमा अनुप्रयोगहरू स्थापना गर्न र लग डेटा पढ्नका लागि प्रयोग गर्नुहोस्।"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"तपाईं पहिले नै अधिकृत गर्नुभएका सबै कम्प्यूटरबाट USB डिबग गर्नको लागि पहुँच रद्द गर्ने हो?"</string> diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml index 2649a4f496c0..11a51b7dbd68 100644 --- a/packages/SettingsLib/res/values-nl/strings.xml +++ b/packages/SettingsLib/res/values-nl/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Gekoppeld (geen media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Verbonden (geen toegang tot berichten)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Gekoppeld (geen telefoon of media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Verbonden, batterij <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Verbonden (geen telefoon), batterij <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Verbonden (geen media), batterij <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Verbonden (geen telefoon of media), batterij <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media-audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefoongesprekken"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Bestandsoverdracht"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agressieve handover van wifi naar mobiel"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Altijd roamingscans voor wifi toestaan"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobiele data altijd actief"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Absoluut volume uitschakelen"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"In-band bellen inschakelen"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth-AVRCP-versie"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Neplocaties toestaan"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Inspectie van weergavekenmerk inschakelen"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mobiele gegevens altijd actief houden, ook als wifi actief is (voor sneller schakelen tussen netwerken)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB-foutopsporing toestaan?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-foutopsporing is alleen bedoeld voor ontwikkeldoeleinden. Het kan worden gebruikt om gegevens te kopiëren tussen je computer en je apparaat, apps zonder melding op je apparaat te installeren en loggegevens te lezen."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Toegang tot USB-foutopsporing intrekken voor alle computers waarvoor je dit eerder hebt toegestaan?"</string> diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml index 77ba3f8590c9..d9f164104a75 100644 --- a/packages/SettingsLib/res/values-pa/strings.xml +++ b/packages/SettingsLib/res/values-pa/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਸੁਨੇਹਾ ਪਹੁੰਚ ਨਹੀਂ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ, ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਫ਼ੋਨ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਫ਼ੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"ਮੀਡੀਆ ਔਡੀਓ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ਫ਼ੋਨ ਕਾਲਾਂ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ"</string> @@ -73,8 +69,8 @@ <string name="bluetooth_profile_pan_nap" msgid="8429049285027482959">"ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਸ਼ੇਅਰਿੰਗ"</string> <string name="bluetooth_profile_map" msgid="1019763341565580450">"ਲਿਖਤ ਸੁਨੇਹੇ"</string> <string name="bluetooth_profile_sap" msgid="5764222021851283125">"SIM ਪਹੁੰਚ"</string> - <string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"HD ਔਡੀਓ: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> - <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"HD ਔਡੀਓ"</string> + <string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"HD ਆਡੀਓ: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> + <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"HD ਆਡੀਓ"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"ਮੀਡੀਆ ਔਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"ਫੋਨ ਔਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ਆਕਰਮਣਸ਼ੀਲ Wi‑Fi ਤੋਂ ਮੋਬਾਈਲ ਹੈਂਡਓਵਰ"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ਹਮੇਸ਼ਾਂ Wi‑Fi Roam Scans ਦੀ ਆਗਿਆ ਦਿਓ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"ਮੋਬਾਈਲ ਡੈਟਾ ਹਮੇਸ਼ਾਂ ਕਿਰਿਆਸ਼ੀਲ"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ਪੂਰਨ ਵੌਲਿਊਮ ਨੂੰ ਅਯੋਗ ਬਣਾਓ"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ਇਨ-ਬੈਂਡ ਘੰਟੀ ਵੱਜਣ ਨੂੰ ਯੋਗ ਬਣਾਓ"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"ਬਲੂਟੁੱਥ AVRCP ਰੂਪ"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ਨਕਲੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨਾਂ ਦੀ ਆਗਿਆ ਦਿਓ"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"ਗੁਣ ਛਾਣਬੀਣ ਦੇਖੋ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ਹਮੇਸ਼ਾ ਮੋਬਾਈਲ ਡੇਟਾ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਰੱਖੋ ਭਾਵੇਂ Wi‑Fi ਕਿਰਿਆਸ਼ੀਲ ਹੋਵੇ (ਤੇਜ਼ ਨੈੱਟਵਰਕ ਸਵਿੱਚਿੰਗ ਲਈ)।"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"ਕੀ USB ਡੀਬਗਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ਡੀਬਗਿੰਗ ਕੇਵਲ ਵਿਕਾਸ ਮੰਤਵਾਂ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਅਤੇ ਆਪਣੀ ਡੀਵਾਈਸ ਵਿਚਕਾਰ ਡੈਟਾ ਕਾਪੀ ਕਰਨ ਲਈ ਵਰਤੋ, ਸੂਚਨਾ ਦੇ ਬਿਨਾਂ ਆਪਣੀ ਡੀਵਾਈਸ ਤੇ ਐਪਸ ਇੰਸਟੌਲ ਕਰੋ ਅਤੇ ਲੌਗ ਡੈਟਾ ਪੜ੍ਹੋ।"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ਕੀ ਉਹਨਾਂ ਸਾਰੇ ਕੰਪਿਊਟਰਾਂ ਤੋਂ USB ਡੀਬਗਿੰਗ ਤੱਕ ਪਹੁੰਚ ਰੱਦ ਕਰਨੀ ਹੈ, ਜਿਹਨਾਂ ਲਈ ਪਹਿਲਾਂ ਤੁਸੀਂ ਅਧਿਕਾਰਤ ਕੀਤਾ ਹੈ?"</string> diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml index b216ff1faf1a..a74ce79db744 100644 --- a/packages/SettingsLib/res/values-pl/strings.xml +++ b/packages/SettingsLib/res/values-pl/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Połączono (bez multimediów)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Połączono (brak dostępu do wiadomości)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Połączono (bez telefonu ani multimediów)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Połączono, bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Połączono (bez telefonu), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Połączono (bez multimediów), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Połączono (bez telefonu i multimediów), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Dźwięk multimediów"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Połączenia telefoniczne"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Przesyłanie pliku"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Przełączaj z Wi-Fi na sieć komórkową"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Zawsze szukaj Wi-Fi w roamingu"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilna transmisja danych zawsze aktywna"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Wyłącz głośność bezwzględną"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Włącz dzwonek w kanale dźwiękowym"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Wersja AVRCP Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Zezwalaj na pozorowanie lokalizacji"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Inspekcja wyświetlania atrybutu"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Nie wyłączaj transmisji danych przez sieć komórkową, nawet gdy aktywne jest połączenie Wi-Fi (aby szybko przełączać sieci)"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Czy zezwalać na debugowanie USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Debugowanie USB jest przeznaczone wyłącznie do celów programistycznych. Może służyć do kopiowania danych między komputerem a urządzeniem, instalowania aplikacji na urządzeniu bez powiadamiania, a także odczytu danych dziennika."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Odwołać dostęp wszystkich poprzednio autoryzowanych komputerów do debugowania USB?"</string> diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml index d98570ff84e7..78a542db32cf 100644 --- a/packages/SettingsLib/res/values-pt-rBR/strings.xml +++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sem mídia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectado (sem acesso a mensagens)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (sem telefone ou mídia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Conectado, nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Conectado (sem smartphone), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Conectado (sem mídia), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Conectado (sem smartphone ou mídia), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Áudio da mídia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Chamadas telefônicas"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferência de arquivo"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Mudança agressiva de Wi-Fi para móvel"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Sempre permitir verif. de roaming de Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dados móveis sempre ativos"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desativar volume absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ativar o toque em banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versão do Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir locais fictícios"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Ativar visualiz. insp. atributo"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Sempre manter dados móveis ativos, mesmo quando o Wi-Fi estiver ativado (para troca rápida de rede)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Permitir a depuração USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"A depuração USB serve apenas para fins de desenvolvimento. Use-a para copiar dados entre o computador e o dispositivo, instalar apps no seu aparelho sem notificação e ler dados de registro."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revogar o acesso à depuração USB para todos os computadores autorizados?"</string> diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml index dc1aeaccc5a8..d8d702946900 100644 --- a/packages/SettingsLib/res/values-pt-rPT/strings.xml +++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Ligado (sem multimédia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Ligado (sem acesso a mensagens)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Ligado (sem telefone ou multimédia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Ligado, bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Ligado (sem telemóvel), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Ligado (sem multimédia), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Ligado (sem telemóvel nem multimédia), bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Áudio de multimédia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Chamadas telefónicas"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferência do ficheiro"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Mudança brusca de Wi‑Fi para rede móvel"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Permitir sempre a deteção de Wi-Fi em roaming"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dados móveis sempre ativos"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desativar volume absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ativar toque dentro da banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versão de Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir locais fictícios"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Ativar a inspeção do atributo de visualização"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Manter sempre os dados móveis ativados, mesmo quando o Wi‑Fi estiver ativado (para mudança de rede rápida)"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Permitir depuração USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"A depuração USB é utilizada apenas para fins de programação. Utilize-a para copiar dados entre o computador e o aparelho, instalar aplicações no aparelho sem notificação e ler dados de registo."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revogar acesso à depuração USB de todos os computadores anteriormente autorizados?"</string> diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml index d98570ff84e7..78a542db32cf 100644 --- a/packages/SettingsLib/res/values-pt/strings.xml +++ b/packages/SettingsLib/res/values-pt/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sem mídia)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectado (sem acesso a mensagens)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (sem telefone ou mídia)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Conectado, nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Conectado (sem smartphone), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Conectado (sem mídia), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Conectado (sem smartphone ou mídia), nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Áudio da mídia"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Chamadas telefônicas"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferência de arquivo"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Mudança agressiva de Wi-Fi para móvel"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Sempre permitir verif. de roaming de Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dados móveis sempre ativos"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Desativar volume absoluto"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Ativar o toque em banda"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versão do Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir locais fictícios"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Ativar visualiz. insp. atributo"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Sempre manter dados móveis ativos, mesmo quando o Wi-Fi estiver ativado (para troca rápida de rede)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Permitir a depuração USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"A depuração USB serve apenas para fins de desenvolvimento. Use-a para copiar dados entre o computador e o dispositivo, instalar apps no seu aparelho sem notificação e ler dados de registro."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revogar o acesso à depuração USB para todos os computadores autorizados?"</string> diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml index 23bc4f7fca19..157a6db68d01 100644 --- a/packages/SettingsLib/res/values-ro/strings.xml +++ b/packages/SettingsLib/res/values-ro/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectat (fără conținut media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Conectat (fără acces la mesaje)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectat (fără telefon sau conț. media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Conectat, bateria la <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Conectat (fără telefon), bateria la <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Conectat (fără conținut media), bateria la <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Conectat (fără telefon sau conținut media), bateria la <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Conținut media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Apeluri telefonice"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transfer de fișiere"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Predare agresivă de la Wi-Fi la mobilă"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Se permite întotdeauna scanarea traficului Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Date mobile permanent active"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Dezactivați volumul absolut"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Activați soneria în căști"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versiunea AVRCP pentru Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Permiteți locațiile fictive"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Activați inspectarea atributelor de vizualizare"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Păstrați întotdeauna conexiunea de date mobile activată, chiar și atunci când funcția Wi‑Fi este activată (pentru comutarea rapidă între rețele)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Permiteți depanarea USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Depanarea USB are exclusiv scopuri de dezvoltare. Utilizați-o pentru a copia date de pe computer pe dispozitiv, pentru a instala aplicații pe dispozitiv fără notificare și pentru a citi datele din jurnale."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Revocați accesul la remedierea erorilor prin USB de pe toate computerele pe care le-ați autorizat anterior?"</string> diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml index e5fe5f74f63b..166f637ed19e 100644 --- a/packages/SettingsLib/res/values-ru/strings.xml +++ b/packages/SettingsLib/res/values-ru/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Подключено (кроме A2DP)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Подключено (нет доступа к сообщениям)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Подключено (кроме HSP/HFP/A2DP)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Подключено, уровень заряда батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Подключено (кроме HSP/HFP), уровень заряда батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Подключено (кроме A2DP), уровень заряда батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Подключено (кроме HSP/HFP/A2DP), уровень заряда батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Профиль A2DP"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Звонки"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Профиль OPP"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Переключаться на мобильную сеть"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Всегда включать поиск сетей Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Не отключать мобильный Интернет"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Отключить абсолютный уровень громкости"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Включить внутриполосное воспроизведение"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Версия Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Разрешить использование фиктивных местоположений"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Включить проверку атрибутов"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Не отключать передачу данных по мобильной сети даже при активном Wi-Fi-подключении (для быстрого переключения между сетями)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Разрешить отладку по USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Отладка по USB – это режим, который позволяет использовать ваше устройство как внешний накопитель: перемещать файлы (с компьютера и на компьютер), напрямую устанавливать приложения, а также просматривать системные журналы."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Запретить доступ к USB-отладке для всех компьютеров, которым он был разрешен?"</string> diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml index 9fc96d5e7746..57762a1430f7 100644 --- a/packages/SettingsLib/res/values-si/strings.xml +++ b/packages/SettingsLib/res/values-si/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"සම්බන්ධිතයි (මාධ්යයක් නොමැත)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"සම්බන්ධිතයි (පණිවිඩ ප්රවේශ නොමැත)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"සම්බන්ධිතයි (දුරකතනයක් හෝ මාධ්යයක් නැත)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"සම්බන්ධිතයි, බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"සම්බන්ධිතයි (දුරකථනය නැත), බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"සම්බන්ධිතයි (මාධ්යයක් නොමැත), බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"සම්බන්ධිතයි (දුරකථනයක් හෝ මාධ්යයක් නැත), බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"මාධ්ය ශ්රව්ය"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"දුරකථන ඇමතුම්"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ගොනු හුවමාරුව"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ආක්රමණික Wi‑Fi සිට ජංගම බාර දීම"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi රෝම් පරිලෝකන වෙතට සැමවිට අවසර දෙන්න"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"ජංගම දත්ත සැමවිට ක්රියාකාරීය"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"නිරපේක්ෂ හඩ පරිමාව අබල කරන්න"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"කලාපය තුළ නාද වීම සබල කරන්න"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"බ්ලූටූත් AVRCP අනුවාදය"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"ව්යාජ ස්ථාන අනුමත කරන්න"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"උපලක්ෂණ පරික්ෂාව බැලීම සබල කරන්න"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi අක්රිය විට පවා, සැම විටම ජංගම දත්ත ක්රියාකාරීව තබන්න (අවසන් ජාල මාරුව සඳහා)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB දෝශාවේක්ෂණයට ඉඩ දෙන්නද?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB දෝශාවේක්ෂණය සංවර්ධන කටයුතු සඳහා පමණක් යොදාගැනේ. එය ඔබගේ පරිගණකය සහ ඔබගේ උපාංගය අතර දත්ත පිටපත් කිරීමට පමණක් භාවිතා කරන්න, ඔබගේ උපාංගය මත දැනුම්දීම් රහිතව යෙදුම් ස්ථාපනය කරන්න, සහ ලොග් දත්ත කියවන්න."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ඔබ මින්පෙර අවසර ලබාදුන් සියළුම පරිගණක වෙතින් USB නිදොස්කරණට ප්රවේශය අහෝසි කරන්නද?"</string> diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml index fba2edcf41a9..cd26196c26c1 100644 --- a/packages/SettingsLib/res/values-sk/strings.xml +++ b/packages/SettingsLib/res/values-sk/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Pripojené (bez média)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Pripojené (bez prístupu ku správam)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Pripojené (bez telefónu alebo média)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Pripojené, stav batérie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Pripojené (žiadny telefón), stav batérie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Pripojené (žiadne médiá), stav batérie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Pripojené (žiadny telefón ani médiá), stav batérie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Zvuk medií"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonické hovory"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Prenos súborov"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agres. odovzdávať Wi-Fi na mobilnú sieť"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Vždy povoliť funkciu Wi-Fi Roam Scans"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobilné dáta ponechať vždy aktívne"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Zakázať absolútnu hlasitosť"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Povoliť zvonenie v hovorovom pásme"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Verzia rozhrania Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Povoliť simulované polohy"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Kontrola atribútov zobrazenia"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Vždy ponechávať mobilné dáta aktívne, dokonca aj pri aktívnej sieti Wi‑Fi (na rýchle prepínanie sietí)"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Povoliť ladenie cez USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ladenie cez USB je určené iba na účely vývoja. Možno ho použiť na kopírovanie dát medzi počítačom a zariadením, inštaláciu aplikácií do zariadenia bez upozornenia a čítanie dát denníka."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Chcete všetkým v minulosti autorizovaným počítačom odvolať prístup k ladeniu cez USB?"</string> diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml index a206c30ce53b..2a7e7f118388 100644 --- a/packages/SettingsLib/res/values-sl/strings.xml +++ b/packages/SettingsLib/res/values-sl/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Povezava vzpostavljena (brez predstavnosti)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Povezava vzp. (ni dostopa do sporočil)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Povezava vzpostavljena (brez telefona ali predstavnosti)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Povezava je vzpostavljena, raven napolnjenosti akumulatorja je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Povezava je vzpostavljena (brez telefona), raven napolnjenosti akumulatorja je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Povezava je vzpostavljena (brez predstavnosti), raven napolnjenosti akumulatorja je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Povezava je vzpostavljena (brez telefona ali predstavnosti), raven napolnjenosti akumulatorja je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Zvok predstavnosti"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonski klici"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Prenos datoteke"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Odločen prehod iz Wi-Fi-ja v mobil. omr."</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Vedno omogoči iskanje omrežij Wi-Fi za gostovanje"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Prenos podatkov v mobilnem omrežju je vedno aktiven"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Onemogočanje absolutnega praga glasnosti"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Omogoči zvonjenje iz telefona"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Različica profila AVRCP za Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Dovoli lažne lokacije"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Omogoči pregled atributa pogleda"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Prenos podatkov v mobilnih omrežjih je vedno aktiven – tudi ko je aktivna povezava Wi-Fi (za hiter preklop med omrežji)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Ali dovolite odpravljanje težav s povezavo USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Odpravljanje težav s povezavo USB je namenjeno samo za razvoj. Lahko ga uporabljate za kopiranje podatkov med računalnikom in napravo, nameščanje aplikacij v napravo brez obveščanja in branje podatkov v dnevniku."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Ali želite preklicati dostop do odpravljanja težav prek povezave USB iz vseh računalnikov, ki ste jih pooblastili?"</string> diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml index c3ad1f2888e0..ba6c78476738 100644 --- a/packages/SettingsLib/res/values-sq/strings.xml +++ b/packages/SettingsLib/res/values-sq/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"U lidh (nuk ka media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"U lidh (pa qasje te mesazhet)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"I lidhur (pa telefon apo media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"E lidhur, bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"E lidhur (nuk ka telefon), bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"E lidhur (nuk ka media), bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"E lidhur (nuk ka telefon ose media), bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audioja e klipit \"media\""</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonatat"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferimi i skedarëve"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Dorëzimi agresiv i Wi‑Fi te rrjeti celular"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Lejo gjithmonë skanimet për Wi-Fi edhe kur je në lëvizje"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Të dhënat celulare gjithmonë aktive"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Çaktivizo volumin absolut"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Aktivizo zilen brenda të njëjtit brez"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Versioni AVRCP i Bluetooth-it"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Lejo vendndodhje të simuluara"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Aktivizo shikimin e inspektimit të atributeve"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mbaji të dhënat celulare gjithmonë aktive edhe kur Wi‑Fi është aktiv (për ndërrim të shpejtë të rrjetit)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Të lejohet korrigjimi i USB-së?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Korrigjuesi i USB-së është vetëm për qëllime zhvillimore. Përdore për të kopjuar të dhëna mes kompjuterit dhe pajisjes tënde, për të instaluar aplikacione në pajisjen tënde pa asnjë njoftim si dhe për të lexuar të dhënat e ditarit."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Të bllokohet qasja për korrigjim të USB-së nga të gjithë kompjuterët që ke autorizuar më parë?"</string> diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml index aa8387b67fd4..d2e5127ed1e0 100644 --- a/packages/SettingsLib/res/values-sr/strings.xml +++ b/packages/SettingsLib/res/values-sr/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Повезано (без медија)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Повезано је (нема приступа порукама)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Повезано (без телефона или медија)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Повезано, ниво батерије је <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Повезано (без телефона), ниво батерије је <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Повезано (без медија), ниво батерије је <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Повезано (без телефона или медија), ниво батерије је <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Звук медија"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефонски позиви"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Пренос датотеке"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Агресиван прелаз са Wi‑Fi мреже на мобилну"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Увек дозволи скенирање Wi‑Fi-ја у ромингу"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Мобилни подаци су увек активни"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Онемогући главно подешавање јачине звука"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Омогућавање звоњаве на истом каналу"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Верзија Bluetooth AVRCP-а"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Дозволи лажне локације"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Омогући проверу атрибута за преглед"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Нека мобилни подаци увек буду активни, чак и када је Wi‑Fi активан (ради брзе промене мреже)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Дозволи отклањање USB грешака?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Отклањање USB грешака намењено је само за сврхе програмирања. Користите га за копирање података са рачунара на уређај и обрнуто, инсталирање апликација на уређају без обавештења и читање података из евиденције."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Желите ли да опозовете приступ отклањању USB грешака са свих рачунара које сте претходно одобрили?"</string> diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml index deaa6ae54665..47e4e95b7502 100644 --- a/packages/SettingsLib/res/values-sv/strings.xml +++ b/packages/SettingsLib/res/values-sv/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Ansluten (inga media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Ansluten (ingen meddelandeåtkomst)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Ansluten (ingen telefon och inga media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Ansluten, batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Ansluten (ingen mobil), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Ansluten (inga medier), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Ansluten (ingen mobil och inga medier), batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Medialjud"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefonsamtal"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Filöverföring"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Aggressiv överlämning fr. Wi-Fi t. mobil"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Tillåt alltid sökning efter Wi-Fi-roaming"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobildata alltid aktiverad"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Inaktivera Absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Aktivera samtal inom nätverket"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"AVRCP-version för Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Tillåt skenplatser"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Aktivera inspektion av visningsattribut"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Håll alltid mobildata aktiverad, även när Wi-Fi är aktiverat (så att du snabbt kan byta mellan nätverk)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Ska USB-felsökning tillåtas?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB-felsökning ska endast användas i utvecklingssyfte. Använd den för att kopiera data mellan datorn och enheten, installera appar på enheten utan meddelanden och läsa loggdata."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Vill du återkalla åtkomst till USB-felsökning för alla datorer som du tidigare har godkänt?"</string> diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml index 3582f50ff864..80540afb93d9 100644 --- a/packages/SettingsLib/res/values-sw/strings.xml +++ b/packages/SettingsLib/res/values-sw/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Imeunganishwa(hakuna vyombo vya habari)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Imeunganishwa (hakuna ufikiaji kwa ujumbe)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Imeunganishwa(hakuna simu au vyombo vya habari)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Imeunganishwa, kiwango cha betri ni <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Imeunganishwa (hakuna simu), kiwango cha betri ni <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Imeunganishwa (hakuna midia), kiwango cha betri ni <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Imeunganishwa (hakuna simu wala midia), kiwango cha betri ni <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media ya sauti"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Simu"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Uhamishaji wa faili"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Ukabidhi hima kutoka Wifi kwenda mtandao wa simu"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Ruhusu Uchanganuzi wa Matumizi ya Mitandao mingine"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Iendelee kutumia data ya simu"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Zima sauti kamili"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Washa kipengele cha mlio wa simu katika kituo hicho hicho"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Toleo la Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Ruhusu maeneo ya majaribio"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Washa ukaguzi wa sifa ya onyesho"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Washa kila wakati data ya kifaa cha mkononi, hata kama Wi-Fi inatumika (katika uzimaji wa haraka wa mtandao)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Ruhusu utatuaji USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ueuaji wa USB umekusudiwa kwa malengo ya utengenezaji tu. Itumi kunakili data kati ya kompyuta yako na kifaa chako, kusanidi programu kwa kifaa chako bila arifa, na kusoma data ya rajisi."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Unataka kubatilisha ufikiaji wa urekebishaji wa USB kutoka kwenye kompyuta zote ulizotangulia kuidhinisha?"</string> diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml index 2eca4d749f89..232e28283f71 100644 --- a/packages/SettingsLib/res/values-ta/strings.xml +++ b/packages/SettingsLib/res/values-ta/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"இணைக்கப்பட்டது (மீடியா இல்லை)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"இணைக்கப்பட்டது (செய்திக்கான அணுகல் இல்லை)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"இணைக்கப்பட்டது (மொபைல் அல்லது மீடியாவுடன் அல்ல)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"இணைக்கப்பட்டது, பேட்டரி <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"இணைக்கப்பட்டது (மொபைல் ஆடியோ இணைக்கப்படவில்லை), பேட்டரி <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"இணைக்கப்பட்டது (மீடியா ஆடியோ இணைக்கப்படவில்லை), பேட்டரி <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"இணைக்கப்பட்டது (மொபைல் அல்லது மீடியா ஆடியோ இணைக்கப்படவில்லை), பேட்டரி <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"மீடியா ஆடியோ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ஃபோன் அழைப்புகள்"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"கோப்பு இடமாற்றம்"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ஒத்துழைக்காத வைஃபையிலிருந்து மொபைல் தரவிற்கு மாறு"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"எப்போதும் வைஃபை ரோமிங் ஸ்கேன்களை அனுமதி"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"மொபைல் தரவை எப்போதும் இயக்கத்திலேயே வை"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"அப்சல்யூட் ஒலியளவு அம்சத்தை முடக்கு"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"இன்-பேண்ட் ரிங் செய்வதை இயக்கு"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"புளூடூத் AVRCP பதிப்பு"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"போலி இருப்பிடங்களை அனுமதி"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"காட்சி பண்புக்கூறு சோதனையை இயக்கு"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"வைஃபை இயங்கும் போதும் (வேகமான நெட்வொர்க் மாற்றத்திற்கு), மொபைல் தரவை எப்போதும் இயக்கத்தில் வைக்கும்."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB பிழைத்திருத்தத்தை அனுமதிக்கவா?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB பிழைத்திருத்தம் மேம்படுத்தல் நோக்கங்களுக்காக மட்டுமே. அதை உங்கள் கணினி மற்றும் சாதனத்திற்கு இடையில் தரவை நகலெடுக்கவும், அறிவிப்பு இல்லாமல் உங்கள் சாதனத்தில் பயன்பாடுகளை நிறுவவும், பதிவு தரவைப் படிக்கவும் பயன்படுத்தவும்."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"நீங்கள் ஏற்கனவே அனுமதித்த எல்லா கணினிகளிலிருந்தும் USB பிழைத்திருத்தத்திற்கான அணுகலைத் திரும்பப்பெற வேண்டுமா?"</string> diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml index b7936fc5797b..f30daa59712a 100644 --- a/packages/SettingsLib/res/values-te/strings.xml +++ b/packages/SettingsLib/res/values-te/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"కనెక్ట్ చేయబడింది (మీడియా కాదు)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"కనెక్ట్ చేయబడింది (సందేశ ప్రాప్యత లేదు)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"కనెక్ట్ చేయబడింది (ఫోన్ లేదా మీడియా కాకుండా)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"కనెక్ట్ చేయబడింది, బ్యాటరీ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"కనెక్ట్ చేయబడింది (ఫోన్ కాదు), బ్యాటరీ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"కనెక్ట్ చేయబడింది (మీడియా కాదు), బ్యాటరీ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"కనెక్ట్ చేయబడింది (ఫోన్ లేదా మీడియా కాదు), బ్యాటరీ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"మీడియా ఆడియో"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ఫోన్ కాల్లు"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ఫైల్ బదిలీ"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"మొబైల్కి మార్చేలా చురుకైన Wi‑Fi"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi‑Fi సంచార స్కాన్లను ఎల్లప్పుడూ అనుమతించు"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"మొబైల్ డేటాని ఎల్లప్పుడూ సక్రియంగా ఉంచు"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"సంపూర్ణ వాల్యూమ్ను నిలిపివేయి"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ఇన్-బ్యాండ్ రింగింగ్ని ప్రారంభించండి"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"బ్లూటూత్ AVRCP సంస్కరణ"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"అనుకృత స్థానాలను అనుమతించు"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"వీక్షణ లక్షణ పర్యవేక్షణను ప్రారంభించు"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ఎల్లప్పుడూ మొబైల్ డేటాను సక్రియంగా ఉంచు, Wi‑Fi సక్రియంగా ఉన్నా కూడా (వేగవంతమైన నెట్వర్క్ మార్పు కోసం)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB డీబగ్గింగ్ను అనుమతించాలా?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB డీబగ్గింగ్ అనేది అభివృద్ధి ప్రయోజనాల కోసం మాత్రమే ఉద్దేశించబడింది. మీ కంప్యూటర్ మరియు మీ పరికరం మధ్య డేటాను కాపీ చేయడానికి, నోటిఫికేషన్ లేకుండా మీ పరికరంలో అనువర్తనాలను ఇన్స్టాల్ చేయడానికి మరియు లాగ్ డేటాను చదవడానికి దీన్ని ఉపయోగించండి."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"మీరు గతంలో ప్రామాణీకరించిన అన్ని కంప్యూటర్ల నుండి USB డీబగ్గింగ్కు ప్రాప్యతను ఉపసంహరించాలా?"</string> diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml index 4631e8524f41..d372d918ed3e 100644 --- a/packages/SettingsLib/res/values-th/strings.xml +++ b/packages/SettingsLib/res/values-th/strings.xml @@ -55,16 +55,12 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"เชื่อมต่อแล้ว (ยกเว้นเสียงสื่อ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"เชื่อมต่อแล้ว (ไม่มีการเข้าถึงข้อความ)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"เชื่อมต่อ (ยกเว้นเสียงโทรศัพท์หรือสื่อ)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> - <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"เสียงสื่อ"</string> - <string name="bluetooth_profile_headset" msgid="7815495680863246034">"การโทรศัพท์"</string> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"เชื่อมต่ออยู่ แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"เชื่อมต่ออยู่ (ไม่มีโทรศัพท์) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"เชื่อมต่ออยู่ (ไม่มีสื่อ) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"เชื่อมต่ออยู่ (ไม่มีโทรศัพท์หรือสื่อ) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"เสียงของสื่อ"</string> + <string name="bluetooth_profile_headset" msgid="7815495680863246034">"โทรศัพท์"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"การถ่ายโอนไฟล์"</string> <string name="bluetooth_profile_hid" msgid="3680729023366986480">"อุปกรณ์อินพุต"</string> <string name="bluetooth_profile_pan" msgid="3391606497945147673">"การเข้าถึงอินเทอร์เน็ต"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"สลับ Wi‑Fi เป็นมือถือเมื่อสัญญาณอ่อน"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ใช้การสแกน Wi-Fi ข้ามเครือข่ายเสมอ"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"เปิดใช้อินเทอร์เน็ตมือถือเสมอ"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ปิดใช้การควบคุมระดับเสียงของอุปกรณ์อื่น"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"เปิดใช้การส่งเสียงในช่องสัญญาณเดียวกัน"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"เวอร์ชันของบลูทูธ AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"อนุญาตให้จำลองตำแหน่ง"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"เปิดใช้การตรวจสอบแอตทริบิวต์มุมมอง"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"เปิดใช้ข้อมูลมือถืออยู่เสมอ แม้ในเวลาที่ใช้งาน Wi-Fi อยู่ (สำหรับสวิตชิงเครือข่ายความเร็วสูง)"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"อนุญาตให้แก้ไขข้อบกพร่อง USB หรือไม่"</string> <string name="adb_warning_message" msgid="7316799925425402244">"การแก้ไขข้อบกพร่อง USB มีไว้เพื่อการพัฒนาเท่านั้น ให้ใช้การแก้ไขนี้เพื่อคัดลอกข้อมูลระหว่างคอมพิวเตอร์และอุปกรณ์ ติดตั้งแอปพลิเคชันบนอุปกรณ์โดยไม่มีการแจ้งเตือน และอ่านข้อมูลบันทึก"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ยกเลิกการเข้าถึงเพื่อแก้ปัญหาผ่าน USB จากคอมพิวเตอร์ทุกเครื่องที่คุณได้ให้สิทธิ์ก่อนหน้านี้ไหม"</string> diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml index 88b92323f528..a4b5d9455ed0 100644 --- a/packages/SettingsLib/res/values-tl/strings.xml +++ b/packages/SettingsLib/res/values-tl/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Nakakonekta (walang media)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Nakakonekta (walang access sa mensahe)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Nakakonekta (walang telepono o media)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Nakakonekta, baterya <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Nakakonekta (walang telepono), baterya <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Nakakonekta (walang media), baterya <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Nakakonekta (walang telepono o media), baterya <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio ng media"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Mga tawag sa telepono"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Paglilipat ng file"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Agresibong paglipat ng Wi‑Fi sa mobile"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Palaging payagan ang Mga Pag-scan sa Roaming ng Wi‑Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Palaging aktibo ang mobile data"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"I-disable ang absolute volume"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"I-enable ang pag-ring na nasa band"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bersyon ng AVRCP ng Bluetooth"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Payagan ang mga kunwaring lokasyon"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"I-enable ang pagsisiyasat sa attribute na view"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Palaging panatilihing aktibo ang mobile data, kahit na aktibo ang Wi‑Fi (para sa mabilis na paglipat ng network)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Payagan ang pag-debug ng USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ang pag-debug ng USB ay para lang sa mga layuning pag-develop. Gamitin ito upang kumopya ng data sa pagitan ng iyong computer at iyong device, mag-install ng mga app sa iyong device nang walang notification, at magbasa ng data ng log."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Bawiin ang access sa pag-debug ng USB mula sa lahat ng computer na dati mong pinahintulutan?"</string> diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml index 2c8e1ec29285..6707ad2524ab 100644 --- a/packages/SettingsLib/res/values-tr/strings.xml +++ b/packages/SettingsLib/res/values-tr/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Bağlandı (medya yok)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Bağlı (mesaj erişimi yok)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Bağlandı (telefon veya medya yok)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Bağlandı, pil seviyesi <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Bağlandı (telefon yok), pil seviyesi <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Bağlandı (medya yok), pil seviyesi <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Bağlandı (telefon veya medya yok), pil seviyesi <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Medya sesi"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefon çağrıları"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Dosya aktarımı"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Kablosuzdan mobil ağa agresif geçiş"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Kablosuz Dolaşım Taramalarına daima izin ver"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobil veri her zaman etkin"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Mutlak sesi iptal et"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Bant içi zil çaldırmayı etkinleştir"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP Sürümü"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Sahte konumlara izin ver"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Görünüm özelliği incelemeyi etkinleştir"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Kablosuz bağlantı etkin bile olsa mobil veri kullanımını her zaman etkin tut (ağlar arasında hızlı geçiş yapmak için)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB hata ayıklamasına izin verilsin mi?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB hata ayıklaması yalnızca geliştirme amaçlıdır. Verileri bilgisayarınızla cihazınız arasında kopyalamak, bildirim göndermeksizin uygulamaları cihazınıza yüklemek ve günlük verilerini okumak için kullanın."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Daha önce yetki verdiğiniz tüm bilgisayarların USB hata ayıklama erişimini iptal etmek istiyor musunuz?"</string> diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml index e7bd0c8bffda..e19731328c44 100644 --- a/packages/SettingsLib/res/values-uk/strings.xml +++ b/packages/SettingsLib/res/values-uk/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Під’єднано (без медіа-файлів)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Під’єднано (без доступу до повідомлень)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Під’єднано (без телефону чи медіа)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Під’єдано, заряд акумулятора: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Під’єднано (без телефона), заряд акумулятора: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Під’єднано (без медіа-вмісту), заряд акумулятора: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Під’єднано (без телефона та медіа-вмісту), заряд акумулятора: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Звук медіа-файлів"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Телефонні дзвінки"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Передавання файлів"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Перемикатися з Wi-Fi на мобільну мережу"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Завжди шукати мережі Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Не вимикати мобільне передавання даних"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Вимкнути абсолютну гучність"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Увімкнути внутрішньосмугові сигнали"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Версія Bluetooth AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Дозв. фіктивні місцезн."</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Увімкнути оцінку атрибуції переглядів"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Не вимикати мобільний Інтернет, навіть якщо ввімкнено Wi‑Fi (щоб швидше переходити між мережами)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Дозвол. налагодж. USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Налагодження USB застосовується лише з метою розробки. Його можна використовувати для копіювання даних між комп’ютером і пристроєм, встановлення програм на вашому пристрої без сповіщення та читання даних журналу."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Скасувати доступ до налагодження USB для всіх комп’ютерів, які раніше отримали таке право?"</string> diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml index 7e3723c0b8b6..546a2c16d799 100644 --- a/packages/SettingsLib/res/values-ur/strings.xml +++ b/packages/SettingsLib/res/values-ur/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"مربوط (کوئی میڈیا نہیں ہے)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"مربوط (کسی پیغام تک رسائی نہیں ہے)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"مربوط (کوئی فون یا میڈیا نہیں ہے)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"منسلک ہے، بیٹری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"منسلک ہے (کوئی فون نہیں)، بیٹری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"منسلک ہے (کوئی میڈیا نہیں)، بیٹری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"منسلک ہے (کوئی فون یا میڈیا نہیں)، بیٹری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"میڈيا آڈیو"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"فون کالز"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"فائل کی منتقلی"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi‑Fi سے موبائل کو جارحانہ ہینڈ اوور"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ہمیشہ Wi‑Fi روم اسکینز کی اجازت دیں"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"موبائل ڈیٹا ہمیشہ فعال رکھیں"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"مطلق والیوم کو غیر فعال کریں"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"ان بینڈ رنگنگ فعال کریں"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"بلوٹوتھ AVRCP ورژن"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"فرضی مقامات کی اجازت دیں"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"منظر انتساب کے معائنہ کو فعال کریں"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi فعال ہونے پر بھی موبائل ڈیٹا کو ہمیشہ فعال رکھیں (تیزی سے نیٹ ورک سوئچ کرنے کیلئے)۔"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB ڈیبگ کرنے کی اجازت دیں؟"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB ڈیبگ کرنا صرف ڈیولپمنٹ کے مقاصد کیلئے ہے۔ اپنے کمپیوٹر اور اپنے آلہ کے درمیان ڈیٹا کاپی کرنے کیلئے اسے استعمال کریں، بغیر اطلاع کے اپنے آلہ پر ایپس انسٹال کریں اور لاگ ڈیٹا پڑھیں۔"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"اپنے ذریعہ پہلے سے اجازت یافتہ سبھی کمپیوٹرز سے USB ڈیبگ کرنے کی رسائی کو کالعدم کریں؟"</string> diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml index 0d9bc50c2544..bceab6252384 100644 --- a/packages/SettingsLib/res/values-uz/strings.xml +++ b/packages/SettingsLib/res/values-uz/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Ulanildi (mediadan tashqari)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Ulangan (xabarlarga kirib bo‘lmaydi)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Ulangan (telefon yoki media qurilma emas)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Ulangan, batareya quvvati: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Ulangan (HSP/HFP dan tashqari), batareya quvvati: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Ulangan (A2DP dan tashqari), batareya quvvati: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Ulangan (HSP/HFP/A2DP dan tashqari), batareya quvvati: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media audio"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Telefon chaqiruvlari"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Fayl o‘tkazish"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Mobil internetga o‘tish"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Wi-Fi tarmoqlarini qidirishga doim ruxsat"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Mobil internet doim yoniq tursin"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Ovoz balangligining mutlaq darajasini o‘chirib qo‘yish"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Bitta liniyada jiringlashni yoqish"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth AVRCP versiyasi"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Joylashuv emulyatsiyasiga ruxsat berish"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Alomatlar tekshiruvini yoqish"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Mobil internet har doim yoniq tursin, hatto Wi-Fi yoniq bo‘lsa ham (bir tarmoqdan ikkinchisiga tezroq o‘tish uchun)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"USB orqali nosozliklarni tuzatishga ruxsat berilsinmi?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB orqali nosozliklarni tuzatish faqat dasturlash maqsadlarida yoqiladi. Undan ma‘lumotlarni qurilmangiz va kompyuter o‘rtasida ko‘chirish, ilovalarni xabarnomasiz o‘rnatish va jurnal ma‘lumotlarini o‘qish uchun foydalaniladi."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"USB orqali nosozliklarni tuzatishga berilgan ruxsat siz hisobingizga kirgan barcha kompyuterlar uchun bekor qilinsinmi?"</string> diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml index 4bf4ec4442ec..911af5f5f53c 100644 --- a/packages/SettingsLib/res/values-vi/strings.xml +++ b/packages/SettingsLib/res/values-vi/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Đã kết nối (không có phương tiện)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Đã kết nối (không truy cập tin nhắn)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Đã k.nối (kg có ĐT hoặc p.tiện nào)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Đã kết nối, mức pin <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Đã kết nối (không có điện thoại), mức pin <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Đã kết nối (không có phương tiện), mức pin <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Đã kết nối (không có điện thoại hoặc phương tiện), mức pin <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Âm thanh của phương tiện"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Cuộc gọi điện thoại"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Chuyển tệp"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Chuyển vùng Wi‑Fi tích cực sang mạng DĐ"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Luôn cho phép quét chuyển vùng Wi‑Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Dữ liệu di động luôn hiện hoạt"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Vô hiệu hóa âm lượng tuyệt đối"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Bật đổ chuông trong dải"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Bluetooth phiên bản AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Cho phép vị trí mô phỏng"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Cho phép kiểm tra thuộc tính của chế độ xem"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Luôn giữ cho dữ liệu di động hoạt động, ngay cả khi Wi-Fi đang hoạt động (để chuyển đổi mạng nhanh)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Cho phép gỡ lỗi USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Gỡ lỗi USB chỉ dành cho mục đích phát triển. Hãy sử dụng tính năng này để sao chép dữ liệu giữa máy tính và thiết bị của bạn, cài đặt ứng dụng trên thiết bị của bạn mà không thông báo và đọc dữ liệu nhật ký."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Thu hồi quyền truy cập gỡ lỗi USB từ tất cả máy tính mà bạn đã ủy quyền trước đó?"</string> diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml index addd04d5af70..08ad2a4472df 100644 --- a/packages/SettingsLib/res/values-zh-rCN/strings.xml +++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml @@ -190,6 +190,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"主动从 WLAN 网络切换到移动数据网络"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"一律允许WLAN漫游扫描"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"始终开启移动数据网络"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"停用绝对音量功能"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"启用手机默认铃声"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"蓝牙 AVRCP 版本"</string> @@ -221,6 +223,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"允许模拟位置"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"启用视图属性检查功能"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"始终开启移动数据网络,即使 WLAN 网络已开启(便于快速切换网络)。"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"是否允许 USB 调试?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB 调试仅用于开发目的。该功能可用于在您的计算机和设备之间复制数据、在您的设备上安装应用(事先不发通知)以及读取日志数据。"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"是否针对您之前授权的所有计算机撤消 USB 调试的访问权限?"</string> diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml index ee4ff6b12e7c..e29dd4b4abcb 100644 --- a/packages/SettingsLib/res/values-zh-rHK/strings.xml +++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"已連線 (無媒體)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"已連結 (無訊息存取權)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"已連線 (無手機或媒體)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"已連線,電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"已連線 (沒有手機),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"已連線 (沒有媒體音訊),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"已連線 (沒有手機或媒體音訊),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"媒體音效"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"通話"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"檔案傳輸"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"加強 Wi-Fi 至流動數據轉換"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"永遠允許 Wi-Fi 漫遊掃瞄"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"一律保持啟用流動數據"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"停用絕對音量功能"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"啟用頻內鈴聲"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"藍牙 AVRCP 版本"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"允許模擬位置"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"啟用檢視屬性檢查"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"即使 Wi‑Fi 已啟用,仍永遠啟用流動數據 (可快速切換網絡)。"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"允許 USB 偵錯嗎?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB 偵錯是針對應用程式開發而設計的功能,可讓您在電腦與裝置間複製資料、不用通知即可在裝置上安裝應用程式,以及讀取記錄資料。"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"要針對先前授權的所有電腦撤銷 USB 偵錯存取權嗎?"</string> diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml index 0a4e48399684..b2fb43d66dfa 100644 --- a/packages/SettingsLib/res/values-zh-rTW/strings.xml +++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"已連線 (無媒體音訊)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"已連線 (無訊息存取權)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"已連線 (無手機或媒體音訊)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"已連線,電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"已連線 (無手機),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"已連線 (無媒體音訊),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"已連線 (無手機或媒體音訊),電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"媒體音訊"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"通話"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"檔案傳輸"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Wi-Fi 至行動數據轉換強化"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"一律允許 Wi-Fi 漫遊掃描"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"行動數據連線一律保持啟用狀態"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"停用絕對音量功能"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"啟用藍牙同步鈴聲功能"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"藍牙 AVRCP 版本"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"允許模擬位置"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"啟用檢視屬性檢查"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"即使 Wi‑Fi 連線已啟用,一律將行動數據連線保持啟用狀態 (以便快速切換網路)。"</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"允許 USB 偵錯嗎?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"USB 偵錯是針對應用程式開發而設計的功能,可讓你複製電腦和裝置中的資料、不需經由通知即可在裝置上安裝應用程式,以及讀取記錄資料。"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"要針對先前授權的所有電腦撤銷 USB 偵錯權限嗎?"</string> diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml index a142c32f4a2e..50e43d44f75d 100644 --- a/packages/SettingsLib/res/values-zu/strings.xml +++ b/packages/SettingsLib/res/values-zu/strings.xml @@ -55,14 +55,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Ixhunyiwe (ayikho imidiya)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"Kuxhunyiwe (akukho ukufinyelela umlayezo)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Ixhunyiwe (ayikho ifoni noma imidiya)"</string> - <!-- no translation found for bluetooth_connected_battery_level (7049181126136692368) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_battery_level (5504193961248406027) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_a2dp_battery_level (4751724026365870779) --> - <skip /> - <!-- no translation found for bluetooth_connected_no_headset_no_a2dp_battery_level (1549265779323455261) --> - <skip /> + <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"Kuxhunyiwe, ibhethri elingu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"Kuxhunyiwe (ayikho ifoni), ibhethri lingu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"Kuxhunyiwe (ayikho imidiya), ibhethri lingu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"Kuxhunyiwe (ayikho ifoni noma imidiya), ibhethri lingu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Umsindo wemidiya"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"Amakholi efoni"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Dlulisa ifayela"</string> @@ -190,6 +186,8 @@ <string name="wifi_aggressive_handover" msgid="5309131983693661320">"Ukudluliselwa okunamandla kakhulu kwe-Wi-Fi ukuya kuselula"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"Vumela njalo ukuskena kokuzula kwe-Wi-Fi"</string> <string name="mobile_data_always_on" msgid="8774857027458200434">"Idatha yeselula ihlala isebenza"</string> + <!-- no translation found for tethering_hardware_offload (7470077827090325814) --> + <skip /> <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"Khubaza ivolumu ngokuphelele"</string> <string name="bluetooth_enable_inband_ringing" msgid="3291686366721786740">"Nika amandla ukukhala okuphakathi nomkhiqizo"</string> <string name="bluetooth_select_avrcp_version_string" msgid="3750059931120293633">"Inguqulo ye-Bluetooth ye-AVRCP"</string> @@ -221,6 +219,8 @@ <string name="allow_mock_location_summary" msgid="317615105156345626">"Vumela izindawo mbumbulu"</string> <string name="debug_view_attributes" msgid="6485448367803310384">"Nika amandla ukubuka"</string> <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Hlala ugcine idatha yeselula isebenza, nanoma i-Wi-Fi isebenza (ngokushintshwa kwenethiwekhi okusheshayo)."</string> + <!-- no translation found for tethering_hardware_offload_summary (7726082075333346982) --> + <skip /> <string name="adb_warning_title" msgid="6234463310896563253">"Vumela ukulungisa iphutha le-USB?"</string> <string name="adb_warning_message" msgid="7316799925425402244">"Ukulungisa iphutha le-USB kuhloselwe izinjongo zokuthuthukisa kuphela. Ingasebenziselwa ukukopisha idatha phakathi kwekhompyutha yakho nedivaysi yakho, faka izinhlelo zokusebenza kwidivaysi yakho ngaphandle kwesaziso, bese ufunda idatha yefayela lokungena."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"Buyisa ukufinyelela ekususeni iphutha le-USB kusuka kuwo wonke amakhompyutha owagunyaze ngaphambilini?"</string> diff --git a/packages/SettingsLib/res/values/attrs.xml b/packages/SettingsLib/res/values/attrs.xml index a8a179358744..6d852df2f907 100644 --- a/packages/SettingsLib/res/values/attrs.xml +++ b/packages/SettingsLib/res/values/attrs.xml @@ -48,4 +48,9 @@ <attr name="footerPreferenceStyle" format="reference" /> + <declare-styleable name="PreferenceImageView"> + <attr name="maxWidth" format="dimension" /> + <attr name="maxHeight" format="dimension" /> + </declare-styleable> + </resources> diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 576782319e1e..dee5a93d8eea 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -130,7 +130,7 @@ public class Utils { } /** Formats a double from 0.0..1.0 as a percentage. */ - private static String formatPercentage(double percentage) { + public static String formatPercentage(double percentage) { return NumberFormat.getPercentInstance().format(percentage); } diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java index a0eadd0fa122..190f5e6d1402 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java @@ -169,7 +169,10 @@ public class SettingsDrawerActivity extends Activity { finish(); } - public void setTileEnabled(ComponentName component, boolean enabled) { + /** + * @return whether or not the enabled state actually changed. + */ + public boolean setTileEnabled(ComponentName component, boolean enabled) { PackageManager pm = getPackageManager(); int state = pm.getComponentEnabledSetting(component); boolean isEnabled = state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; @@ -183,7 +186,9 @@ public class SettingsDrawerActivity extends Activity { ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); + return true; } + return false; } /** diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk index 8fa217db0f4e..2fd7e87a683e 100644 --- a/packages/SystemUI/Android.mk +++ b/packages/SystemUI/Android.mk @@ -38,8 +38,7 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ android-support-v7-mediarouter \ android-support-v7-palette \ android-support-v14-preference \ - android-support-v17-leanback \ - colorextraction + android-support-v17-leanback LOCAL_STATIC_JAVA_LIBRARIES := \ SystemUI-tags \ diff --git a/packages/SystemUI/colorextraction/Android.mk b/packages/SystemUI/colorextraction/Android.mk deleted file mode 100644 index e818c9944f73..000000000000 --- a/packages/SystemUI/colorextraction/Android.mk +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_USE_AAPT2 := true -LOCAL_SRC_FILES := $(call all-java-files-under, src) -LOCAL_STATIC_ANDROID_LIBRARIES := android-support-annotations \ - android-support-v7-palette \ - android-support-v4 -LOCAL_MODULE := colorextraction - -include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/packages/SystemUI/colorextraction/AndroidManifest.xml b/packages/SystemUI/colorextraction/AndroidManifest.xml deleted file mode 100644 index 6e082cf43399..000000000000 --- a/packages/SystemUI/colorextraction/AndroidManifest.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!-- - ~ Copyright (C) 2017 The Android Open Source Project - ~ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.google.android.colorextraction"> -</manifest> diff --git a/packages/SystemUI/colorextraction/tests/Android.mk b/packages/SystemUI/colorextraction/tests/Android.mk deleted file mode 100644 index a517e99a27ad..000000000000 --- a/packages/SystemUI/colorextraction/tests/Android.mk +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := $(call all-java-files-under, src) \ - $(call all-java-files-under, ../src) - -LOCAL_JAVA_LIBRARIES := android.test.runner -LOCAL_PACKAGE_NAME := ColorExtractorTests -LOCAL_CERTIFICATE := platform - -LOCAL_MODULE_TAGS := tests - -LOCAL_JAVA_LIBRARIES := android-support-test - -LOCAL_STATIC_JAVA_LIBRARIES := \ - android-support-test \ - mockito-target-minus-junit4 \ - espresso-core \ - truth-prebuilt \ - legacy-android-test \ - android-support-annotations \ - android-support-v7-palette \ - android-support-v4 - -LOCAL_COMPATIBILITY_SUITE := device-tests - -include $(BUILD_PACKAGE)
\ No newline at end of file diff --git a/packages/SystemUI/colorextraction/tests/AndroidManifest.xml b/packages/SystemUI/colorextraction/tests/AndroidManifest.xml deleted file mode 100644 index 375c7f2a7956..000000000000 --- a/packages/SystemUI/colorextraction/tests/AndroidManifest.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2017 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.systemui.colorextraction.tests"> - - <application> - <uses-library android:name="android.test.runner" /> - </application> - - <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner" - android:targetPackage="com.android.systemui.colorextraction.tests" - android:label="Tests for ColorExtractor"> - </instrumentation> -</manifest> diff --git a/packages/SystemUI/colorextraction/tests/AndroidTest.xml b/packages/SystemUI/colorextraction/tests/AndroidTest.xml deleted file mode 100644 index ee9ace4d9d89..000000000000 --- a/packages/SystemUI/colorextraction/tests/AndroidTest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2017 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<configuration description="Runs Tests for ColorExtractor."> - <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup"> - <option name="test-file-name" value="ColorExtractorTests.apk" /> - </target_preparer> - - <option name="test-suite-tag" value="apct" /> - <option name="test-tag" value="SystemUITests" /> - <test class="com.android.tradefed.testtype.AndroidJUnitTest" > - <option name="package" value="com.android.systemui.tests" /> - <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" /> - </test> -</configuration> diff --git a/packages/SystemUI/res-keyguard/values/styles.xml b/packages/SystemUI/res-keyguard/values/styles.xml index 0c96b0b221ab..795f20ee814e 100644 --- a/packages/SystemUI/res-keyguard/values/styles.xml +++ b/packages/SystemUI/res-keyguard/values/styles.xml @@ -60,7 +60,7 @@ <item name="android:layout_gravity">center_horizontal|bottom</item> </style> - <style name="PasswordTheme" parent="@android:style/Theme.DeviceDefault"> + <style name="PasswordTheme" parent="systemui_theme"> <item name="android:textColor">?attr/bgProtectTextColor</item> <item name="android:colorControlNormal">?attr/bgProtectTextColor</item> <item name="android:colorControlActivated">?attr/bgProtectTextColor</item> diff --git a/packages/SystemUI/res/layout/global_actions_item.xml b/packages/SystemUI/res/layout/global_actions_item.xml index 358833c1ed41..42c7b86ca401 100644 --- a/packages/SystemUI/res/layout/global_actions_item.xml +++ b/packages/SystemUI/res/layout/global_actions_item.xml @@ -21,12 +21,11 @@ android:layout_width="@dimen/global_actions_panel_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:minHeight="?android:attr/listPreferredItemHeight" + android:minHeight="114dp" + android:gravity="center" android:orientation="vertical" - android:paddingBottom="24dip" android:paddingEnd="8dip" - android:paddingStart="8dip" - android:paddingTop="24dip"> + android:paddingStart="8dip"> <ImageView android:id="@*android:id/icon" diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 62ceada38fd0..2533b50a590c 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Meer instellings"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Klaar"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Gekoppel"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Gekoppel, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Koppel tans …"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"USB-verbinding"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Warmkol"</string> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 17964d8fb9fc..f5242018163b 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"ተጨማሪ ቅንብሮች"</string> <string name="quick_settings_done" msgid="3402999958839153376">"ተከናውኗል"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"ተገናኝቷል"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"ተገናኝቷል፣ ባትሪ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"በማገናኘት ላይ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"በማገናኘት ላይ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"መገናኛ ነጥብ"</string> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index aabc9d7a7589..adb76b997bff 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -318,8 +318,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"المزيد من الإعدادات"</string> <string name="quick_settings_done" msgid="3402999958839153376">"تم"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"متصل"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"الجهاز متّصل، ومستوى طاقة البطارية <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"جارٍ الاتصال..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"النطاق"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"نقطة اتصال"</string> diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml index a8ad009a480e..a7b3b036a269 100644 --- a/packages/SystemUI/res/values-az/strings.xml +++ b/packages/SystemUI/res/values-az/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Digər ayarlar"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Hazır"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Qoşulu"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Qoşuldu, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Qoşulur..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Birləşmə"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index ed4eb728d831..6547f0fe6eec 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Još podešavanja"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Povezan"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Povezano, nivo baterije je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Povezuje se..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Povezivanje"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml index 48a56b7cecea..6d6d1b227125 100644 --- a/packages/SystemUI/res/values-be/strings.xml +++ b/packages/SystemUI/res/values-be/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Дадатковыя налады"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Гатова"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Падлучана"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Падключана, узровень зараду акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Падлучэнне..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Мадэм"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Кропка доступу"</string> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index f6fbaf5b6d71..86e02786a77c 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Още настройки"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Готово"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Установена е връзка"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Свързано, батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Установява се връзка..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Тетъринг"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Точка за достъп"</string> diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml index edcb004d1c51..8db54c88a13e 100644 --- a/packages/SystemUI/res/values-bn/strings.xml +++ b/packages/SystemUI/res/values-bn/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"আরো সেটিংস"</string> <string name="quick_settings_done" msgid="3402999958839153376">"সম্পন্ন হয়েছে"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"সংযুক্ত হয়েছে"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"সংযুক্ত হয়েছে, ব্যাটারি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"সংযুক্ত হচ্ছে..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"টেদারিং"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"হটস্পট"</string> diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml index b8206a06ae5a..451c2f702305 100644 --- a/packages/SystemUI/res/values-bs/strings.xml +++ b/packages/SystemUI/res/values-bs/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Više postavki"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Povezano"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Povezano, baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Povezivanje..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Dijeljenje veze"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Pristupna tačka"</string> @@ -655,8 +654,8 @@ <string name="switch_bar_off" msgid="8803270596930432874">"Isključeno"</string> <string name="nav_bar" msgid="1993221402773877607">"Navigaciona traka"</string> <string name="nav_bar_layout" msgid="3664072994198772020">"Raspored"</string> - <string name="left_nav_bar_button_type" msgid="8555981238887546528">"Dodatni tip dugmeta lijevo"</string> - <string name="right_nav_bar_button_type" msgid="2481056627065649656">"Dodatni tip dugmeta desno"</string> + <string name="left_nav_bar_button_type" msgid="8555981238887546528">"Vrsta dodatnog dugmeta lijevo"</string> + <string name="right_nav_bar_button_type" msgid="2481056627065649656">"Vrsta dodatnog dugmeta desno"</string> <string name="nav_bar_default" msgid="8587114043070993007">"(zadano)"</string> <string-array name="nav_bar_buttons"> <item msgid="1545641631806817203">"Međumemorija"</item> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 0675706bf9d2..5aa85b8186b8 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Més opcions"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Fet"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connectat"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connectat (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria)"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"S\'està connectant..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Compartició de xarxa"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Punt d\'accés Wi-Fi"</string> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 7a0fbfc870bf..ed4bd0f1991e 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Další nastavení"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Hotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Připojeno"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Připojeno, baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Připojování..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Sdílené připojení"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 08f57617e309..c7367beb571a 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Flere indstillinger"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Udfør"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Tilsluttet"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Tilsluttet – batteriniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Opretter forbindelse…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Netdeling"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 50d0a446de96..0e32df5df0ea 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -314,8 +314,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Weitere Einstellungen"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Fertig"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Verbunden"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Verbunden, Akkustand <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Verbindung wird hergestellt…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> @@ -731,8 +730,8 @@ <string name="pip_phone_minimize" msgid="1079119422589131792">"Minimieren"</string> <string name="pip_phone_close" msgid="8416647892889710330">"Schließen"</string> <string name="pip_phone_dismiss_hint" msgid="6351678169095923899">"Zum Schließen nach unten ziehen"</string> - <string name="pip_menu_title" msgid="3328510504196964712">"Menü \"Bild-in-Bild\""</string> - <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> ist in Bild-in-Bild"</string> + <string name="pip_menu_title" msgid="3328510504196964712">"Menü \"Bild im Bild\""</string> + <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> ist in Bild im Bild"</string> <string name="pip_notification_message" msgid="5619512781514343311">"Wenn du nicht möchtest, dass <xliff:g id="NAME">%s</xliff:g> diese Funktion verwendet, tippe, um die Einstellungen zu öffnen und die Funktion zu deaktivieren."</string> <string name="pip_play" msgid="1417176722760265888">"Wiedergeben"</string> <string name="pip_pause" msgid="8881063404466476571">"Pausieren"</string> diff --git a/packages/SystemUI/res/values-de/strings_tv.xml b/packages/SystemUI/res/values-de/strings_tv.xml index c83a52e50805..adae2592e069 100644 --- a/packages/SystemUI/res/values-de/strings_tv.xml +++ b/packages/SystemUI/res/values-de/strings_tv.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="notification_channel_tv_pip" msgid="134047986446577723">"Bild-in-Bild"</string> + <string name="notification_channel_tv_pip" msgid="134047986446577723">"Bild im Bild"</string> <string name="pip_notification_unknown_title" msgid="6289156118095849438">"(Kein Programmtitel)"</string> <string name="pip_close" msgid="3480680679023423574">"PIP schließen"</string> <string name="pip_fullscreen" msgid="8604643018538487816">"Vollbild"</string> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index 4c4bc007e96f..99cbb9346fee 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Περισσότερες ρυθμίσεις"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Τέλος"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Συνδέθηκε"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Σύνδεση, μπαταρία <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Σύνδεση…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Πρόσδεση"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Σημείο πρόσβασης Wi-Fi"</string> diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index e832f447e825..a9cd4ddbcd66 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"More settings"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Done"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connected"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connecting..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index e832f447e825..a9cd4ddbcd66 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"More settings"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Done"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connected"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connecting..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index e832f447e825..a9cd4ddbcd66 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"More settings"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Done"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connected"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connected, battery <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connecting..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 0fe9d475a6ed..94f37b9eab35 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Más configuraciones"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Listo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Conectado. Batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Anclaje a red"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona"</string> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 5a0a6256c73e..5575ddaf3a1c 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Más opciones"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Listo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Conectado (<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería)"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Compartir Internet"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona Wi-Fi"</string> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index f476a353f187..a08a97aa7e34 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Rohkem seadeid"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Valmis"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Ühendatud"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Ühendatud, aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Ühenduse loomine ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Jagamine"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Leviala"</string> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index a36c1c85c6ad..0cf5530271fa 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"تنظیمات بیشتر"</string> <string name="quick_settings_done" msgid="3402999958839153376">"تمام"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"متصل"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"متصل، باتری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"در حال اتصال..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"اتصال به اینترنت با تلفن همراه"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"نقطه اتصال"</string> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 307f5d4dccfc..638ca2ede935 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Lisäasetukset"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Valmis"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Yhdistetty"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Yhdistetty, akun varaus <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Yhdistetään…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Jaettu yhteys"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 5bd01791148e..25c448a5f92d 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Plus de paramètres"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Terminé"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connecté"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connecté. Pile : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connexion en cours…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Partage de connexion"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Point d\'accès sans fil"</string> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 2db32f9aa3c0..44a26a6910d7 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Plus de paramètres"</string> <string name="quick_settings_done" msgid="3402999958839153376">"OK"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connecté"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connecté, batterie à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connexion en cours..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Partage de connexion"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Point d\'accès"</string> diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml index aa836824f154..68d1c938014b 100644 --- a/packages/SystemUI/res/values-gl/strings.xml +++ b/packages/SystemUI/res/values-gl/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Máis opcións"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Feito"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Dispositivo conectado. Nivel da batería: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Conexión compartida"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona wifi"</string> diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml index abc3e4691f80..021ad3ea1b1c 100644 --- a/packages/SystemUI/res/values-gu/strings.xml +++ b/packages/SystemUI/res/values-gu/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"વધુ સેટિંગ્સ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"થઈ ગયું"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"કનેક્ટ થયેલ"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"કનેક્ટ કરેલ, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"કનેક્ટ કરી રહ્યું છે..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ટિથરિંગ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"હોટસ્પોટ"</string> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index add9bb6d855a..da3efcfc7fbb 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"और सेटिंग"</string> <string name="quick_settings_done" msgid="3402999958839153376">"पूर्ण"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"कनेक्ट है"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"कनेक्ट किया गया, बैटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> है"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"कनेक्ट हो रहा है..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"टेदरिंग"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"हॉटस्पॉट"</string> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index 9c610fbfba42..ea7ba5be0431 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Više postavki"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Povezano"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Povezano, baterija <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Povezivanje..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Dijeljenje veze"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Žarišna točka"</string> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 45ad6be9a03e..a47daf560fe5 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"További beállítások"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Kész"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Csatlakoztatva"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Csatlakoztatva; az akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Csatlakozás…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Megosztás"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml index dbc484f365f0..0dbee583262b 100644 --- a/packages/SystemUI/res/values-hy/strings.xml +++ b/packages/SystemUI/res/values-hy/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Հավելյալ կարգավորումներ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Պատրաստ է"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Կապակցված է"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Միացված է, մարտկոցի լիցք՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Միանում է..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Մոդեմի ռեժիմ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Թեժ կետ"</string> @@ -728,7 +727,7 @@ <string name="pip_phone_close" msgid="8416647892889710330">"Փակել"</string> <string name="pip_phone_dismiss_hint" msgid="6351678169095923899">"Քաշեք վար՝ փակելու համար"</string> <string name="pip_menu_title" msgid="3328510504196964712">"«Նկար նկարի մեջ» ռեժիմի ընտրացանկ"</string> - <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g>-ը «նկարը նկարի մեջ» ռեժիմում է"</string> + <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g>-ը «Նկար նկարի մեջ» ռեժիմում է"</string> <string name="pip_notification_message" msgid="5619512781514343311">"Եթե չեք ցանկանում, որ <xliff:g id="NAME">%s</xliff:g>-ն օգտագործի այս գործառույթը, հպեք՝ կարգավորումները բացելու և այն անջատելու համար։"</string> <string name="pip_play" msgid="1417176722760265888">"Նվագարկել"</string> <string name="pip_pause" msgid="8881063404466476571">"Դադարեցնել"</string> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 116390032150..51d356e2d60a 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Setelan lainnya"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Selesai"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Tersambung"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Terhubung, daya baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Menyambung..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Menambatkan"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml index 8c1c61dd7f80..9100ca8bd645 100644 --- a/packages/SystemUI/res/values-is/strings.xml +++ b/packages/SystemUI/res/values-is/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Fleiri stillingar"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Lokið"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Tengt"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Tengt, <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlaða"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Tengist..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tjóðrun"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Heitur reitur"</string> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index df3c4430313f..134503b5a165 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Altre impostazioni"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Fine"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Connesso"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Connesso, batteria al <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Connessione..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index d4cf5d3211af..22a1464ac4cb 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -314,8 +314,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"הגדרות נוספות"</string> <string name="quick_settings_done" msgid="3402999958839153376">"בוצע"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"מחובר"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"מחובר, הסוללה ב-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"מתחבר..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"שיתוף אינטרנט בין ניידים"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"נקודה לשיתוף אינטרנט"</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 3eb90605b875..8b86acce0ee6 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"詳細設定"</string> <string name="quick_settings_done" msgid="3402999958839153376">"完了"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"接続済み"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"接続済み、電池 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"接続しています..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"テザリング"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"アクセスポイント"</string> diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml index c7b977a88fb2..72c42157b9c2 100644 --- a/packages/SystemUI/res/values-ka/strings.xml +++ b/packages/SystemUI/res/values-ka/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"დამატებითი პარამეტრები"</string> <string name="quick_settings_done" msgid="3402999958839153376">"დასრულდა"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"დაკავშირებულია"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"დაკავშირებულია. ბატარეის დონე: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"დაკავშირება..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"მოდემის რეჟიმი"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"წვდომის წერტილი"</string> @@ -727,8 +726,8 @@ <string name="pip_phone_minimize" msgid="1079119422589131792">"ჩაკეცვა"</string> <string name="pip_phone_close" msgid="8416647892889710330">"დახურვა"</string> <string name="pip_phone_dismiss_hint" msgid="6351678169095923899">"დასახურად ჩავლებით ჩამოიტანეთ ქვემოთ"</string> - <string name="pip_menu_title" msgid="3328510504196964712">"მენიუ „გამოსახულება გამოსახულებაში“"</string> - <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> იყენებს რეჟიმს „გამოსახულება გამოსახულებაში“"</string> + <string name="pip_menu_title" msgid="3328510504196964712">"მენიუ „ეკრანი ეკრანში“"</string> + <string name="pip_notification_title" msgid="3204024940158161322">"<xliff:g id="NAME">%s</xliff:g> იყენებს რეჟიმს „ეკრანი ეკრანში“"</string> <string name="pip_notification_message" msgid="5619512781514343311">"თუ არ გსურთ, რომ <xliff:g id="NAME">%s</xliff:g> ამ ფუნქციას იყენებდეს, აქ შეხებით შეგიძლიათ გახსნათ პარამეტრები და გამორთოთ ის."</string> <string name="pip_play" msgid="1417176722760265888">"დაკვრა"</string> <string name="pip_pause" msgid="8881063404466476571">"დაპაუზება"</string> diff --git a/packages/SystemUI/res/values-ka/strings_tv.xml b/packages/SystemUI/res/values-ka/strings_tv.xml index 1a9759085653..f4f818bd43e0 100644 --- a/packages/SystemUI/res/values-ka/strings_tv.xml +++ b/packages/SystemUI/res/values-ka/strings_tv.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="notification_channel_tv_pip" msgid="134047986446577723">"სურათი სურათში"</string> + <string name="notification_channel_tv_pip" msgid="134047986446577723">"ეკრანი ეკრანში"</string> <string name="pip_notification_unknown_title" msgid="6289156118095849438">"(პროგრამის სათაურის გარეშე)"</string> <string name="pip_close" msgid="3480680679023423574">"PIP-ის დახურვა"</string> <string name="pip_fullscreen" msgid="8604643018538487816">"სრულ ეკრანზე"</string> diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml index dded6d3108ba..5d5f8070df7e 100644 --- a/packages/SystemUI/res/values-kk/strings.xml +++ b/packages/SystemUI/res/values-kk/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Қосымша параметрлер"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Дайын"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Қосылды"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Қосылды, батарея деңгейі: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Қосылуда…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Тетеринг"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Хот-спот"</string> diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml index b01edb279106..e161f59e4bb9 100644 --- a/packages/SystemUI/res/values-km/strings.xml +++ b/packages/SystemUI/res/values-km/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"ការកំណត់ច្រើនទៀត"</string> <string name="quick_settings_done" msgid="3402999958839153376">"រួចរាល់"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"បានភ្ជាប់"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"បានភ្ជាប់ ហើយថ្មមានកម្រិត <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"កំពុងតភ្ជាប់..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ការភ្ជាប់"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ហតស្ប៉ត"</string> diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml index cad05a6a8011..2284c9ba4f76 100644 --- a/packages/SystemUI/res/values-kn/strings.xml +++ b/packages/SystemUI/res/values-kn/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"ಹೆಚ್ಚಿನ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="quick_settings_done" msgid="3402999958839153376">"ಮುಗಿದಿದೆ"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"ಸಂಪರ್ಕಗೊಂಡಿದೆ"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"ಸಂಪರ್ಕಗೊಂಡಿದೆ, ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಮಟ್ಟ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ಟೆಥರಿಂಗ್"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ಹಾಟ್ಸ್ಪಾಟ್"</string> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 1df63776b4ae..6943f4e129d8 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"설정 더보기"</string> <string name="quick_settings_done" msgid="3402999958839153376">"완료"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"연결됨"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"연결됨, 배터리 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"연결 중..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"테더링"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"핫스팟"</string> diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml index ce3edb5169e8..f3d5dbdd0d64 100644 --- a/packages/SystemUI/res/values-ky/strings.xml +++ b/packages/SystemUI/res/values-ky/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Дагы жөндөөлөр"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Бүттү"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Туташкан"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Туташып турат, батареянын деңгээли – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Туташууда…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Тетеринг"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Туташуу чекити"</string> diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml index 5a889d8df49c..a5f0ca436cb3 100644 --- a/packages/SystemUI/res/values-lo/strings.xml +++ b/packages/SystemUI/res/values-lo/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"ແລ້ວໆ"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"ເຊື່ອມຕໍ່ແລ້ວ"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"ເຊື່ອມຕໍ່ແລ້ວ, ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"ກຳລັງເຊື່ອມຕໍ່..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ການປ່ອນສັນຍານ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ຮັອດສະປອດ"</string> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index e6df8670a58f..c1ccc75e39cb 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -314,8 +314,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Daugiau nustatymų"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Atlikta"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Prijungtas"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Prijungta, akumuliatorius <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Prisijungiama..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Susiejimas"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Viešosios interneto prieigos taškas"</string> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index d45096d9fa5f..4d4aad115543 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Vairāk iestatījumu"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gatavs"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Pievienota"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Savienojums izveidots, akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Notiek savienojuma izveide…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Piesaiste"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Tīklājs"</string> diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml index 9aa8fc496e7d..fb7c7afdd5b1 100644 --- a/packages/SystemUI/res/values-mk/strings.xml +++ b/packages/SystemUI/res/values-mk/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Повеќе поставки"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Готово"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Поврзано"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Поврзан, ниво на батеријата <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Се поврзува..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Поврзување"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Точка на пристап"</string> diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml index 397617620784..b42319a2bf5c 100644 --- a/packages/SystemUI/res/values-ml/strings.xml +++ b/packages/SystemUI/res/values-ml/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"കൂടുതൽ ക്രമീകരണങ്ങൾ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"പൂർത്തിയാക്കി"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"കണക്റ്റുചെയ്തു"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"കണക്റ്റുചെയ്തു, ബാറ്ററി നില <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"കണക്റ്റുചെയ്യുന്നു..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ടെതറിംഗ്"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ഹോട്ട്സ്പോട്ട്"</string> diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml index f00e8eb70014..cd4f5be60a51 100644 --- a/packages/SystemUI/res/values-mn/strings.xml +++ b/packages/SystemUI/res/values-mn/strings.xml @@ -308,8 +308,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Өөр тохиргоо"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Дууссан"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Холбогдсон"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Холбогдсон, батерей <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Холбогдож байна..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Модем болгох"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Сүлжээний цэг"</string> diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml index 2ff5e63816a5..b8562f63825b 100644 --- a/packages/SystemUI/res/values-mr/strings.xml +++ b/packages/SystemUI/res/values-mr/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"अधिक सेटिंग्ज"</string> <string name="quick_settings_done" msgid="3402999958839153376">"पूर्ण झाले"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"कनेक्ट केलेले"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"कनेक्ट केलेले आहे, बॅटरी <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"कनेक्ट करीत आहे..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"टेदरिंग"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"हॉटस्पॉट"</string> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index 1c6e543d1c4e..2c2e0948ff9d 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Lagi tetapan"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Selesai"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Disambungkan"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Disambungkan, bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Menyambung..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Penambatan"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Tempat liputan"</string> diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml index cf9baeeb27b5..5040bfdd80e3 100644 --- a/packages/SystemUI/res/values-my/strings.xml +++ b/packages/SystemUI/res/values-my/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"နောက်ထပ် ဆက်တင်များ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"လုပ်ပြီး"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"ချိတ်ဆက်ထား"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"ချိတ်ဆက်ပြီးပါပြီ၊ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"ဆက်သွယ်နေ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"တွဲချီပေးခြင်း"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ဟော့စပေါ့"</string> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index e14646edc78d..324c5832caa7 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Flere innstillinger"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Ferdig"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Tilkoblet"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Tilkoblet, batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Kobler til …"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Internettdeling"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Wi-Fi-sone"</string> diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml index a1746725f4ce..d2a50200f130 100644 --- a/packages/SystemUI/res/values-ne/strings.xml +++ b/packages/SystemUI/res/values-ne/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"थप सेटिङहरू"</string> <string name="quick_settings_done" msgid="3402999958839153376">"भयो"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"जोडिएको"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"यन्त्र जडान भयो, ब्याट्रीको चार्ज स्तर <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"जडान हुँदै..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"टेदर गर्दै"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"हटस्पट"</string> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index fb494c0ea467..d6a949d0bca9 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -32,7 +32,7 @@ <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Geen meldingen"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Actief"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meldingen"</string> - <string name="battery_low_title" msgid="6456385927409742437">"Accu is bijna leeg"</string> + <string name="battery_low_title" msgid="6456385927409742437">"Batterij is bijna leeg"</string> <string name="battery_low_percent_format" msgid="2900940511201380775">"<xliff:g id="PERCENTAGE">%s</xliff:g> resterend"</string> <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> resterend. Batterijbesparing is ingeschakeld."</string> <string name="invalid_charger" msgid="4549105996740522523">"Opladen via USB niet ondersteund.\nGebruik alleen de bijgeleverde oplader."</string> @@ -102,11 +102,11 @@ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Kleiner scherm uitzoomen naar groter scherm."</string> <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth-verbinding ingesteld."</string> <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth-verbinding verbroken."</string> - <string name="accessibility_no_battery" msgid="358343022352820946">"Geen accu."</string> - <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Accu: één streepje."</string> - <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Accu: twee streepjes."</string> - <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Accu: drie streepjes."</string> - <string name="accessibility_battery_full" msgid="8909122401720158582">"Accu is vol."</string> + <string name="accessibility_no_battery" msgid="358343022352820946">"Geen batterij."</string> + <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Batterij: één streepje."</string> + <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Batterij: twee streepjes."</string> + <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Batterij: drie streepjes."</string> + <string name="accessibility_battery_full" msgid="8909122401720158582">"Batterij is vol."</string> <string name="accessibility_no_phone" msgid="4894708937052611281">"Geen telefoonsignaal."</string> <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefoon: één streepje."</string> <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefoon: twee streepjes."</string> @@ -161,8 +161,8 @@ <string name="accessibility_no_sims" msgid="3957997018324995781">"Geen simkaart."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Netwerk van provider wordt gewijzigd."</string> <string name="accessibility_battery_details" msgid="7645516654955025422">"Accudetails openen"</string> - <string name="accessibility_battery_level" msgid="7451474187113371965">"Accu: <xliff:g id="NUMBER">%d</xliff:g> procent."</string> - <string name="accessibility_battery_level_charging" msgid="1147587904439319646">"Accu wordt opgeladen, <xliff:g id="BATTERY_PERCENTAGE">%d</xliff:g> procent."</string> + <string name="accessibility_battery_level" msgid="7451474187113371965">"Batterij: <xliff:g id="NUMBER">%d</xliff:g> procent."</string> + <string name="accessibility_battery_level_charging" msgid="1147587904439319646">"Batterij wordt opgeladen, <xliff:g id="BATTERY_PERCENTAGE">%d</xliff:g> procent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Systeeminstellingen."</string> <string name="accessibility_notifications_button" msgid="4498000369779421892">"Meldingen."</string> <string name="accessibility_overflow_action" msgid="5681882033274783311">"Alle meldingen bekijken"</string> @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Meer instellingen"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gereed"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Verbonden"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Verbonden, batterij <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Verbinding maken…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> @@ -506,7 +505,7 @@ <string name="volume_dialog_accessibility_shown_message" msgid="1834631467074259998">"Volumeknoppen van %s worden weergegeven. Veeg omhoog om te sluiten."</string> <string name="volume_dialog_accessibility_dismissed_message" msgid="51543526013711399">"Volumeknoppen verborgen"</string> <string name="system_ui_tuner" msgid="708224127392452018">"Systeem-UI-tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Percentage ingebouwde accu weergeven"</string> + <string name="show_battery_percentage" msgid="5444136600512968798">"Percentage ingebouwde batterij weergeven"</string> <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Accupercentage weergeven in het pictogram op de statusbalk wanneer er niet wordt opgeladen"</string> <string name="quick_settings" msgid="10042998191725428">"Snelle instellingen"</string> <string name="status_bar" msgid="4877645476959324760">"Statusbalk"</string> diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml index 23f60fd26acc..c32175991c48 100644 --- a/packages/SystemUI/res/values-pa/strings.xml +++ b/packages/SystemUI/res/values-pa/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"ਹੋਰ ਸੈਟਿੰਗਾਂ"</string> <string name="quick_settings_done" msgid="3402999958839153376">"ਹੋ ਗਿਆ"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"ਕਨੈਕਟ ਕੀਤਾ"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ, ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ਟੀਥਰਿੰਗ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ਹੌਟਸਪੌਟ"</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 5c7b0377356a..279d12176ae2 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -314,8 +314,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Więcej ustawień"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Gotowe"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Połączono"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Połączono, bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Łączę..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Powiązanie"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index e0e1c76cee91..d28d7d37a07d 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Mais configurações"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Concluído"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Conectado, nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Ponto de acesso"</string> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 37e1c7edfc35..27f859b4e366 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Mais definições"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Concluído"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Ligado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Ligado, bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"A ligar..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Associação"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona Wi-Fi"</string> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index e0e1c76cee91..d28d7d37a07d 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Mais configurações"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Concluído"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Conectado, nível da bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Ponto de acesso"</string> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index be529f343129..0224ef5412ad 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -314,8 +314,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Mai multe setări"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Terminat"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectat"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Conectat, bateria la <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Se conectează..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 88deda02fadc..f8dc744c76ea 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Настройки"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Готово"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Подключено"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Подключено, уровень заряда батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Соединение..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Режим модема"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Точка доступа"</string> diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml index 9cd3701abbba..7e77c4368f09 100644 --- a/packages/SystemUI/res/values-si/strings.xml +++ b/packages/SystemUI/res/values-si/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"තව සැකසීම්"</string> <string name="quick_settings_done" msgid="3402999958839153376">"නිමයි"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"සම්බන්ධිත"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"සම්බන්ධිතයි, බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"සම්බන්ධ වෙමින්..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ටෙදරින්"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"හොට්ස්පොට්"</string> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index a93013e99d4d..2b19d6f4a3d6 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Ďalšie nastavenia"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Hotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Pripojené"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Pripojené, stav batérie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Pripája sa..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Zdieľané pripojenie"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 449ac24afc01..29dfa3af6f62 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Več nastavitev"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Končano"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Povezava je vzpostavljena"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Povezava je vzpostavljena, raven napolnjenosti akumulatorja je <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Vzpostavljanje povezave ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Internet prek mobilne naprave"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Dostopna točka"</string> diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml index a254953688c5..042320867ae3 100644 --- a/packages/SystemUI/res/values-sq/strings.xml +++ b/packages/SystemUI/res/values-sq/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Cilësime të tjera"</string> <string name="quick_settings_done" msgid="3402999958839153376">"U krye!"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"I lidhur"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"E lidhur, bateria <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Po lidhet..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Lidhje çiftimi"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Qasje në zona publike interneti"</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 561a56a52b07..d6adcb571129 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Још подешавања"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Готово"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Повезан"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Повезано, ниво батерије је <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Повезује се..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Повезивање"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Хотспот"</string> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index cb5c214846c4..642484f879c9 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Fler inställningar"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Klart"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Ansluten"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Ansluten, batterinivå <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Ansluter ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Internetdelning"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Trådlös surfzon"</string> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 31d2328102f2..e11313e3426c 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Mipangilio zaidi"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Nimemaliza"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Imeunganishwa"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Imeunganishwa, kiwango cha betri ni <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Inaunganisha..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Kusambaza mtandao"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Mtandao-hewa"</string> diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml index 30defe356ad0..e0a0e9bd5bf0 100644 --- a/packages/SystemUI/res/values-ta/strings.xml +++ b/packages/SystemUI/res/values-ta/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"அமைப்பில் மாற்று"</string> <string name="quick_settings_done" msgid="3402999958839153376">"முடிந்தது"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"இணைக்கப்பட்டது"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"இணைக்கப்பட்டது, பேட்டரி <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"இணைக்கிறது..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"டெதெரிங்"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ஹாட்ஸ்பாட்"</string> diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml index 2a2d394f185e..1787d07902fe 100644 --- a/packages/SystemUI/res/values-te/strings.xml +++ b/packages/SystemUI/res/values-te/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"మరిన్ని సెట్టింగ్లు"</string> <string name="quick_settings_done" msgid="3402999958839153376">"పూర్తయింది"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"కనెక్ట్ చేయబడినది"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"కనెక్ట్ చేయబడింది, బ్యాటరీ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"కనెక్ట్ అవుతోంది..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"టీథరింగ్"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"హాట్స్పాట్"</string> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 969ba34dc412..a0db28708d0f 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"การตั้งค่าเพิ่มเติม"</string> <string name="quick_settings_done" msgid="3402999958839153376">"เสร็จสิ้น"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"เชื่อมต่อ"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"เชื่อมต่ออยู่ แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"กำลังเชื่อมต่อ..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"การปล่อยสัญญาณ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ฮอตสปอต"</string> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 1d223d03e80c..5b6732ce1803 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Marami pang setting"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Tapos na"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Nakakonekta"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Nakakonekta, baterya <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Kumokonekta..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Nagte-tether"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 0b2fa4e4f90c..ad6c4981d075 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Diğer ayarlar"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Bitti"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Bağlı"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Bağlandı, pil seviyesi <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Bağlanılıyor..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index d11cfda29829..d79200a77484 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -316,8 +316,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Більше налаштувань"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Готово"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Під’єднано"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Під’єдано, заряд акумулятора: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"З’єднання…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Режим модема"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Точка доступу"</string> diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml index e071922e5ef5..c59242f963fa 100644 --- a/packages/SystemUI/res/values-ur/strings.xml +++ b/packages/SystemUI/res/values-ur/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"مزید ترتیبات"</string> <string name="quick_settings_done" msgid="3402999958839153376">"ہو گیا"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"مربوط"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"منسلک ہے، بیٹری <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"مربوط ہو رہا ہے…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ٹیتھرنگ"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ہاٹ اسپاٹ"</string> diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml index cf6fa00d526e..4946f698bcdb 100644 --- a/packages/SystemUI/res/values-uz/strings.xml +++ b/packages/SystemUI/res/values-uz/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Boshqa sozlamalar"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Tayyor"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Ulangan"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Ulangan, batareya quvvati: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Ulanmoqda…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Modem rejimi"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 5b884ec26613..e716899a42ba 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Cài đặt khác"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Xong"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Đã kết nối"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Đã kết nối, mức pin <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Đang kết nối..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Đang dùng làm điểm truy cập Internet"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Điểm phát sóng"</string> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 5fc1ff634d84..e29ccb60ac8e 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -312,8 +312,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"更多設定"</string> <string name="quick_settings_done" msgid="3402999958839153376">"完成"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"已連線"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"已連線,電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"正在連線…"</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"網絡共享"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"熱點"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 9bbb1887b773..26565500ded5 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"更多設定"</string> <string name="quick_settings_done" msgid="3402999958839153376">"完成"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"已連線"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"已連線,電量為 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"連線中..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"網路共用"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"無線基地台"</string> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 1a70bc4882a5..e66ff73e79be 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -310,8 +310,7 @@ <string name="quick_settings_more_settings" msgid="326112621462813682">"Izilungiselelo eziningi"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Kwenziwe"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Ixhunyiwe"</string> - <!-- no translation found for quick_settings_connected_battery_level (4136051440381328892) --> - <skip /> + <string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"Kuxhunyiwe, ibhethri elingu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Iyaxhuma..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Ukusebenzisa njengemodemu"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"I-Hotspot"</string> diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index bb4412375ff8..776d07616d9a 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -268,6 +268,9 @@ public class Dependency extends SystemUI { mProviders.put(AccessibilityManagerWrapper.class, () -> new AccessibilityManagerWrapper(mContext)); + // Creating a new instance will trigger color extraction. + // Thankfully this only happens once - during boot - and WallpaperManagerService + // loads colors from cache. mProviders.put(SysuiColorExtractor.class, () -> new SysuiColorExtractor(mContext)); mProviders.put(TunablePaddingService.class, () -> new TunablePaddingService()); diff --git a/packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java b/packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java index 5f393d0ff1e4..ccb81172c75c 100644 --- a/packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java +++ b/packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java @@ -27,10 +27,9 @@ import android.view.IWindowManager; import android.view.WindowManagerGlobal; import com.android.internal.annotations.VisibleForTesting; - -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.types.ExtractionType; -import com.google.android.colorextraction.types.Tonal; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.types.ExtractionType; +import com.android.internal.colorextraction.types.Tonal; /** * ColorExtractor aware of wallpaper visibility diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java b/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java new file mode 100644 index 000000000000..0aeb12875ea1 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.doze; + +/** + * Forwards the currently used brightness to {@link DozeHost}. + */ +public class DozeBrightnessHostForwarder extends DozeMachine.Service.Delegate { + + private final DozeHost mHost; + + public DozeBrightnessHostForwarder(DozeMachine.Service wrappedService, DozeHost host) { + super(wrappedService); + mHost = host; + } + + @Override + public void setDozeScreenBrightness(int brightness) { + super.setDozeScreenBrightness(brightness); + mHost.setDozeScreenBrightness(brightness); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java index 4804ac23f3af..91ca571e9f7a 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java @@ -49,8 +49,12 @@ public class DozeFactory { WakeLock wakeLock = new DelayedWakeLock(handler, WakeLock.createPartial(context, "Doze")); - DozeMachine.Service wrappedService = DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded( - DozeScreenStatePreventingAdapter.wrapIfNeeded(dozeService, params), params); + DozeMachine.Service wrappedService = dozeService; + wrappedService = new DozeBrightnessHostForwarder(wrappedService, host); + wrappedService = DozeScreenStatePreventingAdapter.wrapIfNeeded(wrappedService, params); + wrappedService = DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(wrappedService, + params); + DozeMachine machine = new DozeMachine(wrappedService, config, wakeLock); machine.setParts(new DozeMachine.Part[]{ new DozePauser(handler, machine, alarmManager), diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java index 5aaa6c78f5fd..57fb14e50249 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java @@ -31,6 +31,8 @@ public interface DozeHost { void dozeTimeTick(); boolean isPowerSaveActive(); boolean isPulsingBlocked(); + boolean isProvisioned(); + boolean isBlockingDoze(); void startPendingIntentDismissingKeyguard(PendingIntent intent); void abortPulsing(); @@ -40,6 +42,8 @@ public interface DozeHost { void onDoubleTap(float x, float y); + void setDozeScreenBrightness(int value); + interface Callback { default void onNotificationHeadsUp() {} default void onPowerSaveChanged(boolean active) {} diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java index af02e5beca92..ce0a151aff28 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java @@ -248,6 +248,12 @@ public class DozeLog { } } + public static void traceSensor(Context context, int pulseReason) { + if (!ENABLED) return; + init(context); + log("sensor type=" + pulseReasonToString(pulseReason)); + } + private static class SummaryStats { private int mCount; diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java index 67de020cdfde..545a1ea11be3 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java @@ -174,6 +174,7 @@ public class DozeSensors { for (TriggerSensor s : mSensors) { pw.print("Sensor: "); pw.println(s.toString()); } + pw.print("ProxSensor: "); pw.println(mProxSensor.toString()); } private class ProxSensor implements SensorEventListener { @@ -232,7 +233,9 @@ public class DozeSensors { mProxCallback.accept(mCurrentlyFar); long now = SystemClock.elapsedRealtime(); - if (!mCurrentlyFar) { + if (mCurrentlyFar == null) { + // Sensor has been unregistered by the proxCallback. Do nothing. + } else if (!mCurrentlyFar) { mLastNear = now; } else if (mCurrentlyFar && now - mLastNear < COOLDOWN_TRIGGER) { // If the last near was very recent, we might be using more power for prox @@ -246,6 +249,12 @@ public class DozeSensors { @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } + + @Override + public String toString() { + return String.format("{registered=%s, requested=%s, coolingDown=%s, currentlyFar=%s}", + mRegistered, mRequested, mCooldownTimer.isScheduled(), mCurrentlyFar); + } } private class TriggerSensor extends TriggerEventListener { @@ -312,6 +321,7 @@ public class DozeSensors { @Override @AnyThread public void onTrigger(TriggerEvent event) { + DozeLog.traceSensor(mContext, mPulseReason); mHandler.post(mWakeLock.wrap(() -> { if (DEBUG) Log.d(TAG, "onTrigger: " + triggerEventToString(event)); boolean sensorPerformsProxCheck = false; diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java index 9981972a96c5..ec6caf183c49 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java @@ -172,14 +172,6 @@ public class DozeTriggers implements DozeMachine.Part { } } - private void onCarMode() { - mMachine.requestState(DozeMachine.State.FINISH); - } - - private void onPowerSave() { - mMachine.requestState(DozeMachine.State.FINISH); - } - @Override public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { switch (newState) { @@ -215,11 +207,11 @@ public class DozeTriggers implements DozeMachine.Part { } private void checkTriggersAtInit() { - if (mUiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR) { - onCarMode(); - } - if (mDozeHost.isPowerSaveActive()) { - onPowerSave(); + if (mUiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR + || mDozeHost.isPowerSaveActive() + || mDozeHost.isBlockingDoze() + || !mDozeHost.isProvisioned()) { + mMachine.requestState(DozeMachine.State.FINISH); } } @@ -355,7 +347,7 @@ public class DozeTriggers implements DozeMachine.Part { requestPulse(DozeLog.PULSE_REASON_INTENT, false /* performedProxCheck */); } if (UiModeManager.ACTION_ENTER_CAR_MODE.equals(intent.getAction())) { - onCarMode(); + mMachine.requestState(DozeMachine.State.FINISH); } if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) { mDozeSensors.onUserSwitched(); @@ -391,7 +383,7 @@ public class DozeTriggers implements DozeMachine.Part { @Override public void onPowerSaveChanged(boolean active) { if (active) { - onPowerSave(); + mMachine.requestState(DozeMachine.State.FINISH); } } }; diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java index 31d41acc3925..70df2aeff58e 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java @@ -14,9 +14,9 @@ package com.android.systemui.globalactions; -import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; - import com.android.internal.R; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.ColorExtractor.GradientColors; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.EmergencyAffordanceManager; @@ -28,7 +28,6 @@ import com.android.systemui.HardwareUiLayout; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.GlobalActions.GlobalActionsManager; import com.android.systemui.statusbar.phone.ScrimController; -import com.android.systemui.volume.VolumeDialogImpl; import com.android.systemui.volume.VolumeDialogMotion.LogAccelerateInterpolator; import com.android.systemui.volume.VolumeDialogMotion.LogDecelerateInterpolator; @@ -42,11 +41,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.UserInfo; import android.database.ContentObserver; -import android.database.DataSetObserver; -import android.graphics.Color; -import android.graphics.PixelFormat; import android.graphics.Point; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.net.ConnectivityManager; @@ -68,11 +63,9 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; -import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewPropertyAnimator; import android.view.Window; import android.view.WindowManager; import android.view.WindowManagerGlobal; @@ -85,9 +78,7 @@ import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; import android.widget.TextView; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.ColorExtractor.GradientColors; -import com.google.android.colorextraction.drawable.GradientDrawable; +import com.android.internal.colorextraction.drawable.GradientDrawable; import java.util.ArrayList; import java.util.List; @@ -1304,6 +1295,7 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, DialogIn * ScrimController.GRADIENT_SCRIM_ALPHA * 255); mGradientDrawable.setAlpha(alpha); }) + .withEndAction(() -> getWindow().getDecorView().requestAccessibilityFocus()) .start(); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java index 94da5f72be10..9eb29f8bfae8 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java @@ -160,8 +160,9 @@ public class QSFooterImpl extends FrameLayout implements QSFooter, .addFloat(mSettingsButton, "rotation", -120, 0) .build(); if (mAlarmShowing) { + int translate = isLayoutRtl() ? mDate.getWidth() : -mDate.getWidth(); mAlarmAnimator = new Builder().addFloat(mDate, "alpha", 1, 0) - .addFloat(mDateTimeGroup, "translationX", 0, -mDate.getWidth()) + .addFloat(mDateTimeGroup, "translationX", 0, translate) .addFloat(mAlarmStatus, "alpha", 0, 1) .setListener(new ListenerAdapter() { @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java index 6659650601a6..5ab3927ff098 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java @@ -96,6 +96,7 @@ public class QSIconViewImpl extends QSIconView { int padding = state.icon != null ? state.icon.getPadding() : 0; if (d != null) { d.setAutoMirrored(false); + d.setLayoutDirection(getLayoutDirection()); } iv.setImageDrawable(d); if (state.slash != null && iv instanceof SlashImageView) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java index 089d07a567dd..3f419a81d36e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java @@ -80,7 +80,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements @Override protected void handleUpdateState(BooleanState state, Object arg) { - state.state = mCharging ? Tile.STATE_UNAVAILABLE + state.state = mPluggedIn ? Tile.STATE_UNAVAILABLE : mPowerSave ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE; BatterySaverIcon bsi = new BatterySaverIcon(); bsi.mState = state.state; diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index c1c41be07fc9..fd37b17f3cd0 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -42,6 +42,7 @@ import android.view.WindowInsets; import android.widget.FrameLayout; import android.widget.TextView; +import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Dependency; @@ -82,8 +83,7 @@ import com.android.systemui.stackdivider.WindowManagerProxy; import com.android.systemui.statusbar.FlingAnimationUtils; import com.android.systemui.statusbar.phone.ScrimController; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.drawable.GradientDrawable; +import com.android.internal.colorextraction.drawable.GradientDrawable; import java.io.PrintWriter; import java.util.ArrayList; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java index ae665c7fcee7..e5aad0336061 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java @@ -32,6 +32,7 @@ public class AnimatedImageView extends ImageView { private final boolean mHasOverlappingRendering; AnimationDrawable mAnim; boolean mAttached; + private boolean mAllowAnimation; // Tracks the last image that was set, so that we don't refresh the image if it is exactly // the same as the previous one. If this is a resid, we track that. If it's a drawable, we @@ -56,6 +57,17 @@ public class AnimatedImageView extends ImageView { } } + public void setAllowAnimation(boolean allowAnimation) { + if (mAllowAnimation != allowAnimation) { + mAllowAnimation = allowAnimation; + updateAnim(); + if (!mAllowAnimation && mAnim != null) { + // Reset drawable such that we show the first frame whenever we're not animating. + mAnim.setVisible(getVisibility() == VISIBLE, true /* restart */); + } + } + } + private void updateAnim() { Drawable drawable = getDrawable(); if (mAttached && mAnim != null) { @@ -63,7 +75,7 @@ public class AnimatedImageView extends ImageView { } if (drawable instanceof AnimationDrawable) { mAnim = (AnimationDrawable) drawable; - if (isShown()) { + if (isShown() && mAllowAnimation) { mAnim.start(); } } else { @@ -114,7 +126,7 @@ public class AnimatedImageView extends ImageView { protected void onVisibilityChanged(View changedView, int vis) { super.onVisibilityChanged(changedView, vis); if (mAnim != null) { - if (isShown()) { + if (isShown() && mAllowAnimation) { mAnim.start(); } else { mAnim.stop(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java index ba34ac1c60ab..cb2aa947ac5e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java @@ -39,12 +39,11 @@ import android.view.WindowManager; import android.view.animation.Interpolator; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.drawable.GradientDrawable; import com.android.systemui.Dependency; import com.android.systemui.statusbar.policy.ConfigurationController; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.drawable.GradientDrawable; - /** * A view which can draw a scrim */ @@ -94,6 +93,11 @@ public class ScrimView extends View implements ConfigurationController.Configura mColors = new ColorExtractor.GradientColors(); updateScreenSize(); updateColorWithTint(false); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); // We need to know about configuration changes to update the gradient size // since it's independent from view bounds. @@ -102,6 +106,14 @@ public class ScrimView extends View implements ConfigurationController.Configura } @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + + ConfigurationController config = Dependency.get(ConfigurationController.class); + config.removeCallback(this); + } + + @Override protected void onDraw(Canvas canvas) { if (mDrawAsSrc || mDrawable.getAlpha() > 0) { if (!mHasExcludedArea) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index 89694b33e035..05d47ec9af63 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -756,9 +756,16 @@ public class StatusBarIconView extends AnimatedImageView { updateIconScale(); updateDecorColor(); updateIconColor(); + updateAllowAnimation(); }, dark, fade, delay); } + private void updateAllowAnimation() { + if (mDarkAmount == 0 || mDarkAmount == 1) { + setAllowAnimation(mDarkAmount == 0); + } + } + public interface OnVisibilityChangedListener { void onVisibilityChanged(int newVisibility); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java index 6b276f8691e3..f59152497939 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java @@ -54,6 +54,7 @@ public class DozeScrimController { private float mBehindTarget; private boolean mDozingAborted; private boolean mWakeAndUnlocking; + private boolean mFullyPulsing; public DozeScrimController(ScrimController scrimController, Context context) { mContext = context; @@ -136,6 +137,12 @@ public class DozeScrimController { abortPulsing(); } + public void pulseOutNow() { + if (mPulseCallback != null && mFullyPulsing) { + mPulseOut.run(); + } + } + public void onScreenTurnedOn() { if (isPulsing()) { final boolean pickupOrDoubleTap = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP @@ -163,6 +170,7 @@ public class DozeScrimController { if (DEBUG) Log.d(TAG, "Cancel pulsing"); if (mPulseCallback != null) { + mFullyPulsing = false; mHandler.removeCallbacks(mPulseIn); mHandler.removeCallbacks(mPulseOut); mHandler.removeCallbacks(mPulseOutExtended); @@ -297,6 +305,7 @@ public class DozeScrimController { mHandler.postDelayed(mPulseOut, mDozeParameters.getPulseVisibleDuration()); mHandler.postDelayed(mPulseOutExtended, mDozeParameters.getPulseVisibleDurationExtended()); + mFullyPulsing = true; } }; @@ -311,6 +320,8 @@ public class DozeScrimController { private final Runnable mPulseOut = new Runnable() { @Override public void run() { + mFullyPulsing = false; + mHandler.removeCallbacks(mPulseOut); mHandler.removeCallbacks(mPulseOutExtended); if (DEBUG) Log.d(TAG, "Pulse out, mDozing=" + mDozing); if (!mDozing) return; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java index 6cb722fa65ce..5af80f546f48 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java @@ -163,8 +163,8 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { } mHandler.postDelayed(mReleaseFingerprintWakeLockRunnable, FINGERPRINT_WAKELOCK_TIMEOUT_MS); - if (mDozeScrimController.isPulsing()) { + if (pulsingOrAod()) { // If we are waking the device up while we are pulsing the clock and the // notifications would light up first, creating an unpleasant animation. // Defer changing the screen brightness by forcing doze brightness on our window @@ -175,6 +175,12 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { Trace.endSection(); } + private boolean pulsingOrAod() { + boolean pulsing = mDozeScrimController.isPulsing(); + boolean dozingWithScreenOn = mStatusBar.isDozing() && !mStatusBar.isScreenFullyOff(); + return pulsing || dozingWithScreenOn; + } + @Override public void onFingerprintAuthenticated(int userId) { Trace.beginSection("FingerprintUnlockController#onFingerprintAuthenticated"); @@ -263,16 +269,23 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { Trace.endSection(); } + public boolean hasPendingAuthentication() { + return mPendingAuthenticatedUserId != -1 + && mUpdateMonitor.isUnlockingWithFingerprintAllowed() + && mPendingAuthenticatedUserId == KeyguardUpdateMonitor.getCurrentUser(); + } + public int getMode() { return mMode; } private int calculateMode() { boolean unlockingAllowed = mUpdateMonitor.isUnlockingWithFingerprintAllowed(); + if (!mUpdateMonitor.isDeviceInteractive()) { if (!mStatusBarKeyguardViewManager.isShowing()) { return MODE_ONLY_WAKE; - } else if (mDozeScrimController.isPulsing() && unlockingAllowed) { + } else if (pulsingOrAod() && unlockingAllowed) { return MODE_WAKE_AND_UNLOCK_PULSING; } else if (unlockingAllowed || !mUnlockMethodCache.isMethodSecure()) { return MODE_WAKE_AND_UNLOCK; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index a4dfcd87f955..e9aa6d2e6b0b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -254,6 +254,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mFlashlightController = Dependency.get(FlashlightController.class); mAccessibilityController = Dependency.get(AccessibilityController.class); mAssistManager = Dependency.get(AssistManager.class); + mLockIcon.setAccessibilityController(mAccessibilityController); updateLeftAffordance(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java index 6f2c6e0bb60a..4e79314bb818 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java @@ -266,13 +266,17 @@ public class NavigationBarInflaterView extends FrameLayout parent.addView(v); addToDispatchers(v); View lastView = landscape ? mLastLandscape : mLastPortrait; + View accessibilityView = v; + if (v instanceof ReverseFrameLayout) { + accessibilityView = ((ReverseFrameLayout) v).getChildAt(0); + } if (lastView != null) { - v.setAccessibilityTraversalAfter(lastView.getId()); + accessibilityView.setAccessibilityTraversalAfter(lastView.getId()); } if (landscape) { - mLastLandscape = v; + mLastLandscape = accessibilityView; } else { - mLastPortrait = v; + mLastPortrait = accessibilityView; } return v; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index b8ac6b981c68..3940a15780f7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -346,6 +346,9 @@ public class NotificationPanelView extends PanelView implements addView(mKeyguardBottomArea, index); initBottomArea(); setDarkAmount(mDarkAmount); + + setKeyguardStatusViewVisibility(mStatusBarState, false, false); + setKeyguardBottomAreaVisibility(mStatusBarState, false); } private void initBottomArea() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 754c34486954..e38578bcaedf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -33,6 +33,9 @@ import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.colorextraction.ColorExtractor.OnColorsChangedListener; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.R; @@ -43,9 +46,6 @@ import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener; import com.android.systemui.statusbar.stack.ViewState; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.ColorExtractor.OnColorsChangedListener; - /** * Controls both the scrim behind the notifications and in front of the notifications (when a * security method gets shown). @@ -80,8 +80,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final SysuiColorExtractor mColorExtractor; - private ColorExtractor.GradientColors mLockColors; - private ColorExtractor.GradientColors mSystemColors; + private GradientColors mLockColors; + private GradientColors mSystemColors; private boolean mNeedsDrawableColorUpdate; protected float mScrimBehindAlpha; @@ -304,8 +304,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mNeedsDrawableColorUpdate = false; if (mKeyguardShowing) { // Always animate color changes if we're seeing the keyguard - mScrimInFront.setColors(mLockColors); - mScrimBehind.setColors(mLockColors); + mScrimInFront.setColors(mLockColors, true /* animated */); + mScrimBehind.setColors(mLockColors, true /* animated */); } else { // Only animate scrim color if the scrim view is actually visible boolean animateScrimInFront = mScrimInFront.getViewAlpha() != 0; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java index 7a7efbdc6615..d537cda00b10 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SignalDrawable.java @@ -230,18 +230,19 @@ public class SignalDrawable extends Drawable { @Override public void draw(@NonNull Canvas canvas) { + final float width = getBounds().width(); + final float height = getBounds().height(); + boolean isRtl = getLayoutDirection() == LayoutDirection.RTL; if (isRtl) { canvas.save(); // Mirror the drawable - canvas.translate(canvas.getWidth(), 0); + canvas.translate(width, 0); canvas.scale(-1.0f, 1.0f); } mFullPath.reset(); mFullPath.setFillType(FillType.WINDING); - final float width = getBounds().width(); - final float height = getBounds().height(); final float padding = Math.round(PAD * width); final float cornerRadius = RADIUS_RATIO * height; // Offset from circle where the hypotenuse meets the circle diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 63b405d857b4..7e656a5c9992 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -139,6 +139,7 @@ import android.widget.RemoteViews; import android.widget.TextView; import android.widget.Toast; +import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.graphics.ColorUtils; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -244,8 +245,6 @@ import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.volume.VolumeComponent; -import com.google.android.colorextraction.ColorExtractor; - import java.io.FileDescriptor; import java.io.PrintWriter; import java.io.StringWriter; @@ -737,6 +736,7 @@ public class StatusBar extends SystemUI implements DemoMode, private HashMap<String, Entry> mPendingNotifications = new HashMap<>(); private boolean mClearAllEnabled; @Nullable private View mAmbientIndicationContainer; + private String mKeyToRemoveOnGutsClosed; private SysuiColorExtractor mColorExtractor; private ForegroundServiceController mForegroundServiceController; @@ -1023,6 +1023,7 @@ public class StatusBar extends SystemUI implements DemoMode, mStatusBarView.setBar(this); mStatusBarView.setPanel(mNotificationPanel); mStatusBarView.setScrimController(mScrimController); + mStatusBarView.setBouncerShowing(mBouncerShowing); setAreThereNotifications(); checkBarModes(); }).getFragmentManager() @@ -1322,6 +1323,9 @@ public class StatusBar extends SystemUI implements DemoMode, if (mBrightnessMirrorController != null) { mBrightnessMirrorController.onOverlayChanged(); } + if (mStatusBarKeyguardViewManager != null) { + mStatusBarKeyguardViewManager.onOverlayChanged(); + } } protected void reevaluateStyles() { @@ -1787,6 +1791,13 @@ public class StatusBar extends SystemUI implements DemoMode, mRemoteInputEntriesToRemoveOnCollapse.add(entry); return; } + if (entry != null && mNotificationGutsExposed != null + && mNotificationGutsExposed == entry.row.getGuts()) { + Log.w(TAG, "Keeping notification because it's showing guts. " + key); + mLatestRankingMap = ranking; + mKeyToRemoveOnGutsClosed = key; + return; + } if (entry != null) { mForegroundServiceController.removeNotification(entry.notification); @@ -1875,6 +1886,11 @@ public class StatusBar extends SystemUI implements DemoMode, } catch (RemoteException ex) { // system process is dead if we're here. } + if (mStackScroller.hasPulsingNotifications() && mHeadsUpManager.getAllEntries().isEmpty()) { + // We were showing a pulse for a notification, but no notifications are pulsing anymore. + // Finish the pulse. + mDozeScrimController.pulseOutNow(); + } // end old BaseStatusBar.performRemoveNotification. } @@ -3472,6 +3488,8 @@ public class StatusBar extends SystemUI implements DemoMode, pw.println(Settings.Global.zenModeToString(mZenMode)); pw.print(" mUseHeadsUp="); pw.println(mUseHeadsUp); + pw.print(" mKeyToRemoveOnGutsClosed="); + pw.println(mKeyToRemoveOnGutsClosed); if (mStatusBarView != null) { dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions()); } @@ -4570,16 +4588,13 @@ public class StatusBar extends SystemUI implements DemoMode, .supportsDarkText(); // And wallpaper defines if QS should be light or dark. boolean useDarkTheme = false; - final WallpaperManager wallpaperManager = mContext.getSystemService(WallpaperManager.class); - if (wallpaperManager != null) { - WallpaperColors wallpaperColors = wallpaperManager - .getWallpaperColors(WallpaperManager.FLAG_SYSTEM); - if (wallpaperColors != null) { - final int mainColor = wallpaperColors.getPrimaryColor().toArgb(); - final float[] hsl = new float[3]; - ColorUtils.colorToHSL(mainColor, hsl); - useDarkTheme = hsl[2] < 0.2f; - } + final WallpaperColors systemColors = + mColorExtractor.getWallpaperColors(WallpaperManager.FLAG_SYSTEM); + if (systemColors != null) { + int mainColor = systemColors.getPrimaryColor().toArgb(); + float[] hsl = new float[3]; + ColorUtils.colorToHSL(mainColor, hsl); + useDarkTheme = hsl[2] < 0.2f; } // Enable/disable dark UI. @@ -5104,7 +5119,7 @@ public class StatusBar extends SystemUI implements DemoMode, public void setBouncerShowing(boolean bouncerShowing) { mBouncerShowing = bouncerShowing; - mStatusBarView.setBouncerShowing(bouncerShowing); + if (mStatusBarView != null) mStatusBarView.setBouncerShowing(bouncerShowing); recomputeDisableFlags(true /* animate */); } @@ -5174,6 +5189,14 @@ public class StatusBar extends SystemUI implements DemoMode, mDozeScrimController.onScreenTurnedOn(); } + /** + * @return true if the screen is currently fully off, i.e. has finished turning off and has + * since not started turning on. + */ + public boolean isScreenFullyOff() { + return mScreenFullyOff; + } + @Override public void showScreenPinningRequest(int taskId) { if (mKeyguardMonitor.isShowing()) { @@ -5382,6 +5405,21 @@ public class StatusBar extends SystemUI implements DemoMode, } @Override + public boolean isProvisioned() { + return mDeviceProvisionedController.isDeviceProvisioned() + && mDeviceProvisionedController.isCurrentUserSetup(); + } + + @Override + public boolean isBlockingDoze() { + if (mFingerprintUnlockController.hasPendingAuthentication()) { + Log.i(TAG, "Blocking AOD because fingerprint has authenticated"); + return true; + } + return false; + } + + @Override public void startPendingIntentDismissingKeyguard(PendingIntent intent) { StatusBar.this.startPendingIntentDismissingKeyguard(intent); } @@ -5415,6 +5453,11 @@ public class StatusBar extends SystemUI implements DemoMode, } } + @Override + public void setDozeScreenBrightness(int value) { + mStatusBarWindowManager.setDozeScreenBrightness(value); + } + public void dispatchDoubleTap(float viewX, float viewY) { dispatchTap(mAmbientIndicationContainer, viewX, viewY); dispatchTap(mAmbientIndicationContainer, viewX, viewY); @@ -6123,6 +6166,11 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationGutsExposed = null; mGutsMenuItem = null; } + String key = sbn.getKey(); + if (key.equals(mKeyToRemoveOnGutsClosed)) { + mKeyToRemoveOnGutsClosed = null; + removeNotification(key, mLatestRankingMap); + } }); View gutsView = item.getGutsView(); @@ -7082,9 +7130,12 @@ public class StatusBar extends SystemUI implements DemoMode, Entry entry = mNotificationData.get(key); if (entry == null) { return; - } else { - mHeadsUpEntriesToRemoveOnSwitch.remove(entry); - mRemoteInputEntriesToRemoveOnCollapse.remove(entry); + } + mHeadsUpEntriesToRemoveOnSwitch.remove(entry); + mRemoteInputEntriesToRemoveOnCollapse.remove(entry); + if (key.equals(mKeyToRemoveOnGutsClosed)) { + mKeyToRemoveOnGutsClosed = null; + Log.w(TAG, "Notification that was kept for guts was updated. " + key); } Notification n = notification.getNotification(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 2833ff1db27f..be338de7676f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -416,6 +416,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBouncer.hide(true /* destroyView */); } + public void onOverlayChanged() { + mBouncer.hide(true /* destroyView */); + } + private void animateScrimControllerKeyguardFadingOut(long delay, long duration, boolean skipFirstFrame) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java index 0566361439fc..debba49622ae 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java @@ -58,7 +58,7 @@ public class StatusBarWindowManager implements RemoteInputController.Callback, D private boolean mHasTopUiChanged; private int mBarHeight; private final boolean mKeyguardScreenRotation; - private final float mScreenBrightnessDoze; + private float mScreenBrightnessDoze; private final State mCurrentState = new State(); private OtherwisedCollapsedListener mListener; @@ -110,6 +110,10 @@ public class StatusBarWindowManager implements RemoteInputController.Callback, D mLpChanged.copyFrom(mLp); } + public void setDozeScreenBrightness(int value) { + mScreenBrightnessDoze = value / 255f; + } + public void setKeyguardDark(boolean dark) { int vis = mStatusBarView.getSystemUiVisibility(); if (dark) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java index d5a91bb7ff61..e8a456e9bf60 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java @@ -31,6 +31,7 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.view.animation.Interpolator; +import com.android.settingslib.Utils; import com.android.systemui.Interpolators; import com.android.systemui.R; @@ -82,7 +83,7 @@ public class TrustDrawable extends Drawable { mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE); - mPaint.setColor(Color.WHITE); + mPaint.setColor(Utils.getColorAttr(context, R.attr.bgProtectTextColor)); mPaint.setAntiAlias(true); mPaint.setStrokeWidth(mThickness); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 2d3e0b6829ca..d652bde4f534 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -228,7 +228,9 @@ public class KeyButtonView extends ImageView implements ButtonInterface { setPressed(false); // Always send a release ourselves because it doesn't seem to be sent elsewhere // and it feels weird to sometimes get a release haptic and other times not. - performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); + if ((SystemClock.uptimeMillis() - mDownTime) > 100) { + performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); + } if (mCode != 0) { if (doIt) { sendEvent(KeyEvent.ACTION_UP, 0); diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 2b2ad693608e..2527c6becc5e 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -25,7 +25,6 @@ import android.annotation.NonNull; import android.annotation.SuppressLint; import android.app.Dialog; import android.app.KeyguardManager; -import android.app.WallpaperManager; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.ColorStateList; @@ -33,7 +32,6 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; -import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.ColorDrawable; @@ -72,21 +70,19 @@ import android.widget.ImageButton; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; + import com.android.settingslib.Utils; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.plugins.VolumeDialogController.StreamState; -import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.policy.ZenModeController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerZenModePanel; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.drawable.GradientDrawable; + import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk index 136aaad6a8dd..5e71dd4684c5 100644 --- a/packages/SystemUI/tests/Android.mk +++ b/packages/SystemUI/tests/Android.mk @@ -45,8 +45,7 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ android-support-v7-mediarouter \ android-support-v7-palette \ android-support-v14-preference \ - android-support-v17-leanback \ - colorextraction + android-support-v17-leanback LOCAL_STATIC_JAVA_LIBRARIES := \ metrics-helper-lib \ diff --git a/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java b/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java index 1ed5f565117f..a81188af85ef 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java +++ b/packages/SystemUI/tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java @@ -23,19 +23,14 @@ import android.app.WallpaperManager; import android.graphics.Color; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import android.util.Pair; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.types.Tonal; import com.android.systemui.SysuiTestCase; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.types.Tonal; - import org.junit.Test; import org.junit.runner.RunWith; -import java.util.ArrayList; -import java.util.List; - /** * Tests color extraction generation. */ diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java index 23451106a20c..641f2636c6ae 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java @@ -72,6 +72,16 @@ class DozeHostFake implements DozeHost { } @Override + public boolean isProvisioned() { + return false; + } + + @Override + public boolean isBlockingDoze() { + return false; + } + + @Override public void startPendingIntentDismissingKeyguard(PendingIntent intent) { throw new RuntimeException("not implemented"); } @@ -96,4 +106,8 @@ class DozeHostFake implements DozeHost { doubleTapX = y; doubleTapY = y; } + + @Override + public void setDozeScreenBrightness(int value) { + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java index 08867806f933..4c3bf1081792 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java @@ -28,14 +28,17 @@ import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.testing.AndroidTestingRunner; import android.support.test.filters.SmallTest; +import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper; +import android.testing.TestableLooper.RunWithLooper; +import android.testing.ViewUtils; import android.view.View; -import com.android.systemui.SysuiTestCase; - -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.drawable.GradientDrawable; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.drawable.GradientDrawable; +import com.android.systemui.statusbar.policy.ConfigurationController; +import com.android.systemui.utils.leaks.LeakCheckedTest; import org.junit.Before; import org.junit.Test; @@ -43,18 +46,28 @@ import org.junit.runner.RunWith; @RunWith(AndroidTestingRunner.class) @SmallTest -public class ScrimViewTest extends SysuiTestCase { +public class ScrimViewTest extends LeakCheckedTest { ScrimView mView; @Before public void setUp() { + injectLeakCheckedDependency(ConfigurationController.class); mView = new ScrimView(getContext()); mView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); mView.layout(0, 0, 1920, 1080); } @Test + @RunWithLooper + public void testAttachDetach() { + ViewUtils.attachView(mView); + TestableLooper.get(this).processAllMessages(); + ViewUtils.detachView(mView); + TestableLooper.get(this).processAllMessages(); + } + + @Test public void testSetDrawable_UpdateDrawable() { Drawable drawable = new ColorDrawable(Color.GREEN); mView.setDrawable(drawable); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java index 0937ce27501c..c0de0042c35e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/AutoTileManagerTest.java @@ -19,12 +19,13 @@ package com.android.systemui.statusbar.phone; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import android.support.test.filters.SmallTest; +import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper.RunWithLooper; + import com.android.internal.app.NightDisplayController; import com.android.systemui.Prefs; import com.android.systemui.Prefs.Key; - -import android.support.test.filters.SmallTest; -import android.testing.AndroidTestingRunner; import com.android.systemui.SysuiTestCase; import com.android.systemui.qs.QSTileHost; @@ -35,6 +36,7 @@ import org.junit.runner.RunWith; import org.mockito.Mockito; @RunWith(AndroidTestingRunner.class) +@RunWithLooper @SmallTest public class AutoTileManagerTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 17ca92458bcf..8a4983c330a2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -67,6 +67,7 @@ import com.android.keyguard.KeyguardHostView.OnDismissAction; import com.android.systemui.SysuiTestCase; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.statusbar.ActivatableNotificationView; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.NotificationData; import com.android.systemui.statusbar.NotificationData.Entry; @@ -156,6 +157,12 @@ public class StatusBarTest extends SysuiTestCase { } @Test + public void testSetBouncerShowing_noCrash() { + mStatusBar.mCommandQueue = mock(CommandQueue.class); + mStatusBar.setBouncerShowing(true); + } + + @Test public void executeRunnableDismissingKeyguard_nullRunnable_showingAndOccluded() { when(mStatusBarKeyguardViewManager.isShowing()).thenReturn(true); when(mStatusBarKeyguardViewManager.isOccluded()).thenReturn(true); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java index 8d106b4b9616..b88ee442f821 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java @@ -18,6 +18,7 @@ import org.junit.runner.RunWith; @SmallTest @RunWith(AndroidJUnit4.class) +@Ignore("Flaky") public class NetworkControllerDataTest extends NetworkControllerBaseTest { @Test @@ -106,7 +107,6 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { TelephonyIcons.QS_DATA_4G); } - @Ignore("Flaky") @Test public void testDataDisabledIcon() { setupNetworkController(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java index cba9f77df2ff..97a406195443 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java @@ -32,6 +32,7 @@ import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SignalDrawable; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -47,6 +48,7 @@ import static org.mockito.Mockito.mock; @SmallTest @RunWith(AndroidJUnit4.class) +@Ignore("Flaky") public class NetworkControllerSignalTest extends NetworkControllerBaseTest { @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeConfigurationController.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeConfigurationController.java new file mode 100644 index 000000000000..9ef30c3d1859 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeConfigurationController.java @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package com.android.systemui.utils.leaks; + +import com.android.systemui.statusbar.policy.ConfigurationController; + +public class FakeConfigurationController + extends BaseLeakChecker<ConfigurationController.ConfigurationListener> + implements ConfigurationController { + + public FakeConfigurationController(LeakCheckedTest.SysuiLeakCheck sysuiLeakCheck) { + super(sysuiLeakCheck, "config"); + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java index 94af77332f46..ecda9620f7fe 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java @@ -26,6 +26,7 @@ import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.CastController; +import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.statusbar.policy.KeyguardMonitor; @@ -68,6 +69,7 @@ public abstract class LeakCheckedTest extends SysuiTestCase { PluginManager.class, TunerService.class, StatusBarIconController.class, + ConfigurationController.class, }; @Rule @@ -134,6 +136,8 @@ public abstract class LeakCheckedTest extends SysuiTestCase { obj = new FakeTunerService(this); } else if (cls == StatusBarIconController.class) { obj = new FakeStatusBarIconController(this); + } else if (cls == ConfigurationController.class) { + obj = new FakeConfigurationController(this); } else { Assert.fail(cls.getName() + " is not supported by LeakCheckedTest yet"); } diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index 0a0fa1849de3..adcc8eb65ffd 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -4190,6 +4190,12 @@ message MetricsEvent { // OS: O DR FIELD_TIME_ELAPSED_BETWEEN_CHARGE_MS = 1030; + // OPEN: Settings->Connected Devices->Bluetooth->(click on details link for a paired device) + // -> Forget button. + // CATEGORY: SETTINGS + // OS: O DR + DIALOG_BLUETOOTH_PAIRED_DEVICE_FORGET = 1031; + // ---- End O-DR1 Constants, all O-DR1 constants go above this line ---- // ACTION: Settings > Network & Internet > Mobile network > Mobile data @@ -4202,6 +4208,11 @@ message MetricsEvent { // OS: O MR ACTION_MOBILE_NETWORK_DATA_USAGE = 1082; + // FIELD - State of asynchronous ranking when Settings search result is clicked + // CATEGORY: SETTINGS + // OS: O MR + FIELD_SETTINGS_SEARCH_RESULT_ASYNC_RANKING_STATE = 1083; + // Add new aosp constants above this line. // END OF AOSP CONSTANTS } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java index 0e42e6d6a83d..7324b82351f6 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java @@ -17,6 +17,7 @@ package com.android.server.accessibility; import android.content.Context; +import android.os.Handler; import android.os.PowerManager; import android.util.Pools.SimplePool; import android.util.Slog; @@ -30,6 +31,8 @@ import android.view.MotionEvent; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityEvent; +import com.android.server.LocalServices; + /** * This class is an input filter for implementing accessibility features such * as display magnification and explore by touch. @@ -425,7 +428,8 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo } if ((mEnabledFeatures & FLAG_FEATURE_FILTER_KEY_EVENTS) != 0) { - mKeyboardInterceptor = new KeyboardInterceptor(mAms); + mKeyboardInterceptor = new KeyboardInterceptor(mAms, + LocalServices.getService(WindowManagerPolicy.class)); addFirstEventHandler(mKeyboardInterceptor); } } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index a58ba09e3937..a59844d2462b 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -102,6 +102,7 @@ import android.view.accessibility.IAccessibilityManagerClient; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; import com.android.internal.content.PackageMonitor; import com.android.internal.os.SomeArgs; import com.android.internal.util.DumpUtils; @@ -903,7 +904,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { } } - boolean notifyKeyEvent(KeyEvent event, int policyFlags) { + @VisibleForTesting + public boolean notifyKeyEvent(KeyEvent event, int policyFlags) { synchronized (mLock) { List<Service> boundServices = getCurrentUserStateLocked().mBoundServices; if (boundServices.isEmpty()) { diff --git a/services/accessibility/java/com/android/server/accessibility/KeyboardInterceptor.java b/services/accessibility/java/com/android/server/accessibility/KeyboardInterceptor.java index bbb25af5da43..f00a9540ef7d 100644 --- a/services/accessibility/java/com/android/server/accessibility/KeyboardInterceptor.java +++ b/services/accessibility/java/com/android/server/accessibility/KeyboardInterceptor.java @@ -16,19 +16,52 @@ package com.android.server.accessibility; +import android.os.Handler; +import android.os.Message; +import android.os.SystemClock; +import android.util.Pools; +import android.util.Slog; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityEvent; /** * Intercepts key events and forwards them to accessibility manager service. */ -public class KeyboardInterceptor implements EventStreamTransformation { +public class KeyboardInterceptor implements EventStreamTransformation, Handler.Callback { + private static final int MESSAGE_PROCESS_QUEUED_EVENTS = 1; + private static final String LOG_TAG = "KeyboardInterceptor"; + + private final AccessibilityManagerService mAms; + private final WindowManagerPolicy mPolicy; + private final Handler mHandler; + private EventStreamTransformation mNext; - private AccessibilityManagerService mAms; + private KeyEventHolder mEventQueueStart; + private KeyEventHolder mEventQueueEnd; + + /** + * @param service The service to notify of key events + * @param policy The policy to check for keys that may affect a11y + */ + public KeyboardInterceptor(AccessibilityManagerService service, WindowManagerPolicy policy) { + mAms = service; + mPolicy = policy; + mHandler = new Handler(this); + } - public KeyboardInterceptor(AccessibilityManagerService service) { + /** + * @param service The service to notify of key events + * @param policy The policy to check for keys that may affect a11y + * @param handler The handler to use. Only used for testing. + */ + public KeyboardInterceptor(AccessibilityManagerService service, WindowManagerPolicy policy, + Handler handler) { + // Can't combine the constructors without making at least mHandler non-final. mAms = service; + mPolicy = policy; + mHandler = handler; } @Override @@ -40,6 +73,19 @@ public class KeyboardInterceptor implements EventStreamTransformation { @Override public void onKeyEvent(KeyEvent event, int policyFlags) { + /* + * Certain keys have system-level behavior that affects accessibility services. + * Let that behavior settle before handling the keys + */ + long eventDelay = getEventDelay(event, policyFlags); + if (eventDelay < 0) { + return; + } + if ((eventDelay > 0) || (mEventQueueStart != null)) { + addEventToQueue(event, policyFlags, eventDelay); + return; + } + mAms.notifyKeyEvent(event, policyFlags); } @@ -65,4 +111,104 @@ public class KeyboardInterceptor implements EventStreamTransformation { @Override public void onDestroy() { } + + @Override + public boolean handleMessage(Message msg) { + if (msg.what != MESSAGE_PROCESS_QUEUED_EVENTS) { + Slog.e(LOG_TAG, "Unexpected message type"); + return false; + } + processQueuedEvents(); + if (mEventQueueStart != null) { + scheduleProcessQueuedEvents(); + } + return true; + } + + private void addEventToQueue(KeyEvent event, int policyFlags, long delay) { + long dispatchTime = SystemClock.uptimeMillis() + delay; + if (mEventQueueStart == null) { + mEventQueueEnd = mEventQueueStart = + KeyEventHolder.obtain(event, policyFlags, dispatchTime); + scheduleProcessQueuedEvents(); + return; + } + final KeyEventHolder holder = KeyEventHolder.obtain(event, policyFlags, dispatchTime); + holder.next = mEventQueueStart; + mEventQueueStart.previous = holder; + mEventQueueStart = holder; + } + + private void scheduleProcessQueuedEvents() { + if (!mHandler.sendEmptyMessageAtTime( + MESSAGE_PROCESS_QUEUED_EVENTS, mEventQueueEnd.dispatchTime)) { + Slog.e(LOG_TAG, "Failed to schedule key event"); + }; + } + + private void processQueuedEvents() { + final long currentTime = SystemClock.uptimeMillis(); + while ((mEventQueueEnd != null) && (mEventQueueEnd.dispatchTime <= currentTime)) { + final long eventDelay = getEventDelay(mEventQueueEnd.event, mEventQueueEnd.policyFlags); + if (eventDelay > 0) { + // Reschedule the event + mEventQueueEnd.dispatchTime = currentTime + eventDelay; + return; + } + // We'll either send or drop the event + if (eventDelay == 0) { + mAms.notifyKeyEvent(mEventQueueEnd.event, mEventQueueEnd.policyFlags); + } + final KeyEventHolder eventToBeRecycled = mEventQueueEnd; + mEventQueueEnd = mEventQueueEnd.previous; + if (mEventQueueEnd != null) { + mEventQueueEnd.next = null; + } + eventToBeRecycled.recycle(); + if (mEventQueueEnd == null) { + mEventQueueStart = null; + } + } + } + + private long getEventDelay(KeyEvent event, int policyFlags) { + int keyCode = event.getKeyCode(); + if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) || (keyCode == KeyEvent.KEYCODE_VOLUME_UP)) { + return mPolicy.interceptKeyBeforeDispatching(null, event, policyFlags); + } + return 0; + } + + private static class KeyEventHolder { + private static final int MAX_POOL_SIZE = 32; + private static final Pools.SimplePool<KeyEventHolder> sPool = + new Pools.SimplePool<>(MAX_POOL_SIZE); + + public int policyFlags; + public long dispatchTime; + public KeyEvent event; + public KeyEventHolder next; + public KeyEventHolder previous; + + public static KeyEventHolder obtain(KeyEvent event, int policyFlags, long dispatchTime) { + KeyEventHolder holder = sPool.acquire(); + if (holder == null) { + holder = new KeyEventHolder(); + } + holder.event = KeyEvent.obtain(event); + holder.policyFlags = policyFlags; + holder.dispatchTime = dispatchTime; + return holder; + } + + public void recycle() { + event.recycle(); + event = null; + policyFlags = 0; + dispatchTime = 0; + next = null; + previous = null; + sPool.release(this); + } + } } diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index aad44314e6cb..7ebda358afb4 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -68,6 +68,7 @@ import android.os.Message; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; +import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; @@ -2645,8 +2646,12 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku return; } synchronized (mLock) { + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "appwidget ensure"); ensureGroupStateLoadedLocked(userId); + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "appwidget reload"); reloadWidgetsMaskedStateForGroup(mSecurityPolicy.getGroupParent(userId)); + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); final int N = mProviders.size(); for (int i = 0; i < N; i++) { @@ -2658,10 +2663,13 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku } if (provider.widgets.size() > 0) { + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "appwidget init " + provider.info.provider.getPackageName()); sendEnableIntentLocked(provider); int[] appWidgetIds = getWidgetIds(provider.widgets); sendUpdateIntentLocked(provider, appWidgetIds); registerForBroadcastsLocked(provider, appWidgetIds); + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } } } diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 5c180f128901..77d3cd309f73 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -98,6 +98,7 @@ import android.os.RemoteException; import android.os.SELinux; import android.os.ServiceManager; import android.os.SystemClock; +import android.os.Trace; import android.os.UserHandle; import android.os.WorkSource; import android.os.storage.IStorageManager; @@ -397,9 +398,12 @@ public class BackupManagerService implements BackupManagerServiceInterface { @Override public void onUnlockUser(int userId) { if (userId == UserHandle.USER_SYSTEM) { + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "backup init"); sInstance.initialize(userId); + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); // Migrate legacy setting + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "backup migrate"); if (!backupSettingMigrated(userId)) { if (DEBUG) { Slog.i(TAG, "Backup enable apparently not migrated"); @@ -420,12 +424,15 @@ public class BackupManagerService implements BackupManagerServiceInterface { } } } + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "backup enable"); try { sInstance.setBackupEnabled(readBackupEnableState(userId)); } catch (RemoteException e) { // can't happen; it's a local object } + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } } } diff --git a/services/core/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java index 7a9bf216e863..298de80843a8 100644 --- a/services/core/java/com/android/server/TextServicesManagerService.java +++ b/services/core/java/com/android/server/TextServicesManagerService.java @@ -85,6 +85,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { private final TextServicesSettings mSettings; @NonNull private final UserManager mUserManager; + private final Object mLock = new Object(); public static final class Lifecycle extends SystemService { private TextServicesManagerService mService; @@ -124,7 +125,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } void systemRunning() { - synchronized (mSpellCheckerMap) { + synchronized (mLock) { if (!mSystemReady) { mSystemReady = true; resetInternalState(mSettings.getCurrentUserId()); @@ -133,13 +134,13 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } void onSwitchUser(@UserIdInt int userId) { - synchronized (mSpellCheckerMap) { + synchronized (mLock) { resetInternalState(userId); } } void onUnlockUser(@UserIdInt int userId) { - synchronized(mSpellCheckerMap) { + synchronized (mLock) { final int currentUserId = mSettings.getCurrentUserId(); if (userId != currentUserId) { return; @@ -215,7 +216,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (!isChangingPackagesOfCurrentUser()) { return; } - synchronized (mSpellCheckerMap) { + synchronized (mLock) { buildSpellCheckerMapLocked( mContext, mSpellCheckerList, mSpellCheckerMap, mSettings); // TODO: Update for each locale @@ -440,7 +441,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } private SpellCheckerInfo getCurrentSpellCheckerWithoutVerification() { - synchronized (mSpellCheckerMap) { + synchronized (mLock) { final String curSpellCheckerId = mSettings.getSelectedSpellChecker(); if (DBG) { Slog.w(TAG, "getCurrentSpellChecker: " + curSpellCheckerId); @@ -464,7 +465,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { final int subtypeHashCode; final SpellCheckerInfo sci; final Locale systemLocale; - synchronized (mSpellCheckerMap) { + synchronized (mLock) { subtypeHashCode = mSettings.getSelectedSpellCheckerSubtype(SpellCheckerSubtype.SUBTYPE_ID_NONE); if (DBG) { @@ -546,7 +547,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Slog.e(TAG, "getSpellCheckerService: Invalid input."); return; } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { if (!mSpellCheckerMap.containsKey(sciId)) { return; } @@ -578,7 +579,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (!calledFromValidUser()) { return false; } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { return isSpellCheckerEnabledLocked(); } } @@ -628,7 +629,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (DBG) { Slog.d(TAG, "FinishSpellCheckerService"); } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { final ArrayList<SpellCheckerBindGroup> removeList = new ArrayList<>(); for (SpellCheckerBindGroup group : mSpellCheckerBindGroups.values()) { if (group == null) continue; @@ -698,7 +699,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return; - synchronized(mSpellCheckerMap) { + synchronized (mLock) { pw.println("Current Text Services Manager state:"); pw.println(" Spell Checkers:"); int spellCheckerIndex = 0; @@ -796,7 +797,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Slog.d(TAG, "onServiceConnected"); } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { mSpellChecker = spellChecker; mConnected = true; // Dispatch pending getISpellCheckerSession requests. @@ -810,7 +811,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { Slog.d(TAG, "onServiceDisconnected"); } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { mSpellChecker = null; mConnected = false; } @@ -820,7 +821,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (DBG) { Slog.w(TAG, "remove listener: " + listener.hashCode()); } - synchronized(mSpellCheckerMap) { + synchronized (mLock) { mListeners.unregister(listener); cleanLocked(); } @@ -858,7 +859,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { public void removeAll() { Slog.e(TAG, "Remove the spell checker bind unexpectedly."); - synchronized(mSpellCheckerMap) { + synchronized (mLock) { final int size = mListeners.getRegisteredCallbackCount(); for (int i = 0; i < size; ++i) { mListeners.unregister(mListeners.getRegisteredCallbackItem(i)); @@ -898,7 +899,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { void onSessionCreated(@Nullable final ISpellCheckerSession newSession, @NonNull final SessionRequest request) { - synchronized (mSpellCheckerMap) { + synchronized (mLock) { if (mUnbindCalled) { return; } @@ -926,7 +927,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void onServiceConnected(ComponentName name, IBinder service) { - synchronized(mSpellCheckerMap) { + synchronized (mLock) { onServiceConnectedInnerLocked(name, service); } } @@ -945,7 +946,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void onServiceDisconnected(ComponentName name) { - synchronized(mSpellCheckerMap) { + synchronized (mLock) { onServiceDisconnectedInnerLocked(name); } } diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 4b2b6a77deb6..4a573691b656 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -2168,7 +2168,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo if (mStartingWindowState == STARTING_WINDOW_SHOWN && behindFullscreenActivity) { if (DEBUG_VISIBILITY) Slog.w(TAG_VISIBILITY, "Found orphaned starting window " + this); mStartingWindowState = STARTING_WINDOW_REMOVED; - mWindowContainerController.removeStartingWindow(); + mWindowContainerController.removeHiddenStartingWindow(); } } diff --git a/services/core/java/com/android/server/am/UserState.java b/services/core/java/com/android/server/am/UserState.java index b89586dc59dc..2e27387a6a09 100644 --- a/services/core/java/com/android/server/am/UserState.java +++ b/services/core/java/com/android/server/am/UserState.java @@ -20,6 +20,7 @@ import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import android.app.IStopUserCallback; +import android.os.Trace; import android.os.UserHandle; import android.util.ArrayMap; import android.util.Slog; @@ -81,9 +82,18 @@ public final class UserState { if (newState == state) { return; } - Slog.i(TAG, "User " + mHandle.getIdentifier() + " state changed from " + final int userId = mHandle.getIdentifier(); + if (state != STATE_BOOTING) { + Trace.asyncTraceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, + stateToString(state) + " " + userId, userId); + } + if (newState != STATE_SHUTDOWN) { + Trace.asyncTraceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, + stateToString(newState) + " " + userId, userId); + } + Slog.i(TAG, "User " + userId + " state changed from " + stateToString(state) + " to " + stateToString(newState)); - EventLogTags.writeAmUserStateChanged(mHandle.getIdentifier(), newState); + EventLogTags.writeAmUserStateChanged(userId, newState); lastState = state; state = newState; } diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index b6573352a482..1bee594de9f1 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -1087,11 +1087,8 @@ public class Tethering extends BaseNetworkObserver { return list.toArray(new String[list.size()]); } - private void maybeLogMessage(State state, int what) { - if (DBG) { - Log.d(TAG, state.getName() + " got " + - sMagicDecoderRing.get(what, Integer.toString(what))); - } + private void logMessage(State state, int what) { + mLog.log(state.getName() + " got " + sMagicDecoderRing.get(what, Integer.toString(what))); } private boolean upstreamWanted() { @@ -1215,7 +1212,7 @@ public class Tethering extends BaseNetworkObserver { class InitialState extends State { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case EVENT_IFACE_SERVING_STATE_ACTIVE: TetherInterfaceStateMachine who = (TetherInterfaceStateMachine)message.obj; @@ -1307,21 +1304,21 @@ public class Tethering extends BaseNetworkObserver { // Find the interface with the default IPv4 route. It may be the // interface described by linkProperties, or one of the interfaces // stacked on top of it. - Log.i(TAG, "Finding IPv4 upstream interface on: " + ns.linkProperties); + mLog.i("Finding IPv4 upstream interface on: " + ns.linkProperties); RouteInfo ipv4Default = RouteInfo.selectBestRoute( ns.linkProperties.getAllRoutes(), Inet4Address.ANY); if (ipv4Default != null) { iface = ipv4Default.getInterface(); - Log.i(TAG, "Found interface " + ipv4Default.getInterface()); + mLog.i("Found interface " + ipv4Default.getInterface()); } else { - Log.i(TAG, "No IPv4 upstream interface, giving up."); + mLog.i("No IPv4 upstream interface, giving up."); } } if (iface != null) { setDnsForwarders(ns.network, ns.linkProperties); } - notifyTetheredOfNewUpstreamIface(iface); + notifyDownstreamsOfNewUpstreamIface(iface); if (ns != null && pertainsToCurrentUpstream(ns)) { // If we already have NetworkState for this network examine // it immediately, because there likely will be no second @@ -1356,8 +1353,8 @@ public class Tethering extends BaseNetworkObserver { } } - protected void notifyTetheredOfNewUpstreamIface(String ifaceName) { - if (DBG) Log.d(TAG, "Notifying tethered with upstream=" + ifaceName); + protected void notifyDownstreamsOfNewUpstreamIface(String ifaceName) { + mLog.log("Notifying downstreams of upstream=" + ifaceName); mCurrentUpstreamIface = ifaceName; for (TetherInterfaceStateMachine sm : mNotifyList) { sm.sendMessage(TetherInterfaceStateMachine.CMD_TETHER_CONNECTION_CHANGED, @@ -1499,7 +1496,7 @@ public class Tethering extends BaseNetworkObserver { mOffloadController.stop(); mUpstreamNetworkMonitor.stop(); mSimChange.stopListening(); - notifyTetheredOfNewUpstreamIface(null); + notifyDownstreamsOfNewUpstreamIface(null); handleNewUpstreamNetworkState(null); } @@ -1518,7 +1515,7 @@ public class Tethering extends BaseNetworkObserver { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); boolean retValue = true; switch (message.what) { case EVENT_IFACE_SERVING_STATE_ACTIVE: { diff --git a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java index 86b255128d6d..4bac69ce7495 100644 --- a/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java +++ b/services/core/java/com/android/server/connectivity/tethering/TetherInterfaceStateMachine.java @@ -441,12 +441,8 @@ public class TetherInterfaceStateMachine extends StateMachine { mLastRaParams = newParams; } - private void maybeLogMessage(State state, int what) { - if (DBG) { - Log.d(TAG, state.getName() + " got " + - sMagicDecoderRing.get(what, Integer.toString(what)) + ", Iface = " + - mIfaceName); - } + private void logMessage(State state, int what) { + mLog.log(state.getName() + " got " + sMagicDecoderRing.get(what, Integer.toString(what))); } private void sendInterfaceState(int newInterfaceState) { @@ -473,7 +469,7 @@ public class TetherInterfaceStateMachine extends StateMachine { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLastError = ConnectivityManager.TETHER_ERROR_NO_ERROR; @@ -545,7 +541,7 @@ public class TetherInterfaceStateMachine extends StateMachine { @Override public boolean processMessage(Message message) { - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_UNREQUESTED: transitionTo(mInitialState); @@ -595,7 +591,7 @@ public class TetherInterfaceStateMachine extends StateMachine { public boolean processMessage(Message message) { if (super.processMessage(message)) return true; - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLog.e("CMD_TETHER_REQUESTED while in local-only hotspot mode."); @@ -667,7 +663,7 @@ public class TetherInterfaceStateMachine extends StateMachine { public boolean processMessage(Message message) { if (super.processMessage(message)) return true; - maybeLogMessage(this, message.what); + logMessage(this, message.what); switch (message.what) { case CMD_TETHER_REQUESTED: mLog.e("CMD_TETHER_REQUESTED while already tethering."); diff --git a/services/core/java/com/android/server/notification/NotificationUsageStats.java b/services/core/java/com/android/server/notification/NotificationUsageStats.java index 3689cb10dfda..c36a5f23b155 100644 --- a/services/core/java/com/android/server/notification/NotificationUsageStats.java +++ b/services/core/java/com/android/server/notification/NotificationUsageStats.java @@ -40,6 +40,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.PrintWriter; +import java.lang.Math; import java.util.ArrayDeque; import java.util.Calendar; import java.util.GregorianCalendar; @@ -748,8 +749,8 @@ public class NotificationUsageStats { } void increment(int imp) { - imp = imp < 0 ? 0 : imp > NUM_IMPORTANCES ? NUM_IMPORTANCES : imp; - mCount[imp] ++; + imp = Math.max(0, Math.min(imp, mCount.length - 1)); + mCount[imp]++; } void maybeCount(ImportanceHistogram prev) { diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index 5c4c0401b63c..bd765b49a4ab 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -258,7 +258,7 @@ public class Installer extends SystemService { public long[] getExternalSize(String uuid, int userId, int flags, int[] appIds) throws InstallerException { - if (!checkBeforeRemote()) return new long[4]; + if (!checkBeforeRemote()) return new long[6]; try { return mInstalld.getExternalSize(uuid, userId, flags, appIds); } catch (Exception e) { diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 54ca6b950ed7..2a45d156ed42 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -345,6 +345,10 @@ public class OtaDexoptService extends IOtaDexopt.Stub { mPackageManagerService.getDexManager().isUsedByOtherApps(pkg.packageName), true /* bootComplete */); + mPackageManagerService.getDexManager().dexoptSecondaryDex(pkg.packageName, + getCompilerFilterForReason(compilationReason), + false /* force */, + false /* compileOnlySharedDex */); return commands; } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 92c5862910c5..e3575a939ba5 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9340,24 +9340,39 @@ public class PackageManagerService extends IPackageManager.Stub // Unfortunately this will also means that "pm.dexopt.boot=speed-profile" will // behave differently than "pm.dexopt.bg-dexopt=speed-profile" but that's a // trade-off worth doing to save boot time work. - int dexOptStatus = performDexOptTraced(pkg.packageName, + int primaryDexOptStaus = performDexOptTraced(pkg.packageName, false /* checkProfiles */, compilerFilter, false /* force */, bootComplete); - switch (dexOptStatus) { - case PackageDexOptimizer.DEX_OPT_PERFORMED: - numberOfPackagesOptimized++; - break; - case PackageDexOptimizer.DEX_OPT_SKIPPED: - numberOfPackagesSkipped++; - break; - case PackageDexOptimizer.DEX_OPT_FAILED: - numberOfPackagesFailed++; - break; - default: - Log.e(TAG, "Unexpected dexopt return code " + dexOptStatus); - break; + + boolean secondaryDexOptStatus = true; + if (pkg.isSystemApp()) { + // Only dexopt shared secondary dex files belonging to system apps to not slow down + // too much boot after an OTA. + secondaryDexOptStatus = mDexManager.dexoptSecondaryDex(pkg.packageName, + compilerFilter, + false /* force */, + true /* compileOnlySharedDex */); + } + + if (secondaryDexOptStatus) { + switch (primaryDexOptStaus) { + case PackageDexOptimizer.DEX_OPT_PERFORMED: + numberOfPackagesOptimized++; + break; + case PackageDexOptimizer.DEX_OPT_SKIPPED: + numberOfPackagesSkipped++; + break; + case PackageDexOptimizer.DEX_OPT_FAILED: + numberOfPackagesFailed++; + break; + default: + Log.e(TAG, "Unexpected dexopt return code " + primaryDexOptStaus); + break; + } + } else { + numberOfPackagesFailed++; } } @@ -9559,8 +9574,8 @@ public class PackageManagerService extends IPackageManager.Stub } else if (isInstantApp(packageName, UserHandle.getCallingUserId())) { return false; } - mDexManager.reconcileSecondaryDexFiles(packageName); - return mDexManager.dexoptSecondaryDex(packageName, compilerFilter, force); + return mDexManager.dexoptSecondaryDex(packageName, compilerFilter, force, + /* compileOnlySharedDex*/ false); } public boolean performDexOptSecondary(String packageName, int compileReason, diff --git a/services/core/java/com/android/server/pm/dex/DexManager.java b/services/core/java/com/android/server/pm/dex/DexManager.java index be50eeeefc24..db2d30f9e568 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -307,7 +307,7 @@ public class DexManager { public boolean dexoptSecondaryDex(String packageName, int compilerReason, boolean force) { return dexoptSecondaryDex(packageName, PackageManagerServiceCompilerMapping.getCompilerFilterForReason(compilerReason), - force); + force, /* compileOnlySharedDex */ false); } /** @@ -315,7 +315,8 @@ public class DexManager { * @return true if all secondary dex files were processed successfully (compiled or skipped * because they don't need to be compiled).. */ - public boolean dexoptSecondaryDex(String packageName, String compilerFilter, boolean force) { + public boolean dexoptSecondaryDex(String packageName, String compilerFilter, boolean force, + boolean compileOnlySharedDex) { // Select the dex optimizer based on the force parameter. // Forced compilation is done through ForcedUpdatePackageDexOptimizer which will adjust // the necessary dexopt flags to make sure that compilation is not skipped. This avoid @@ -337,6 +338,9 @@ public class DexManager { for (Map.Entry<String, DexUseInfo> entry : useInfo.getDexUseInfoMap().entrySet()) { String dexPath = entry.getKey(); DexUseInfo dexUseInfo = entry.getValue(); + if (compileOnlySharedDex && !dexUseInfo.isUsedByOtherApps()) { + continue; + } PackageInfo pkg = null; try { pkg = mPackageManager.getPackageInfo(packageName, /*flags*/0, diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 5d2d4b6d6090..8425d235fe66 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -563,7 +563,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mPanicPressOnBackBehavior; int mShortPressOnSleepBehavior; int mShortPressWindowBehavior; - boolean mAwake; + volatile boolean mAwake; boolean mScreenOnEarly; boolean mScreenOnFully; ScreenOnListener mScreenOnListener; @@ -6813,6 +6813,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + @Override + public boolean isInteractive() { + return mAwake; + } + /** {@inheritDoc} */ @Override public void enableKeyguard(boolean enabled) { diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java index c07bd8e3a2d3..a7cd962b7680 100644 --- a/services/core/java/com/android/server/trust/TrustManagerService.java +++ b/services/core/java/com/android/server/trust/TrustManagerService.java @@ -67,7 +67,6 @@ import java.io.FileDescriptor; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -589,22 +588,20 @@ public class TrustManagerService extends SystemService { } private void maybeEnableFactoryTrustAgents(LockPatternUtils utils, int userId) { + if (0 != Settings.Secure.getIntForUser(mContext.getContentResolver(), + Settings.Secure.TRUST_AGENTS_INITIALIZED, 0, userId)) { + return; + } + PackageManager pm = mContext.getPackageManager(); + List<ResolveInfo> resolveInfos = resolveAllowedTrustAgents(pm, userId); ComponentName defaultAgent = getDefaultFactoryTrustAgent(mContext); boolean shouldUseDefaultAgent = defaultAgent != null; + ArraySet<ComponentName> discoveredAgents = new ArraySet<>(); if (shouldUseDefaultAgent) { + discoveredAgents.add(defaultAgent); Log.i(TAG, "Enabling " + defaultAgent + " because it is a default agent."); - utils.setEnabledTrustAgents(Collections.singleton(defaultAgent), userId); } else { // A default agent is not set; perform regular trust agent discovery - if (0 != Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.TRUST_AGENTS_INITIALIZED, 0, userId)) { - return; - } - PackageManager pm = mContext.getPackageManager(); - List<ResolveInfo> resolveInfos = resolveAllowedTrustAgents(pm, userId); - - ArraySet<ComponentName> discoveredAgents = new ArraySet<>(); - for (ResolveInfo resolveInfo : resolveInfos) { ComponentName componentName = getComponentName(resolveInfo); int applicationInfoFlags = resolveInfo.serviceInfo.applicationInfo.flags; @@ -615,13 +612,13 @@ public class TrustManagerService extends SystemService { } discoveredAgents.add(componentName); } + } - List<ComponentName> previouslyEnabledAgents = utils.getEnabledTrustAgents(userId); - if (previouslyEnabledAgents != null) { - discoveredAgents.addAll(previouslyEnabledAgents); - } - utils.setEnabledTrustAgents(discoveredAgents, userId); + List<ComponentName> previouslyEnabledAgents = utils.getEnabledTrustAgents(userId); + if (previouslyEnabledAgents != null) { + discoveredAgents.addAll(previouslyEnabledAgents); } + utils.setEnabledTrustAgents(discoveredAgents, userId); Settings.Secure.putIntForUser(mContext.getContentResolver(), Settings.Secure.TRUST_AGENTS_INITIALIZED, 1, userId); } diff --git a/services/core/java/com/android/server/vr/Vr2dDisplay.java b/services/core/java/com/android/server/vr/Vr2dDisplay.java index b1c1df14feeb..69d8ca68522f 100644 --- a/services/core/java/com/android/server/vr/Vr2dDisplay.java +++ b/services/core/java/com/android/server/vr/Vr2dDisplay.java @@ -59,7 +59,7 @@ class Vr2dDisplay { /** * The default height of the VR virtual display */ - public static final int DEFAULT_VIRTUAL_DISPLAY_HEIGHT = 1400; + public static final int DEFAULT_VIRTUAL_DISPLAY_HEIGHT = 1800; /** * The default height of the VR virtual dpi. diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 917f0b90ae76..802054eed8ce 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -32,6 +32,7 @@ import android.app.IWallpaperManager; import android.app.IWallpaperManagerCallback; import android.app.PendingIntent; import android.app.UserSwitchObserver; +import android.app.WallpaperColors; import android.app.WallpaperInfo; import android.app.WallpaperManager; import android.app.admin.DevicePolicyManager; @@ -55,7 +56,6 @@ import android.graphics.BitmapRegionDecoder; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.os.Binder; import android.os.Bundle; import android.os.Environment; @@ -64,8 +64,8 @@ import android.os.FileUtils; import android.os.Handler; import android.os.IBinder; import android.os.IRemoteCallback; -import android.os.Process; import android.os.ParcelFileDescriptor; +import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.SELinux; @@ -76,12 +76,10 @@ import android.os.UserManager; import android.service.wallpaper.IWallpaperConnection; import android.service.wallpaper.IWallpaperEngine; import android.service.wallpaper.IWallpaperService; -import android.app.WallpaperColors; import android.service.wallpaper.WallpaperService; import android.system.ErrnoException; import android.system.Os; import android.util.EventLog; -import android.util.Pair; import android.util.Slog; import android.util.SparseArray; import android.util.Xml; @@ -99,7 +97,6 @@ import com.android.server.EventLogTags; import com.android.server.FgThread; import com.android.server.SystemService; -import java.util.ArrayList; import libcore.io.IoUtils; import org.xmlpull.v1.XmlPullParser; @@ -347,32 +344,44 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { needsExtraction = wallpaper.primaryColors == null; } - // This should not be synchronized because color extraction - // might take a while. + // Let's notify the current values, it's fine if it's null, it just means + // that we don't know yet. + notifyColorListeners(wallpaper.primaryColors, which); + if (needsExtraction) { extractColors(wallpaper); + notifyColorListeners(wallpaper.primaryColors, which); } + } + private void notifyColorListeners(WallpaperColors wallpaperColors, int which) { + final IWallpaperManagerCallback[] listeners; + final IWallpaperManagerCallback keyguardListener; synchronized (mLock) { - final int n = mColorsChangedListeners.beginBroadcast(); - for (int i = 0; i < n; i++) { - IWallpaperManagerCallback callback = mColorsChangedListeners.getBroadcastItem(i); - try { - callback.onWallpaperColorsChanged(wallpaper.primaryColors, which); - } catch (RemoteException e) { - // Callback is gone, it's not necessary to unregister it since - // RemoteCallbackList#getBroadcastItem will take care of it. - } + // Make a synchronized copy of the listeners to avoid concurrent list modification. + int callbackCount = mColorsChangedListeners.beginBroadcast(); + listeners = new IWallpaperManagerCallback[callbackCount]; + for (int i = 0; i < callbackCount; i++) { + listeners[i] = mColorsChangedListeners.getBroadcastItem(i); } mColorsChangedListeners.finishBroadcast(); + keyguardListener = mKeyguardListener; + } - final IWallpaperManagerCallback cb = mKeyguardListener; - if (cb != null) { - try { - cb.onWallpaperColorsChanged(wallpaper.primaryColors, which); - } catch (RemoteException e) { - // Oh well it went away; no big deal - } + for (int i = 0; i < listeners.length; i++) { + try { + listeners[i].onWallpaperColorsChanged(wallpaperColors, which); + } catch (RemoteException e) { + // Callback is gone, it's not necessary to unregister it since + // RemoteCallbackList#getBroadcastItem will take care of it. + } + } + + if (keyguardListener != null) { + try { + keyguardListener.onWallpaperColorsChanged(wallpaperColors, which); + } catch (RemoteException e) { + // Oh well it went away; no big deal } } } @@ -414,6 +423,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { synchronized (mLock) { if (wallpaper.wallpaperId == wallpaperId) { wallpaper.primaryColors = colors; + // Now that we have the colors, let's save them into the xml + // to avoid having to run this again. + saveSettingsLocked(wallpaper.userId); } else { Slog.w(TAG, "Not setting primary colors since wallpaper changed"); } @@ -1366,6 +1378,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { RuntimeException e = null; try { + wallpaper.primaryColors = null; wallpaper.imageWallpaperPending = false; if (userId != mCurrentUserId) return; if (bindWallpaperComponentLocked(defaultFailed @@ -1860,6 +1873,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { try { wallpaper.imageWallpaperPending = false; if (bindWallpaperComponentLocked(name, false, true, wallpaper, null)) { + wallpaper.primaryColors = null; wallpaper.wallpaperId = makeWallpaperIdLocked(); notifyCallbacksLocked(wallpaper); shouldNotifyColors = true; @@ -1996,7 +2010,6 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { } wallpaper.wallpaperComponent = componentName; wallpaper.connection = newConn; - wallpaper.primaryColors = null; newConn.mReply = reply; try { if (wallpaper.userId == mCurrentUserId) { @@ -2202,7 +2215,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { out.attribute(null, "colorValue"+i, Integer.toString(wc.toArgb())); } } - out.attribute(null, "supportsDarkText", + out.attribute(null, "colorHints", Integer.toString(wallpaper.primaryColors.getColorHints())); } @@ -2439,7 +2452,6 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { int colorsCount = getAttributeInt(parser, "colorsCount", 0); if (colorsCount > 0) { Color primary = null, secondary = null, tertiary = null; - final List<Color> colors = new ArrayList<>(); for (int i = 0; i < colorsCount; i++) { Color color = Color.valueOf(getAttributeInt(parser, "colorValue" + i, 0)); if (i == 0) { @@ -2616,6 +2628,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { pw.print(" mCropHint="); pw.println(wallpaper.cropHint); pw.print(" mPadding="); pw.println(wallpaper.padding); pw.print(" mName="); pw.println(wallpaper.name); + pw.print(" mAllowBackup="); pw.println(wallpaper.allowBackup); pw.print(" mWallpaperComponent="); pw.println(wallpaper.wallpaperComponent); if (wallpaper.connection != null) { WallpaperConnection conn = wallpaper.connection; @@ -2646,6 +2659,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { pw.print(" mCropHint="); pw.println(wallpaper.cropHint); pw.print(" mPadding="); pw.println(wallpaper.padding); pw.print(" mName="); pw.println(wallpaper.name); + pw.print(" mAllowBackup="); pw.println(wallpaper.allowBackup); } } diff --git a/services/core/java/com/android/server/wm/AppWindowAnimator.java b/services/core/java/com/android/server/wm/AppWindowAnimator.java index f76926113ef8..f3a09ed14936 100644 --- a/services/core/java/com/android/server/wm/AppWindowAnimator.java +++ b/services/core/java/com/android/server/wm/AppWindowAnimator.java @@ -350,7 +350,7 @@ public class AppWindowAnimator { // This must be called while inside a transaction. boolean stepAnimationLocked(long currentTime) { - if (mService.okToDisplay()) { + if (mService.okToAnimate()) { // We will run animations as long as the display isn't frozen. if (animation == sDummyAnimation) { @@ -416,6 +416,7 @@ public class AppWindowAnimator { if (DEBUG_ANIM) Slog.v(TAG, "Animation done in " + mAppToken + ": reportedVisible=" + mAppToken.reportedVisible + " okToDisplay=" + mService.okToDisplay() + + " okToAnimate=" + mService.okToAnimate() + " startingDisplayed=" + mAppToken.startingDisplayed); transformation.clear(); diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java index 4e4398ee9d91..86e130d723d8 100644 --- a/services/core/java/com/android/server/wm/AppWindowContainerController.java +++ b/services/core/java/com/android/server/wm/AppWindowContainerController.java @@ -436,7 +436,7 @@ public class AppWindowContainerController // If we are preparing an app transition, then delay changing // the visibility of this token until we execute that transition. - if (mService.okToDisplay() && mService.mAppTransition.isTransitionSet()) { + if (mService.okToAnimate() && mService.mAppTransition.isTransitionSet()) { // A dummy animation is a placeholder animation which informs others that an // animation is going on (in this case an application transition). If the animation // was transferred from another application/animator, no dummy animator should be @@ -647,7 +647,23 @@ public class AppWindowContainerController return mContainer.getTask().getConfiguration().orientation == snapshot.getOrientation(); } - public void removeStartingWindow() { + /** + * Remove starting window if the app is currently hidden. It is possible the starting window is + * part of its app exit transition animation in which case we delay hiding the app token. The + * method allows for removal when window manager has set the app token to hidden. + */ + public void removeHiddenStartingWindow() { + synchronized (mWindowMap) { + if (!mContainer.hidden) { + if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Starting window app still visible." + + " Ignoring remove request."); + return; + } + removeStartingWindow(); + } + } + + void removeStartingWindow() { synchronized (mWindowMap) { if (mHandler.hasCallbacks(mRemoveStartingWindow)) { // Already scheduled. diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index ce44dab8fc09..839ee0ec7efd 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -441,6 +441,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree mChildren.get(i).mWinAnimator.hide("immediately hidden"); } SurfaceControl.closeTransaction(); + removeStartingWindow(); } if (!mService.mClosingApps.contains(this) && !mService.mOpeningApps.contains(this)) { @@ -518,6 +519,12 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree return super.checkCompleteDeferredRemoval(); } + private void removeStartingWindow() { + if (startingData != null && getController() != null) { + getController().removeStartingWindow(); + } + } + void onRemovedFromDisplay() { if (mRemovingFromDisplay) { return; @@ -545,9 +552,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG_WM, "removeAppToken: " + this + " delayed=" + delayed + " Callers=" + Debug.getCallers(4)); - if (startingData != null && getController() != null) { - getController().removeStartingWindow(); - } + removeStartingWindow(); // If this window was animating, then we need to ensure that the app transition notifies // that animations have completed in WMS.handleAnimatingStoppedAndTransitionLocked(), so diff --git a/services/core/java/com/android/server/wm/DimLayerController.java b/services/core/java/com/android/server/wm/DimLayerController.java index 49f5ee646efa..741492815bd7 100644 --- a/services/core/java/com/android/server/wm/DimLayerController.java +++ b/services/core/java/com/android/server/wm/DimLayerController.java @@ -290,7 +290,7 @@ class DimLayerController { state.dimLayer.setLayer(dimLayer); } if (state.dimLayer.isAnimating()) { - if (!mDisplayContent.mService.okToDisplay()) { + if (!mDisplayContent.mService.okToAnimate()) { // Jump to the end of the animation. state.dimLayer.show(); } else { diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 05f4626259d7..9fe73815b380 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1073,7 +1073,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } if (w.mHasSurface && !rotateSeamlessly) { if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Set mOrientationChanging of " + w); - w.setOrientationChanging(true); + w.mOrientationChanging = true; mService.mRoot.mOrientationChangeComplete = false; w.mLastFreezeDuration = 0; } @@ -2679,10 +2679,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo mService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_TIMEOUT; forAllWindows(w -> { - if (!w.getOrientationChanging()) { + if (!w.mOrientationChanging) { return; } - w.setOrientationChanging(false); + w.mOrientationChanging = false; w.mLastFreezeDuration = (int)(SystemClock.elapsedRealtime() - mService.mDisplayFreezeTime); Slog.w(TAG_WM, "Force clearing orientation change: " + w); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index f9c21b38d8d4..730c08cc50c2 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -1445,6 +1445,9 @@ public class WindowManagerService extends IWindowManager.Stub } } + final boolean hideSystemAlertWindows = !mHidingNonSystemOverlayWindows.isEmpty(); + win.setForceHideNonSystemOverlayWindowIfNeeded(hideSystemAlertWindows); + final AppWindowToken aToken = token.asAppWindowToken(); if (type == TYPE_APPLICATION_STARTING && aToken != null) { aToken.startingWindow = win; @@ -2326,7 +2329,7 @@ public class WindowManagerService extends IWindowManager.Stub // artifacts when we unfreeze the display if some different animation // is running. Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "WM#applyAnimationLocked"); - if (okToDisplay()) { + if (okToAnimate()) { final DisplayContent displayContent = atoken.getTask().getDisplayContent(); final DisplayInfo displayInfo = displayContent.getDisplayInfo(); final int width = displayInfo.appWidth; @@ -2406,6 +2409,10 @@ public class WindowManagerService extends IWindowManager.Stub return !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn(); } + boolean okToAnimate() { + return okToDisplay() && mPolicy.isInteractive(); + } + @Override public void addWindowToken(IBinder binder, int type, int displayId) { if (!checkCallingPermission(MANAGE_APP_TOKENS, "addWindowToken()")) { @@ -2672,7 +2679,7 @@ public class WindowManagerService extends IWindowManager.Stub synchronized(mWindowMap) { boolean prepared = mAppTransition.prepareAppTransitionLocked(transit, alwaysKeepCurrent, flags, forceOverride); - if (prepared && okToDisplay()) { + if (prepared && okToAnimate()) { mSkipAppTransitionAnimation = false; } } @@ -5789,7 +5796,7 @@ public class WindowManagerService extends IWindowManager.Stub // orientation. if (!okToDisplay() && mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) { if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Changing surface while display frozen: " + w); - w.setOrientationChanging(true); + w.mOrientationChanging = true; w.mLastFreezeDuration = 0; mRoot.mOrientationChangeComplete = false; if (mWindowsFreezingScreen == WINDOWS_FREEZING_SCREENS_NONE) { diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 17768e68d8d1..eda19c4d66bb 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -446,7 +446,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP * Set when the orientation is changing and this window has not yet * been updated for the new orientation. */ - private boolean mOrientationChanging; + boolean mOrientationChanging; /** * The orientation during the last visible call to relayout. If our @@ -1189,8 +1189,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // then we need to hold off on unfreezing the display until this window has been // redrawn; to do that, we need to go through the process of getting informed by the // application when it has finished drawing. - if (getOrientationChanging() || dragResizingChanged - || isResizedWhileNotDragResizing()) { + if (mOrientationChanging || dragResizingChanged || isResizedWhileNotDragResizing()) { if (DEBUG_SURFACE_TRACE || DEBUG_ANIM || DEBUG_ORIENTATION || DEBUG_RESIZE) { Slog.v(TAG_WM, "Orientation or resize start waiting for draw" + ", mDrawState=DRAW_PENDING in " + this @@ -1205,33 +1204,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG_WM, "Resizing window " + this); mService.mResizingWindows.add(this); } - } else if (getOrientationChanging()) { + } else if (mOrientationChanging) { if (isDrawnLw()) { if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Orientation not waiting for draw in " + this + ", surfaceController " + winAnimator.mSurfaceController); - setOrientationChanging(false); + mOrientationChanging = false; mLastFreezeDuration = (int)(SystemClock.elapsedRealtime() - mService.mDisplayFreezeTime); } } } - boolean getOrientationChanging() { - // In addition to the local state flag, we must also consider the difference in the last - // reported configuration vs. the current state. If the client code has not been informed of - // the change, logic dependent on having finished processing the orientation, such as - // unfreezing, could be improperly triggered. - // TODO(b/62846907): Checking against {@link mLastReportedConfiguration} could be flaky as - // this is not necessarily what the client has processed yet. Find a - // better indicator consistent with the client. - return mOrientationChanging - || getConfiguration().orientation != mLastReportedConfiguration.orientation; - } - - void setOrientationChanging(boolean changing) { - mOrientationChanging = changing; - } - DisplayContent getDisplayContent() { return mToken.getDisplayContent(); } @@ -1683,7 +1666,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP final boolean adjustedForMinimizedDockOrIme = task != null && (task.mStack.isAdjustedForMinimizedDockedStack() || task.mStack.isAdjustedForIme()); - if (mService.okToDisplay() + if (mService.okToAnimate() && (mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0 && !isDragResizing() && !adjustedForMinimizedDockOrIme && (task == null || getTask().mStack.hasMovementAnimations()) @@ -1852,7 +1835,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // First, see if we need to run an animation. If we do, we have to hold off on removing the // window until the animation is done. If the display is frozen, just remove immediately, // since the animation wouldn't be seen. - if (mHasSurface && mService.okToDisplay()) { + if (mHasSurface && mService.okToAnimate()) { if (mWillReplaceWindow) { // This window is going to be replaced. We need to keep it around until the new one // gets added, then we will get rid of this one. @@ -2276,7 +2259,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mLayoutNeeded = true; } - if (isDrawnLw() && mService.okToDisplay()) { + if (isDrawnLw() && mService.okToAnimate()) { mWinAnimator.applyEnterAnimationLocked(); } } @@ -2432,7 +2415,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (doAnimation) { if (DEBUG_VISIBILITY) Slog.v(TAG, "doAnimation: mPolicyVisibility=" + mPolicyVisibility + " mAnimation=" + mWinAnimator.mAnimation); - if (!mService.okToDisplay()) { + if (!mService.okToAnimate()) { doAnimation = false; } else if (mPolicyVisibility && mWinAnimator.mAnimation == null) { // Check for the case where we are currently visible and @@ -2462,7 +2445,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP boolean hideLw(boolean doAnimation, boolean requestAnim) { if (doAnimation) { - if (!mService.okToDisplay()) { + if (!mService.okToAnimate()) { doAnimation = false; } } @@ -2705,10 +2688,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mAppFreezing = false; - if (mHasSurface && !getOrientationChanging() + if (mHasSurface && !mOrientationChanging && mService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) { if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "set mOrientationChanging of " + this); - setOrientationChanging(true); + mOrientationChanging = true; mService.mRoot.mOrientationChangeComplete = false; } mLastFreezeDuration = 0; @@ -3127,7 +3110,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mWinAnimator.mSurfaceResized = false; mReportOrientationChanged = false; } catch (RemoteException e) { - setOrientationChanging(false); + mOrientationChanging = false; mLastFreezeDuration = (int)(SystemClock.elapsedRealtime() - mService.mDisplayFreezeTime); // We are assuming the hosting process is dead or in a zombie state. @@ -3488,13 +3471,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP pw.print(" mDestroying="); pw.print(mDestroying); pw.print(" mRemoved="); pw.println(mRemoved); } - if (getOrientationChanging() || mAppFreezing || mTurnOnScreen + if (mOrientationChanging || mAppFreezing || mTurnOnScreen || mReportOrientationChanged) { pw.print(prefix); pw.print("mOrientationChanging="); pw.print(mOrientationChanging); - pw.print(" configOrientationChanging="); - pw.print(mLastReportedConfiguration.orientation - != getConfiguration().orientation); pw.print(" mAppFreezing="); pw.print(mAppFreezing); pw.print(" mTurnOnScreen="); pw.print(mTurnOnScreen); pw.print(" mReportOrientationChanged="); pw.println(mReportOrientationChanged); diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index df30cfc77223..cd55156a67a9 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -368,7 +368,7 @@ class WindowStateAnimator { // we just started or just stopped animating by comparing mWasAnimating with isAnimationSet(). mWasAnimating = mAnimating; final DisplayContent displayContent = mWin.getDisplayContent(); - if (displayContent != null && mService.okToDisplay()) { + if (displayContent != null && mService.okToAnimate()) { // We will run animations as long as the display isn't frozen. if (mWin.isDrawnLw() && mAnimation != null) { @@ -1527,11 +1527,11 @@ class WindowStateAnimator { // There is no need to wait for an animation change if our window is gone for layout // already as we'll never be visible. - if (w.getOrientationChanging() && w.isGoneForLayoutLw()) { + if (w.mOrientationChanging && w.isGoneForLayoutLw()) { if (DEBUG_ORIENTATION) { Slog.v(TAG, "Orientation change skips hidden " + w); } - w.setOrientationChanging(false); + w.mOrientationChanging = false; } return; } @@ -1564,8 +1564,8 @@ class WindowStateAnimator { // really hidden (gone for layout), there is no point in still waiting for it. // Note that this does introduce a potential glitch if the window becomes unhidden // before it has drawn for the new orientation. - if (w.getOrientationChanging() && w.isGoneForLayoutLw()) { - w.setOrientationChanging(false); + if (w.mOrientationChanging && w.isGoneForLayoutLw()) { + w.mOrientationChanging = false; if (DEBUG_ORIENTATION) Slog.v(TAG, "Orientation change skips hidden " + w); } @@ -1618,7 +1618,7 @@ class WindowStateAnimator { mAnimator.setPendingLayoutChanges(w.getDisplayId(), WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM); } else { - w.setOrientationChanging(false); + w.mOrientationChanging = false; } } if (hasSurface()) { @@ -1631,14 +1631,14 @@ class WindowStateAnimator { displayed = true; } - if (w.getOrientationChanging()) { + if (w.mOrientationChanging) { if (!w.isDrawnLw()) { mAnimator.mBulkUpdateParams &= ~SET_ORIENTATION_CHANGE_COMPLETE; mAnimator.mLastWindowFreezeSource = w; if (DEBUG_ORIENTATION) Slog.v(TAG, "Orientation continue waiting for draw in " + w); } else { - w.setOrientationChanging(false); + w.mOrientationChanging = false; if (DEBUG_ORIENTATION) Slog.v(TAG, "Orientation change complete in " + w); } } @@ -1781,7 +1781,7 @@ class WindowStateAnimator { // artifacts when we unfreeze the display if some different animation // is running. Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "WSA#applyAnimationLocked"); - if (mService.okToDisplay()) { + if (mService.okToAnimate()) { int anim = mPolicy.selectAnimationLw(mWin, transit); int attr = -1; Animation a = null; diff --git a/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java b/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java new file mode 100644 index 000000000000..5db397f85f1f --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/accessibility/KeyboardInterceptorTest.java @@ -0,0 +1,218 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.accessibility; + +import static junit.framework.Assert.assertTrue; + +import static org.hamcrest.CoreMatchers.nullValue; +import static org.junit.Assert.assertFalse; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.isNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.mockito.hamcrest.MockitoHamcrest.argThat; + +import org.hamcrest.BaseMatcher; +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InOrder; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +import android.os.Looper; +import android.support.test.runner.AndroidJUnit4; +import android.view.KeyEvent; +import android.view.WindowManagerPolicy; +import android.view.WindowManagerPolicy.WindowState; + +/** + * Tests for KeyboardInterceptor + */ +@RunWith(AndroidJUnit4.class) +public class KeyboardInterceptorTest { + private KeyboardInterceptor mInterceptor; + private MessageCapturingHandler mHandler = new MessageCapturingHandler( + msg -> mInterceptor.handleMessage(msg)); + @Mock AccessibilityManagerService mMockAms; + @Mock WindowManagerPolicy mMockPolicy; + + @BeforeClass + public static void oneTimeInitialization() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } + } + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mInterceptor = new KeyboardInterceptor(mMockAms, mMockPolicy, mHandler); + } + + @Test + public void whenNonspecialKeyArrives_withNothingInQueue_eventGoesToAms() { + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_0); + mInterceptor.onKeyEvent(event, 0); + verify(mMockAms).notifyKeyEvent(argThat(matchesKeyEvent(event)), eq(0)); + } + + @Test + public void whenVolumeKeyArrives_andPolicySaysUseIt_eventGoesToAms() { + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_DOWN); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(0L); + mInterceptor.onKeyEvent(event, 0); + verify(mMockAms).notifyKeyEvent(argThat(matchesKeyEvent(event)), eq(0)); + } + + @Test + public void whenVolumeKeyArrives_andPolicySaysDropIt_eventDropped() { + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_UP); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(-1L); + mInterceptor.onKeyEvent(event, 0); + verify(mMockAms, times(0)).notifyKeyEvent(anyObject(), anyInt()); + assertFalse(mHandler.hasMessages()); + } + + @Test + public void whenVolumeKeyArrives_andPolicySaysDelayThenUse_eventQueuedThenSentToAms() { + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_UP); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(150L); + mInterceptor.onKeyEvent(event, 0); + + assertTrue(mHandler.hasMessages()); + verify(mMockAms, times(0)).notifyKeyEvent(anyObject(), anyInt()); + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(0L); + mHandler.sendAllMessages(); + + verify(mMockAms).notifyKeyEvent(argThat(matchesKeyEvent(event)), eq(0)); + } + + @Test + public void whenVolumeKeyArrives_andPolicySaysDelayThenDrop_eventQueuedThenDropped() { + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_DOWN); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(150L); + mInterceptor.onKeyEvent(event, 0); + + assertTrue(mHandler.hasMessages()); + verify(mMockAms, times(0)).notifyKeyEvent(anyObject(), anyInt()); + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(event)), eq(0))).thenReturn(-1L); + mHandler.sendAllMessages(); + + verify(mMockAms, times(0)).notifyKeyEvent(anyObject(), anyInt()); + } + + @Test + public void whenSomeEventsGetDelayed_allEventsStillInOrder() { + KeyEvent[] events = {new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_0), + new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_UP), + new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_A), + new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_VOLUME_UP), + new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_0)}; + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[1])), eq(0))).thenReturn(150L); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[3])), eq(0))).thenReturn(75L); + + for (KeyEvent event : events) { + mInterceptor.onKeyEvent(event, 0); + } + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[1])), eq(0))).thenReturn(0L); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[3])), eq(0))).thenReturn(0L); + + mHandler.sendAllMessages(); + + InOrder inOrder = Mockito.inOrder(mMockAms); + for (KeyEvent event : events) { + inOrder.verify(mMockAms).notifyKeyEvent(argThat(matchesKeyEvent(event)), eq(0)); + } + } + + @Test + public void whenSomeEventsGetDropped_otherEventsStillInOrder() { + KeyEvent[] events = {new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_0), + new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_UP), + new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_A), + new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_VOLUME_UP), + new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_0)}; + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[1])), eq(0))).thenReturn(150L); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[3])), eq(0))).thenReturn(75L); + + for (KeyEvent event : events) { + mInterceptor.onKeyEvent(event, 0); + } + + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[1])), eq(0))).thenReturn(-1L); + when(mMockPolicy.interceptKeyBeforeDispatching((WindowState) argThat(nullValue()), + argThat(matchesKeyEvent(events[3])), eq(0))).thenReturn(-1L); + + mHandler.sendAllMessages(); + + InOrder inOrder = Mockito.inOrder(mMockAms); + for (KeyEvent event : events) { + if ((event == events[1]) || (event == events[3])) continue; + inOrder.verify(mMockAms).notifyKeyEvent(argThat(matchesKeyEvent(event)), eq(0)); + } + } + + private static KeyEventMatcher matchesKeyEvent(KeyEvent event) { + return new KeyEventMatcher(event); + } + + private static class KeyEventMatcher extends TypeSafeMatcher<KeyEvent> { + private KeyEvent mEventToMatch; + + public KeyEventMatcher(KeyEvent eventToMatch) { + mEventToMatch = eventToMatch; + } + + @Override + protected boolean matchesSafely(KeyEvent item) { + return (mEventToMatch.getKeyCode() == item.getKeyCode()) + && (mEventToMatch.getAction() == item.getAction()); + } + + @Override + public void describeTo(Description description) { + description.appendText("Matches key event"); + } + } +}
\ No newline at end of file diff --git a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java index c457cb30a2d3..a4e56fc9f745 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java +++ b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java @@ -381,6 +381,11 @@ class TestWindowManagerPolicy implements WindowManagerPolicy { } @Override + public boolean isInteractive() { + return true; + } + + @Override public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) { } diff --git a/services/usage/java/com/android/server/usage/StorageStatsService.java b/services/usage/java/com/android/server/usage/StorageStatsService.java index 9f4fb85f64c4..21b11b058160 100644 --- a/services/usage/java/com/android/server/usage/StorageStatsService.java +++ b/services/usage/java/com/android/server/usage/StorageStatsService.java @@ -392,6 +392,7 @@ public class StorageStatsService extends IStorageStatsManager.Stub { res.videoBytes = stats[2]; res.imageBytes = stats[3]; res.appBytes = stats[4]; + res.obbBytes = stats[5]; return res; } diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 52b64b65404e..9c712f4c4ca2 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1580,7 +1580,7 @@ public class CarrierConfigManager { sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING, ""); sDefaults.putBoolean(KEY_CSP_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_ALLOW_ADDING_APNS_BOOL, true); - sDefaults.putStringArray(KEY_READ_ONLY_APN_TYPES_STRING_ARRAY, null); + sDefaults.putStringArray(KEY_READ_ONLY_APN_TYPES_STRING_ARRAY, new String[] {"dun"}); sDefaults.putStringArray(KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY, null); sDefaults.putBoolean(KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL, false); sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false); diff --git a/telephony/java/android/telephony/MbmsStreamingManager.java b/telephony/java/android/telephony/MbmsStreamingManager.java index fb3d5025dafa..8cc447e4db7a 100644 --- a/telephony/java/android/telephony/MbmsStreamingManager.java +++ b/telephony/java/android/telephony/MbmsStreamingManager.java @@ -142,7 +142,8 @@ public class MbmsStreamingManager { * Starts streaming a requested service, reporting status to the indicated listener. * Returns an object used to control that stream. The stream may not be ready for consumption * immediately upon return from this method -- wait until the streaming state has been - * reported via {@link android.telephony.mbms.StreamingServiceCallback#streamStateUpdated(int)} + * reported via + * {@link android.telephony.mbms.StreamingServiceCallback#streamStateUpdated(int, int)} * * May throw an {@link MbmsException} containing any of the following error codes: * {@link MbmsException#ERROR_MIDDLEWARE_NOT_BOUND} diff --git a/telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl b/telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl index 94c80f485fc6..0952fbea881d 100755 --- a/telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl +++ b/telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl @@ -21,7 +21,7 @@ package android.telephony.mbms; */ oneway interface IStreamingServiceCallback { void error(int errorCode, String message); - void streamStateUpdated(int state); + void streamStateUpdated(int state, int reason); void mediaDescriptionUpdated(); void broadcastSignalStrengthUpdated(int signalStrength); void streamMethodUpdated(int methodType); diff --git a/telephony/java/android/telephony/mbms/StreamingService.java b/telephony/java/android/telephony/mbms/StreamingService.java index 85731a14277f..475c93aa0eb5 100644 --- a/telephony/java/android/telephony/mbms/StreamingService.java +++ b/telephony/java/android/telephony/mbms/StreamingService.java @@ -16,12 +16,16 @@ package android.telephony.mbms; +import android.annotation.IntDef; import android.net.Uri; import android.os.DeadObjectException; import android.os.RemoteException; import android.telephony.mbms.vendor.IMbmsStreamingService; import android.util.Log; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * @hide */ @@ -30,12 +34,31 @@ public class StreamingService { /** * The state of a stream, reported via {@link StreamingServiceCallback#streamStateUpdated} + * @hide */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({STATE_STOPPED, STATE_STARTED, STATE_STALLED}) + public @interface StreamingState {} public final static int STATE_STOPPED = 1; public final static int STATE_STARTED = 2; public final static int STATE_STALLED = 3; /** + * The reason for a stream state change, reported via + * {@link StreamingServiceCallback#streamStateUpdated} + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({REASON_BY_USER_REQUEST, REASON_END_OF_SESSION, REASON_FREQUENCY_CONFLICT, + REASON_OUT_OF_MEMORY, REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE}) + public @interface StreamingStateChangeReason {} + public static final int REASON_BY_USER_REQUEST = 1; + public static final int REASON_END_OF_SESSION = 2; + public static final int REASON_FREQUENCY_CONFLICT = 3; + public static final int REASON_OUT_OF_MEMORY = 4; + public static final int REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE = 5; + + /** * The method of transmission currently used for a stream, * reported via {@link StreamingServiceCallback#streamMethodUpdated} */ diff --git a/telephony/java/android/telephony/mbms/StreamingServiceCallback.java b/telephony/java/android/telephony/mbms/StreamingServiceCallback.java index fdfb18888cb0..cab9c23499ea 100644 --- a/telephony/java/android/telephony/mbms/StreamingServiceCallback.java +++ b/telephony/java/android/telephony/mbms/StreamingServiceCallback.java @@ -31,6 +31,7 @@ public class StreamingServiceCallback extends IStreamingServiceCallback.Stub { */ public static final int SIGNAL_STRENGTH_UNAVAILABLE = -1; + @Override public void error(int errorCode, String message) { // default implementation empty } @@ -41,7 +42,9 @@ public class StreamingServiceCallback extends IStreamingServiceCallback.Stub { * See {@link StreamingService#STATE_STOPPED}, {@link StreamingService#STATE_STARTED} * and {@link StreamingService#STATE_STALLED}. */ - public void streamStateUpdated(int state) { + @Override + public void streamStateUpdated(@StreamingService.StreamingState int state, + @StreamingService.StreamingStateChangeReason int reason) { // default implementation empty } @@ -55,6 +58,7 @@ public class StreamingServiceCallback extends IStreamingServiceCallback.Stub { * This may be called when a looping stream hits the end or * when parameters have changed to account for time drift. */ + @Override public void mediaDescriptionUpdated() { // default implementation empty } @@ -69,6 +73,7 @@ public class StreamingServiceCallback extends IStreamingServiceCallback.Stub { * {@link #SIGNAL_STRENGTH_UNAVAILABLE} if broadcast is not available * for this service due to timing, geography or popularity. */ + @Override public void broadcastSignalStrengthUpdated(int signalStrength) { // default implementation empty } @@ -89,6 +94,7 @@ public class StreamingServiceCallback extends IStreamingServiceCallback.Stub { * See {@link StreamingService#BROADCAST_METHOD} and * {@link StreamingService#UNICAST_METHOD} */ + @Override public void streamMethodUpdated(int methodType) { // default implementation empty } diff --git a/telephony/java/android/telephony/mbms/vendor/MbmsStreamingServiceBase.java b/telephony/java/android/telephony/mbms/vendor/MbmsStreamingServiceBase.java index b6cf628d4036..c97e754d1dd5 100644 --- a/telephony/java/android/telephony/mbms/vendor/MbmsStreamingServiceBase.java +++ b/telephony/java/android/telephony/mbms/vendor/MbmsStreamingServiceBase.java @@ -72,7 +72,7 @@ public class MbmsStreamingServiceBase extends IMbmsStreamingService.Stub { /** * Starts streaming on a particular service. This method may perform asynchronous work. When * the middleware is ready to send bits to the frontend, it should inform the app via - * {@link IStreamingServiceCallback#streamStateUpdated(int)}. + * {@link IStreamingServiceCallback#streamStateUpdated(int, int)}. * * May throw an {@link IllegalArgumentException} or an {@link IllegalStateException} * @@ -107,7 +107,7 @@ public class MbmsStreamingServiceBase extends IMbmsStreamingService.Stub { /** * Stop streaming the stream identified by {@code serviceId}. Notification of the resulting * stream state change should be reported to the app via - * {@link IStreamingServiceCallback#streamStateUpdated(int)}. + * {@link IStreamingServiceCallback#streamStateUpdated(int, int)}. * * May throw an {@link IllegalArgumentException} or an {@link IllegalStateException} * diff --git a/tests/Internal/Android.mk b/tests/Internal/Android.mk index f59a6240f897..fc001e928e80 100644 --- a/tests/Internal/Android.mk +++ b/tests/Internal/Android.mk @@ -10,7 +10,10 @@ LOCAL_PROTOC_OPTIMIZE_TYPE := nano LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_JAVA_LIBRARIES := android.test.runner -LOCAL_STATIC_JAVA_LIBRARIES := junit legacy-android-test android-support-test +LOCAL_STATIC_JAVA_LIBRARIES := junit \ + legacy-android-test \ + android-support-test \ + mockito-target-minus-junit4 LOCAL_CERTIFICATE := platform diff --git a/packages/SystemUI/colorextraction/tests/src/com/google/android/colorextraction/ColorExtractorTest.java b/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java index b5f4a8c80c53..71821472f55e 100644 --- a/packages/SystemUI/colorextraction/tests/src/com/google/android/colorextraction/ColorExtractorTest.java +++ b/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java @@ -13,16 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License */ -package com.google.android.colorextraction; +package com.android.internal.colorextraction; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.app.WallpaperColors; import android.app.WallpaperManager; import android.content.Context; import android.graphics.Color; @@ -30,9 +29,10 @@ import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import com.google.android.colorextraction.ColorExtractor.GradientColors; -import com.google.android.colorextraction.types.ExtractionType; -import com.google.android.colorextraction.types.Tonal; +import com.android.internal.colorextraction.ColorExtractor; +import com.android.internal.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.colorextraction.types.ExtractionType; +import com.android.internal.colorextraction.types.Tonal; import org.junit.Before; import org.junit.Test; diff --git a/packages/SystemUI/colorextraction/tests/src/com/google/android/colorextraction/types/TonalTest.java b/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java index 404076cb5301..1e3e8e91d9ef 100644 --- a/packages/SystemUI/colorextraction/tests/src/com/google/android/colorextraction/types/TonalTest.java +++ b/tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License */ -package com.google.android.colorextraction.types; +package com.android.internal.colorextraction.types; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -22,19 +22,15 @@ import android.app.WallpaperColors; import android.graphics.Color; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import android.support.v4.graphics.ColorUtils; -import android.util.Pair; import android.util.Range; -import com.google.android.colorextraction.ColorExtractor; -import com.google.android.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.colorextraction.ColorExtractor.GradientColors; +import com.android.internal.graphics.ColorUtils; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * Tests tonal palette generation. @@ -71,9 +67,8 @@ public class TonalTest { public void colorRange_excludeBlacklistedColor() { // Creating a WallpaperColors object that contains *only* blacklisted colors float[] hsl = Tonal.BLACKLISTED_COLORS[0].getCenter(); - ArrayList<Pair<Color, Integer>> blacklistedColorList = new ArrayList<>(); - blacklistedColorList.add(new Pair<>(Color.valueOf(ColorUtils.HSLToColor(hsl)), 1)); - WallpaperColors colors = new WallpaperColors(blacklistedColorList); + WallpaperColors colors = new WallpaperColors(Color.valueOf(ColorUtils.HSLToColor(hsl)), + null, null, 0); // Make sure that palette generation will fail Tonal tonal = new Tonal(); diff --git a/tools/aapt/pseudolocalize.cpp b/tools/aapt/pseudolocalize.cpp index c7fee2c19342..5c47e0fa8a16 100644 --- a/tools/aapt/pseudolocalize.cpp +++ b/tools/aapt/pseudolocalize.cpp @@ -360,9 +360,15 @@ String16 PseudoMethodBidi::text(const String16& source) String16 result; bool lastspace = true; bool space = true; + bool escape = false; + const char16_t ESCAPE_CHAR = '\\'; for (size_t i=0; i<source.size(); i++) { char16_t c = s[i]; - space = is_space(c); + if (!escape && c == ESCAPE_CHAR) { + escape = true; + continue; + } + space = (!escape && is_space(c)) || (escape && (c == 'n' || c == 't')); if (lastspace && !space) { // Word start result += k_rlm + k_rlo; @@ -371,6 +377,10 @@ String16 PseudoMethodBidi::text(const String16& source) result += k_pdf + k_rlm; } lastspace = space; + if (escape) { + result.append(&ESCAPE_CHAR, 1); + escape=false; + } result.append(&c, 1); } if (!lastspace) { diff --git a/tools/aapt/tests/Pseudolocales_test.cpp b/tools/aapt/tests/Pseudolocales_test.cpp index 4670e9fd53ea..a6aed3abd7cf 100644 --- a/tools/aapt/tests/Pseudolocales_test.cpp +++ b/tools/aapt/tests/Pseudolocales_test.cpp @@ -87,6 +87,10 @@ TEST(Pseudolocales, PlaintextBidi) { "\xe2\x80\x8f\xE2\x80\xaehello\xE2\x80\xac\xe2\x80\x8f\n" \ " \xe2\x80\x8f\xE2\x80\xaeworld\xE2\x80\xac\xe2\x80\x8f\n", PSEUDO_BIDI); + simple_helper("hello\\nworld\\n", + "\xe2\x80\x8f\xE2\x80\xaehello\xE2\x80\xac\xe2\x80\x8f\\n" + "\xe2\x80\x8f\xE2\x80\xaeworld\xE2\x80\xac\xe2\x80\x8f\\n", + PSEUDO_BIDI); } TEST(Pseudolocales, SimpleICU) { diff --git a/tools/aapt2/Android.bp b/tools/aapt2/Android.bp index d39a8a8237b7..14d05fdf6ee8 100644 --- a/tools/aapt2/Android.bp +++ b/tools/aapt2/Android.bp @@ -111,6 +111,8 @@ cc_library_host_static { "proto/TableProtoDeserializer.cpp", "proto/TableProtoSerializer.cpp", "split/TableSplitter.cpp", + "text/Unicode.cpp", + "text/Utf8Iterator.cpp", "unflatten/BinaryResourceParser.cpp", "unflatten/ResChunkPullParser.cpp", "util/BigBuffer.cpp", diff --git a/tools/aapt2/OWNERS b/tools/aapt2/OWNERS new file mode 100644 index 000000000000..d76233ec78ba --- /dev/null +++ b/tools/aapt2/OWNERS @@ -0,0 +1,2 @@ +set noparent +adamlesinski@google.com diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp index e18914410871..d47a529036bc 100644 --- a/tools/aapt2/ResourceParser_test.cpp +++ b/tools/aapt2/ResourceParser_test.cpp @@ -95,6 +95,11 @@ TEST_F(ResourceParserTest, ParseEscapedString) { ASSERT_THAT(str, NotNull()); EXPECT_THAT(*str, StrValueEq("?123")); EXPECT_THAT(str->untranslatable_sections, IsEmpty()); + + ASSERT_TRUE(TestParse(R"(<string name="bar">This isn\’t a bad string</string>)")); + str = test::GetValue<String>(&table_, "string/bar"); + ASSERT_THAT(str, NotNull()); + EXPECT_THAT(*str, StrValueEq("This isn’t a bad string")); } TEST_F(ResourceParserTest, ParseFormattedString) { diff --git a/tools/aapt2/ResourceTable.cpp b/tools/aapt2/ResourceTable.cpp index 168004f0b721..ab59560d33a3 100644 --- a/tools/aapt2/ResourceTable.cpp +++ b/tools/aapt2/ResourceTable.cpp @@ -15,20 +15,24 @@ */ #include "ResourceTable.h" -#include "ConfigDescription.h" -#include "NameMangler.h" -#include "ResourceValues.h" -#include "ValueVisitor.h" -#include "util/Util.h" -#include <android-base/logging.h> -#include <androidfw/ResourceTypes.h> #include <algorithm> #include <memory> #include <string> #include <tuple> -using android::StringPiece; +#include "android-base/logging.h" +#include "androidfw/ResourceTypes.h" + +#include "ConfigDescription.h" +#include "NameMangler.h" +#include "ResourceValues.h" +#include "ValueVisitor.h" +#include "text/Unicode.h" +#include "util/Util.h" + +using ::aapt::text::IsValidResourceEntryName; +using ::android::StringPiece; namespace aapt { @@ -283,12 +287,9 @@ ResourceTable::CollisionResult ResourceTable::ResolveValueCollision(Value* exist return CollisionResult::kConflict; } -static constexpr const char* kValidNameChars = "._-"; - static StringPiece ValidateName(const StringPiece& name) { - auto iter = util::FindNonAlphaNumericAndNotInSet(name, kValidNameChars); - if (iter != name.end()) { - return StringPiece(iter, 1); + if (!IsValidResourceEntryName(name)) { + return name; } return {}; } diff --git a/tools/aapt2/compile/Pseudolocalizer.cpp b/tools/aapt2/compile/Pseudolocalizer.cpp index 15a3d8c289e2..3a515fad3202 100644 --- a/tools/aapt2/compile/Pseudolocalizer.cpp +++ b/tools/aapt2/compile/Pseudolocalizer.cpp @@ -445,9 +445,15 @@ std::string PseudoMethodBidi::Text(const StringPiece& source) { std::string result; bool lastspace = true; bool space = true; + bool escape = false; + const char ESCAPE_CHAR = '\\'; for (size_t i = 0; i < source.size(); i++) { char c = s[i]; - space = isspace(c); + if (!escape && c == ESCAPE_CHAR) { + escape = true; + continue; + } + space = (!escape && isspace(c)) || (escape && (c == 'n' || c == 't')); if (lastspace && !space) { // Word start result += kRlm + kRlo; @@ -456,6 +462,10 @@ std::string PseudoMethodBidi::Text(const StringPiece& source) { result += kPdf + kRlm; } lastspace = space; + if (escape) { + result.append(&ESCAPE_CHAR, 1); + escape=false; + } result.append(&c, 1); } if (!lastspace) { diff --git a/tools/aapt2/compile/Pseudolocalizer_test.cpp b/tools/aapt2/compile/Pseudolocalizer_test.cpp index d3b7b02d1abb..65d2472ef2a9 100644 --- a/tools/aapt2/compile/Pseudolocalizer_test.cpp +++ b/tools/aapt2/compile/Pseudolocalizer_test.cpp @@ -97,6 +97,11 @@ TEST(PseudolocalizerTest, PlaintextBidi) { "\xe2\x80\x8f\xE2\x80\xaehello\xE2\x80\xac\xe2\x80\x8f\n" " \xe2\x80\x8f\xE2\x80\xaeworld\xE2\x80\xac\xe2\x80\x8f\n", Pseudolocalizer::Method::kBidi)); + EXPECT_TRUE( + SimpleHelper("hello\\nworld\\n", + "\xe2\x80\x8f\xE2\x80\xaehello\xE2\x80\xac\xe2\x80\x8f\\n" + "\xe2\x80\x8f\xE2\x80\xaeworld\xE2\x80\xac\xe2\x80\x8f\\n", + Pseudolocalizer::Method::kBidi)); } TEST(PseudolocalizerTest, SimpleICU) { diff --git a/tools/aapt2/flatten/XmlFlattener.cpp b/tools/aapt2/flatten/XmlFlattener.cpp index 0711749d0378..bfebedef2a1e 100644 --- a/tools/aapt2/flatten/XmlFlattener.cpp +++ b/tools/aapt2/flatten/XmlFlattener.cpp @@ -257,9 +257,11 @@ class XmlFlattenerVisitor : public xml::Visitor { // Process plain strings to make sure they get properly escaped. StringPiece raw_value = xml_attr->value; - util::StringBuilder str_builder; + + util::StringBuilder str_builder(true /*preserve_spaces*/); + str_builder.Append(xml_attr->value); + if (!options_.keep_raw_values) { - str_builder.Append(xml_attr->value); raw_value = str_builder.ToString(); } diff --git a/tools/aapt2/flatten/XmlFlattener_test.cpp b/tools/aapt2/flatten/XmlFlattener_test.cpp index f1e903f2151e..a57e3178accd 100644 --- a/tools/aapt2/flatten/XmlFlattener_test.cpp +++ b/tools/aapt2/flatten/XmlFlattener_test.cpp @@ -23,7 +23,13 @@ #include "util/BigBuffer.h" #include "util/Util.h" -using android::StringPiece16; +using ::aapt::test::StrEq; +using ::android::StringPiece16; +using ::testing::Eq; +using ::testing::Ge; +using ::testing::IsNull; +using ::testing::Ne; +using ::testing::NotNull; namespace aapt { @@ -72,163 +78,138 @@ class XmlFlattenerTest : public ::testing::Test { }; TEST_F(XmlFlattenerTest, FlattenXmlWithNoCompiledAttributes) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"EOF( - <View xmlns:test="http://com.test" - attr="hey"> - <Layout test:hello="hi" /> - <Layout>Some text\\</Layout> - </View>)EOF"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"( + <View xmlns:test="http://com.test" attr="hey"> + <Layout test:hello="hi" /> + <Layout>Some text\\</Layout> + </View>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); - - ASSERT_EQ(android::ResXMLTree::START_NAMESPACE, tree.next()); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_NAMESPACE)); size_t len; - const char16_t* namespace_prefix = tree.getNamespacePrefix(&len); - EXPECT_EQ(StringPiece16(u"test"), StringPiece16(namespace_prefix, len)); - - const char16_t* namespace_uri = tree.getNamespaceUri(&len); - ASSERT_EQ(StringPiece16(u"http://com.test"), StringPiece16(namespace_uri, len)); - - ASSERT_EQ(android::ResXMLTree::START_TAG, tree.next()); - - ASSERT_EQ(nullptr, tree.getElementNamespace(&len)); - const char16_t* tag_name = tree.getElementName(&len); - EXPECT_EQ(StringPiece16(u"View"), StringPiece16(tag_name, len)); - - ASSERT_EQ(1u, tree.getAttributeCount()); - ASSERT_EQ(nullptr, tree.getAttributeNamespace(0, &len)); - const char16_t* attr_name = tree.getAttributeName(0, &len); - EXPECT_EQ(StringPiece16(u"attr"), StringPiece16(attr_name, len)); - - EXPECT_EQ(0, tree.indexOfAttribute(nullptr, 0, u"attr", StringPiece16(u"attr").size())); + EXPECT_THAT(tree.getNamespacePrefix(&len), StrEq(u"test")); + EXPECT_THAT(tree.getNamespaceUri(&len), StrEq(u"http://com.test")); - ASSERT_EQ(android::ResXMLTree::START_TAG, tree.next()); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_TAG)); + EXPECT_THAT(tree.getElementNamespace(&len), IsNull()); + EXPECT_THAT(tree.getElementName(&len), StrEq(u"View")); - ASSERT_EQ(nullptr, tree.getElementNamespace(&len)); - tag_name = tree.getElementName(&len); - EXPECT_EQ(StringPiece16(u"Layout"), StringPiece16(tag_name, len)); + ASSERT_THAT(tree.getAttributeCount(), Eq(1u)); + EXPECT_THAT(tree.getAttributeNamespace(0, &len), IsNull()); + EXPECT_THAT(tree.getAttributeName(0, &len), StrEq(u"attr")); - ASSERT_EQ(1u, tree.getAttributeCount()); - const char16_t* attr_namespace = tree.getAttributeNamespace(0, &len); - EXPECT_EQ(StringPiece16(u"http://com.test"), StringPiece16(attr_namespace, len)); + const StringPiece16 kAttr(u"attr"); + EXPECT_THAT(tree.indexOfAttribute(nullptr, 0, kAttr.data(), kAttr.size()), Eq(0)); - attr_name = tree.getAttributeName(0, &len); - EXPECT_EQ(StringPiece16(u"hello"), StringPiece16(attr_name, len)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_TAG)); + EXPECT_THAT(tree.getElementNamespace(&len), IsNull()); + EXPECT_THAT(tree.getElementName(&len), StrEq(u"Layout")); - ASSERT_EQ(android::ResXMLTree::END_TAG, tree.next()); - ASSERT_EQ(android::ResXMLTree::START_TAG, tree.next()); + ASSERT_THAT(tree.getAttributeCount(), Eq(1u)); + EXPECT_THAT(tree.getAttributeNamespace(0, &len), StrEq(u"http://com.test")); + EXPECT_THAT(tree.getAttributeName(0, &len), StrEq(u"hello")); - ASSERT_EQ(nullptr, tree.getElementNamespace(&len)); - tag_name = tree.getElementName(&len); - EXPECT_EQ(StringPiece16(u"Layout"), StringPiece16(tag_name, len)); - ASSERT_EQ(0u, tree.getAttributeCount()); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::END_TAG)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_TAG)); - ASSERT_EQ(android::ResXMLTree::TEXT, tree.next()); - const char16_t* text = tree.getText(&len); - EXPECT_EQ(StringPiece16(u"Some text\\"), StringPiece16(text, len)); + EXPECT_THAT(tree.getElementNamespace(&len), IsNull()); + EXPECT_THAT(tree.getElementName(&len), StrEq(u"Layout")); + ASSERT_THAT(tree.getAttributeCount(), Eq(0u)); - ASSERT_EQ(android::ResXMLTree::END_TAG, tree.next()); - ASSERT_EQ(nullptr, tree.getElementNamespace(&len)); - tag_name = tree.getElementName(&len); - EXPECT_EQ(StringPiece16(u"Layout"), StringPiece16(tag_name, len)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::TEXT)); + EXPECT_THAT(tree.getText(&len), StrEq(u"Some text\\")); - ASSERT_EQ(android::ResXMLTree::END_TAG, tree.next()); - ASSERT_EQ(nullptr, tree.getElementNamespace(&len)); - tag_name = tree.getElementName(&len); - EXPECT_EQ(StringPiece16(u"View"), StringPiece16(tag_name, len)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::END_TAG)); + EXPECT_THAT(tree.getElementNamespace(&len), IsNull()); + EXPECT_THAT(tree.getElementName(&len), StrEq(u"Layout")); - ASSERT_EQ(android::ResXMLTree::END_NAMESPACE, tree.next()); - namespace_prefix = tree.getNamespacePrefix(&len); - EXPECT_EQ(StringPiece16(u"test"), StringPiece16(namespace_prefix, len)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::END_TAG)); + EXPECT_THAT(tree.getElementNamespace(&len), IsNull()); + EXPECT_THAT(tree.getElementName(&len), StrEq(u"View")); - namespace_uri = tree.getNamespaceUri(&len); - ASSERT_EQ(StringPiece16(u"http://com.test"), StringPiece16(namespace_uri, len)); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::END_NAMESPACE)); + EXPECT_THAT(tree.getNamespacePrefix(&len), StrEq(u"test")); + EXPECT_THAT(tree.getNamespaceUri(&len), StrEq(u"http://com.test")); - ASSERT_EQ(android::ResXMLTree::END_DOCUMENT, tree.next()); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::END_DOCUMENT)); } TEST_F(XmlFlattenerTest, FlattenCompiledXmlAndStripOnlyTools) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"EOF( - <View xmlns:tools="http://schemas.android.com/tools" - xmlns:foo="http://schemas.android.com/foo" - foo:bar="Foo" - tools:ignore="MissingTranslation"/>)EOF"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"( + <View xmlns:tools="http://schemas.android.com/tools" + xmlns:foo="http://schemas.android.com/foo" + foo:bar="Foo" + tools:ignore="MissingTranslation"/>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); - - ASSERT_EQ(tree.next(), android::ResXMLTree::START_NAMESPACE); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_NAMESPACE)); size_t len; - const char16_t* namespace_prefix = tree.getNamespacePrefix(&len); - EXPECT_EQ(StringPiece16(namespace_prefix, len), u"foo"); - - const char16_t* namespace_uri = tree.getNamespaceUri(&len); - ASSERT_EQ(StringPiece16(namespace_uri, len), - u"http://schemas.android.com/foo"); - - ASSERT_EQ(tree.next(), android::ResXMLTree::START_TAG); + EXPECT_THAT(tree.getNamespacePrefix(&len), StrEq(u"foo")); + EXPECT_THAT(tree.getNamespaceUri(&len), StrEq(u"http://schemas.android.com/foo")); + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::START_TAG)); - EXPECT_EQ(tree.indexOfAttribute("http://schemas.android.com/tools", "ignore"), - android::NAME_NOT_FOUND); - EXPECT_GE(tree.indexOfAttribute("http://schemas.android.com/foo", "bar"), 0); + EXPECT_THAT(tree.indexOfAttribute("http://schemas.android.com/tools", "ignore"), + Eq(android::NAME_NOT_FOUND)); + EXPECT_THAT(tree.indexOfAttribute("http://schemas.android.com/foo", "bar"), Ge(0)); } TEST_F(XmlFlattenerTest, AssignSpecialAttributeIndices) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"EOF( - <View xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@id/id" - class="str" - style="@id/id"/>)EOF"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"( + <View xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@id/id" + class="str" + style="@id/id"/>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); while (tree.next() != android::ResXMLTree::START_TAG) { - ASSERT_NE(tree.getEventType(), android::ResXMLTree::BAD_DOCUMENT); - ASSERT_NE(tree.getEventType(), android::ResXMLTree::END_DOCUMENT); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::BAD_DOCUMENT)); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::END_DOCUMENT)); } - EXPECT_EQ(tree.indexOfClass(), 0); - EXPECT_EQ(tree.indexOfStyle(), 1); + EXPECT_THAT(tree.indexOfClass(), Eq(0)); + EXPECT_THAT(tree.indexOfStyle(), Eq(1)); } // The device ResXMLParser in libandroidfw differentiates between empty namespace and null // namespace. TEST_F(XmlFlattenerTest, NoNamespaceIsNotTheSameAsEmptyNamespace) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom("<View package=\"android\"/>"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"(<View package="android"/>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); while (tree.next() != android::ResXMLTree::START_TAG) { - ASSERT_NE(tree.getEventType(), android::ResXMLTree::BAD_DOCUMENT); - ASSERT_NE(tree.getEventType(), android::ResXMLTree::END_DOCUMENT); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::BAD_DOCUMENT)); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::END_DOCUMENT)); } const StringPiece16 kPackage = u"package"; - EXPECT_GE(tree.indexOfAttribute(nullptr, 0, kPackage.data(), kPackage.size()), 0); + EXPECT_THAT(tree.indexOfAttribute(nullptr, 0, kPackage.data(), kPackage.size()), Ge(0)); } TEST_F(XmlFlattenerTest, EmptyStringValueInAttributeIsNotNull) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom("<View package=\"\"/>"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"(<View package=""/>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); while (tree.next() != android::ResXMLTree::START_TAG) { - ASSERT_NE(tree.getEventType(), android::ResXMLTree::BAD_DOCUMENT); - ASSERT_NE(tree.getEventType(), android::ResXMLTree::END_DOCUMENT); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::BAD_DOCUMENT)); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::END_DOCUMENT)); } const StringPiece16 kPackage = u"package"; ssize_t idx = tree.indexOfAttribute(nullptr, 0, kPackage.data(), kPackage.size()); - ASSERT_GE(idx, 0); + ASSERT_THAT(idx, Ge(0)); size_t len; - EXPECT_NE(nullptr, tree.getAttributeStringValue(idx, &len)); + EXPECT_THAT(tree.getAttributeStringValue(idx, &len), NotNull()); } TEST_F(XmlFlattenerTest, FlattenNonStandardPackageId) { @@ -236,11 +217,11 @@ TEST_F(XmlFlattenerTest, FlattenNonStandardPackageId) { context_->SetPackageId(0x80); context_->SetNameManglerPolicy({"com.app.test.feature"}); - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDomForPackageName(context_.get(), R"EOF( + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDomForPackageName(context_.get(), R"( <View xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@id/foo" - app:foo="@id/foo" />)EOF"); + app:foo="@id/foo" />)"); XmlReferenceLinker linker; ASSERT_TRUE(linker.Consume(context_.get(), doc.get())); @@ -253,59 +234,57 @@ TEST_F(XmlFlattenerTest, FlattenNonStandardPackageId) { ASSERT_TRUE(Flatten(doc.get(), &tree)); while (tree.next() != android::ResXMLTree::START_TAG) { - ASSERT_NE(android::ResXMLTree::BAD_DOCUMENT, tree.getEventType()); - ASSERT_NE(android::ResXMLTree::END_DOCUMENT, tree.getEventType()); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::BAD_DOCUMENT)); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::END_DOCUMENT)); } ssize_t idx; idx = tree.indexOfAttribute(xml::kSchemaAndroid, "id"); - ASSERT_GE(idx, 0); - EXPECT_EQ(idx, tree.indexOfID()); - EXPECT_EQ(ResourceId(0x010100d0), ResourceId(tree.getAttributeNameResID(idx))); + ASSERT_THAT(idx, Ge(0)); + EXPECT_THAT(tree.indexOfID(), Eq(idx)); + EXPECT_THAT(tree.getAttributeNameResID(idx), Eq(0x010100d0u)); idx = tree.indexOfAttribute(xml::kSchemaAuto, "foo"); - ASSERT_GE(idx, 0); - EXPECT_EQ(ResourceId(0x80010000), ResourceId(tree.getAttributeNameResID(idx))); - EXPECT_EQ(android::Res_value::TYPE_REFERENCE, tree.getAttributeDataType(idx)); - EXPECT_EQ(ResourceId(0x80020000), tree.getAttributeData(idx)); + ASSERT_THAT(idx, Ge(0)); + EXPECT_THAT(tree.getAttributeNameResID(idx), Eq(0x80010000u)); + EXPECT_THAT(tree.getAttributeDataType(idx), Eq(android::Res_value::TYPE_REFERENCE)); + EXPECT_THAT(tree.getAttributeData(idx), Eq(int32_t(0x80020000))); } TEST_F(XmlFlattenerTest, ProcessEscapedStrings) { std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom( - R"EOF(<element value="\?hello" pattern="\\d{5}">\\d{5}</element>)EOF"); + R"(<element value="\?hello" pattern="\\d{5}" other=""">\\d{5}</element>)"); android::ResXMLTree tree; ASSERT_TRUE(Flatten(doc.get(), &tree)); while (tree.next() != android::ResXMLTree::START_TAG) { - ASSERT_NE(tree.getEventType(), android::ResXMLTree::BAD_DOCUMENT); - ASSERT_NE(tree.getEventType(), android::ResXMLTree::END_DOCUMENT); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::BAD_DOCUMENT)); + ASSERT_THAT(tree.getEventType(), Ne(android::ResXMLTree::END_DOCUMENT)); } const StringPiece16 kValue = u"value"; const StringPiece16 kPattern = u"pattern"; + const StringPiece16 kOther = u"other"; size_t len; ssize_t idx; - const char16_t* str16; idx = tree.indexOfAttribute(nullptr, 0, kValue.data(), kValue.size()); - ASSERT_GE(idx, 0); - str16 = tree.getAttributeStringValue(idx, &len); - ASSERT_NE(nullptr, str16); - EXPECT_EQ(StringPiece16(u"?hello"), StringPiece16(str16, len)); + ASSERT_THAT(idx, Ge(0)); + EXPECT_THAT(tree.getAttributeStringValue(idx, &len), StrEq(u"?hello")); idx = tree.indexOfAttribute(nullptr, 0, kPattern.data(), kPattern.size()); - ASSERT_GE(idx, 0); - str16 = tree.getAttributeStringValue(idx, &len); - ASSERT_NE(nullptr, str16); - EXPECT_EQ(StringPiece16(u"\\d{5}"), StringPiece16(str16, len)); - - ASSERT_EQ(android::ResXMLTree::TEXT, tree.next()); - str16 = tree.getText(&len); - ASSERT_NE(nullptr, str16); - EXPECT_EQ(StringPiece16(u"\\d{5}"), StringPiece16(str16, len)); + ASSERT_THAT(idx, Ge(0)); + EXPECT_THAT(tree.getAttributeStringValue(idx, &len), StrEq(u"\\d{5}")); + + idx = tree.indexOfAttribute(nullptr, 0, kOther.data(), kOther.size()); + ASSERT_THAT(idx, Ge(0)); + EXPECT_THAT(tree.getAttributeStringValue(idx, &len), StrEq(u"\"")); + + ASSERT_THAT(tree.next(), Eq(android::ResXMLTree::TEXT)); + EXPECT_THAT(tree.getText(&len), StrEq(u"\\d{5}")); } } // namespace aapt diff --git a/tools/aapt2/readme.md b/tools/aapt2/readme.md index 8c476fac3b89..e128c13460d7 100644 --- a/tools/aapt2/readme.md +++ b/tools/aapt2/readme.md @@ -10,6 +10,9 @@ - Fixed issue where Java classes referenced from fragments and menus were not added to the set of Proguard keep rules. (bug 62216174) - Automatically version XML `<adaptive-icon>` resources to v26. (bug 62316340) +- Fixed issue where escaped unicode characters would generate malformed UTF-8. (bug 62839202) +- Fixed issue where apostrophes or quotes used in XML attribute values were ignored. + (bug 62840406, 62840718) ## Version 2.17 ### `aapt2 ...` diff --git a/tools/aapt2/test/Common.h b/tools/aapt2/test/Common.h index 11821031b131..d7b46caf8c94 100644 --- a/tools/aapt2/test/Common.h +++ b/tools/aapt2/test/Common.h @@ -136,6 +136,12 @@ void PrintTo(const Maybe<T>& value, std::ostream* out) { namespace test { +MATCHER_P(StrEq, a, + std::string(negation ? "isn't" : "is") + " equal to " + + ::testing::PrintToString(android::StringPiece16(a))) { + return android::StringPiece16(arg) == a; +} + MATCHER_P(ValueEq, a, std::string(negation ? "isn't" : "is") + " equal to " + ::testing::PrintToString(a)) { return arg.Equals(&a); diff --git a/tools/aapt2/text/Unicode.cpp b/tools/aapt2/text/Unicode.cpp new file mode 100644 index 000000000000..38ec9c465ec2 --- /dev/null +++ b/tools/aapt2/text/Unicode.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "text/Unicode.h" + +#include <algorithm> +#include <array> + +#include "text/Utf8Iterator.h" + +using ::android::StringPiece; + +namespace aapt { +namespace text { + +namespace { + +struct CharacterProperties { + enum : uint32_t { + kXidStart = 1 << 0, + kXidContinue = 1 << 1, + }; + + char32_t first_char; + char32_t last_char; + uint32_t properties; +}; + +// Incude the generated data table. +#include "text/Unicode_data.cpp" + +bool CompareCharacterProperties(const CharacterProperties& a, char32_t codepoint) { + return a.last_char < codepoint; +} + +uint32_t FindCharacterProperties(char32_t codepoint) { + const auto iter_end = sCharacterProperties.end(); + const auto iter = std::lower_bound(sCharacterProperties.begin(), iter_end, codepoint, + CompareCharacterProperties); + if (iter != iter_end && codepoint >= iter->first_char) { + return iter->properties; + } + return 0u; +} + +} // namespace + +bool IsXidStart(char32_t codepoint) { + return FindCharacterProperties(codepoint) & CharacterProperties::kXidStart; +} + +bool IsXidContinue(char32_t codepoint) { + return FindCharacterProperties(codepoint) & CharacterProperties::kXidContinue; +} + +bool IsJavaIdentifier(const StringPiece& str) { + Utf8Iterator iter(str); + + // Check the first character. + if (!iter.HasNext()) { + return false; + } + + if (!IsXidStart(iter.Next())) { + return false; + } + + while (iter.HasNext()) { + const char32_t codepoint = iter.Next(); + if (!IsXidContinue(codepoint) && codepoint != U'$') { + return false; + } + } + return true; +} + +bool IsValidResourceEntryName(const StringPiece& str) { + Utf8Iterator iter(str); + + // Check the first character. + if (!iter.HasNext()) { + return false; + } + + // Resources are allowed to start with '_' + const char32_t first_codepoint = iter.Next(); + if (!IsXidStart(first_codepoint) && first_codepoint != U'_') { + return false; + } + + while (iter.HasNext()) { + const char32_t codepoint = iter.Next(); + if (!IsXidContinue(codepoint) && codepoint != U'.' && codepoint != U'-') { + return false; + } + } + return true; +} + +} // namespace text +} // namespace aapt diff --git a/tools/aapt2/text/Unicode.h b/tools/aapt2/text/Unicode.h new file mode 100644 index 000000000000..270718734cff --- /dev/null +++ b/tools/aapt2/text/Unicode.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef AAPT_TEXT_UNICODE_H +#define AAPT_TEXT_UNICODE_H + +#include "androidfw/StringPiece.h" + +namespace aapt { +namespace text { + +// Returns true if the Unicode codepoint has the XID_Start property, meaning it can be used as the +// first character of a programming language identifier. +// http://unicode.org/reports/tr31/#Default_Identifier_Syntax +// +// XID_Start is a Unicode Derived Core Property. It is a variation of the ID_Start +// Derived Core Property, accounting for a few characters that, when normalized, yield valid +// characters in the ID_Start set. +bool IsXidStart(char32_t codepoint); + +// Returns true if the Unicode codepoint has the XID_Continue property, meaning it can be used in +// any position of a programming language identifier, except the first. +// http://unicode.org/reports/tr31/#Default_Identifier_Syntax +// +// XID_Continue is a Unicode Derived Core Property. It is a variation of the ID_Continue +// Derived Core Property, accounting for a few characters that, when normalized, yield valid +// characters in the ID_Continue set. +bool IsXidContinue(char32_t codepoint); + +// Returns true if the UTF8 string can be used as a Java identifier. +// NOTE: This does not check against the set of reserved Java keywords. +bool IsJavaIdentifier(const android::StringPiece& str); + +// Returns true if the UTF8 string can be used as the entry name of a resource name. +// This is the `entry` part of package:type/entry. +bool IsValidResourceEntryName(const android::StringPiece& str); + +} // namespace text +} // namespace aapt + +#endif // AAPT_TEXT_UNICODE_H diff --git a/tools/aapt2/text/Unicode_data.cpp b/tools/aapt2/text/Unicode_data.cpp new file mode 100644 index 000000000000..96dc57b84031 --- /dev/null +++ b/tools/aapt2/text/Unicode_data.cpp @@ -0,0 +1,629 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const static std::array<CharacterProperties, 611> sCharacterProperties = {{ + {0x0030, 0x0039, CharacterProperties::kXidContinue}, + {0x0041, 0x005a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x005f, 0x005f, CharacterProperties::kXidContinue}, + {0x0061, 0x007a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00aa, 0x00aa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00b5, 0x00b5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00b7, 0x00b7, CharacterProperties::kXidContinue}, + {0x00ba, 0x00ba, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00c0, 0x00d6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00d8, 0x00f6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x00f8, 0x02c1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x02c6, 0x02d1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x02e0, 0x02e4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x02ec, 0x02ec, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x02ee, 0x02ee, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0300, 0x036f, CharacterProperties::kXidContinue}, + {0x0370, 0x0374, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0376, 0x0377, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x037b, 0x037d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x037f, 0x037f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0386, 0x0386, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0387, 0x0387, CharacterProperties::kXidContinue}, + {0x0388, 0x038a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x038c, 0x038c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x038e, 0x03a1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x03a3, 0x03f5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x03f7, 0x0481, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0483, 0x0487, CharacterProperties::kXidContinue}, + {0x048a, 0x052f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0531, 0x0556, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0559, 0x0559, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0561, 0x0587, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0591, 0x05bd, CharacterProperties::kXidContinue}, + {0x05bf, 0x05bf, CharacterProperties::kXidContinue}, + {0x05c1, 0x05c2, CharacterProperties::kXidContinue}, + {0x05c4, 0x05c5, CharacterProperties::kXidContinue}, + {0x05c7, 0x05c7, CharacterProperties::kXidContinue}, + {0x05d0, 0x05ea, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x05f0, 0x05f2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0610, 0x061a, CharacterProperties::kXidContinue}, + {0x0620, 0x064a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x064b, 0x0669, CharacterProperties::kXidContinue}, + {0x066e, 0x066f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0670, 0x0670, CharacterProperties::kXidContinue}, + {0x0671, 0x06d3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x06d5, 0x06d5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x06d6, 0x06dc, CharacterProperties::kXidContinue}, + {0x06df, 0x06e4, CharacterProperties::kXidContinue}, + {0x06e5, 0x06e6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x06e7, 0x06e8, CharacterProperties::kXidContinue}, + {0x06ea, 0x06ed, CharacterProperties::kXidContinue}, + {0x06ee, 0x06ef, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x06f0, 0x06f9, CharacterProperties::kXidContinue}, + {0x06fa, 0x06fc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x06ff, 0x06ff, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0710, 0x0710, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0711, 0x0711, CharacterProperties::kXidContinue}, + {0x0712, 0x072f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0730, 0x074a, CharacterProperties::kXidContinue}, + {0x074d, 0x07a5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x07a6, 0x07b0, CharacterProperties::kXidContinue}, + {0x07b1, 0x07b1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x07c0, 0x07c9, CharacterProperties::kXidContinue}, + {0x07ca, 0x07ea, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x07eb, 0x07f3, CharacterProperties::kXidContinue}, + {0x07f4, 0x07f5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x07fa, 0x07fa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0800, 0x0815, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0816, 0x0819, CharacterProperties::kXidContinue}, + {0x081a, 0x081a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x081b, 0x0823, CharacterProperties::kXidContinue}, + {0x0824, 0x0824, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0825, 0x0827, CharacterProperties::kXidContinue}, + {0x0828, 0x0828, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0829, 0x082d, CharacterProperties::kXidContinue}, + {0x0840, 0x0858, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0859, 0x085b, CharacterProperties::kXidContinue}, + {0x08a0, 0x08b4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x08b6, 0x08bd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x08d4, 0x08e1, CharacterProperties::kXidContinue}, + {0x08e3, 0x0903, CharacterProperties::kXidContinue}, + {0x0904, 0x0939, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x093a, 0x093c, CharacterProperties::kXidContinue}, + {0x093d, 0x093d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x093e, 0x094f, CharacterProperties::kXidContinue}, + {0x0950, 0x0950, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0951, 0x0957, CharacterProperties::kXidContinue}, + {0x0958, 0x0961, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0962, 0x0963, CharacterProperties::kXidContinue}, + {0x0966, 0x096f, CharacterProperties::kXidContinue}, + {0x0971, 0x0980, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0981, 0x0983, CharacterProperties::kXidContinue}, + {0x0985, 0x098c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x098f, 0x0990, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0993, 0x09a8, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09aa, 0x09b0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09b2, 0x09b2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09b6, 0x09b9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09bc, 0x09bc, CharacterProperties::kXidContinue}, + {0x09bd, 0x09bd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09be, 0x09c4, CharacterProperties::kXidContinue}, + {0x09c7, 0x09c8, CharacterProperties::kXidContinue}, + {0x09cb, 0x09cd, CharacterProperties::kXidContinue}, + {0x09ce, 0x09ce, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09d7, 0x09d7, CharacterProperties::kXidContinue}, + {0x09dc, 0x09dd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09df, 0x09e1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x09e2, 0x09e3, CharacterProperties::kXidContinue}, + {0x09e6, 0x09ef, CharacterProperties::kXidContinue}, + {0x09f0, 0x09f1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a01, 0x0a03, CharacterProperties::kXidContinue}, + {0x0a05, 0x0a0a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a0f, 0x0a10, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a13, 0x0a28, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a2a, 0x0a30, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a32, 0x0a33, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a35, 0x0a36, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a38, 0x0a39, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a3c, 0x0a3c, CharacterProperties::kXidContinue}, + {0x0a3e, 0x0a42, CharacterProperties::kXidContinue}, + {0x0a47, 0x0a48, CharacterProperties::kXidContinue}, + {0x0a4b, 0x0a4d, CharacterProperties::kXidContinue}, + {0x0a51, 0x0a51, CharacterProperties::kXidContinue}, + {0x0a59, 0x0a5c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a5e, 0x0a5e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a66, 0x0a71, CharacterProperties::kXidContinue}, + {0x0a72, 0x0a74, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a75, 0x0a75, CharacterProperties::kXidContinue}, + {0x0a81, 0x0a83, CharacterProperties::kXidContinue}, + {0x0a85, 0x0a8d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a8f, 0x0a91, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0a93, 0x0aa8, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0aaa, 0x0ab0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ab2, 0x0ab3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ab5, 0x0ab9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0abc, 0x0abc, CharacterProperties::kXidContinue}, + {0x0abd, 0x0abd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0abe, 0x0ac5, CharacterProperties::kXidContinue}, + {0x0ac7, 0x0ac9, CharacterProperties::kXidContinue}, + {0x0acb, 0x0acd, CharacterProperties::kXidContinue}, + {0x0ad0, 0x0ad0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ae0, 0x0ae1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ae2, 0x0ae3, CharacterProperties::kXidContinue}, + {0x0ae6, 0x0aef, CharacterProperties::kXidContinue}, + {0x0af9, 0x0af9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b01, 0x0b03, CharacterProperties::kXidContinue}, + {0x0b05, 0x0b0c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b0f, 0x0b10, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b13, 0x0b28, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b2a, 0x0b30, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b32, 0x0b33, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b35, 0x0b39, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b3c, 0x0b3c, CharacterProperties::kXidContinue}, + {0x0b3d, 0x0b3d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b3e, 0x0b44, CharacterProperties::kXidContinue}, + {0x0b47, 0x0b48, CharacterProperties::kXidContinue}, + {0x0b4b, 0x0b4d, CharacterProperties::kXidContinue}, + {0x0b56, 0x0b57, CharacterProperties::kXidContinue}, + {0x0b5c, 0x0b5d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b5f, 0x0b61, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b62, 0x0b63, CharacterProperties::kXidContinue}, + {0x0b66, 0x0b6f, CharacterProperties::kXidContinue}, + {0x0b71, 0x0b71, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b82, 0x0b82, CharacterProperties::kXidContinue}, + {0x0b83, 0x0b83, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b85, 0x0b8a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b8e, 0x0b90, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b92, 0x0b95, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b99, 0x0b9a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b9c, 0x0b9c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0b9e, 0x0b9f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ba3, 0x0ba4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ba8, 0x0baa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0bae, 0x0bb9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0bbe, 0x0bc2, CharacterProperties::kXidContinue}, + {0x0bc6, 0x0bc8, CharacterProperties::kXidContinue}, + {0x0bca, 0x0bcd, CharacterProperties::kXidContinue}, + {0x0bd0, 0x0bd0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0bd7, 0x0bd7, CharacterProperties::kXidContinue}, + {0x0be6, 0x0bef, CharacterProperties::kXidContinue}, + {0x0c00, 0x0c03, CharacterProperties::kXidContinue}, + {0x0c05, 0x0c0c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c0e, 0x0c10, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c12, 0x0c28, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c2a, 0x0c39, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c3d, 0x0c3d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c3e, 0x0c44, CharacterProperties::kXidContinue}, + {0x0c46, 0x0c48, CharacterProperties::kXidContinue}, + {0x0c4a, 0x0c4d, CharacterProperties::kXidContinue}, + {0x0c55, 0x0c56, CharacterProperties::kXidContinue}, + {0x0c58, 0x0c5a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c60, 0x0c61, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c62, 0x0c63, CharacterProperties::kXidContinue}, + {0x0c66, 0x0c6f, CharacterProperties::kXidContinue}, + {0x0c80, 0x0c80, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c81, 0x0c83, CharacterProperties::kXidContinue}, + {0x0c85, 0x0c8c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c8e, 0x0c90, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0c92, 0x0ca8, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0caa, 0x0cb3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0cb5, 0x0cb9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0cbc, 0x0cbc, CharacterProperties::kXidContinue}, + {0x0cbd, 0x0cbd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0cbe, 0x0cc4, CharacterProperties::kXidContinue}, + {0x0cc6, 0x0cc8, CharacterProperties::kXidContinue}, + {0x0cca, 0x0ccd, CharacterProperties::kXidContinue}, + {0x0cd5, 0x0cd6, CharacterProperties::kXidContinue}, + {0x0cde, 0x0cde, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ce0, 0x0ce1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ce2, 0x0ce3, CharacterProperties::kXidContinue}, + {0x0ce6, 0x0cef, CharacterProperties::kXidContinue}, + {0x0cf1, 0x0cf2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d01, 0x0d03, CharacterProperties::kXidContinue}, + {0x0d05, 0x0d0c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d0e, 0x0d10, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d12, 0x0d3a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d3d, 0x0d3d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d3e, 0x0d44, CharacterProperties::kXidContinue}, + {0x0d46, 0x0d48, CharacterProperties::kXidContinue}, + {0x0d4a, 0x0d4d, CharacterProperties::kXidContinue}, + {0x0d4e, 0x0d4e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d54, 0x0d56, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d57, 0x0d57, CharacterProperties::kXidContinue}, + {0x0d5f, 0x0d61, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d62, 0x0d63, CharacterProperties::kXidContinue}, + {0x0d66, 0x0d6f, CharacterProperties::kXidContinue}, + {0x0d7a, 0x0d7f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d82, 0x0d83, CharacterProperties::kXidContinue}, + {0x0d85, 0x0d96, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0d9a, 0x0db1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0db3, 0x0dbb, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0dbd, 0x0dbd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0dc0, 0x0dc6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0dca, 0x0dca, CharacterProperties::kXidContinue}, + {0x0dcf, 0x0dd4, CharacterProperties::kXidContinue}, + {0x0dd6, 0x0dd6, CharacterProperties::kXidContinue}, + {0x0dd8, 0x0ddf, CharacterProperties::kXidContinue}, + {0x0de6, 0x0def, CharacterProperties::kXidContinue}, + {0x0df2, 0x0df3, CharacterProperties::kXidContinue}, + {0x0e01, 0x0e30, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e31, 0x0e31, CharacterProperties::kXidContinue}, + {0x0e32, 0x0e32, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e33, 0x0e3a, CharacterProperties::kXidContinue}, + {0x0e40, 0x0e46, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e47, 0x0e4e, CharacterProperties::kXidContinue}, + {0x0e50, 0x0e59, CharacterProperties::kXidContinue}, + {0x0e81, 0x0e82, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e84, 0x0e84, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e87, 0x0e88, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e8a, 0x0e8a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e8d, 0x0e8d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e94, 0x0e97, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0e99, 0x0e9f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ea1, 0x0ea3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ea5, 0x0ea5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ea7, 0x0ea7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0eaa, 0x0eab, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ead, 0x0eb0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0eb1, 0x0eb1, CharacterProperties::kXidContinue}, + {0x0eb2, 0x0eb2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0eb3, 0x0eb9, CharacterProperties::kXidContinue}, + {0x0ebb, 0x0ebc, CharacterProperties::kXidContinue}, + {0x0ebd, 0x0ebd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ec0, 0x0ec4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ec6, 0x0ec6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0ec8, 0x0ecd, CharacterProperties::kXidContinue}, + {0x0ed0, 0x0ed9, CharacterProperties::kXidContinue}, + {0x0edc, 0x0edf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0f00, 0x0f00, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0f18, 0x0f19, CharacterProperties::kXidContinue}, + {0x0f20, 0x0f29, CharacterProperties::kXidContinue}, + {0x0f35, 0x0f35, CharacterProperties::kXidContinue}, + {0x0f37, 0x0f37, CharacterProperties::kXidContinue}, + {0x0f39, 0x0f39, CharacterProperties::kXidContinue}, + {0x0f3e, 0x0f3f, CharacterProperties::kXidContinue}, + {0x0f40, 0x0f47, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0f49, 0x0f6c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0f71, 0x0f84, CharacterProperties::kXidContinue}, + {0x0f86, 0x0f87, CharacterProperties::kXidContinue}, + {0x0f88, 0x0f8c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x0f8d, 0x0f97, CharacterProperties::kXidContinue}, + {0x0f99, 0x0fbc, CharacterProperties::kXidContinue}, + {0x0fc6, 0x0fc6, CharacterProperties::kXidContinue}, + {0x1000, 0x102a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x102b, 0x103e, CharacterProperties::kXidContinue}, + {0x103f, 0x103f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1040, 0x1049, CharacterProperties::kXidContinue}, + {0x1050, 0x1055, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1056, 0x1059, CharacterProperties::kXidContinue}, + {0x105a, 0x105d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x105e, 0x1060, CharacterProperties::kXidContinue}, + {0x1061, 0x1061, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1062, 0x1064, CharacterProperties::kXidContinue}, + {0x1065, 0x1066, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1067, 0x106d, CharacterProperties::kXidContinue}, + {0x106e, 0x1070, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1071, 0x1074, CharacterProperties::kXidContinue}, + {0x1075, 0x1081, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1082, 0x108d, CharacterProperties::kXidContinue}, + {0x108e, 0x108e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x108f, 0x109d, CharacterProperties::kXidContinue}, + {0x10a0, 0x10c5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x10c7, 0x10c7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x10cd, 0x10cd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x10d0, 0x10fa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x10fc, 0x1248, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x124a, 0x124d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1250, 0x1256, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1258, 0x1258, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x125a, 0x125d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1260, 0x1288, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x128a, 0x128d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1290, 0x12b0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12b2, 0x12b5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12b8, 0x12be, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12c0, 0x12c0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12c2, 0x12c5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12c8, 0x12d6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x12d8, 0x1310, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1312, 0x1315, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1318, 0x135a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x135d, 0x135f, CharacterProperties::kXidContinue}, + {0x1369, 0x1371, CharacterProperties::kXidContinue}, + {0x1380, 0x138f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x13a0, 0x13f5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x13f8, 0x13fd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1401, 0x166c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x166f, 0x167f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1681, 0x169a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x16a0, 0x16ea, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x16ee, 0x16f8, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1700, 0x170c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x170e, 0x1711, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1712, 0x1714, CharacterProperties::kXidContinue}, + {0x1720, 0x1731, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1732, 0x1734, CharacterProperties::kXidContinue}, + {0x1740, 0x1751, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1752, 0x1753, CharacterProperties::kXidContinue}, + {0x1760, 0x176c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x176e, 0x1770, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1772, 0x1773, CharacterProperties::kXidContinue}, + {0x1780, 0x17b3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x17b4, 0x17d3, CharacterProperties::kXidContinue}, + {0x17d7, 0x17d7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x17dc, 0x17dc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x17dd, 0x17dd, CharacterProperties::kXidContinue}, + {0x17e0, 0x17e9, CharacterProperties::kXidContinue}, + {0x180b, 0x180d, CharacterProperties::kXidContinue}, + {0x1810, 0x1819, CharacterProperties::kXidContinue}, + {0x1820, 0x1877, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1880, 0x18a8, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x18a9, 0x18a9, CharacterProperties::kXidContinue}, + {0x18aa, 0x18aa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x18b0, 0x18f5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1900, 0x191e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1920, 0x192b, CharacterProperties::kXidContinue}, + {0x1930, 0x193b, CharacterProperties::kXidContinue}, + {0x1946, 0x194f, CharacterProperties::kXidContinue}, + {0x1950, 0x196d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1970, 0x1974, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1980, 0x19ab, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x19b0, 0x19c9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x19d0, 0x19da, CharacterProperties::kXidContinue}, + {0x1a00, 0x1a16, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1a17, 0x1a1b, CharacterProperties::kXidContinue}, + {0x1a20, 0x1a54, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1a55, 0x1a5e, CharacterProperties::kXidContinue}, + {0x1a60, 0x1a7c, CharacterProperties::kXidContinue}, + {0x1a7f, 0x1a89, CharacterProperties::kXidContinue}, + {0x1a90, 0x1a99, CharacterProperties::kXidContinue}, + {0x1aa7, 0x1aa7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1ab0, 0x1abd, CharacterProperties::kXidContinue}, + {0x1b00, 0x1b04, CharacterProperties::kXidContinue}, + {0x1b05, 0x1b33, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1b34, 0x1b44, CharacterProperties::kXidContinue}, + {0x1b45, 0x1b4b, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1b50, 0x1b59, CharacterProperties::kXidContinue}, + {0x1b6b, 0x1b73, CharacterProperties::kXidContinue}, + {0x1b80, 0x1b82, CharacterProperties::kXidContinue}, + {0x1b83, 0x1ba0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1ba1, 0x1bad, CharacterProperties::kXidContinue}, + {0x1bae, 0x1baf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1bb0, 0x1bb9, CharacterProperties::kXidContinue}, + {0x1bba, 0x1be5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1be6, 0x1bf3, CharacterProperties::kXidContinue}, + {0x1c00, 0x1c23, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1c24, 0x1c37, CharacterProperties::kXidContinue}, + {0x1c40, 0x1c49, CharacterProperties::kXidContinue}, + {0x1c4d, 0x1c4f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1c50, 0x1c59, CharacterProperties::kXidContinue}, + {0x1c5a, 0x1c7d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1c80, 0x1c88, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1cd0, 0x1cd2, CharacterProperties::kXidContinue}, + {0x1cd4, 0x1ce8, CharacterProperties::kXidContinue}, + {0x1ce9, 0x1cec, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1ced, 0x1ced, CharacterProperties::kXidContinue}, + {0x1cee, 0x1cf1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1cf2, 0x1cf4, CharacterProperties::kXidContinue}, + {0x1cf5, 0x1cf6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1cf8, 0x1cf9, CharacterProperties::kXidContinue}, + {0x1d00, 0x1dbf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1dc0, 0x1df5, CharacterProperties::kXidContinue}, + {0x1dfb, 0x1dff, CharacterProperties::kXidContinue}, + {0x1e00, 0x1f15, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f18, 0x1f1d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f20, 0x1f45, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f48, 0x1f4d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f50, 0x1f57, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f59, 0x1f59, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f5b, 0x1f5b, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f5d, 0x1f5d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f5f, 0x1f7d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1f80, 0x1fb4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fb6, 0x1fbc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fbe, 0x1fbe, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fc2, 0x1fc4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fc6, 0x1fcc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fd0, 0x1fd3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fd6, 0x1fdb, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1fe0, 0x1fec, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1ff2, 0x1ff4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x1ff6, 0x1ffc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x203f, 0x2040, CharacterProperties::kXidContinue}, + {0x2054, 0x2054, CharacterProperties::kXidContinue}, + {0x2071, 0x2071, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x207f, 0x207f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2090, 0x209c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x20d0, 0x20dc, CharacterProperties::kXidContinue}, + {0x20e1, 0x20e1, CharacterProperties::kXidContinue}, + {0x20e5, 0x20f0, CharacterProperties::kXidContinue}, + {0x2102, 0x2102, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2107, 0x2107, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x210a, 0x2113, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2115, 0x2115, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2118, 0x211d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2124, 0x2124, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2126, 0x2126, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2128, 0x2128, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x212a, 0x2139, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x213c, 0x213f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2145, 0x2149, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x214e, 0x214e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2160, 0x2188, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2c00, 0x2c2e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2c30, 0x2c5e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2c60, 0x2ce4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2ceb, 0x2cee, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2cef, 0x2cf1, CharacterProperties::kXidContinue}, + {0x2cf2, 0x2cf3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d00, 0x2d25, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d27, 0x2d27, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d2d, 0x2d2d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d30, 0x2d67, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d6f, 0x2d6f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2d7f, 0x2d7f, CharacterProperties::kXidContinue}, + {0x2d80, 0x2d96, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2da0, 0x2da6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2da8, 0x2dae, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2db0, 0x2db6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2db8, 0x2dbe, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2dc0, 0x2dc6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2dc8, 0x2dce, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2dd0, 0x2dd6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2dd8, 0x2dde, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x2de0, 0x2dff, CharacterProperties::kXidContinue}, + {0x3005, 0x3007, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3021, 0x3029, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x302a, 0x302f, CharacterProperties::kXidContinue}, + {0x3031, 0x3035, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3038, 0x303c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3041, 0x3096, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3099, 0x309a, CharacterProperties::kXidContinue}, + {0x309d, 0x309f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x30a1, 0x30fa, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x30fc, 0x30ff, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3105, 0x312d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3131, 0x318e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x31a0, 0x31ba, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x31f0, 0x31ff, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x3400, 0x4db5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0x4e00, 0x9fd5, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa000, 0xa48c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa4d0, 0xa4fd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa500, 0xa60c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa610, 0xa61f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa620, 0xa629, CharacterProperties::kXidContinue}, + {0xa62a, 0xa62b, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa640, 0xa66e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa66f, 0xa66f, CharacterProperties::kXidContinue}, + {0xa674, 0xa67d, CharacterProperties::kXidContinue}, + {0xa67f, 0xa69d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa69e, 0xa69f, CharacterProperties::kXidContinue}, + {0xa6a0, 0xa6ef, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa6f0, 0xa6f1, CharacterProperties::kXidContinue}, + {0xa717, 0xa71f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa722, 0xa788, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa78b, 0xa7ae, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa7b0, 0xa7b7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa7f7, 0xa801, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa802, 0xa802, CharacterProperties::kXidContinue}, + {0xa803, 0xa805, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa806, 0xa806, CharacterProperties::kXidContinue}, + {0xa807, 0xa80a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa80b, 0xa80b, CharacterProperties::kXidContinue}, + {0xa80c, 0xa822, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa823, 0xa827, CharacterProperties::kXidContinue}, + {0xa840, 0xa873, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa880, 0xa881, CharacterProperties::kXidContinue}, + {0xa882, 0xa8b3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa8b4, 0xa8c5, CharacterProperties::kXidContinue}, + {0xa8d0, 0xa8d9, CharacterProperties::kXidContinue}, + {0xa8e0, 0xa8f1, CharacterProperties::kXidContinue}, + {0xa8f2, 0xa8f7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa8fb, 0xa8fb, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa8fd, 0xa8fd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa900, 0xa909, CharacterProperties::kXidContinue}, + {0xa90a, 0xa925, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa926, 0xa92d, CharacterProperties::kXidContinue}, + {0xa930, 0xa946, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa947, 0xa953, CharacterProperties::kXidContinue}, + {0xa960, 0xa97c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa980, 0xa983, CharacterProperties::kXidContinue}, + {0xa984, 0xa9b2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa9b3, 0xa9c0, CharacterProperties::kXidContinue}, + {0xa9cf, 0xa9cf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa9d0, 0xa9d9, CharacterProperties::kXidContinue}, + {0xa9e0, 0xa9e4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa9e5, 0xa9e5, CharacterProperties::kXidContinue}, + {0xa9e6, 0xa9ef, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xa9f0, 0xa9f9, CharacterProperties::kXidContinue}, + {0xa9fa, 0xa9fe, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa00, 0xaa28, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa29, 0xaa36, CharacterProperties::kXidContinue}, + {0xaa40, 0xaa42, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa43, 0xaa43, CharacterProperties::kXidContinue}, + {0xaa44, 0xaa4b, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa4c, 0xaa4d, CharacterProperties::kXidContinue}, + {0xaa50, 0xaa59, CharacterProperties::kXidContinue}, + {0xaa60, 0xaa76, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa7a, 0xaa7a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaa7b, 0xaa7d, CharacterProperties::kXidContinue}, + {0xaa7e, 0xaaaf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaab0, 0xaab0, CharacterProperties::kXidContinue}, + {0xaab1, 0xaab1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaab2, 0xaab4, CharacterProperties::kXidContinue}, + {0xaab5, 0xaab6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaab7, 0xaab8, CharacterProperties::kXidContinue}, + {0xaab9, 0xaabd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaabe, 0xaabf, CharacterProperties::kXidContinue}, + {0xaac0, 0xaac0, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaac1, 0xaac1, CharacterProperties::kXidContinue}, + {0xaac2, 0xaac2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaadb, 0xaadd, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaae0, 0xaaea, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaaeb, 0xaaef, CharacterProperties::kXidContinue}, + {0xaaf2, 0xaaf4, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xaaf5, 0xaaf6, CharacterProperties::kXidContinue}, + {0xab01, 0xab06, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab09, 0xab0e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab11, 0xab16, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab20, 0xab26, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab28, 0xab2e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab30, 0xab5a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab5c, 0xab65, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xab70, 0xabe2, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xabe3, 0xabea, CharacterProperties::kXidContinue}, + {0xabec, 0xabed, CharacterProperties::kXidContinue}, + {0xabf0, 0xabf9, CharacterProperties::kXidContinue}, + {0xac00, 0xd7a3, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xd7b0, 0xd7c6, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xd7cb, 0xd7fb, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xf900, 0xfa6d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfa70, 0xfad9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb00, 0xfb06, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb13, 0xfb17, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb1d, 0xfb1d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb1e, 0xfb1e, CharacterProperties::kXidContinue}, + {0xfb1f, 0xfb28, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb2a, 0xfb36, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb38, 0xfb3c, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb3e, 0xfb3e, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb40, 0xfb41, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb43, 0xfb44, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfb46, 0xfbb1, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfbd3, 0xfc5d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfc64, 0xfd3d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfd50, 0xfd8f, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfd92, 0xfdc7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfdf0, 0xfdf9, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe00, 0xfe0f, CharacterProperties::kXidContinue}, + {0xfe20, 0xfe2f, CharacterProperties::kXidContinue}, + {0xfe33, 0xfe34, CharacterProperties::kXidContinue}, + {0xfe4d, 0xfe4f, CharacterProperties::kXidContinue}, + {0xfe71, 0xfe71, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe73, 0xfe73, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe77, 0xfe77, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe79, 0xfe79, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe7b, 0xfe7b, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe7d, 0xfe7d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xfe7f, 0xfefc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xff10, 0xff19, CharacterProperties::kXidContinue}, + {0xff21, 0xff3a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xff3f, 0xff3f, CharacterProperties::kXidContinue}, + {0xff41, 0xff5a, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xff66, 0xff9d, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xff9e, 0xff9f, CharacterProperties::kXidContinue}, + {0xffa0, 0xffbe, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xffc2, 0xffc7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xffca, 0xffcf, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xffd2, 0xffd7, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, + {0xffda, 0xffdc, CharacterProperties::kXidStart | CharacterProperties::kXidContinue}, +}}; diff --git a/tools/aapt2/text/Unicode_test.cpp b/tools/aapt2/text/Unicode_test.cpp new file mode 100644 index 000000000000..d47fb282bc0a --- /dev/null +++ b/tools/aapt2/text/Unicode_test.cpp @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "text/Unicode.h" + +#include "test/Test.h" + +using ::testing::Each; +using ::testing::Eq; +using ::testing::ResultOf; + +namespace aapt { +namespace text { + +TEST(UnicodeTest, IsXidStart) { + std::u32string valid_input = U"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZˮø"; + EXPECT_THAT(valid_input, Each(ResultOf(IsXidStart, Eq(true)))); + + std::u32string invalid_input = U"$;\'/<>+=-.{}[]()\\|?@#%^&*!~`\",1234567890_"; + EXPECT_THAT(invalid_input, Each(ResultOf(IsXidStart, Eq(false)))); +} + +TEST(UnicodeTest, IsXidContinue) { + std::u32string valid_input = U"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_ˮø"; + EXPECT_THAT(valid_input, Each(ResultOf(IsXidContinue, Eq(true)))); + + std::u32string invalid_input = U"$;\'/<>+=-.{}[]()\\|?@#%^&*!~`\","; + EXPECT_THAT(invalid_input, Each(ResultOf(IsXidContinue, Eq(false)))); +} + +TEST(UnicodeTest, IsJavaIdentifier) { + EXPECT_TRUE(IsJavaIdentifier("FøøBar_12")); + EXPECT_TRUE(IsJavaIdentifier("Føø$Bar")); + + EXPECT_FALSE(IsJavaIdentifier("12FøøBar")); + EXPECT_FALSE(IsJavaIdentifier("_FøøBar")); + EXPECT_FALSE(IsJavaIdentifier("$Føø$Bar")); +} + +TEST(UnicodeTest, IsValidResourceEntryName) { + EXPECT_TRUE(IsJavaIdentifier("FøøBar")); + EXPECT_TRUE(IsValidResourceEntryName("FøøBar_12")); + EXPECT_TRUE(IsValidResourceEntryName("Føø.Bar")); + EXPECT_TRUE(IsValidResourceEntryName("Føø-Bar")); + EXPECT_TRUE(IsValidResourceEntryName("_FøøBar")); + + EXPECT_FALSE(IsValidResourceEntryName("12FøøBar")); + EXPECT_FALSE(IsValidResourceEntryName("Føø$Bar")); + EXPECT_FALSE(IsValidResourceEntryName("Føø/Bar")); + EXPECT_FALSE(IsValidResourceEntryName("Føø:Bar")); + EXPECT_FALSE(IsValidResourceEntryName("Føø;Bar")); +} + +} // namespace text +} // namespace aapt diff --git a/tools/aapt2/text/Utf8Iterator.cpp b/tools/aapt2/text/Utf8Iterator.cpp new file mode 100644 index 000000000000..0d43353ef39a --- /dev/null +++ b/tools/aapt2/text/Utf8Iterator.cpp @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "text/Utf8Iterator.h" + +#include "android-base/logging.h" +#include "utils/Unicode.h" + +using ::android::StringPiece; + +namespace aapt { +namespace text { + +Utf8Iterator::Utf8Iterator(const StringPiece& str) + : str_(str), next_pos_(0), current_codepoint_(0) { + DoNext(); +} + +void Utf8Iterator::DoNext() { + size_t next_pos = 0u; + int32_t result = utf32_from_utf8_at(str_.data(), str_.size(), next_pos_, &next_pos); + if (result == -1) { + current_codepoint_ = 0u; + } else { + current_codepoint_ = static_cast<char32_t>(result); + next_pos_ = next_pos; + } +} + +bool Utf8Iterator::HasNext() const { + return current_codepoint_ != 0; +} + +void Utf8Iterator::Skip(int amount) { + while (amount > 0 && HasNext()) { + Next(); + --amount; + } +} + +char32_t Utf8Iterator::Next() { + CHECK(HasNext()) << "Next() called after iterator exhausted"; + char32_t result = current_codepoint_; + DoNext(); + return result; +} + +} // namespace text +} // namespace aapt diff --git a/tools/aapt2/text/Utf8Iterator.h b/tools/aapt2/text/Utf8Iterator.h new file mode 100644 index 000000000000..6923957a5a22 --- /dev/null +++ b/tools/aapt2/text/Utf8Iterator.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef AAPT_TEXT_UTF8ITERATOR_H +#define AAPT_TEXT_UTF8ITERATOR_H + +#include "android-base/macros.h" +#include "androidfw/StringPiece.h" + +namespace aapt { +namespace text { + +class Utf8Iterator { + public: + explicit Utf8Iterator(const android::StringPiece& str); + + bool HasNext() const; + + void Skip(int amount); + + char32_t Next(); + + private: + DISALLOW_COPY_AND_ASSIGN(Utf8Iterator); + + void DoNext(); + + android::StringPiece str_; + size_t next_pos_; + char32_t current_codepoint_; +}; + +} // namespace text +} // namespace aapt + +#endif // AAPT_TEXT_UTF8ITERATOR_H diff --git a/tools/aapt2/text/Utf8Iterator_test.cpp b/tools/aapt2/text/Utf8Iterator_test.cpp new file mode 100644 index 000000000000..f3111c081276 --- /dev/null +++ b/tools/aapt2/text/Utf8Iterator_test.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "text/Utf8Iterator.h" + +#include "test/Test.h" + +using ::testing::Eq; + +namespace aapt { +namespace text { + +TEST(Utf8IteratorTest, IteratesOverAscii) { + Utf8Iterator iter("hello"); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'h')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'e')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'l')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'l')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'o')); + + EXPECT_FALSE(iter.HasNext()); +} + +TEST(Utf8IteratorTest, IteratesOverUnicode) { + Utf8Iterator iter("Hi there 華勵蓮🍩"); + iter.Skip(9); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'華')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'勵')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'蓮')); + + ASSERT_TRUE(iter.HasNext()); + EXPECT_THAT(iter.Next(), Eq(U'🍩')); + + EXPECT_FALSE(iter.HasNext()); +} + +} // namespace text +} // namespace aapt diff --git a/tools/aapt2/tools/extract_unicode_properties.py b/tools/aapt2/tools/extract_unicode_properties.py new file mode 100644 index 000000000000..d7e0479bb788 --- /dev/null +++ b/tools/aapt2/tools/extract_unicode_properties.py @@ -0,0 +1,98 @@ +#!/bin/env python3 + +"""Extracts the XID_Start and XID_Continue Derived core properties from the ICU data files +and emits a std::array<> for binary searching. +""" + +import re +import sys + +CharacterPropertyEnumMap = { + 1: "CharacterProperties::kXidStart", + 2: "CharacterProperties::kXidContinue" +} + +class CharacterProperty: + def __init__(self, first_char, last_char, prop_type): + self.first_char = first_char + self.last_char = last_char + self.prop_type = prop_type + + def key(self): + return self.first_char + + def merge(self, other): + if self.last_char + 1 == other.first_char and self.prop_type == other.prop_type: + self.last_char = other.last_char + else: + raise KeyError() + + def __repr__(self): + types = [] + for enum_int, enum_str in CharacterPropertyEnumMap.items(): + if enum_int & self.prop_type: + types.append(enum_str) + return "{}0x{:04x}, 0x{:04x}, {}{}".format( + "{", self.first_char, self.last_char, ' | '.join(types), "}") + +def extract_unicode_properties(f, props): + prog = re.compile(r"^(?P<first>\w{4})(..(?P<last>\w{4}))?\W+;\W+(?P<prop>\w+)\n$") + chars = {} + for line in f: + result = prog.match(line) + if result: + prop_type_str = result.group('prop') + first_char_str = result.group('first') + last_char_str = result.group('last') + if prop_type_str in props: + start_char = int(first_char_str, 16) + last_char = (int(last_char_str, 16) if last_char_str else start_char) + 1 + prop_type = props[prop_type_str] + for char in range(start_char, last_char): + if char not in chars: + chars[char] = CharacterProperty(char, char, 0) + chars[char].prop_type |= prop_type + + result = [] + for char_prop in sorted(chars.values(), key=CharacterProperty.key): + if len(result) == 0: + result.append(char_prop) + else: + try: + result[len(result) - 1].merge(char_prop) + except KeyError: + result.append(char_prop) + return result + +license = """/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +""" + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("must specify path to icu DerivedCoreProperties file (e.g:" \ + "external/icu/icu4c/source/data/unidata/DerivedCoreProperties.txt)") + sys.exit(1) + + with open(sys.argv[1]) as f: + props = {"XID_Start": 1, "XID_Continue": 2} + char_props = extract_unicode_properties(f, props) + print("{}\nconst static std::array<CharacterProperties, {}> sCharacterProperties = {}" + .format(license, len(char_props), "{{")) + for prop in char_props: + print(" {},".format(prop)) + print("}};") + diff --git a/tools/aapt2/util/Maybe.h b/tools/aapt2/util/Maybe.h index b43f8e87fd68..9a82418e0a5a 100644 --- a/tools/aapt2/util/Maybe.h +++ b/tools/aapt2/util/Maybe.h @@ -281,16 +281,12 @@ inline Maybe<T> make_nothing() { return Maybe<T>(); } -/** - * Define the == operator between Maybe<T> and Maybe<U> only if the operator T - * == U is defined. - * That way the compiler will show an error at the callsite when comparing two - * Maybe<> objects - * whose inner types can't be compared. - */ +// Define the == operator between Maybe<T> and Maybe<U> only if the operator T == U is defined. +// That way the compiler will show an error at the callsite when comparing two Maybe<> objects +// whose inner types can't be compared. template <typename T, typename U> -typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator==( - const Maybe<T>& a, const Maybe<U>& b) { +typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator==(const Maybe<T>& a, + const Maybe<U>& b) { if (a && b) { return a.value() == b.value(); } else if (!a && !b) { @@ -299,18 +295,22 @@ typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator==( return false; } -/** - * Same as operator== but negated. - */ template <typename T, typename U> -typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator!=( - const Maybe<T>& a, const Maybe<U>& b) { +typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator==(const Maybe<T>& a, + const U& b) { + return a ? a.value() == b : false; +} + +// Same as operator== but negated. +template <typename T, typename U> +typename std::enable_if<has_eq_op<T, U>::value, bool>::type operator!=(const Maybe<T>& a, + const Maybe<U>& b) { return !(a == b); } template <typename T, typename U> -typename std::enable_if<has_lt_op<T, U>::value, bool>::type operator<( - const Maybe<T>& a, const Maybe<U>& b) { +typename std::enable_if<has_lt_op<T, U>::value, bool>::type operator<(const Maybe<T>& a, + const Maybe<U>& b) { if (a && b) { return a.value() < b.value(); } else if (!a && !b) { diff --git a/tools/aapt2/util/Util.cpp b/tools/aapt2/util/Util.cpp index 28e952e25a67..51a75d7556ad 100644 --- a/tools/aapt2/util/Util.cpp +++ b/tools/aapt2/util/Util.cpp @@ -16,19 +16,21 @@ #include "util/Util.h" -#include <utils/Unicode.h> #include <algorithm> #include <ostream> #include <string> #include <vector> #include "androidfw/StringPiece.h" +#include "utils/Unicode.h" +#include "text/Utf8Iterator.h" #include "util/BigBuffer.h" #include "util/Maybe.h" -using android::StringPiece; -using android::StringPiece16; +using ::aapt::text::Utf8Iterator; +using ::android::StringPiece; +using ::android::StringPiece16; namespace aapt { namespace util { @@ -283,33 +285,49 @@ bool VerifyJavaStringFormat(const StringPiece& str) { return true; } -static Maybe<std::string> ParseUnicodeCodepoint(const char** start, - const char* end) { +static bool AppendCodepointToUtf8String(char32_t codepoint, std::string* output) { + ssize_t len = utf32_to_utf8_length(&codepoint, 1); + if (len < 0) { + return false; + } + + const size_t start_append_pos = output->size(); + + // Make room for the next character. + output->resize(output->size() + len); + + char* dst = &*(output->begin() + start_append_pos); + utf32_to_utf8(&codepoint, 1, dst, len + 1); + return true; +} + +static bool AppendUnicodeCodepoint(Utf8Iterator* iter, std::string* output) { char32_t code = 0; - for (size_t i = 0; i < 4 && *start != end; i++, (*start)++) { - char c = **start; + for (size_t i = 0; i < 4 && iter->HasNext(); i++) { + char32_t codepoint = iter->Next(); char32_t a; - if (c >= '0' && c <= '9') { - a = c - '0'; - } else if (c >= 'a' && c <= 'f') { - a = c - 'a' + 10; - } else if (c >= 'A' && c <= 'F') { - a = c - 'A' + 10; + if (codepoint >= U'0' && codepoint <= U'9') { + a = codepoint - U'0'; + } else if (codepoint >= U'a' && codepoint <= U'f') { + a = codepoint - U'a' + 10; + } else if (codepoint >= U'A' && codepoint <= U'F') { + a = codepoint - U'A' + 10; } else { return {}; } code = (code << 4) | a; } + return AppendCodepointToUtf8String(code, output); +} - ssize_t len = utf32_to_utf8_length(&code, 1); - if (len < 0) { - return {}; +static bool IsCodepointSpace(char32_t codepoint) { + if (static_cast<uint32_t>(codepoint) & 0xffffff00u) { + return false; } + return isspace(static_cast<char>(codepoint)); +} - std::string result_utf8; - result_utf8.resize(len); - utf32_to_utf8(&code, 1, &*result_utf8.begin(), len + 1); - return result_utf8; +StringBuilder::StringBuilder(bool preserve_spaces) : preserve_spaces_(preserve_spaces) { } StringBuilder& StringBuilder::Append(const StringPiece& str) { @@ -318,64 +336,51 @@ StringBuilder& StringBuilder::Append(const StringPiece& str) { } // Where the new data will be appended to. - size_t new_data_index = str_.size(); + const size_t new_data_index = str_.size(); + + Utf8Iterator iter(str); + while (iter.HasNext()) { + const char32_t codepoint = iter.Next(); - const char* const end = str.end(); - const char* start = str.begin(); - const char* current = start; - while (current != end) { if (last_char_was_escape_) { - switch (*current) { - case 't': + switch (codepoint) { + case U't': str_ += '\t'; break; - case 'n': + + case U'n': str_ += '\n'; break; - case '#': - str_ += '#'; - break; - case '@': - str_ += '@'; - break; - case '?': - str_ += '?'; - break; - case '"': - str_ += '"'; - break; - case '\'': - str_ += '\''; - break; - case '\\': - str_ += '\\'; + + case U'#': + case U'@': + case U'?': + case U'"': + case U'\'': + case U'\\': + str_ += static_cast<char>(codepoint); break; - case 'u': { - current++; - Maybe<std::string> c = ParseUnicodeCodepoint(¤t, end); - if (!c) { + + case U'u': + if (!AppendUnicodeCodepoint(&iter, &str_)) { error_ = "invalid unicode escape sequence"; return *this; } - str_ += c.value(); - current -= 1; break; - } default: - // Ignore. + // Ignore the escape character and just include the codepoint. + AppendCodepointToUtf8String(codepoint, &str_); break; } last_char_was_escape_ = false; - start = current + 1; - } else if (*current == '"') { + + } else if (!preserve_spaces_ && codepoint == U'"') { if (!quote_ && trailing_space_) { - // We found an opening quote, and we have - // trailing space, so we should append that + // We found an opening quote, and we have trailing space, so we should append that // space now. if (trailing_space_) { - // We had trailing whitespace, so - // replace with a single space. + // We had trailing whitespace, so replace with a single space. if (!str_.empty()) { str_ += ' '; } @@ -383,13 +388,13 @@ StringBuilder& StringBuilder::Append(const StringPiece& str) { } } quote_ = !quote_; - str_.append(start, current - start); - start = current + 1; - } else if (*current == '\'' && !quote_) { + + } else if (!preserve_spaces_ && codepoint == U'\'' && !quote_) { // This should be escaped. error_ = "unescaped apostrophe"; return *this; - } else if (*current == '\\') { + + } else if (codepoint == U'\\') { // This is an escape sequence, convert to the real value. if (!quote_ && trailing_space_) { // We had trailing whitespace, so @@ -399,40 +404,35 @@ StringBuilder& StringBuilder::Append(const StringPiece& str) { } trailing_space_ = false; } - str_.append(start, current - start); - start = current + 1; last_char_was_escape_ = true; - } else if (!quote_) { - // This is not quoted text, so look for whitespace. - if (isspace(*current)) { - // We found whitespace, see if we have seen some - // before. - if (!trailing_space_) { - // We didn't see a previous adjacent space, - // so mark that we did. + } else { + if (preserve_spaces_ || quote_) { + // Quotes mean everything is taken, including whitespace. + AppendCodepointToUtf8String(codepoint, &str_); + } else { + // This is not quoted text, so we will accumulate whitespace and only emit a single + // character of whitespace if it is followed by a non-whitespace character. + if (IsCodepointSpace(codepoint)) { + // We found whitespace. trailing_space_ = true; - str_.append(start, current - start); - } - - // Keep skipping whitespace. - start = current + 1; - } else if (trailing_space_) { - // We saw trailing space before, so replace all - // that trailing space with one space. - if (!str_.empty()) { - str_ += ' '; + } else { + if (trailing_space_) { + // We saw trailing space before, so replace all + // that trailing space with one space. + if (!str_.empty()) { + str_ += ' '; + } + trailing_space_ = false; + } + AppendCodepointToUtf8String(codepoint, &str_); } - trailing_space_ = false; } } - current++; } - str_.append(start, end - start); // Accumulate the added string's UTF-16 length. - ssize_t len = utf8_to_utf16_length( - reinterpret_cast<const uint8_t*>(str_.data()) + new_data_index, - str_.size() - new_data_index); + ssize_t len = utf8_to_utf16_length(reinterpret_cast<const uint8_t*>(str_.data()) + new_data_index, + str_.size() - new_data_index); if (len < 0) { error_ = "invalid unicode code point"; return *this; diff --git a/tools/aapt2/util/Util.h b/tools/aapt2/util/Util.h index 8bca9dd739bf..410258c40209 100644 --- a/tools/aapt2/util/Util.h +++ b/tools/aapt2/util/Util.h @@ -171,6 +171,8 @@ bool VerifyJavaStringFormat(const android::StringPiece& str); class StringBuilder { public: + explicit StringBuilder(bool preserve_spaces = false); + StringBuilder& Append(const android::StringPiece& str); const std::string& ToString() const; const std::string& Error() const; @@ -184,6 +186,7 @@ class StringBuilder { explicit operator bool() const; private: + bool preserve_spaces_; std::string str_; size_t utf16_len_ = 0; bool quote_ = false; diff --git a/tools/aapt2/util/Util_test.cpp b/tools/aapt2/util/Util_test.cpp index a09001a71efc..adb52911ab82 100644 --- a/tools/aapt2/util/Util_test.cpp +++ b/tools/aapt2/util/Util_test.cpp @@ -20,16 +20,17 @@ #include "test/Test.h" -using android::StringPiece; +using ::android::StringPiece; +using ::testing::Eq; +using ::testing::Ne; +using ::testing::SizeIs; namespace aapt { TEST(UtilTest, TrimOnlyWhitespace) { - const std::string full = "\n "; - - StringPiece trimmed = util::TrimWhitespace(full); + const StringPiece trimmed = util::TrimWhitespace("\n "); EXPECT_TRUE(trimmed.empty()); - EXPECT_EQ(0u, trimmed.size()); + EXPECT_THAT(trimmed, SizeIs(0u)); } TEST(UtilTest, StringEndsWith) { @@ -41,85 +42,74 @@ TEST(UtilTest, StringStartsWith) { } TEST(UtilTest, StringBuilderSplitEscapeSequence) { - EXPECT_EQ(StringPiece("this is a new\nline."), util::StringBuilder() - .Append("this is a new\\") - .Append("nline.") - .ToString()); + EXPECT_THAT(util::StringBuilder().Append("this is a new\\").Append("nline.").ToString(), + Eq("this is a new\nline.")); } TEST(UtilTest, StringBuilderWhitespaceRemoval) { - EXPECT_EQ(StringPiece("hey guys this is so cool"), - util::StringBuilder() - .Append(" hey guys ") - .Append(" this is so cool ") - .ToString()); - - EXPECT_EQ(StringPiece(" wow, so many \t spaces. what?"), - util::StringBuilder() - .Append(" \" wow, so many \t ") - .Append("spaces. \"what? ") - .ToString()); - - EXPECT_EQ(StringPiece("where is the pie?"), util::StringBuilder() - .Append(" where \t ") - .Append(" \nis the " - " pie?") - .ToString()); + EXPECT_THAT(util::StringBuilder().Append(" hey guys ").Append(" this is so cool ").ToString(), + Eq("hey guys this is so cool")); + EXPECT_THAT( + util::StringBuilder().Append(" \" wow, so many \t ").Append("spaces. \"what? ").ToString(), + Eq(" wow, so many \t spaces. what?")); + EXPECT_THAT(util::StringBuilder().Append(" where \t ").Append(" \nis the pie?").ToString(), + Eq("where is the pie?")); } TEST(UtilTest, StringBuilderEscaping) { - EXPECT_EQ(StringPiece("hey guys\n this \t is so\\ cool"), - util::StringBuilder() - .Append(" hey guys\\n ") - .Append(" this \\t is so\\\\ cool ") - .ToString()); - - EXPECT_EQ(StringPiece("@?#\\\'"), - util::StringBuilder().Append("\\@\\?\\#\\\\\\'").ToString()); + EXPECT_THAT(util::StringBuilder() + .Append(" hey guys\\n ") + .Append(" this \\t is so\\\\ cool ") + .ToString(), + Eq("hey guys\n this \t is so\\ cool")); + EXPECT_THAT(util::StringBuilder().Append("\\@\\?\\#\\\\\\'").ToString(), Eq("@?#\\\'")); } TEST(UtilTest, StringBuilderMisplacedQuote) { - util::StringBuilder builder{}; + util::StringBuilder builder; EXPECT_FALSE(builder.Append("they're coming!")); } TEST(UtilTest, StringBuilderUnicodeCodes) { - EXPECT_EQ(std::string("\u00AF\u0AF0 woah"), - util::StringBuilder().Append("\\u00AF\\u0AF0 woah").ToString()); - + EXPECT_THAT(util::StringBuilder().Append("\\u00AF\\u0AF0 woah").ToString(), + Eq("\u00AF\u0AF0 woah")); EXPECT_FALSE(util::StringBuilder().Append("\\u00 yo")); } +TEST(UtilTest, StringBuilderPreserveSpaces) { + EXPECT_THAT(util::StringBuilder(true /*preserve_spaces*/).Append("\"").ToString(), Eq("\"")); +} + TEST(UtilTest, TokenizeInput) { auto tokenizer = util::Tokenize(StringPiece("this| is|the|end"), '|'); auto iter = tokenizer.begin(); - ASSERT_EQ(*iter, StringPiece("this")); + ASSERT_THAT(*iter, Eq("this")); ++iter; - ASSERT_EQ(*iter, StringPiece(" is")); + ASSERT_THAT(*iter, Eq(" is")); ++iter; - ASSERT_EQ(*iter, StringPiece("the")); + ASSERT_THAT(*iter, Eq("the")); ++iter; - ASSERT_EQ(*iter, StringPiece("end")); + ASSERT_THAT(*iter, Eq("end")); ++iter; - ASSERT_EQ(tokenizer.end(), iter); + ASSERT_THAT(iter, Eq(tokenizer.end())); } TEST(UtilTest, TokenizeEmptyString) { auto tokenizer = util::Tokenize(StringPiece(""), '|'); auto iter = tokenizer.begin(); - ASSERT_NE(tokenizer.end(), iter); - ASSERT_EQ(StringPiece(), *iter); + ASSERT_THAT(iter, Ne(tokenizer.end())); + ASSERT_THAT(*iter, Eq(StringPiece())); ++iter; - ASSERT_EQ(tokenizer.end(), iter); + ASSERT_THAT(iter, Eq(tokenizer.end())); } TEST(UtilTest, TokenizeAtEnd) { auto tokenizer = util::Tokenize(StringPiece("one."), '.'); auto iter = tokenizer.begin(); - ASSERT_EQ(*iter, StringPiece("one")); + ASSERT_THAT(*iter, Eq("one")); ++iter; - ASSERT_NE(iter, tokenizer.end()); - ASSERT_EQ(*iter, StringPiece()); + ASSERT_THAT(iter, Ne(tokenizer.end())); + ASSERT_THAT(*iter, Eq(StringPiece())); } TEST(UtilTest, IsJavaClassName) { @@ -146,52 +136,34 @@ TEST(UtilTest, IsJavaPackageName) { } TEST(UtilTest, FullyQualifiedClassName) { - Maybe<std::string> res = util::GetFullyQualifiedClassName("android", ".asdf"); - ASSERT_TRUE(res); - EXPECT_EQ(res.value(), "android.asdf"); - - res = util::GetFullyQualifiedClassName("android", ".a.b"); - ASSERT_TRUE(res); - EXPECT_EQ(res.value(), "android.a.b"); - - res = util::GetFullyQualifiedClassName("android", "a.b"); - ASSERT_TRUE(res); - EXPECT_EQ(res.value(), "a.b"); - - res = util::GetFullyQualifiedClassName("", "a.b"); - ASSERT_TRUE(res); - EXPECT_EQ(res.value(), "a.b"); - - res = util::GetFullyQualifiedClassName("android", "Class"); - ASSERT_TRUE(res); - EXPECT_EQ(res.value(), "android.Class"); - - res = util::GetFullyQualifiedClassName("", ""); - ASSERT_FALSE(res); - - res = util::GetFullyQualifiedClassName("android", "./Apple"); - ASSERT_FALSE(res); + EXPECT_THAT(util::GetFullyQualifiedClassName("android", ".asdf"), Eq("android.asdf")); + EXPECT_THAT(util::GetFullyQualifiedClassName("android", ".a.b"), Eq("android.a.b")); + EXPECT_THAT(util::GetFullyQualifiedClassName("android", "a.b"), Eq("a.b")); + EXPECT_THAT(util::GetFullyQualifiedClassName("", "a.b"), Eq("a.b")); + EXPECT_THAT(util::GetFullyQualifiedClassName("android", "Class"), Eq("android.Class")); + EXPECT_FALSE(util::GetFullyQualifiedClassName("", "")); + EXPECT_FALSE(util::GetFullyQualifiedClassName("android", "./Apple")); } TEST(UtilTest, ExtractResourcePathComponents) { StringPiece prefix, entry, suffix; ASSERT_TRUE(util::ExtractResFilePathParts("res/xml-sw600dp/entry.xml", &prefix, &entry, &suffix)); - EXPECT_EQ(prefix, "res/xml-sw600dp/"); - EXPECT_EQ(entry, "entry"); - EXPECT_EQ(suffix, ".xml"); + EXPECT_THAT(prefix, Eq("res/xml-sw600dp/")); + EXPECT_THAT(entry, Eq("entry")); + EXPECT_THAT(suffix, Eq(".xml")); ASSERT_TRUE(util::ExtractResFilePathParts("res/xml-sw600dp/entry.9.png", &prefix, &entry, &suffix)); - EXPECT_EQ(prefix, "res/xml-sw600dp/"); - EXPECT_EQ(entry, "entry"); - EXPECT_EQ(suffix, ".9.png"); + EXPECT_THAT(prefix, Eq("res/xml-sw600dp/")); + EXPECT_THAT(entry, Eq("entry")); + EXPECT_THAT(suffix, Eq(".9.png")); + + ASSERT_TRUE(util::ExtractResFilePathParts("res//.", &prefix, &entry, &suffix)); + EXPECT_THAT(prefix, Eq("res//")); + EXPECT_THAT(entry, Eq("")); + EXPECT_THAT(suffix, Eq(".")); EXPECT_FALSE(util::ExtractResFilePathParts("AndroidManifest.xml", &prefix, &entry, &suffix)); EXPECT_FALSE(util::ExtractResFilePathParts("res/.xml", &prefix, &entry, &suffix)); - - ASSERT_TRUE(util::ExtractResFilePathParts("res//.", &prefix, &entry, &suffix)); - EXPECT_EQ(prefix, "res//"); - EXPECT_EQ(entry, ""); - EXPECT_EQ(suffix, "."); } TEST(UtilTest, VerifyJavaStringFormat) { diff --git a/tools/aapt2/xml/XmlDom_test.cpp b/tools/aapt2/xml/XmlDom_test.cpp index c1aa10b89a2f..f0122e8c617a 100644 --- a/tools/aapt2/xml/XmlDom_test.cpp +++ b/tools/aapt2/xml/XmlDom_test.cpp @@ -21,7 +21,9 @@ #include "test/Test.h" +using ::testing::Eq; using ::testing::NotNull; +using ::testing::SizeIs; namespace aapt { @@ -30,47 +32,59 @@ constexpr const char* kXmlPreamble = TEST(XmlDomTest, Inflate) { std::stringstream in(kXmlPreamble); - in << R"EOF( - <Layout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - <TextView android:id="@+id/id" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> - </Layout> - )EOF"; - - const Source source = {"test.xml"}; + in << R"( + <Layout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <TextView android:id="@+id/id" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + </Layout>)"; + + const Source source("test.xml"); StdErrDiagnostics diag; std::unique_ptr<xml::XmlResource> doc = xml::Inflate(&in, &diag, source); ASSERT_THAT(doc, NotNull()); xml::Namespace* ns = xml::NodeCast<xml::Namespace>(doc->root.get()); ASSERT_THAT(ns, NotNull()); - EXPECT_EQ(ns->namespace_uri, xml::kSchemaAndroid); - EXPECT_EQ(ns->namespace_prefix, "android"); + EXPECT_THAT(ns->namespace_uri, Eq(xml::kSchemaAndroid)); + EXPECT_THAT(ns->namespace_prefix, Eq("android")); } // Escaping is handled after parsing of the values for resource-specific values. TEST(XmlDomTest, ForwardEscapes) { - std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"EOF( - <element value="\?hello" pattern="\\d{5}">\\d{5}</element>)EOF"); + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"( + <element value="\?hello" pattern="\\d{5}">\\d{5}</element>)"); - xml::Element* el = xml::FindRootElement(doc->root.get()); + xml::Element* el = xml::FindRootElement(doc.get()); ASSERT_THAT(el, NotNull()); xml::Attribute* attr = el->FindAttribute({}, "pattern"); ASSERT_THAT(attr, NotNull()); - EXPECT_EQ("\\\\d{5}", attr->value); + EXPECT_THAT(attr->value, Eq("\\\\d{5}")); attr = el->FindAttribute({}, "value"); ASSERT_THAT(attr, NotNull()); - EXPECT_EQ("\\?hello", attr->value); + EXPECT_THAT(attr->value, Eq("\\?hello")); + + ASSERT_THAT(el->children, SizeIs(1u)); - ASSERT_EQ(1u, el->children.size()); xml::Text* text = xml::NodeCast<xml::Text>(el->children[0].get()); ASSERT_THAT(text, NotNull()); - EXPECT_EQ("\\\\d{5}", text->text); + EXPECT_THAT(text->text, Eq("\\\\d{5}")); +} + +TEST(XmlDomTest, XmlEscapeSequencesAreParsed) { + std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(R"(<element value=""" />)"); + + xml::Element* el = xml::FindRootElement(doc.get()); + ASSERT_THAT(el, NotNull()); + + xml::Attribute* attr = el->FindAttribute({}, "value"); + ASSERT_THAT(attr, NotNull()); + + EXPECT_THAT(attr->value, Eq("\"")); } } // namespace aapt diff --git a/tools/bit/main.cpp b/tools/bit/main.cpp index 4c68b02ddf60..a7fbc2eb0206 100644 --- a/tools/bit/main.cpp +++ b/tools/bit/main.cpp @@ -735,7 +735,7 @@ run_phases(vector<Target*> targets, const Options& options) InstallApk& apk = installApks[i]; if (!apk.file.fileInfo.exists || apk.file.HasChanged()) { // It didn't exist before or it changed, so int needs install - err = run_adb("install", "-r", apk.file.filename.c_str(), NULL); + err = run_adb("install", "-r", "-g", apk.file.filename.c_str(), NULL); check_error(err); apk.installed = true; } else { |