diff options
270 files changed, 3196 insertions, 2261 deletions
diff --git a/Android.mk b/Android.mk index 84cad4e268f7..30318d671c69 100644 --- a/Android.mk +++ b/Android.mk @@ -263,6 +263,7 @@ LOCAL_SRC_FILES += \ core/java/android/speech/tts/ITextToSpeechService.aidl \ core/java/com/android/internal/app/IAppOpsCallback.aidl \ core/java/com/android/internal/app/IAppOpsService.aidl \ + core/java/com/android/internal/app/IAssistScreenshotReceiver.aidl \ core/java/com/android/internal/app/IBatteryStats.aidl \ core/java/com/android/internal/app/IProcessStats.aidl \ core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl \ diff --git a/api/current.txt b/api/current.txt index b6a33c43b7bc..1ec293002d93 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4908,6 +4908,53 @@ package android.app { method public android.app.PendingIntent getReplyPendingIntent(); } + public static final class Notification.ContentInfoExtender implements android.app.Notification.Extender { + ctor public Notification.ContentInfoExtender(); + ctor public Notification.ContentInfoExtender(android.app.Notification); + method public android.app.Notification.Builder extend(android.app.Notification.Builder); + method public java.lang.String[] getContentTypes(); + method public java.lang.String[] getGenres(); + method public java.lang.String getMaturityRating(); + method public java.lang.String getPricingType(); + method public java.lang.String getPricingValue(); + method public java.lang.String getPrimaryContentType(); + method public long getRunningTime(); + method public int getStatus(); + method public android.app.Notification.ContentInfoExtender setContentTypes(java.lang.String[]); + method public android.app.Notification.ContentInfoExtender setGenres(java.lang.String[]); + method public android.app.Notification.ContentInfoExtender setMaturityRating(java.lang.String); + method public android.app.Notification.ContentInfoExtender setPricingInformation(java.lang.String, java.lang.String); + method public android.app.Notification.ContentInfoExtender setRunningTime(long); + method public android.app.Notification.ContentInfoExtender setStatus(int); + field public static final java.lang.String CONTENT_MATURITY_ALL = "android.contentMaturity.all"; + field public static final java.lang.String CONTENT_MATURITY_HIGH = "android.contentMaturity.high"; + field public static final java.lang.String CONTENT_MATURITY_LOW = "android.contentMaturity.low"; + field public static final java.lang.String CONTENT_MATURITY_MEDIUM = "android.contentMaturity.medium"; + field public static final java.lang.String CONTENT_PRICING_FREE = "android.contentPrice.free"; + field public static final java.lang.String CONTENT_PRICING_PURCHASE = "android.contentPrice.purchase"; + field public static final java.lang.String CONTENT_PRICING_RENTAL = "android.contentPrice.rental"; + field public static final java.lang.String CONTENT_PRICING_SUBSCRIPTION = "android.contentPrice.subscription"; + field public static final int CONTENT_STATUS_AVAILABLE = 2; // 0x2 + field public static final int CONTENT_STATUS_PENDING = 1; // 0x1 + field public static final int CONTENT_STATUS_READY = 0; // 0x0 + field public static final int CONTENT_STATUS_UNAVAILABLE = 3; // 0x3 + field public static final java.lang.String CONTENT_TYPE_APP = "android.contentType.app"; + field public static final java.lang.String CONTENT_TYPE_BOOK = "android.contentType.book"; + field public static final java.lang.String CONTENT_TYPE_COMIC = "android.contentType.comic"; + field public static final java.lang.String CONTENT_TYPE_GAME = "android.contentType.game"; + field public static final java.lang.String CONTENT_TYPE_MAGAZINE = "android.contentType.magazine"; + field public static final java.lang.String CONTENT_TYPE_MOVIE = "android.contentType.movie"; + field public static final java.lang.String CONTENT_TYPE_MUSIC = "android.contentType.music"; + field public static final java.lang.String CONTENT_TYPE_NEWS = "android.contentType.news"; + field public static final java.lang.String CONTENT_TYPE_PODCAST = "android.contentType.podcast"; + field public static final java.lang.String CONTENT_TYPE_RADIO = "android.contentType.radio"; + field public static final java.lang.String CONTENT_TYPE_SERIAL = "android.contentType.serial"; + field public static final java.lang.String CONTENT_TYPE_SPORTS = "android.contentType.sports"; + field public static final java.lang.String CONTENT_TYPE_TRAILER = "android.contentType.trailer"; + field public static final java.lang.String CONTENT_TYPE_VIDEO = "android.contentType.video"; + field public static final java.lang.String CONTENT_TYPE_WEBSITE = "android.contentType.website"; + } + public static abstract interface Notification.Extender { method public abstract android.app.Notification.Builder extend(android.app.Notification.Builder); } @@ -8626,6 +8673,7 @@ package android.content.pm { field public int descriptionRes; field public boolean enabled; field public int flags; + field public boolean hardwareAccelerated; field public int largestWidthLimitDp; field public java.lang.String manageSpaceActivityName; field public java.lang.String nativeLibraryDir; @@ -15145,7 +15193,7 @@ package android.media { method public void setPropertyString(java.lang.String, java.lang.String); field public static final int EVENT_KEY_EXPIRED = 3; // 0x3 field public static final int EVENT_KEY_REQUIRED = 2; // 0x2 - field public static final int EVENT_PROVISION_REQUIRED = 1; // 0x1 + field public static final deprecated int EVENT_PROVISION_REQUIRED = 1; // 0x1 field public static final int EVENT_SESSION_RECLAIMED = 5; // 0x5 field public static final int EVENT_VENDOR_DEFINED = 4; // 0x4 field public static final int KEY_TYPE_OFFLINE = 2; // 0x2 @@ -24638,6 +24686,7 @@ package android.provider { field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/email_v2"; field public static final android.net.Uri CONTENT_URI; field public static final java.lang.String DISPLAY_NAME = "data4"; + field public static final android.net.Uri ENTERPRISE_CONTENT_LOOKUP_URI; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES"; @@ -27886,6 +27935,7 @@ package android.service.voice { field public static final java.lang.String SERVICE_INTERFACE = "android.service.voice.VoiceInteractionService"; field public static final java.lang.String SERVICE_META_DATA = "android.voice_interaction"; field public static final int START_WITH_ASSIST = 1; // 0x1 + field public static final int START_WITH_SCREENSHOT = 2; // 0x2 } public abstract class VoiceInteractionSession implements android.view.KeyEvent.Callback { @@ -27909,6 +27959,7 @@ package android.service.voice { method public void onDestroy(); method public boolean[] onGetSupportedCommands(android.service.voice.VoiceInteractionSession.Caller, java.lang.String[]); method public void onHandleAssist(android.os.Bundle); + method public void onHandleScreenshot(android.graphics.Bitmap); method public void onHide(); method public boolean onKeyDown(int, android.view.KeyEvent); method public boolean onKeyLongPress(int, android.view.KeyEvent); @@ -29585,8 +29636,10 @@ package android.telephony { method public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannel(java.lang.String); method public java.lang.String iccTransmitApduBasicChannel(int, int, int, int, int, java.lang.String); method public java.lang.String iccTransmitApduLogicalChannel(int, int, int, int, int, int, java.lang.String); + method public boolean isHearingAidCompatibilitySupported(); method public boolean isNetworkRoaming(); method public boolean isSmsCapable(); + method public boolean isTtyModeSupported(); method public boolean isVoiceCapable(); method public boolean isWorldPhone(); method public void listen(android.telephony.PhoneStateListener, int); @@ -32919,6 +32972,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); + method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); @@ -32939,6 +32993,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } + public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { + ctor public ActionMode.Callback2(); + method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); + } + public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu(); @@ -37445,6 +37504,7 @@ package android.webkit { method public void goBack(); method public void goBackOrForward(int); method public void goForward(); + method public void insertVisualStateCallback(long, android.webkit.WebView.VisualStateCallback); method public void invokeZoomPicker(); method public boolean isPrivateBrowsingEnabled(); method public void loadData(java.lang.String, java.lang.String, java.lang.String); @@ -37519,6 +37579,11 @@ package android.webkit { method public abstract deprecated void onNewPicture(android.webkit.WebView, android.graphics.Picture); } + public static abstract class WebView.VisualStateCallback { + ctor public WebView.VisualStateCallback(); + method public abstract void onComplete(long); + } + public class WebView.WebViewTransport { ctor public WebView.WebViewTransport(); method public synchronized android.webkit.WebView getWebView(); @@ -37530,6 +37595,7 @@ package android.webkit { method public void doUpdateVisitedHistory(android.webkit.WebView, java.lang.String, boolean); method public void onFormResubmission(android.webkit.WebView, android.os.Message, android.os.Message); method public void onLoadResource(android.webkit.WebView, java.lang.String); + method public void onPageCommitVisible(android.webkit.WebView, java.lang.String); method public void onPageFinished(android.webkit.WebView, java.lang.String); method public void onPageStarted(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); method public void onReceivedClientCertRequest(android.webkit.WebView, android.webkit.ClientCertRequest); @@ -39943,7 +40009,8 @@ package android.widget { method public final void setText(char[], int, int); method public final void setText(int); method public final void setText(int, android.widget.TextView.BufferType); - method public void setTextAppearance(android.content.Context, int); + method public void setTextAppearance(int); + method public deprecated void setTextAppearance(android.content.Context, int); method public void setTextColor(int); method public void setTextColor(android.content.res.ColorStateList); method public void setTextIsSelectable(boolean); diff --git a/api/system-current.txt b/api/system-current.txt index b154e3e1d933..f568ac829219 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4998,6 +4998,53 @@ package android.app { method public android.app.PendingIntent getReplyPendingIntent(); } + public static final class Notification.ContentInfoExtender implements android.app.Notification.Extender { + ctor public Notification.ContentInfoExtender(); + ctor public Notification.ContentInfoExtender(android.app.Notification); + method public android.app.Notification.Builder extend(android.app.Notification.Builder); + method public java.lang.String[] getContentTypes(); + method public java.lang.String[] getGenres(); + method public java.lang.String getMaturityRating(); + method public java.lang.String getPricingType(); + method public java.lang.String getPricingValue(); + method public java.lang.String getPrimaryContentType(); + method public long getRunningTime(); + method public int getStatus(); + method public android.app.Notification.ContentInfoExtender setContentTypes(java.lang.String[]); + method public android.app.Notification.ContentInfoExtender setGenres(java.lang.String[]); + method public android.app.Notification.ContentInfoExtender setMaturityRating(java.lang.String); + method public android.app.Notification.ContentInfoExtender setPricingInformation(java.lang.String, java.lang.String); + method public android.app.Notification.ContentInfoExtender setRunningTime(long); + method public android.app.Notification.ContentInfoExtender setStatus(int); + field public static final java.lang.String CONTENT_MATURITY_ALL = "android.contentMaturity.all"; + field public static final java.lang.String CONTENT_MATURITY_HIGH = "android.contentMaturity.high"; + field public static final java.lang.String CONTENT_MATURITY_LOW = "android.contentMaturity.low"; + field public static final java.lang.String CONTENT_MATURITY_MEDIUM = "android.contentMaturity.medium"; + field public static final java.lang.String CONTENT_PRICING_FREE = "android.contentPrice.free"; + field public static final java.lang.String CONTENT_PRICING_PURCHASE = "android.contentPrice.purchase"; + field public static final java.lang.String CONTENT_PRICING_RENTAL = "android.contentPrice.rental"; + field public static final java.lang.String CONTENT_PRICING_SUBSCRIPTION = "android.contentPrice.subscription"; + field public static final int CONTENT_STATUS_AVAILABLE = 2; // 0x2 + field public static final int CONTENT_STATUS_PENDING = 1; // 0x1 + field public static final int CONTENT_STATUS_READY = 0; // 0x0 + field public static final int CONTENT_STATUS_UNAVAILABLE = 3; // 0x3 + field public static final java.lang.String CONTENT_TYPE_APP = "android.contentType.app"; + field public static final java.lang.String CONTENT_TYPE_BOOK = "android.contentType.book"; + field public static final java.lang.String CONTENT_TYPE_COMIC = "android.contentType.comic"; + field public static final java.lang.String CONTENT_TYPE_GAME = "android.contentType.game"; + field public static final java.lang.String CONTENT_TYPE_MAGAZINE = "android.contentType.magazine"; + field public static final java.lang.String CONTENT_TYPE_MOVIE = "android.contentType.movie"; + field public static final java.lang.String CONTENT_TYPE_MUSIC = "android.contentType.music"; + field public static final java.lang.String CONTENT_TYPE_NEWS = "android.contentType.news"; + field public static final java.lang.String CONTENT_TYPE_PODCAST = "android.contentType.podcast"; + field public static final java.lang.String CONTENT_TYPE_RADIO = "android.contentType.radio"; + field public static final java.lang.String CONTENT_TYPE_SERIAL = "android.contentType.serial"; + field public static final java.lang.String CONTENT_TYPE_SPORTS = "android.contentType.sports"; + field public static final java.lang.String CONTENT_TYPE_TRAILER = "android.contentType.trailer"; + field public static final java.lang.String CONTENT_TYPE_VIDEO = "android.contentType.video"; + field public static final java.lang.String CONTENT_TYPE_WEBSITE = "android.contentType.website"; + } + public static abstract interface Notification.Extender { method public abstract android.app.Notification.Builder extend(android.app.Notification.Builder); } @@ -8841,6 +8888,7 @@ package android.content.pm { field public int descriptionRes; field public boolean enabled; field public int flags; + field public boolean hardwareAccelerated; field public int largestWidthLimitDp; field public java.lang.String manageSpaceActivityName; field public java.lang.String nativeLibraryDir; @@ -16334,7 +16382,7 @@ package android.media { method public void unprovisionDevice(); field public static final int EVENT_KEY_EXPIRED = 3; // 0x3 field public static final int EVENT_KEY_REQUIRED = 2; // 0x2 - field public static final int EVENT_PROVISION_REQUIRED = 1; // 0x1 + field public static final deprecated int EVENT_PROVISION_REQUIRED = 1; // 0x1 field public static final int EVENT_SESSION_RECLAIMED = 5; // 0x5 field public static final int EVENT_VENDOR_DEFINED = 4; // 0x4 field public static final int KEY_TYPE_OFFLINE = 2; // 0x2 @@ -26432,6 +26480,7 @@ package android.provider { field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/email_v2"; field public static final android.net.Uri CONTENT_URI; field public static final java.lang.String DISPLAY_NAME = "data4"; + field public static final android.net.Uri ENTERPRISE_CONTENT_LOOKUP_URI; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES"; @@ -29770,6 +29819,7 @@ package android.service.voice { field public static final java.lang.String SERVICE_INTERFACE = "android.service.voice.VoiceInteractionService"; field public static final java.lang.String SERVICE_META_DATA = "android.voice_interaction"; field public static final int START_WITH_ASSIST = 1; // 0x1 + field public static final int START_WITH_SCREENSHOT = 2; // 0x2 } public abstract class VoiceInteractionSession implements android.view.KeyEvent.Callback { @@ -29793,6 +29843,7 @@ package android.service.voice { method public void onDestroy(); method public boolean[] onGetSupportedCommands(android.service.voice.VoiceInteractionSession.Caller, java.lang.String[]); method public void onHandleAssist(android.os.Bundle); + method public void onHandleScreenshot(android.graphics.Bitmap); method public void onHide(); method public boolean onKeyDown(int, android.view.KeyEvent); method public boolean onKeyLongPress(int, android.view.KeyEvent); @@ -31923,6 +31974,7 @@ package android.telephony { method public java.lang.String iccTransmitApduBasicChannel(int, int, int, int, int, java.lang.String); method public java.lang.String iccTransmitApduLogicalChannel(int, int, int, int, int, int, java.lang.String); method public boolean isDataConnectivityPossible(); + method public boolean isHearingAidCompatibilitySupported(); method public boolean isIdle(); method public boolean isNetworkRoaming(); method public boolean isOffhook(); @@ -31930,6 +31982,7 @@ package android.telephony { method public boolean isRinging(); method public boolean isSimPinEnabled(); method public boolean isSmsCapable(); + method public boolean isTtyModeSupported(); method public boolean isVideoCallingEnabled(); method public boolean isVoiceCapable(); method public boolean isWorldPhone(); @@ -35275,6 +35328,7 @@ package android.view { method public boolean getTitleOptionalHint(); method public int getType(); method public abstract void invalidate(); + method public void invalidateContentRect(); method public boolean isTitleOptional(); method public abstract void setCustomView(android.view.View); method public abstract void setSubtitle(java.lang.CharSequence); @@ -35295,6 +35349,11 @@ package android.view { method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu); } + public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback { + ctor public ActionMode.Callback2(); + method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect); + } + public abstract class ActionProvider { ctor public ActionProvider(android.content.Context); method public boolean hasSubMenu(); @@ -39877,6 +39936,7 @@ package android.webkit { method public void goBack(); method public void goBackOrForward(int); method public void goForward(); + method public void insertVisualStateCallback(long, android.webkit.WebView.VisualStateCallback); method public void invokeZoomPicker(); method public boolean isPrivateBrowsingEnabled(); method public void loadData(java.lang.String, java.lang.String, java.lang.String); @@ -39981,6 +40041,11 @@ package android.webkit { method public void super_setLayoutParams(android.view.ViewGroup.LayoutParams); } + public static abstract class WebView.VisualStateCallback { + ctor public WebView.VisualStateCallback(); + method public abstract void onComplete(long); + } + public class WebView.WebViewTransport { ctor public WebView.WebViewTransport(); method public synchronized android.webkit.WebView getWebView(); @@ -39992,6 +40057,7 @@ package android.webkit { method public void doUpdateVisitedHistory(android.webkit.WebView, java.lang.String, boolean); method public void onFormResubmission(android.webkit.WebView, android.os.Message, android.os.Message); method public void onLoadResource(android.webkit.WebView, java.lang.String); + method public void onPageCommitVisible(android.webkit.WebView, java.lang.String); method public void onPageFinished(android.webkit.WebView, java.lang.String); method public void onPageStarted(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); method public void onReceivedClientCertRequest(android.webkit.WebView, android.webkit.ClientCertRequest); @@ -40138,6 +40204,7 @@ package android.webkit { method public abstract void goBackOrForward(int); method public abstract void goForward(); method public abstract void init(java.util.Map<java.lang.String, java.lang.Object>, boolean); + method public abstract void insertVisualStateCallback(long, android.webkit.WebView.VisualStateCallback); method public abstract void invokeZoomPicker(); method public abstract boolean isPaused(); method public abstract boolean isPrivateBrowsingEnabled(); @@ -42599,7 +42666,8 @@ package android.widget { method public final void setText(char[], int, int); method public final void setText(int); method public final void setText(int, android.widget.TextView.BufferType); - method public void setTextAppearance(android.content.Context, int); + method public void setTextAppearance(int); + method public deprecated void setTextAppearance(android.content.Context, int); method public void setTextColor(int); method public void setTextColor(android.content.res.ColorStateList); method public void setTextIsSelectable(boolean); diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 85a6aff07c13..55d6ac864188 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -5468,6 +5468,470 @@ public class Notification implements Parcelable } /** + * <p> + * Helper class to add content info extensions to notifications. To create a notification with + * content info extensions: + * <ol> + * <li>Create an {@link Notification.Builder}, setting any desired properties. + * <li>Create a {@link ContentInfoExtender}. + * <li>Set content info specific properties using the {@code add} and {@code set} methods of + * {@link ContentInfoExtender}. + * <li>Call {@link Notification.Builder#extend(Notification.Extender)} to apply the extensions + * to a notification. + * </ol> + * + * <pre class="prettyprint">Notification notification = new Notification.Builder(context) * ... * .extend(new ContentInfoExtender() * .set*(...)) * .build(); * </pre> + * <p> + * Content info extensions can be accessed on an existing notification by using the + * {@code ContentInfoExtender(Notification)} constructor, and then using the {@code get} methods + * to access values. + */ + public static final class ContentInfoExtender implements Extender { + private static final String TAG = "ContentInfoExtender"; + + // Key for the Content info extensions bundle in the main Notification extras bundle + private static final String EXTRA_CONTENT_INFO_EXTENDER = "android.CONTENT_INFO_EXTENSIONS"; + + // Keys within EXTRA_CONTENT_INFO_EXTENDER for individual content info options. + + private static final String KEY_CONTENT_TYPE = "android.contentType"; + + private static final String KEY_CONTENT_GENRES = "android.contentGenre"; + + private static final String KEY_CONTENT_PRICING_TYPE = "android.contentPricing.type"; + + private static final String KEY_CONTENT_PRICING_VALUE = "android.contentPricing.value"; + + private static final String KEY_CONTENT_STATUS = "android.contentStatus"; + + private static final String KEY_CONTENT_MATURITY_RATING = "android.contentMaturity"; + + private static final String KEY_CONTENT_RUN_LENGTH = "android.contentLength"; + + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a video clip. + */ + public static final String CONTENT_TYPE_VIDEO = "android.contentType.video"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a movie. + */ + public static final String CONTENT_TYPE_MOVIE = "android.contentType.movie"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a trailer. + */ + public static final String CONTENT_TYPE_TRAILER = "android.contentType.trailer"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is serial. It can refer to an entire show, a single season or + * series, or a single episode. + */ + public static final String CONTENT_TYPE_SERIAL = "android.contentType.serial"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a song or album. + */ + public static final String CONTENT_TYPE_MUSIC = "android.contentType.music"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a radio station. + */ + public static final String CONTENT_TYPE_RADIO = "android.contentType.radio"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a podcast. + */ + public static final String CONTENT_TYPE_PODCAST = "android.contentType.podcast"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a news item. + */ + public static final String CONTENT_TYPE_NEWS = "android.contentType.news"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is sports. + */ + public static final String CONTENT_TYPE_SPORTS = "android.contentType.sports"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is an application. + */ + public static final String CONTENT_TYPE_APP = "android.contentType.app"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a game. + */ + public static final String CONTENT_TYPE_GAME = "android.contentType.game"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a book. + */ + public static final String CONTENT_TYPE_BOOK = "android.contentType.book"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a comic book. + */ + public static final String CONTENT_TYPE_COMIC = "android.contentType.comic"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a magazine. + */ + public static final String CONTENT_TYPE_MAGAZINE = "android.contentType.magazine"; + + /** + * Value to be used with {@link #setContentTypes} to indicate that the content referred by + * the notification item is a website. + */ + public static final String CONTENT_TYPE_WEBSITE = "android.contentType.website"; + + + /** + * Value to be used with {@link #setPricingInformation} to indicate that the content + * referred by the notification item is free to consume. + */ + public static final String CONTENT_PRICING_FREE = "android.contentPrice.free"; + + /** + * Value to be used with {@link #setPricingInformation} to indicate that the content + * referred by the notification item is available as a rental, and the price value provided + * is the rental price for the item. + */ + public static final String CONTENT_PRICING_RENTAL = "android.contentPrice.rental"; + + /** + * Value to be used with {@link #setPricingInformation} to indicate that the content + * referred by the notification item is available for purchase, and the price value provided + * is the purchase price for the item. + */ + public static final String CONTENT_PRICING_PURCHASE = "android.contentPrice.purchase"; + + /** + * Value to be used with {@link #setPricingInformation} to indicate that the content + * referred by the notification item is available as part of a subscription based service, + * and the price value provided is the subscription price for the service. + */ + public static final String CONTENT_PRICING_SUBSCRIPTION = + "android.contentPrice.subscription"; + + /** + * Value to be used with {@link #setStatus} to indicate that the content referred by the + * notification is available and ready to be consumed immediately. + */ + public static final int CONTENT_STATUS_READY = 0; + + /** + * Value to be used with {@link #setStatus} to indicate that the content referred by the + * notification is pending, waiting on either a download or purchase operation to complete + * before it can be consumed. + */ + public static final int CONTENT_STATUS_PENDING = 1; + + /** + * Value to be used with {@link #setStatus} to indicate that the content referred by the + * notification is available, but needs to be first purchased, rented, subscribed or + * downloaded before it can be consumed. + */ + public static final int CONTENT_STATUS_AVAILABLE = 2; + + /** + * Value to be used with {@link #setStatus} to indicate that the content referred by the + * notification is not available. This could be content not available in a certain region or + * incompatible with the device in use. + */ + public static final int CONTENT_STATUS_UNAVAILABLE = 3; + + /** + * Value to be used with {@link #setMaturityRating} to indicate that the content referred by + * the notification is suitable for all audiences. + */ + public static final String CONTENT_MATURITY_ALL = "android.contentMaturity.all"; + + /** + * Value to be used with {@link #setMaturityRating} to indicate that the content + * referred by the notification is suitable for audiences of low maturity and above. + */ + public static final String CONTENT_MATURITY_LOW = "android.contentMaturity.low"; + + /** + * Value to be used with {@link #setMaturityRating} to indicate that the content + * referred by the notification is suitable for audiences of medium maturity and above. + */ + public static final String CONTENT_MATURITY_MEDIUM = "android.contentMaturity.medium"; + + /** + * Value to be used with {@link #setMaturityRating} to indicate that the content + * referred by the notification is suitable for audiences of high maturity and above. + */ + public static final String CONTENT_MATURITY_HIGH = "android.contentMaturity.high"; + + private String[] mTypes; + private String[] mGenres; + private String mPricingType; + private String mPricingValue; + private int mContentStatus = -1; + private String mMaturityRating; + private long mRunLength = -1; + + /** + * Create a {@link ContentInfoExtender} with default options. + */ + public ContentInfoExtender() { + } + + /** + * Create a {@link ContentInfoExtender} from the ContentInfoExtender options of an existing + * Notification. + * + * @param notif The notification from which to copy options. + */ + public ContentInfoExtender(Notification notif) { + Bundle contentBundle = notif.extras == null ? + null : notif.extras.getBundle(EXTRA_CONTENT_INFO_EXTENDER); + if (contentBundle != null) { + mTypes = contentBundle.getStringArray(KEY_CONTENT_TYPE); + mGenres = contentBundle.getStringArray(KEY_CONTENT_GENRES); + mPricingType = contentBundle.getString(KEY_CONTENT_PRICING_TYPE); + mPricingValue = contentBundle.getString(KEY_CONTENT_PRICING_VALUE); + mContentStatus = contentBundle.getInt(KEY_CONTENT_STATUS, -1); + mMaturityRating = contentBundle.getString(KEY_CONTENT_MATURITY_RATING); + mRunLength = contentBundle.getLong(KEY_CONTENT_RUN_LENGTH, -1); + } + } + + /** + * Apply content extensions to a notification that is being built. This is typically called + * by the {@link Notification.Builder#extend(Notification.Extender)} method of + * {@link Notification.Builder}. + */ + @Override + public Notification.Builder extend(Notification.Builder builder) { + Bundle contentBundle = new Bundle(); + + if (mTypes != null) { + contentBundle.putStringArray(KEY_CONTENT_TYPE, mTypes); + } + if (mGenres != null) { + contentBundle.putStringArray(KEY_CONTENT_GENRES, mGenres); + } + if (mPricingType != null) { + contentBundle.putString(KEY_CONTENT_PRICING_TYPE, mPricingType); + } + if (mPricingValue != null) { + contentBundle.putString(KEY_CONTENT_PRICING_VALUE, mPricingValue); + } + if (mContentStatus != -1) { + contentBundle.putInt(KEY_CONTENT_STATUS, mContentStatus); + } + if (mMaturityRating != null) { + contentBundle.putString(KEY_CONTENT_MATURITY_RATING, mMaturityRating); + } + if (mRunLength > 0) { + contentBundle.putLong(KEY_CONTENT_RUN_LENGTH, mRunLength); + } + + builder.getExtras().putBundle(EXTRA_CONTENT_INFO_EXTENDER, contentBundle); + return builder; + } + + /** + * Sets the content types associated with the notification content. The first tag entry will + * be considered the primary type for the content and will be used for ranking purposes. + * Other secondary type tags may be provided, if applicable, and may be used for filtering + * purposes. + * + * @param types Array of predefined type tags (see the <code>CONTENT_TYPE_*</code> + * constants) that describe the content referred to by a notification. + */ + public ContentInfoExtender setContentTypes(String[] types) { + mTypes = types; + return this; + } + + /** + * Returns an array containing the content types that describe the content associated with + * the notification. The first tag entry is considered the primary type for the content, and + * is used for content ranking purposes. + * + * @return An array of predefined type tags (see the <code>CONTENT_TYPE_*</code> constants) + * that describe the content associated with the notification. + * @see ContentInfoExtender#setContentTypes + */ + public String[] getContentTypes() { + return mTypes; + } + + /** + * Returns the primary content type tag for the content associated with the notification. + * + * @return A predefined type tag (see the <code>CONTENT_TYPE_*</code> constants) indicating + * the primary type for the content associated with the notification. + * @see ContentInfoExtender#setContentTypes + */ + public String getPrimaryContentType() { + if (mTypes == null || mTypes.length == 0) { + return null; + } + return mTypes[0]; + } + + /** + * Sets the content genres associated with the notification content. These genres may be + * used for content ranking. Genres are open ended String tags. + * <p> + * Some examples: "comedy", "action", "dance", "electronica", "racing", etc. + * + * @param genres Array of genre string tags that describe the content referred to by a + * notification. + */ + public ContentInfoExtender setGenres(String[] genres) { + mGenres = genres; + return this; + } + + /** + * Returns an array containing the content genres that describe the content associated with + * the notification. + * + * @return An array of genre tags that describe the content associated with the + * notification. + * @see ContentInfoExtender#setGenres + */ + public String[] getGenres() { + return mGenres; + } + + /** + * Sets the pricing and availability information for the content associated with the + * notification. The provided information will indicate the access model for the content + * (free, rental, purchase or subscription) and the price value (if not free). + * + * @param priceType Pricing type for this content. Must be one of the predefined pricing + * type tags (see the <code>CONTENT_PRICING_*</code> constants). + * @param priceValue A string containing a representation of the content price in the + * current locale and currency. + * @return This object for method chaining. + */ + public ContentInfoExtender setPricingInformation(String priceType, String priceValue) { + mPricingType = priceType; + mPricingValue = priceValue; + return this; + } + + /** + * Gets the pricing type for the content associated with the notification. + * + * @return A predefined tag indicating the pricing type for the content (see the <code> + * CONTENT_PRICING_*</code> constants). + * @see ContentInfoExtender#setPricingInformation + */ + public String getPricingType() { + return mPricingType; + } + + /** + * Gets the price value (when applicable) for the content associated with a notification. + * The value will be provided as a String containing the price in the appropriate currency + * for the current locale. + * + * @return A string containing a representation of the content price in the current locale + * and currency. + * @see ContentInfoExtender#setPricingInformation + */ + public String getPricingValue() { + if (mPricingType == null || CONTENT_PRICING_FREE.equals(mPricingType)) { + return null; + } + return mPricingValue; + } + + /** + * Sets the availability status for the content associated with the notification. This + * status indicates whether the referred content is ready to be consumed on the device, or + * if the user must first purchase, rent, subscribe to, or download the content. + * + * @param contentStatus The status value for this content. Must be one of the predefined + * content status values (see the <code>CONTENT_STATUS_*</code> constants). + */ + public ContentInfoExtender setStatus(int contentStatus) { + mContentStatus = contentStatus; + return this; + } + + /** + * Returns status value for the content associated with the notification. This status + * indicates whether the referred content is ready to be consumed on the device, or if the + * user must first purchase, rent, subscribe to, or download the content. + * + * @return The status value for this content, or -1 is a valid status has not been specified + * (see the <code>CONTENT_STATUS_*</code> for the defined valid status values). + * @see ContentInfoExtender#setStatus + */ + public int getStatus() { + return mContentStatus; + } + + /** + * Sets the maturity level rating for the content associated with the notification. + * + * @param maturityRating A tag indicating the maturity level rating for the content. This + * tag must be one of the predefined maturity rating tags (see the <code> + * CONTENT_MATURITY_*</code> constants). + */ + public ContentInfoExtender setMaturityRating(String maturityRating) { + mMaturityRating = maturityRating; + return this; + } + + /** + * Returns the maturity level rating for the content associated with the notification. + * + * @return returns a predefined tag indicating the maturity level rating for the content + * (see the <code> CONTENT_MATURITY_*</code> constants). + * @see ContentInfoExtender#setMaturityRating + */ + public String getMaturityRating() { + return mMaturityRating; + } + + /** + * Sets the running time (when applicable) for the content associated with the notification. + * + * @param length The runing time, in seconds, of the content associated with the + * notification. + */ + public ContentInfoExtender setRunningTime(long length) { + mRunLength = length; + return this; + } + + /** + * Returns the running time for the content associated with the notification. + * + * @return The running time, in seconds, of the content associated with the notification. + * @see ContentInfoExtender#setRunningTime + */ + public long getRunningTime() { + return mRunLength; + } + } + + /** * Get an array of Notification objects from a parcelable array bundle field. * Update the bundle to have a typed array so fetches in the future don't need * to do an array copy. diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index e1a2aa96c36c..5b7896aa7d65 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -598,6 +598,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public int installLocation = PackageInfo.INSTALL_LOCATION_UNSPECIFIED; + /** + * True when the application's rendering should be hardware accelerated. + */ + public boolean hardwareAccelerated; + public void dump(Printer pw, String prefix) { super.dumpFront(pw, prefix); if (className != null) { @@ -637,6 +642,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } pw.println(prefix + "enabled=" + enabled + " targetSdkVersion=" + targetSdkVersion + " versionCode=" + versionCode); + pw.println(prefix + "hardwareAccelerated=" + hardwareAccelerated); if (manageSpaceActivityName != null) { pw.println(prefix + "manageSpaceActivityName="+manageSpaceActivityName); } @@ -722,6 +728,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { descriptionRes = orig.descriptionRes; uiOptions = orig.uiOptions; backupAgentName = orig.backupAgentName; + hardwareAccelerated = orig.hardwareAccelerated; } @@ -773,6 +780,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { dest.writeString(backupAgentName); dest.writeInt(descriptionRes); dest.writeInt(uiOptions); + dest.writeInt(hardwareAccelerated ? 1 : 0); } public static final Parcelable.Creator<ApplicationInfo> CREATOR @@ -823,6 +831,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { backupAgentName = source.readString(); descriptionRes = source.readInt(); uiOptions = source.readInt(); + hardwareAccelerated = source.readInt() != 0; } /** diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 036568952e3e..3da57cb52418 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3692,11 +3692,11 @@ public abstract class PackageManager { * {@link #addPreferredActivity}, that are * currently registered with the system. * - * @param outFilters A list in which to place the filters of all of the - * preferred activities, or null for none. - * @param outActivities A list in which to place the component names of - * all of the preferred activities, or null for none. - * @param packageName An option package in which you would like to limit + * @param outFilters A required list in which to place the filters of all of the + * preferred activities. + * @param outActivities A required list in which to place the component names of + * all of the preferred activities. + * @param packageName An optional package in which you would like to limit * the list. If null, all activities will be returned; if non-null, only * those activities in the given package are returned. * @@ -3704,8 +3704,8 @@ public abstract class PackageManager { * (the number of distinct IntentFilter records, not the number of unique * activity components) that were found. */ - public abstract int getPreferredActivities(List<IntentFilter> outFilters, - List<ComponentName> outActivities, String packageName); + public abstract int getPreferredActivities(@NonNull List<IntentFilter> outFilters, + @NonNull List<ComponentName> outActivities, String packageName); /** * Ask for the set of available 'home' activities and the current explicit diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 11407563e2e5..a245ba56e3bf 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -2519,6 +2519,7 @@ public class PackageParser { owner.baseHardwareAccelerated = sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_hardwareAccelerated, owner.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.ICE_CREAM_SANDWICH); + ai.hardwareAccelerated = owner.baseHardwareAccelerated; if (sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_hasCode, diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index faa782af5518..b51337963d3c 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -1013,10 +1013,10 @@ public final class CameraManager { if (DEBUG) { Log.v(TAG, String.format( - "Device status was previously available (%d), " + - " and is now again available (%d)" + + "Device status was previously available (%b), " + + " and is now again available (%b)" + "so no new client visible update will be sent", - isAvailable(status), isAvailable(status))); + isAvailable(oldStatus), isAvailable(status))); } return; } diff --git a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java index 367a078c3d74..b5a019dafeb5 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java +++ b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java @@ -292,6 +292,10 @@ public class LegacyCameraDevice implements AutoCloseable { Log.e(TAG, "configureOutputs - null outputs are not allowed"); return BAD_VALUE; } + if (!output.isValid()) { + Log.e(TAG, "configureOutputs - invalid output surfaces are not allowed"); + return BAD_VALUE; + } StreamConfigurationMap streamConfigurations = mStaticCharacteristics. get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); @@ -522,7 +526,7 @@ public class LegacyCameraDevice implements AutoCloseable { * @return the width and height of the surface * * @throws NullPointerException if the {@code surface} was {@code null} - * @throws IllegalStateException if the {@code surface} was invalid + * @throws BufferQueueAbandonedException if the {@code surface} was invalid */ public static Size getSurfaceSize(Surface surface) throws BufferQueueAbandonedException { checkNotNull(surface); diff --git a/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java b/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java index 7e0c01b14917..4b7cfbf79b77 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java +++ b/core/java/android/hardware/camera2/legacy/LegacyExceptionUtils.java @@ -60,7 +60,7 @@ public class LegacyExceptionUtils { case CameraBinderDecorator.NO_ERROR: { return CameraBinderDecorator.NO_ERROR; } - case CameraBinderDecorator.ENODEV: { + case CameraBinderDecorator.BAD_VALUE: { throw new BufferQueueAbandonedException(); } } diff --git a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java index ff74c59c127d..691798f71991 100644 --- a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java +++ b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java @@ -498,6 +498,10 @@ public class RequestThreadManager { return; } for(Surface s : surfaces) { + if (s == null || !s.isValid()) { + Log.w(TAG, "Jpeg surface is invalid, skipping..."); + continue; + } try { LegacyCameraDevice.setSurfaceFormat(s, LegacyMetadataMapper.HAL_PIXEL_FORMAT_BLOB); } catch (LegacyExceptionUtils.BufferQueueAbandonedException e) { diff --git a/core/java/android/hardware/location/GeofenceHardwareImpl.java b/core/java/android/hardware/location/GeofenceHardwareImpl.java index 6e5d0648a6a5..4696b2a353c4 100644 --- a/core/java/android/hardware/location/GeofenceHardwareImpl.java +++ b/core/java/android/hardware/location/GeofenceHardwareImpl.java @@ -436,7 +436,7 @@ public final class GeofenceHardwareImpl { int monitoringType, int sourcesUsed) { if(location == null) { - Log.e(TAG, String.format("Invalid Geofence Transition: location=%p", location)); + Log.e(TAG, String.format("Invalid Geofence Transition: location=null")); return; } if(DEBUG) { diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index e303f61f1698..de970cbe525a 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -364,6 +364,12 @@ public final class PowerManager { public static final int GO_TO_SLEEP_REASON_HDMI = 5; /** + * Go to sleep reason code: Going to sleep due to the sleep button being pressed. + * @hide + */ + public static final int GO_TO_SLEEP_REASON_SLEEP_BUTTON = 6; + + /** * Go to sleep flag: Skip dozing state and directly go to full sleep. * @hide */ diff --git a/core/java/android/print/PrintDocumentInfo.java b/core/java/android/print/PrintDocumentInfo.java index e4e753e6043a..44e6410f64d5 100644 --- a/core/java/android/print/PrintDocumentInfo.java +++ b/core/java/android/print/PrintDocumentInfo.java @@ -212,7 +212,7 @@ public final class PrintDocumentInfo implements Parcelable { result = prime * result + mContentType; result = prime * result + mPageCount; result = prime * result + (int) mDataSize; - result = prime * result + (int) mDataSize >> 32; + result = prime * result + (int) (mDataSize >> 32); return result; } diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 91a19dcf3090..06862d72029d 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -4994,14 +4994,16 @@ public final class ContactsContract { "phone_lookup"); /** - * URI used for the "enterprise caller-id". + * <p>URI used for the "enterprise caller-id".</p> * + * <p> * It supports the same semantics as {@link #CONTENT_FILTER_URI} and returns the same * columns. If the device has no corp profile that is linked to the current profile, it * behaves in the exact same way as {@link #CONTENT_FILTER_URI}. If there is a corp profile * linked to the current profile, it first queries against the personal contact database, * and if no matching contacts are found there, then queries against the * corp contacts database. + * </p> * <p> * If a result is from the corp profile, it makes the following changes to the data: * <ul> @@ -5984,6 +5986,45 @@ public final class ContactsContract { "lookup"); /** + * <p>URI used for enterprise email lookup.</p> + * + * <p> + * It supports the same semantics as {@link #CONTENT_LOOKUP_URI} and returns the same + * columns. If the device has no corp profile that is linked to the current profile, it + * behaves in the exact same way as {@link #CONTENT_LOOKUP_URI}. If there is a + * corp profile linked to the current profile, it first queries against the personal contact database, + * and if no matching contacts are found there, then queries against the + * corp contacts database. + * </p> + * <p> + * If a result is from the corp profile, it makes the following changes to the data: + * <ul> + * <li> + * {@link #PHOTO_THUMBNAIL_URI} and {@link #PHOTO_URI} will be rewritten to special + * URIs. Use {@link ContentResolver#openAssetFileDescriptor} or its siblings to + * load pictures from them. + * {@link #PHOTO_ID} and {@link #PHOTO_FILE_ID} will be set to null. Do not + * use them. + * </li> + * <li> + * Corp contacts will get artificial {@link #CONTACT_ID}s. In order to tell whether + * a contact + * is from the corp profile, use + * {@link ContactsContract.Contacts#isEnterpriseContactId(long)}. + * </li> + * </ul> + * <p> + * This URI does NOT support selection nor order-by. + * + * <pre> + * Uri lookupUri = Uri.withAppendedPath(Email.ENTERPRISE_CONTENT_LOOKUP_URI, + * Uri.encode(email)); + * </pre> + */ + public static final Uri ENTERPRISE_CONTENT_LOOKUP_URI = + Uri.withAppendedPath(CONTENT_URI, "lookup_enterprise"); + + /** * <p> * The content:// style URL for email lookup using a filter. The filter returns * records of MIME type {@link #CONTENT_ITEM_TYPE}. The filter is applied diff --git a/core/java/android/service/voice/IVoiceInteractionSession.aidl b/core/java/android/service/voice/IVoiceInteractionSession.aidl index 797457a30536..4f4b2d51fe8a 100644 --- a/core/java/android/service/voice/IVoiceInteractionSession.aidl +++ b/core/java/android/service/voice/IVoiceInteractionSession.aidl @@ -17,6 +17,7 @@ package android.service.voice; import android.content.Intent; +import android.graphics.Bitmap; import android.os.Bundle; /** @@ -26,6 +27,7 @@ oneway interface IVoiceInteractionSession { void show(in Bundle sessionArgs, int flags); void hide(); void handleAssist(in Bundle assistData); + void handleScreenshot(in Bitmap screenshot); void taskStarted(in Intent intent, int taskId); void taskFinished(in Intent intent, int taskId); void closeSystemDialogs(); diff --git a/core/java/android/service/voice/VoiceInteractionService.java b/core/java/android/service/voice/VoiceInteractionService.java index 0c01b259a33f..419b92bae8a4 100644 --- a/core/java/android/service/voice/VoiceInteractionService.java +++ b/core/java/android/service/voice/VoiceInteractionService.java @@ -71,11 +71,17 @@ public class VoiceInteractionService extends Service { public static final String SERVICE_META_DATA = "android.voice_interaction"; /** - * Flag for use with {@link #showSession: request that the session be started with + * Flag for use with {@link #showSession}: request that the session be started with * assist data from the currently focused activity. */ public static final int START_WITH_ASSIST = 1<<0; + /** + * Flag for use with {@link #showSession}: request that the session be started with + * a screen shot of the currently focused activity. + */ + public static final int START_WITH_SCREENSHOT = 1<<1; + IVoiceInteractionService mInterface = new IVoiceInteractionService.Stub() { @Override public void ready() { mHandler.sendEmptyMessage(MSG_READY); diff --git a/core/java/android/service/voice/VoiceInteractionSession.java b/core/java/android/service/voice/VoiceInteractionSession.java index 11eaa0678870..7a5bb90df680 100644 --- a/core/java/android/service/voice/VoiceInteractionSession.java +++ b/core/java/android/service/voice/VoiceInteractionSession.java @@ -22,6 +22,7 @@ import android.app.VoiceInteractor; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; +import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.Region; import android.inputmethodservice.SoftInputWindow; @@ -179,6 +180,12 @@ public abstract class VoiceInteractionSession implements KeyEvent.Callback { } @Override + public void handleScreenshot(Bitmap screenshot) { + mHandlerCaller.sendMessage(mHandlerCaller.obtainMessageO(MSG_HANDLE_SCREENSHOT, + screenshot)); + } + + @Override public void taskStarted(Intent intent, int taskId) { mHandlerCaller.sendMessage(mHandlerCaller.obtainMessageIO(MSG_TASK_STARTED, taskId, intent)); @@ -323,8 +330,9 @@ public abstract class VoiceInteractionSession implements KeyEvent.Callback { static final int MSG_CLOSE_SYSTEM_DIALOGS = 102; static final int MSG_DESTROY = 103; static final int MSG_HANDLE_ASSIST = 104; - static final int MSG_SHOW = 105; - static final int MSG_HIDE = 106; + static final int MSG_HANDLE_SCREENSHOT = 105; + static final int MSG_SHOW = 106; + static final int MSG_HIDE = 107; class MyCallbacks implements HandlerCaller.Callback, SoftInputWindow.Callback { @Override @@ -396,9 +404,13 @@ public abstract class VoiceInteractionSession implements KeyEvent.Callback { doDestroy(); break; case MSG_HANDLE_ASSIST: - if (DEBUG) Log.d(TAG, "onHandleAssist: " + (Bundle)msg.obj); + if (DEBUG) Log.d(TAG, "onHandleAssist: " + msg.obj); onHandleAssist((Bundle) msg.obj); break; + case MSG_HANDLE_SCREENSHOT: + if (DEBUG) Log.d(TAG, "onHandleScreenshot: " + msg.obj); + onHandleScreenshot((Bitmap) msg.obj); + break; case MSG_SHOW: if (DEBUG) Log.d(TAG, "doShow: args=" + msg.obj + " flags=" + msg.arg1); @@ -768,6 +780,9 @@ public abstract class VoiceInteractionSession implements KeyEvent.Callback { public void onHandleAssist(Bundle assistBundle) { } + public void onHandleScreenshot(Bitmap screenshot) { + } + public boolean onKeyDown(int keyCode, KeyEvent event) { return false; } diff --git a/core/java/android/text/util/Linkify.java b/core/java/android/text/util/Linkify.java index 8e9eb48268b8..c1192776ed4f 100644 --- a/core/java/android/text/util/Linkify.java +++ b/core/java/android/text/util/Linkify.java @@ -525,10 +525,6 @@ public class Linkify { return 0; } - - public final boolean equals(Object o) { - return false; - } }; Collections.sort(links, c); diff --git a/core/java/android/util/PathParser.java b/core/java/android/util/PathParser.java index 92b19be64803..18dc26279f6c 100644 --- a/core/java/android/util/PathParser.java +++ b/core/java/android/util/PathParser.java @@ -164,7 +164,7 @@ public class PathParser { * @return array of floats */ private static float[] getFloats(String s) { - if (s.charAt(0) == 'z' | s.charAt(0) == 'Z') { + if (s.charAt(0) == 'z' || s.charAt(0) == 'Z') { return new float[0]; } try { diff --git a/core/java/android/view/ActionMode.java b/core/java/android/view/ActionMode.java index a018138d44ff..9f202a952479 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.graphics.Rect; /** * Represents a contextual mode of the user interface. Action modes can be used to provide @@ -197,6 +198,15 @@ public abstract class ActionMode { public abstract void invalidate(); /** + * Invalidate the content rect associated to this ActionMode. This only makes sense for + * action modes that support dynamic positioning on the screen, and provides a more efficient + * way to reposition it without invalidating the whole action mode. + * + * @see Callback2#onGetContentRect(ActionMode, View, Rect) . + */ + public void invalidateContentRect() {} + + /** * Finish and close this action mode. The action mode's {@link ActionMode.Callback} will * have its {@link Callback#onDestroyActionMode(ActionMode)} method called. */ @@ -298,4 +308,31 @@ public abstract class ActionMode { */ public void onDestroyActionMode(ActionMode mode); } -}
\ No newline at end of file + + /** + * Extension of {@link ActionMode.Callback} to provide content rect information. This is + * required for ActionModes with dynamic positioning such as the ones with type + * {@link ActionMode#TYPE_FLOATING} to ensure the positioning doesn't obscure app content. If + * an app fails to provide a subclass of this class, a default implementation will be used. + */ + public static abstract class Callback2 implements ActionMode.Callback { + + /** + * Called when an ActionMode needs to be positioned on screen, potentially occluding view + * content. Note this may be called on a per-frame basis. + * + * @param mode The ActionMode that requires positioning. + * @param view The View that originated the ActionMode, in whose coordinates the Rect should + * be provided. + * @param outRect The Rect to be populated with the content position. + */ + public void onGetContentRect(ActionMode mode, View view, Rect outRect) { + if (view != null) { + outRect.set(0, 0, view.getWidth(), view.getHeight()); + } else { + outRect.set(0, 0, 0, 0); + } + } + + } +} diff --git a/core/java/android/view/DisplayListCanvas.java b/core/java/android/view/DisplayListCanvas.java index 90e1f8688795..3caf6f07c891 100644 --- a/core/java/android/view/DisplayListCanvas.java +++ b/core/java/android/view/DisplayListCanvas.java @@ -18,6 +18,7 @@ package android.view; import android.annotation.NonNull; import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.CanvasProperty; import android.graphics.NinePatch; import android.graphics.Paint; @@ -32,8 +33,10 @@ import android.util.Pools.SynchronizedPool; * This is intended for use with a DisplayList. This class keeps a list of all the Paint and * Bitmap objects that it draws, preventing the backing memory of Bitmaps from being freed while * the DisplayList is still holding a native reference to the memory. + * + * @hide */ -class DisplayListCanvas extends HardwareCanvas { +public class DisplayListCanvas extends Canvas { // The recording canvas pool should be large enough to handle a deeply nested // view hierarchy because display lists are generated recursively. private static final int POOL_LIMIT = 25; @@ -85,7 +88,6 @@ class DisplayListCanvas extends HardwareCanvas { // Constructors /////////////////////////////////////////////////////////////////////////// - private DisplayListCanvas() { super(nCreateDisplayListRenderer()); } @@ -103,6 +105,16 @@ class DisplayListCanvas extends HardwareCanvas { /////////////////////////////////////////////////////////////////////////// @Override + public boolean isHardwareAccelerated() { + return true; + } + + @Override + public void setBitmap(Bitmap bitmap) { + throw new UnsupportedOperationException(); + } + + @Override public boolean isOpaque() { return false; } @@ -171,7 +183,11 @@ class DisplayListCanvas extends HardwareCanvas { private static native void nInsertReorderBarrier(long renderer, boolean enableReorder); - @Override + /** + * Invoked before any drawing operation is performed in this canvas. + * + * @param dirty The dirty rectangle to update, can be null. + */ public void onPreDraw(Rect dirty) { if (dirty != null) { nPrepareDirty(mNativeCanvasWrapper, dirty.left, dirty.top, dirty.right, dirty.bottom); @@ -183,7 +199,9 @@ class DisplayListCanvas extends HardwareCanvas { private static native void nPrepare(long renderer); private static native void nPrepareDirty(long renderer, int left, int top, int right, int bottom); - @Override + /** + * Invoked after all drawing operation have been performed. + */ public void onPostDraw() { nFinish(mNativeCanvasWrapper); } @@ -194,7 +212,13 @@ class DisplayListCanvas extends HardwareCanvas { // Functor /////////////////////////////////////////////////////////////////////////// - @Override + /** + * Calls the function specified with the drawGLFunction function pointer. This is + * functionality used by webkit for calling into their renderer from our display lists. + * This function may return true if an invalidation is needed after the call. + * + * @param drawGLFunction A native function pointer + */ public void callDrawGLFunction2(long drawGLFunction) { nCallDrawGLFunction(mNativeCanvasWrapper, drawGLFunction); } @@ -207,7 +231,23 @@ class DisplayListCanvas extends HardwareCanvas { protected static native long nFinishRecording(long renderer); - @Override + /** + * Draws the specified display list onto this canvas. The display list can only + * be drawn if {@link android.view.RenderNode#isValid()} returns true. + * + * @param renderNode The RenderNode to replay. + */ + public void drawRenderNode(RenderNode renderNode) { + drawRenderNode(renderNode, RenderNode.FLAG_CLIP_CHILDREN); + } + + /** + * Draws the specified display list onto this canvas. + * + * @param renderNode The RenderNode to replay. + * @param flags Optional flags about drawing, see {@link RenderNode} for + * the possible flags. + */ public void drawRenderNode(RenderNode renderNode, int flags) { nDrawRenderNode(mNativeCanvasWrapper, renderNode.getNativeDisplayList(), flags); } @@ -219,6 +259,14 @@ class DisplayListCanvas extends HardwareCanvas { // Hardware layer /////////////////////////////////////////////////////////////////////////// + /** + * Draws the specified layer onto this canvas. + * + * @param layer The layer to composite on this canvas + * @param x The left coordinate of the layer + * @param y The top coordinate of the layer + * @param paint The paint used to draw the layer + */ void drawHardwareLayer(HardwareLayer layer, float x, float y, Paint paint) { layer.setLayerPaint(paint); nDrawLayer(mNativeCanvasWrapper, layer.getLayerHandle(), x, y); @@ -253,7 +301,6 @@ class DisplayListCanvas extends HardwareCanvas { private static native void nDrawPatch(long renderer, long bitmap, long chunk, float left, float top, float right, float bottom, long paint); - @Override public void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, CanvasProperty<Float> radius, CanvasProperty<Paint> paint) { nDrawCircle(mNativeCanvasWrapper, cx.getNativeContainer(), cy.getNativeContainer(), @@ -263,7 +310,6 @@ class DisplayListCanvas extends HardwareCanvas { private static native void nDrawCircle(long renderer, long propCx, long propCy, long propRadius, long propPaint); - @Override public void drawRoundRect(CanvasProperty<Float> left, CanvasProperty<Float> top, CanvasProperty<Float> right, CanvasProperty<Float> bottom, CanvasProperty<Float> rx, CanvasProperty<Float> ry, CanvasProperty<Paint> paint) { diff --git a/core/java/android/view/GhostView.java b/core/java/android/view/GhostView.java index 20baad08e38a..d58e7c03848c 100644 --- a/core/java/android/view/GhostView.java +++ b/core/java/android/view/GhostView.java @@ -46,14 +46,14 @@ public class GhostView extends View { @Override protected void onDraw(Canvas canvas) { - if (canvas instanceof HardwareCanvas) { - HardwareCanvas hwCanvas = (HardwareCanvas) canvas; + if (canvas instanceof DisplayListCanvas) { + DisplayListCanvas dlCanvas = (DisplayListCanvas) canvas; mView.mRecreateDisplayList = true; RenderNode renderNode = mView.getDisplayList(); if (renderNode.isValid()) { - hwCanvas.insertReorderBarrier(); // enable shadow for this rendernode - hwCanvas.drawRenderNode(renderNode); - hwCanvas.insertInorderBarrier(); // re-disable reordering/shadows + dlCanvas.insertReorderBarrier(); // enable shadow for this rendernode + dlCanvas.drawRenderNode(renderNode); + dlCanvas.insertInorderBarrier(); // re-disable reordering/shadows } } } diff --git a/core/java/android/view/HardwareCanvas.java b/core/java/android/view/HardwareCanvas.java deleted file mode 100644 index fc2b55bc73d1..000000000000 --- a/core/java/android/view/HardwareCanvas.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2010 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 android.view; - -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.CanvasProperty; -import android.graphics.Paint; -import android.graphics.Rect; - -/** - * Hardware accelerated canvas. - * - * @hide - */ -public abstract class HardwareCanvas extends Canvas { - - /** - * Pass a reference to the native renderer to our superclass's - * constructor. - */ - protected HardwareCanvas(long renderer) { - super(renderer); - } - - @Override - public boolean isHardwareAccelerated() { - return true; - } - - @Override - public void setBitmap(Bitmap bitmap) { - throw new UnsupportedOperationException(); - } - - /** - * Invoked before any drawing operation is performed in this canvas. - * - * @param dirty The dirty rectangle to update, can be null. - * - * @hide - */ - public abstract void onPreDraw(Rect dirty); - - /** - * Invoked after all drawing operation have been performed. - * - * @hide - */ - public abstract void onPostDraw(); - - /** - * Draws the specified display list onto this canvas. The display list can only - * be drawn if {@link android.view.RenderNode#isValid()} returns true. - * - * @param renderNode The RenderNode to replay. - */ - public void drawRenderNode(RenderNode renderNode) { - drawRenderNode(renderNode, RenderNode.FLAG_CLIP_CHILDREN); - } - - /** - * Draws the specified display list onto this canvas. - * - * @param renderNode The RenderNode to replay. - * @param dirty Ignored, can be null. - * @param flags Optional flags about drawing, see {@link RenderNode} for - * the possible flags. - * - * @hide - */ - public abstract void drawRenderNode(RenderNode renderNode, int flags); - - /** - * Draws the specified layer onto this canvas. - * - * @param layer The layer to composite on this canvas - * @param x The left coordinate of the layer - * @param y The top coordinate of the layer - * @param paint The paint used to draw the layer - * - * @hide - */ - abstract void drawHardwareLayer(HardwareLayer layer, float x, float y, Paint paint); - - /** - * Calls the function specified with the drawGLFunction function pointer. This is - * functionality used by webkit for calling into their renderer from our display lists. - * This function may return true if an invalidation is needed after the call. - * - * @param drawGLFunction A native function pointer - * - * @hide - */ - public void callDrawGLFunction2(long drawGLFunction) { - // Noop - this is done in the display list recorder subclass - } - - public abstract void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, - CanvasProperty<Float> radius, CanvasProperty<Paint> paint); - - public abstract void drawRoundRect(CanvasProperty<Float> left, CanvasProperty<Float> top, - CanvasProperty<Float> right, CanvasProperty<Float> bottom, - CanvasProperty<Float> rx, CanvasProperty<Float> ry, - CanvasProperty<Paint> paint); - - public static void setProperty(String name, String value) { - DisplayListCanvas.setProperty(name, value); - } -} diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index afa7f5114abc..6632f39d0c42 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -326,7 +326,7 @@ public abstract class HardwareRenderer { * * @param canvas The Canvas used to render the view. */ - void onHardwarePreDraw(HardwareCanvas canvas); + void onHardwarePreDraw(DisplayListCanvas canvas); /** * Invoked after a view is drawn by a hardware renderer. @@ -334,7 +334,7 @@ public abstract class HardwareRenderer { * * @param canvas The Canvas used to render the view. */ - void onHardwarePostDraw(HardwareCanvas canvas); + void onHardwarePostDraw(DisplayListCanvas canvas); } /** diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 8ac8bc578b82..d6625c837128 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -16,6 +16,7 @@ package android.view; +import com.android.internal.app.IAssistScreenshotReceiver; import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodClient; @@ -220,10 +221,14 @@ interface IWindowManager boolean isRotationFrozen(); /** + * Used only for assist -- request a screenshot of the current application. + */ + boolean requestAssistScreenshot(IAssistScreenshotReceiver receiver); + + /** * Create a screenshot of the applications currently displayed. */ - Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, - int maxHeight, boolean force565); + Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, int maxHeight); /** * Called by the status bar to notify Views of changes to System UI visiblity. diff --git a/core/java/android/view/PhoneWindow.java b/core/java/android/view/PhoneWindow.java index 8aef18ab79b1..543021e3adcb 100644 --- a/core/java/android/view/PhoneWindow.java +++ b/core/java/android/view/PhoneWindow.java @@ -1759,7 +1759,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } else { MediaSessionLegacyHelper.getHelper(getContext()).sendAdjustVolumeBy( mVolumeControlStreamType, direction, - AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE); + AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE + | AudioManager.FLAG_FROM_KEY); } return true; } @@ -1837,15 +1838,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: { + final int flags = AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE + | AudioManager.FLAG_FROM_KEY; // If we have a session send it the volume command, otherwise // use the suggested stream. if (mMediaController != null) { - mMediaController.adjustVolume(0, AudioManager.FLAG_PLAY_SOUND - | AudioManager.FLAG_VIBRATE); + mMediaController.adjustVolume(0, flags); } else { MediaSessionLegacyHelper.getHelper(getContext()).sendAdjustVolumeBy( - mVolumeControlStreamType, 0, - AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE); + mVolumeControlStreamType, 0, flags); } return true; } @@ -2669,17 +2670,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionModeForChild(View originalView, ActionMode.Callback callback) { - // originalView can be used here to be sure that we don't obscure - // relevant content with the context mode UI. - return startActionMode(callback); + return startActionModeForChild(originalView, callback, ActionMode.TYPE_PRIMARY); } @Override public ActionMode startActionModeForChild( View child, ActionMode.Callback callback, int type) { - // originalView can be used here to be sure that we don't obscure - // relevant content with the context mode UI. - return startActionMode(callback, type); + return startActionMode(child, callback, type); } @Override @@ -2689,7 +2686,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public ActionMode startActionMode(ActionMode.Callback callback, int type) { - ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback); + return startActionMode(this, callback, type); + } + + private ActionMode startActionMode( + View originatingView, ActionMode.Callback callback, int type) { + ActionMode.Callback2 wrappedCallback = new ActionModeCallback2Wrapper(callback); ActionMode mode = null; if (getCallback() != null && !isDestroyed()) { try { @@ -3291,12 +3293,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } /** - * Clears out internal reference when the action mode is destroyed. + * Clears out internal references when the action mode is destroyed. */ - private class ActionModeCallbackWrapper implements ActionMode.Callback { - private ActionMode.Callback mWrapped; + private class ActionModeCallback2Wrapper extends ActionMode.Callback2 { + private final ActionMode.Callback mWrapped; - public ActionModeCallbackWrapper(ActionMode.Callback wrapped) { + public ActionModeCallback2Wrapper(ActionMode.Callback wrapped) { mWrapped = wrapped; } diff --git a/core/java/android/view/RenderNode.java b/core/java/android/view/RenderNode.java index 38867a89d467..ef98bbcd35f4 100644 --- a/core/java/android/view/RenderNode.java +++ b/core/java/android/view/RenderNode.java @@ -26,7 +26,7 @@ import android.graphics.Rect; /** * <p>A display list records a series of graphics related operations and can replay * them later. Display lists are usually built by recording operations on a - * {@link HardwareCanvas}. Replaying the operations from a display list avoids + * {@link DisplayListCanvas}. Replaying the operations from a display list avoids * executing application code on every frame, and is thus much more efficient.</p> * * <p>Display lists are used internally for all views by default, and are not @@ -43,7 +43,7 @@ import android.graphics.Rect; * affected paragraph needs to be recorded again.</p> * * <h3>Hardware acceleration</h3> - * <p>Display lists can only be replayed using a {@link HardwareCanvas}. They are not + * <p>Display lists can only be replayed using a {@link DisplayListCanvas}. They are not * supported in software. Always make sure that the {@link android.graphics.Canvas} * you are using to render a display list is hardware accelerated using * {@link android.graphics.Canvas#isHardwareAccelerated()}.</p> @@ -53,7 +53,7 @@ import android.graphics.Rect; * HardwareRenderer renderer = myView.getHardwareRenderer(); * if (renderer != null) { * DisplayList displayList = renderer.createDisplayList(); - * HardwareCanvas canvas = displayList.start(width, height); + * DisplayListCanvas canvas = displayList.start(width, height); * try { * // Draw onto the canvas * // For instance: canvas.drawBitmap(...); @@ -67,8 +67,8 @@ import android.graphics.Rect; * <pre class="prettyprint"> * protected void onDraw(Canvas canvas) { * if (canvas.isHardwareAccelerated()) { - * HardwareCanvas hardwareCanvas = (HardwareCanvas) canvas; - * hardwareCanvas.drawDisplayList(mDisplayList); + * DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; + * displayListCanvas.drawDisplayList(mDisplayList); * } * } * </pre> @@ -92,7 +92,7 @@ import android.graphics.Rect; * <pre class="prettyprint"> * private void createDisplayList() { * mDisplayList = DisplayList.create("MyDisplayList"); - * HardwareCanvas canvas = mDisplayList.start(width, height); + * DisplayListCanvas canvas = mDisplayList.start(width, height); * try { * for (Bitmap b : mBitmaps) { * canvas.drawBitmap(b, 0.0f, 0.0f, null); @@ -105,8 +105,8 @@ import android.graphics.Rect; * * protected void onDraw(Canvas canvas) { * if (canvas.isHardwareAccelerated()) { - * HardwareCanvas hardwareCanvas = (HardwareCanvas) canvas; - * hardwareCanvas.drawDisplayList(mDisplayList); + * DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; + * displayListCanvas.drawDisplayList(mDisplayList); * } * } * @@ -128,7 +128,7 @@ import android.graphics.Rect; public class RenderNode { /** * Flag used when calling - * {@link HardwareCanvas#drawRenderNode(RenderNode, android.graphics.Rect, int)} + * {@link DisplayListCanvas#drawRenderNode * When this flag is set, draw operations lying outside of the bounds of the * display list will be culled early. It is recommeneded to always set this * flag. @@ -140,29 +140,29 @@ public class RenderNode { /** * Indicates that the display list is done drawing. * - * @see HardwareCanvas#drawRenderNode(RenderNode, android.graphics.Rect, int) + * @see DisplayListCanvas#drawRenderNode(RenderNode, int) */ public static final int STATUS_DONE = 0x0; /** * Indicates that the display list needs another drawing pass. * - * @see HardwareCanvas#drawRenderNode(RenderNode, android.graphics.Rect, int) + * @see DisplayListCanvas#drawRenderNode(RenderNode, int) */ public static final int STATUS_DRAW = 0x1; /** * Indicates that the display list needs to re-execute its GL functors. * - * @see HardwareCanvas#drawRenderNode(RenderNode, android.graphics.Rect, int) - * @see HardwareCanvas#callDrawGLFunction(long) + * @see DisplayListCanvas#drawRenderNode(RenderNode, int) + * @see DisplayListCanvas#callDrawGLFunction2(long) */ public static final int STATUS_INVOKE = 0x2; /** * Indicates that the display list performed GL drawing operations. * - * @see HardwareCanvas#drawRenderNode(RenderNode, android.graphics.Rect, int) + * @see DisplayListCanvas#drawRenderNode(RenderNode, int) */ public static final int STATUS_DREW = 0x4; @@ -213,7 +213,7 @@ public class RenderNode { * stored in this display list. * * Calling this method will mark the render node invalid until - * {@link #end(HardwareCanvas)} is called. + * {@link #end(DisplayListCanvas)} is called. * Only valid render nodes can be replayed. * * @param width The width of the recording viewport @@ -221,11 +221,11 @@ public class RenderNode { * * @return A canvas to record drawing operations. * - * @see #end(HardwareCanvas) + * @see #end(DisplayListCanvas) * @see #isValid() */ - public HardwareCanvas start(int width, int height) { - HardwareCanvas canvas = DisplayListCanvas.obtain(this); + public DisplayListCanvas start(int width, int height) { + DisplayListCanvas canvas = DisplayListCanvas.obtain(this); canvas.setViewport(width, height); // The dirty rect should always be null for a display list canvas.onPreDraw(null); @@ -240,7 +240,7 @@ public class RenderNode { * @see #start(int, int) * @see #isValid() */ - public void end(HardwareCanvas endCanvas) { + public void end(DisplayListCanvas endCanvas) { if (!(endCanvas instanceof DisplayListCanvas)) { throw new IllegalArgumentException("Passed an invalid canvas to end!"); } diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index 83b8100f83f6..6de4d3e4e4c3 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -572,7 +572,7 @@ public class Surface implements Parcelable { private final class HwuiContext { private final RenderNode mRenderNode; private long mHwuiRenderer; - private HardwareCanvas mCanvas; + private DisplayListCanvas mCanvas; HwuiContext() { mRenderNode = RenderNode.create("HwuiCanvas", null); diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java index 51fefe90f1aa..031be070d1fd 100644 --- a/core/java/android/view/ThreadedRenderer.java +++ b/core/java/android/view/ThreadedRenderer.java @@ -276,7 +276,7 @@ public class ThreadedRenderer extends HardwareRenderer { updateViewTreeDisplayList(view); if (mRootNodeNeedsUpdate || !mRootNode.isValid()) { - HardwareCanvas canvas = mRootNode.start(mSurfaceWidth, mSurfaceHeight); + DisplayListCanvas canvas = mRootNode.start(mSurfaceWidth, mSurfaceHeight); try { final int saveCount = canvas.save(); canvas.translate(mInsetLeft, mInsetTop); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index d345bed0ec28..f5de8e3d505c 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -14216,7 +14216,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, int height = mBottom - mTop; int layerType = getLayerType(); - final HardwareCanvas canvas = renderNode.start(width, height); + final DisplayListCanvas canvas = renderNode.start(width, height); canvas.setHighContrastText(mAttachInfo.mHighContrastText); try { @@ -15197,7 +15197,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (layer != null && layer.isValid()) { int restoreAlpha = mLayerPaint.getAlpha(); mLayerPaint.setAlpha((int) (alpha * 255)); - ((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, mLayerPaint); + ((DisplayListCanvas) canvas).drawHardwareLayer(layer, 0, 0, mLayerPaint); mLayerPaint.setAlpha(restoreAlpha); layerRendered = true; } else { @@ -15220,7 +15220,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } else { mPrivateFlags &= ~PFLAG_DIRTY_MASK; - ((HardwareCanvas) canvas).drawRenderNode(renderNode, flags); + ((DisplayListCanvas) canvas).drawRenderNode(renderNode, flags); } } } else if (cache != null) { @@ -15494,7 +15494,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, final RenderNode renderNode = mBackgroundRenderNode; if (renderNode != null && renderNode.isValid()) { setBackgroundRenderNodeProperties(renderNode); - ((HardwareCanvas) canvas).drawRenderNode(renderNode); + ((DisplayListCanvas) canvas).drawRenderNode(renderNode); return; } } @@ -15531,7 +15531,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, final Rect bounds = drawable.getBounds(); final int width = bounds.width(); final int height = bounds.height(); - final HardwareCanvas canvas = renderNode.start(width, height); + final DisplayListCanvas canvas = renderNode.start(width, height); // Reverse left/top translation done by drawable canvas, which will // instead be applied by rendernode's LTRB bounds below. This way, the diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 14738065892f..e790d4cb8d3b 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2309,12 +2309,12 @@ public final class ViewRootImpl implements ViewParent, final Paint mResizePaint = new Paint(); @Override - public void onHardwarePreDraw(HardwareCanvas canvas) { + public void onHardwarePreDraw(DisplayListCanvas canvas) { canvas.translate(-mHardwareXOffset, -mHardwareYOffset); } @Override - public void onHardwarePostDraw(HardwareCanvas canvas) { + public void onHardwarePostDraw(DisplayListCanvas canvas) { if (mResizeBuffer != null) { mResizePaint.setAlpha(mResizeAlpha); canvas.drawHardwareLayer(mResizeBuffer, mHardwareXOffset, mHardwareYOffset, diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 1cebe3fd23f6..57558ff26205 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -249,12 +249,12 @@ public final class WindowManagerGlobal { final WindowManager.LayoutParams wparams = (WindowManager.LayoutParams) params; if (parentWindow != null) { parentWindow.adjustLayoutParamsForSubWindow(wparams); - } else if (ActivityManager.isHighEndGfx()) { - // If there's no parent and we're running on L or above (or in the - // system context), assume we want hardware acceleration. + } else { + // If there's no parent, then hardware acceleration for this view is + // set from the application's hardware acceleration setting. final Context context = view.getContext(); - if (context != null && context.getApplicationInfo().targetSdkVersion - >= Build.VERSION_CODES.LOLLIPOP) { + if (context != null + && context.getApplicationInfo().hardwareAccelerated) { wparams.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; } } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 67ad642cf02d..6711a6b05ff1 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -364,6 +364,20 @@ public class WebView extends AbsoluteLayout } /** + * Callback interface supplied to {@link #insertVisualStateCallback} for receiving + * notifications about the visual state. + */ + public static abstract class VisualStateCallback { + /** + * Invoked when the visual state is ready to be drawn in the next {@link #onDraw}. + * + * @param requestId the id supplied to the corresponding {@link #insertVisualStateCallback} + * request + */ + public abstract void onComplete(long requestId); + } + + /** * Interface to listen for new pictures as they change. * * @deprecated This interface is now obsolete. @@ -1144,6 +1158,60 @@ public class WebView extends AbsoluteLayout } /** + * Inserts a {@link VisualStateCallback}. + * + * <p>Updates to the the DOM are reflected asynchronously such that when the DOM is updated the + * subsequent {@link WebView#onDraw} invocation might not reflect those updates. The + * {@link VisualStateCallback} provides a mechanism to notify the caller when the contents of + * the DOM at the current time are ready to be drawn the next time the {@link WebView} draws. + * By current time we mean the time at which this API was called. The next draw after the + * callback completes is guaranteed to reflect all the updates to the DOM applied before the + * current time, but it may also contain updates applied after the current time.</p> + * + * <p>The state of the DOM covered by this API includes the following: + * <ul> + * <li>primitive HTML elements (div, img, span, etc..)</li> + * <li>images</li> + * <li>CSS animations</li> + * <li>WebGL</li> + * <li>canvas</li> + * </ul> + * It does not include the state of: + * <ul> + * <li>the video tag</li> + * </ul></p> + * + * <p>To guarantee that the {@link WebView} will successfully render the first frame + * after the {@link VisualStateCallback#onComplete} method has been called a set of conditions + * must be met: + * <ul> + * <li>If the {@link WebView}'s visibility is set to {@link View#VISIBLE VISIBLE} then + * the {@link WebView} must be attached to the view hierarchy.</li> + * <li>If the {@link WebView}'s visibility is set to {@link View#INVISIBLE INVISIBLE} + * then the {@link WebView} must be attached to the view hierarchy and must be made + * {@link View#VISIBLE VISIBLE} from the {@link VisualStateCallback#onComplete} method.</li> + * <li>If the {@link WebView}'s visibility is set to {@link View#GONE GONE} then the + * {@link WebView} must be attached to the view hierarchy and its + * {@link AbsoluteLayout.LayoutParams LayoutParams}'s width and height need to be set to fixed + * values and must be made {@link View#VISIBLE VISIBLE} from the + * {@link VisualStateCallback#onComplete} method.</li> + * </ul></p> + * + * <p>When using this API it is also recommended to enable pre-rasterization if the + * {@link WebView} is offscreen to avoid flickering. See WebSettings#setOffscreenPreRaster for + * more details and do consider its caveats.</p> + * + * @param requestId an id that will be returned in the callback to allow callers to match + * requests with callbacks. + * @param callback the callback to be invoked. + */ + public void insertVisualStateCallback(long requestId, VisualStateCallback callback) { + checkThread(); + if (TRACE) Log.d(LOGTAG, "insertVisualStateCallback"); + mProvider.insertVisualStateCallback(requestId, callback); + } + + /** * Clears this WebView so that onDraw() will draw nothing but white background, * and onMeasure() will return 0 if MeasureSpec is not MeasureSpec.EXACTLY. * @deprecated Use WebView.loadUrl("about:blank") to reliably reset the view state diff --git a/core/java/android/webkit/WebViewClient.java b/core/java/android/webkit/WebViewClient.java index 34b8cf6348b3..53c7e04d4ca4 100644 --- a/core/java/android/webkit/WebViewClient.java +++ b/core/java/android/webkit/WebViewClient.java @@ -83,6 +83,32 @@ public class WebViewClient { } /** + * Notify the host application that the page commit is visible. + * + * <p>This is the earliest point at which we can guarantee that the contents of the previously + * loaded page will not longer be drawn in the next {@link WebView#onDraw}. The next draw will + * render the {@link WebView#setBackgroundColor background color} of the WebView or some of the + * contents from the committed page already. This callback may be useful when reusing + * {@link WebView}s to ensure that no stale content is shown. This method is only called for + * the main frame.</p> + * + * <p>This method is called when the state of the DOM at the point at which the + * body of the HTTP response (commonly the string of html) had started loading will be visible. + * If you set a background color for the page in the HTTP response body this will most likely + * be visible and perhaps some other elements. At that point no other resources had usually + * been loaded, so you can expect images for example to not be visible. If you want + * a finer level of granularity consider calling {@link WebView#insertVisualStateCallback} + * directly.</p> + * + * <p>Please note that all the conditions and recommendations presented in + * {@link WebView#insertVisualStateCallback} also apply to this API.<p> + * + * @param url the url of the committed page + */ + public void onPageCommitVisible(WebView view, String url) { + } + + /** * Notify the host application of a resource request and allow the * application to return the data. If the return value is null, the WebView * will continue to load the resource as usual. Otherwise, the return diff --git a/core/java/android/webkit/WebViewDelegate.java b/core/java/android/webkit/WebViewDelegate.java index ac360fa22851..23af384e9165 100644 --- a/core/java/android/webkit/WebViewDelegate.java +++ b/core/java/android/webkit/WebViewDelegate.java @@ -25,7 +25,7 @@ import android.graphics.Canvas; import android.os.SystemProperties; import android.os.Trace; import android.util.SparseArray; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.View; import android.view.ViewRootImpl; @@ -101,12 +101,12 @@ public final class WebViewDelegate { * @throws IllegalArgumentException if the canvas is not hardware accelerated */ public void callDrawGlFunction(Canvas canvas, long nativeDrawGLFunctor) { - if (!(canvas instanceof HardwareCanvas)) { + if (!(canvas instanceof DisplayListCanvas)) { // Canvas#isHardwareAccelerated() is only true for subclasses of HardwareCanvas. throw new IllegalArgumentException(canvas.getClass().getName() - + " is not hardware accelerated"); + + " is not a DisplayList canvas"); } - ((HardwareCanvas) canvas).callDrawGLFunction2(nativeDrawGLFunctor); + ((DisplayListCanvas) canvas).callDrawGLFunction2(nativeDrawGLFunctor); } /** @@ -153,7 +153,7 @@ public final class WebViewDelegate { } /** - * Adds the WebView asset path to {@link AssetManager}. + * Adds the WebView asset path to {@link android.content.res.AssetManager}. */ public void addWebViewAssetPath(Context context) { context.getAssets().addAssetPath( diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index 0cdb8755ef1d..fa2ce1b22c6a 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -40,6 +40,8 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import android.webkit.WebView.HitTestResult; import android.webkit.WebView.PictureListener; +import android.webkit.WebView.VisualStateCallback; + import java.io.BufferedWriter; import java.io.File; @@ -146,6 +148,8 @@ public interface WebViewProvider { public boolean pageDown(boolean bottom); + public void insertVisualStateCallback(long requestId, VisualStateCallback callback); + public void clearView(); public Picture capturePicture(); diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index c951c6ec349b..6d7a547c4122 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -77,14 +77,14 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.ActionMode; import android.view.ActionMode.Callback; -import android.view.RenderNode; +import android.view.DisplayListCanvas; import android.view.DragEvent; import android.view.Gravity; -import android.view.HardwareCanvas; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; +import android.view.RenderNode; import android.view.View; import android.view.View.DragShadowBuilder; import android.view.View.OnClickListener; @@ -314,7 +314,7 @@ public class Editor { mTextView.setHasTransientState(false); // We had an active selection from before, start the selection mode. - startSelectionActionMode(); + startSelectionActionModeWithSelection(); } getPositionListener().addSubscriber(mCursorAnchorInfoNotifier, true); @@ -981,14 +981,15 @@ public class Editor { } public boolean performLongClick(boolean handled) { - // Long press in empty space moves cursor and shows the Paste affordance if available. + // Long press in empty space moves cursor and starts the selection action mode. if (!handled && !isPositionOnText(mLastDownPositionX, mLastDownPositionY) && mInsertionControllerEnabled) { final int offset = mTextView.getOffsetForPosition(mLastDownPositionX, mLastDownPositionY); stopSelectionActionMode(); Selection.setSelection((Spannable) mTextView.getText(), offset); - getInsertionController().showWithActionPopup(); + getInsertionController().show(); + startSelectionActionModeWithoutSelection(); handled = true; } @@ -1004,14 +1005,14 @@ public class Editor { stopSelectionActionMode(); } else { stopSelectionActionMode(); - startSelectionActionMode(); + startSelectionActionModeWithSelection(); } handled = true; } // Start a new selection if (!handled) { - handled = startSelectionActionMode(); + handled = startSelectionActionModeWithSelection(); } return handled; @@ -1513,18 +1514,18 @@ public class Editor { // Rebuild display list if it is invalid if (blockDisplayListIsInvalid) { - final HardwareCanvas hardwareCanvas = blockDisplayList.start( + final DisplayListCanvas displayListCanvas = blockDisplayList.start( right - left, bottom - top); try { // drawText is always relative to TextView's origin, this translation // brings this range of text back to the top left corner of the viewport - hardwareCanvas.translate(-left, -top); - layout.drawText(hardwareCanvas, blockBeginLine, blockEndLine); + displayListCanvas.translate(-left, -top); + layout.drawText(displayListCanvas, blockBeginLine, blockEndLine); mTextDisplayLists[blockIndex].isDirty = false; // No need to untranslate, previous context is popped after // drawDisplayList } finally { - blockDisplayList.end(hardwareCanvas); + blockDisplayList.end(displayListCanvas); // Same as drawDisplayList below, handled by our TextView's parent blockDisplayList.setClipToBounds(false); } @@ -1535,7 +1536,7 @@ public class Editor { blockDisplayList.setLeftTopRightBottom(left, top, right, bottom); } - ((HardwareCanvas) canvas).drawRenderNode(blockDisplayList, + ((DisplayListCanvas) canvas).drawRenderNode(blockDisplayList, 0 /* no child clipping, our TextView parent enforces it */); endOfPreviousBlock = blockEndLine; @@ -1662,7 +1663,20 @@ public class Editor { /** * @return true if the selection mode was actually started. */ - boolean startSelectionActionMode() { + private boolean startSelectionActionModeWithoutSelection() { + if (mSelectionActionMode != null) { + // Selection action mode is already started + return false; + } + ActionMode.Callback actionModeCallback = new SelectionActionModeCallback(); + mSelectionActionMode = mTextView.startActionMode(actionModeCallback); + return mSelectionActionMode != null; + } + + /** + * @return true if the selection mode was actually started. + */ + boolean startSelectionActionModeWithSelection() { if (mSelectionActionMode != null) { // Selection action mode is already started return false; @@ -4208,7 +4222,7 @@ public class Editor { boolean stayedInArea = distanceSquared < doubleTapSlop * doubleTapSlop; if (stayedInArea && isPositionOnText(x, y)) { - startSelectionActionMode(); + startSelectionActionModeWithSelection(); mDiscardNextActionUp = true; } } diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 133e10250519..21213acadd6d 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -753,13 +753,13 @@ class FastScroller { final View track = mTrackImage; final View thumb = mThumbImage; final Rect container = mContainerRect; - final int containerWidth = container.width(); - final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(containerWidth, MeasureSpec.AT_MOST); + final int maxWidth = container.width(); + final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST); final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); track.measure(widthMeasureSpec, heightMeasureSpec); final int trackWidth = track.getMeasuredWidth(); - final int thumbHalfHeight = thumb == null ? 0 : thumb.getHeight() / 2; + final int thumbHalfHeight = thumb.getHeight() / 2; final int left = thumb.getLeft() + (thumb.getWidth() - trackWidth) / 2; final int right = left + trackWidth; final int top = container.top + thumbHalfHeight; diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 4eb0841d6e10..718ef932ae9a 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -2642,94 +2642,92 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** + * Sets the text appearance from the specified style resource. + * <p> + * Use a framework-defined {@code TextAppearance} style like + * {@link android.R.style#TextAppearance_Material_Body1 @android:style/TextAppearance.Material.Body1} + * or see {@link android.R.styleable#TextAppearance TextAppearance} for the + * set of attributes that can be used in a custom style. + * + * @param resId the resource identifier of the style to apply + * @attr ref android.R.styleable#TextView_textAppearance + */ + @SuppressWarnings("deprecation") + public void setTextAppearance(@StyleRes int resId) { + setTextAppearance(mContext, resId); + } + + /** * Sets the text color, size, style, hint color, and highlight color * from the specified TextAppearance resource. + * + * @deprecated Use {@link #setTextAppearance(int)} instead. */ - public void setTextAppearance(Context context, @StyleRes int resid) { - TypedArray appearance = - context.obtainStyledAttributes(resid, - com.android.internal.R.styleable.TextAppearance); - - int color; - ColorStateList colors; - int ts; + @Deprecated + public void setTextAppearance(Context context, @StyleRes int resId) { + final TypedArray ta = context.obtainStyledAttributes(resId, R.styleable.TextAppearance); - color = appearance.getColor( - com.android.internal.R.styleable.TextAppearance_textColorHighlight, 0); - if (color != 0) { - setHighlightColor(color); + final int textColorHighlight = ta.getColor( + R.styleable.TextAppearance_textColorHighlight, 0); + if (textColorHighlight != 0) { + setHighlightColor(textColorHighlight); } - colors = appearance.getColorStateList(com.android.internal.R.styleable. - TextAppearance_textColor); - if (colors != null) { - setTextColor(colors); + final ColorStateList textColor = ta.getColorStateList(R.styleable.TextAppearance_textColor); + if (textColor != null) { + setTextColor(textColor); } - ts = appearance.getDimensionPixelSize(com.android.internal.R.styleable. - TextAppearance_textSize, 0); - if (ts != 0) { - setRawTextSize(ts); + final int textSize = ta.getDimensionPixelSize(R.styleable.TextAppearance_textSize, 0); + if (textSize != 0) { + setRawTextSize(textSize); } - colors = appearance.getColorStateList(com.android.internal.R.styleable. - TextAppearance_textColorHint); - if (colors != null) { - setHintTextColor(colors); + final ColorStateList textColorHint = ta.getColorStateList( + R.styleable.TextAppearance_textColorHint); + if (textColorHint != null) { + setHintTextColor(textColorHint); } - colors = appearance.getColorStateList(com.android.internal.R.styleable. - TextAppearance_textColorLink); - if (colors != null) { - setLinkTextColor(colors); + final ColorStateList textColorLink = ta.getColorStateList( + R.styleable.TextAppearance_textColorLink); + if (textColorLink != null) { + setLinkTextColor(textColorLink); } - String familyName; - int typefaceIndex, styleIndex; - - familyName = appearance.getString(com.android.internal.R.styleable. - TextAppearance_fontFamily); - typefaceIndex = appearance.getInt(com.android.internal.R.styleable. - TextAppearance_typeface, -1); - styleIndex = appearance.getInt(com.android.internal.R.styleable. - TextAppearance_textStyle, -1); - - setTypefaceFromAttrs(familyName, typefaceIndex, styleIndex); - - final int shadowcolor = appearance.getInt( - com.android.internal.R.styleable.TextAppearance_shadowColor, 0); - if (shadowcolor != 0) { - final float dx = appearance.getFloat( - com.android.internal.R.styleable.TextAppearance_shadowDx, 0); - final float dy = appearance.getFloat( - com.android.internal.R.styleable.TextAppearance_shadowDy, 0); - final float r = appearance.getFloat( - com.android.internal.R.styleable.TextAppearance_shadowRadius, 0); + final String fontFamily = ta.getString(R.styleable.TextAppearance_fontFamily); + final int typefaceIndex = ta.getInt(R.styleable.TextAppearance_typeface, -1); + final int styleIndex = ta.getInt(R.styleable.TextAppearance_textStyle, -1); + setTypefaceFromAttrs(fontFamily, typefaceIndex, styleIndex); - setShadowLayer(r, dx, dy, shadowcolor); + final int shadowColor = ta.getInt(R.styleable.TextAppearance_shadowColor, 0); + if (shadowColor != 0) { + final float dx = ta.getFloat(R.styleable.TextAppearance_shadowDx, 0); + final float dy = ta.getFloat(R.styleable.TextAppearance_shadowDy, 0); + final float r = ta.getFloat(R.styleable.TextAppearance_shadowRadius, 0); + setShadowLayer(r, dx, dy, shadowColor); } - if (appearance.getBoolean(com.android.internal.R.styleable.TextAppearance_textAllCaps, - false)) { + if (ta.getBoolean(R.styleable.TextAppearance_textAllCaps, false)) { setTransformationMethod(new AllCapsTransformationMethod(getContext())); } - if (appearance.hasValue(com.android.internal.R.styleable.TextAppearance_elegantTextHeight)) { - setElegantTextHeight(appearance.getBoolean( - com.android.internal.R.styleable.TextAppearance_elegantTextHeight, false)); + if (ta.hasValue(R.styleable.TextAppearance_elegantTextHeight)) { + setElegantTextHeight(ta.getBoolean( + R.styleable.TextAppearance_elegantTextHeight, false)); } - if (appearance.hasValue(com.android.internal.R.styleable.TextAppearance_letterSpacing)) { - setLetterSpacing(appearance.getFloat( - com.android.internal.R.styleable.TextAppearance_letterSpacing, 0)); + if (ta.hasValue(R.styleable.TextAppearance_letterSpacing)) { + setLetterSpacing(ta.getFloat( + R.styleable.TextAppearance_letterSpacing, 0)); } - if (appearance.hasValue(com.android.internal.R.styleable.TextAppearance_fontFeatureSettings)) { - setFontFeatureSettings(appearance.getString( - com.android.internal.R.styleable.TextAppearance_fontFeatureSettings)); + if (ta.hasValue(R.styleable.TextAppearance_fontFeatureSettings)) { + setFontFeatureSettings(ta.getString( + R.styleable.TextAppearance_fontFeatureSettings)); } - appearance.recycle(); + ta.recycle(); } /** @@ -5104,7 +5102,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // - onFocusChanged cannot start it when focus is given to a view with selected text (after // a screen rotation) since layout is not yet initialized at that point. if (mEditor != null && mEditor.mCreatedWithASelection) { - mEditor.startSelectionActionMode(); + mEditor.startSelectionActionModeWithSelection(); mEditor.mCreatedWithASelection = false; } @@ -5112,7 +5110,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // ExtractEditText does not call onFocus when it is displayed, and mHasSelectionOnFocus can // not be set. Do the test here instead. if (this instanceof ExtractEditText && hasSelection() && mEditor != null) { - mEditor.startSelectionActionMode(); + mEditor.startSelectionActionModeWithSelection(); } unregisterForPreDraw(); @@ -8745,7 +8743,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener Selection.setSelection((Spannable) text, start, end); // Make sure selection mode is engaged. if (mEditor != null) { - mEditor.startSelectionActionMode(); + mEditor.startSelectionActionModeWithSelection(); } return true; } diff --git a/core/java/com/android/internal/app/IAssistScreenshotReceiver.aidl b/core/java/com/android/internal/app/IAssistScreenshotReceiver.aidl new file mode 100644 index 000000000000..a987a166b496 --- /dev/null +++ b/core/java/com/android/internal/app/IAssistScreenshotReceiver.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.app; + +import android.graphics.Bitmap; + +/** @hide */ +oneway interface IAssistScreenshotReceiver { + void send(in Bitmap screenshot); +} diff --git a/core/java/com/android/internal/app/WindowDecorActionBar.java b/core/java/com/android/internal/app/WindowDecorActionBar.java index 2bf02f15a66a..7ae7d0fe5586 100644 --- a/core/java/com/android/internal/app/WindowDecorActionBar.java +++ b/core/java/com/android/internal/app/WindowDecorActionBar.java @@ -23,7 +23,6 @@ import android.widget.Toolbar; import com.android.internal.R; import com.android.internal.view.ActionBarPolicy; -import com.android.internal.view.ActionModeWrapper; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.view.menu.MenuPopupHelper; import com.android.internal.view.menu.SubMenuBuilder; diff --git a/core/java/com/android/internal/inputmethod/InputMethodUtils.java b/core/java/com/android/internal/inputmethod/InputMethodUtils.java index 29326d3a02f1..57fcf5787356 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodUtils.java +++ b/core/java/com/android/internal/inputmethod/InputMethodUtils.java @@ -120,18 +120,6 @@ public class InputMethodUtils { & ApplicationInfo.FLAG_SYSTEM) != 0; } - /** - * @deprecated Use {@link #isSystemImeThatHasSubtypeOf(InputMethodInfo, Context, boolean, - * Locale, boolean, String)} instead. - */ - @Deprecated - public static boolean isSystemImeThatHasEnglishKeyboardSubtype(InputMethodInfo imi) { - if (!isSystemIme(imi)) { - return false; - } - return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage(), SUBTYPE_MODE_KEYBOARD); - } - public static boolean isSystemImeThatHasSubtypeOf(final InputMethodInfo imi, final Context context, final boolean checkDefaultAttribute, @Nullable final Locale requiredLocale, final boolean checkCountry, @@ -382,35 +370,6 @@ public class InputMethodUtils { .build(); } - /** - * @deprecated Use {@link #isSystemImeThatHasSubtypeOf(InputMethodInfo, Context, boolean, - * Locale, boolean, String)} instead. - */ - @Deprecated - public static boolean isValidSystemDefaultIme( - boolean isSystemReady, InputMethodInfo imi, Context context) { - if (!isSystemReady) { - return false; - } - if (!isSystemIme(imi)) { - return false; - } - if (imi.getIsDefaultResourceId() != 0) { - try { - if (imi.isDefault(context) && containsSubtypeOf( - imi, context.getResources().getConfiguration().locale.getLanguage(), - SUBTYPE_MODE_ANY)) { - return true; - } - } catch (Resources.NotFoundException ex) { - } - } - if (imi.getSubtypeCount() == 0) { - Slog.w(TAG, "Found no subtypes in a system IME: " + imi.getPackageName()); - } - return false; - } - public static Locale constructLocaleFromString(String localeStr) { if (TextUtils.isEmpty(localeStr)) { return null; @@ -459,25 +418,6 @@ public class InputMethodUtils { return false; } - /** - * @deprecated Use {@link #containsSubtypeOf(InputMethodInfo, Locale, boolean, String)} instead. - */ - @Deprecated - public static boolean containsSubtypeOf(InputMethodInfo imi, String language, String mode) { - final int N = imi.getSubtypeCount(); - for (int i = 0; i < N; ++i) { - final InputMethodSubtype subtype = imi.getSubtypeAt(i); - if (!subtype.getLocale().startsWith(language)) { - continue; - } - if (mode == SUBTYPE_MODE_ANY || TextUtils.isEmpty(mode) || - mode.equalsIgnoreCase(subtype.getMode())) { - return true; - } - } - return false; - } - public static ArrayList<InputMethodSubtype> getSubtypes(InputMethodInfo imi) { ArrayList<InputMethodSubtype> subtypes = new ArrayList<InputMethodSubtype>(); final int subtypeCount = imi.getSubtypeCount(); @@ -510,12 +450,15 @@ public class InputMethodUtils { while (i > 0) { i--; final InputMethodInfo imi = enabledImes.get(i); - if (InputMethodUtils.isSystemImeThatHasEnglishKeyboardSubtype(imi) - && !imi.isAuxiliaryIme()) { + if (imi.isAuxiliaryIme()) { + continue; + } + if (InputMethodUtils.isSystemIme(imi) + && containsSubtypeOf(imi, ENGLISH_LOCALE, false /* checkCountry */, + SUBTYPE_MODE_KEYBOARD)) { return imi; } - if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi) - && !imi.isAuxiliaryIme()) { + if (firstFoundSystemIme < 0 && InputMethodUtils.isSystemIme(imi)) { firstFoundSystemIme = i; } } diff --git a/core/java/com/android/internal/view/ActionModeWrapper.java b/core/java/com/android/internal/view/ActionModeWrapper.java deleted file mode 100644 index d98617dbcc93..000000000000 --- a/core/java/com/android/internal/view/ActionModeWrapper.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.internal.view; - -import android.content.Context; -import android.view.ActionMode; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; - -import com.android.internal.view.menu.MenuBuilder; - -/** - * ActionMode implementation that wraps several actions modes and creates them on the fly depending - * on the ActionMode type chosen by the client. - */ -public class ActionModeWrapper extends ActionMode { - - /** - * Interface to defer the ActionMode creation until the type is chosen. - */ - public interface ActionModeProvider { - /** - * Create the desired ActionMode, that will immediately be used as the current active mode - * in the decorator. - * - * @param callback The {@link ActionMode.Callback} to be used. - * @param menuBuilder The {@link MenuBuilder} that should be used by the created - * {@link ActionMode}. This will already have been populated. - * @return A new {@link ActionMode} ready to be used that uses menuBuilder as its menu. - */ - ActionMode createActionMode(ActionMode.Callback callback, MenuBuilder menuBuilder); - } - - private ActionMode mActionMode; - private final Context mContext; - private MenuBuilder mMenu; - private final ActionMode.Callback mCallback; - private boolean mTypeLocked = false; - - private CharSequence mTitle; - private CharSequence mSubtitle; - private View mCustomView; - - private final ActionModeProvider mActionModeProvider; - - public ActionModeWrapper( - Context context, ActionMode.Callback callback, ActionModeProvider actionModeProvider) { - mContext = context; - mMenu = new MenuBuilder(context).setDefaultShowAsAction( - MenuItem.SHOW_AS_ACTION_IF_ROOM); - mCallback = callback; - mActionModeProvider = actionModeProvider; - } - - @Override - public void setTitle(CharSequence title) { - if (mActionMode != null) { - mActionMode.setTitle(title); - } else { - mTitle = title; - } - } - - @Override - public void setTitle(int resId) { - if (mActionMode != null) { - mActionMode.setTitle(resId); - } else { - mTitle = resId != 0 ? mContext.getString(resId) : null; - } - } - - @Override - public void setSubtitle(CharSequence subtitle) { - if (mActionMode != null) { - mActionMode.setSubtitle(subtitle); - } else { - mSubtitle = subtitle; - } - } - - @Override - public void setSubtitle(int resId) { - if (mActionMode != null) { - mActionMode.setSubtitle(resId); - } else { - mSubtitle = resId != 0 ? mContext.getString(resId) : null; - } - } - - @Override - public void setCustomView(View view) { - if (mActionMode != null) { - mActionMode.setCustomView(view); - } else { - mCustomView = view; - } - } - - public ActionMode getWrappedActionMode() { - return mActionMode; - } - - /** - * Set the current type as final and create the necessary ActionMode. After this call, any - * changes to the ActionMode type will be ignored. - */ - public void lockType() { - mTypeLocked = true; - switch (getType()) { - case ActionMode.TYPE_PRIMARY: - default: - mActionMode = mActionModeProvider.createActionMode(mCallback, mMenu); - break; - case ActionMode.TYPE_FLOATING: - // Not implemented yet. - break; - } - - if (mActionMode == null) { - return; - } - - mActionMode.setTitle(mTitle); - mActionMode.setSubtitle(mSubtitle); - if (mCustomView != null) { - mActionMode.setCustomView(mCustomView); - } - - mTitle = null; - mSubtitle = null; - mCustomView = null; - } - - @Override - public void setType(int type) { - if (!mTypeLocked) { - super.setType(type); - } else { - throw new IllegalStateException( - "You can't change the ActionMode's type after onCreateActionMode."); - } - } - - @Override - public void invalidate() { - if (mActionMode != null) { - mActionMode.invalidate(); - } - } - - @Override - public void finish() { - if (mActionMode != null) { - mActionMode.finish(); - } else { - mCallback.onDestroyActionMode(this); - } - } - - @Override - public Menu getMenu() { - return mMenu; - } - - @Override - public CharSequence getTitle() { - if (mActionMode != null) { - return mActionMode.getTitle(); - } - return mTitle; - } - - @Override - public CharSequence getSubtitle() { - if (mActionMode != null) { - return mActionMode.getSubtitle(); - } - return mSubtitle; - } - - @Override - public View getCustomView() { - if (mActionMode != null) { - return mActionMode.getCustomView(); - } - return mCustomView; - } - - @Override - public MenuInflater getMenuInflater() { - return new MenuInflater(mContext); - } - -} diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 441af153b1bd..2327899e5d63 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -649,9 +649,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) /* * JIT related options. */ - parseRuntimeOption("dalvik.vm.usejit", usejitOptsBuf, "-Xusejit:"); - parseRuntimeOption("dalvik.vm.jitcodecachesize", jitcodecachesizeOptsBuf, "-Xjitcodecachesize:"); - parseRuntimeOption("dalvik.vm.jitthreshold", jitthresholdOptsBuf, "-Xjitthreshold:"); + parseRuntimeOption("debug.dalvik.vm.usejit", usejitOptsBuf, "-Xusejit:"); + parseRuntimeOption("debug.dalvik.vm.jitcodecachesize", jitcodecachesizeOptsBuf, "-Xjitcodecachesize:"); + parseRuntimeOption("debug.dalvik.vm.jitthreshold", jitthresholdOptsBuf, "-Xjitthreshold:"); property_get("ro.config.low_ram", propBuf, ""); if (strcmp(propBuf, "true") == 0) { diff --git a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp index 87896df9ab62..afdfd8f13909 100644 --- a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp +++ b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp @@ -373,8 +373,7 @@ static sp<ANativeWindow> getNativeWindow(JNIEnv* env, jobject surface) { return NULL; } if (anw == NULL) { - jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", - "Surface had no valid native window."); + ALOGE("%s: Surface had no valid native window.", __FUNCTION__); return NULL; } return anw; diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp index df9f89317430..b2e8f16c978c 100644 --- a/core/jni/android_media_AudioRecord.cpp +++ b/core/jni/android_media_AudioRecord.cpp @@ -387,10 +387,7 @@ static jint android_media_AudioRecord_readInByteArray(JNIEnv *env, jobject thiz } // read the new audio data from the native AudioRecord object - ssize_t recorderBuffSize = lpRecorder->frameCount()*lpRecorder->frameSize(); - ssize_t readSize = lpRecorder->read(recordBuff + offsetInBytes, - sizeInBytes > (jint)recorderBuffSize ? - (jint)recorderBuffSize : sizeInBytes ); + ssize_t readSize = lpRecorder->read(recordBuff + offsetInBytes, sizeInBytes); env->ReleaseByteArrayElements(javaAudioData, recordBuff, 0); if (readSize < 0) { @@ -430,11 +427,8 @@ static jint android_media_AudioRecord_readInShortArray(JNIEnv *env, jobject thi } // read the new audio data from the native AudioRecord object - const size_t recorderBuffSize = lpRecorder->frameCount()*lpRecorder->frameSize(); const size_t sizeInBytes = sizeInShorts * sizeof(short); - ssize_t readSize = lpRecorder->read(recordBuff + offsetInShorts, - sizeInBytes > recorderBuffSize ? - recorderBuffSize : sizeInBytes); + ssize_t readSize = lpRecorder->read(recordBuff + offsetInShorts, sizeInBytes); env->ReleaseShortArrayElements(javaAudioData, recordBuff, 0); diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp index f283675981a8..5693a03d0b4d 100644 --- a/core/jni/android_net_NetUtils.cpp +++ b/core/jni/android_net_NetUtils.cpp @@ -109,7 +109,7 @@ static jboolean android_net_utils_getDhcpResults(JNIEnv* env, jobject clazz, jst result = ::dhcp_get_results(nameStr, ipaddr, gateway, &prefixLength, dns, server, &lease, vendorInfo, domains, mtu); if (result != 0) { - ALOGD("dhcp_get_results failed : %s (%s)", nameStr); + ALOGD("dhcp_get_results failed : %s (%s)", nameStr, ::dhcp_get_errmsg()); } env->ReleaseStringUTFChars(ifname, nameStr); diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index e661c5da8280..540075255f4f 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Swerfbanier aan"</string> <string name="roamingText12" msgid="1189071119992726320">"Swerfbanier af"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Soek vir diens"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi-oproepe"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Nie aangestuur nie"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Oop Wi-Fi-netwerk beskikbaar</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Meld aan by Wi-Fi-netwerk"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Meld by netwerk aan"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Kon nie aan Wi-Fikoppel nie"</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 4ad9b98196d6..5e55c41ffe36 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"የዝውውር ሰንደቅ በርቷል"</string> <string name="roamingText12" msgid="1189071119992726320">"የዝውውር ሰንደቅ ጠፍቷል"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"አገልግሎት ፍለጋ"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"የWi-Fi ጥሪ ማድረጊያ"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>፡አልተላለፈም"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">የሚገኙ የWi-Fi አውታረ መረቦችን ክፈት</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"ወደ Wi-Fi አውታረ መረብ በመለያ ግባ"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"ወደ አውታረ መረብ በመለያ ይግቡ"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ወደ Wi-Fi ለማያያዝ አልተቻለም"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 05c474e0cd35..1ccea6df1417 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -127,8 +127,7 @@ <string name="roamingText11" msgid="4154476854426920970">"إعلان بانر للتجوال قيد التشغيل"</string> <string name="roamingText12" msgid="1189071119992726320">"إعلان بانر للتجوال متوقف"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"البحث عن خدمة"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"الاتصال عبر Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: لم تتم إعادة التوجيه"</string> @@ -1330,8 +1329,7 @@ <item quantity="one">تتوفر شبكة Wi-Fi واحدة مفتوحة</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"تسجيل الدخول إلى شبكة Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"تسجيل الدخول إلى الشبكة"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"تعذر الاتصال بـ Wi-Fi"</string> diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml index 2d93f7b92bca..650f1c343e2d 100644 --- a/core/res/res/values-bn-rBD/strings.xml +++ b/core/res/res/values-bn-rBD/strings.xml @@ -1270,7 +1270,7 @@ <string name="new_app_action" msgid="5472756926945440706">"<xliff:g id="OLD_APP">%1$s</xliff:g> শুরু করুন"</string> <string name="new_app_description" msgid="1932143598371537340">"সংরক্ষণ না করেই পুরোনো অ্যাপ্লিকেশানটি বন্ধ করুন৷"</string> <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g> মেমরি সীমা অতিক্রম করেছে"</string> - <string name="dump_heap_notification_detail" msgid="2075673362317481664">"হিপ ডাম্প সংগ্রহ করা হয়েছে; ভাগ করার জন্য স্পর্শ করুন"</string> + <string name="dump_heap_notification_detail" msgid="2075673362317481664">"অনেক ডাটা সংগ্রহ করা হয়েছে; ভাগ করার জন্য স্পর্শ করুন"</string> <string name="dump_heap_title" msgid="5864292264307651673">"হিপ ডাম্প ভাগ করবেন?"</string> <string name="dump_heap_text" msgid="4809417337240334941">"<xliff:g id="PROC">%1$s</xliff:g> প্রক্রিয়াটি তার <xliff:g id="SIZE">%2$s</xliff:g> এর মেমরি সীমা অতিক্রম করেছে৷ তার বিকাশকারীর সাথে ভাগ করার জন্য একটি হিপ ডাম্প উপলব্ধ৷ সতর্কতা অবলম্বন করুন: এই হিপ ডাম্পে অ্যাপ্লিকেশানটির অ্যাক্সেস আছে এমন আপনার যেকোন ব্যক্তিগত তথ্য থাকতে পারে৷"</string> <string name="sendText" msgid="5209874571959469142">"পাঠ্যের জন্য একটি কাজ বেছে নিন"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index baa1b8a3045c..9077a83e11b9 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Roamingbanner til"</string> <string name="roamingText12" msgid="1189071119992726320">"Roamingbanner fra"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Søger efter tjeneste"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Opkald via Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Ikke viderestillet"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">Åbne Wi-Fi-netværk er tilgængelige</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Log ind på Wi-Fi-netværk"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Log ind på netværk"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Kunne ikke oprette forbindelse til Wi-Fi"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 2ffbaeaf331d..02b21ec67ff4 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Ενεργό διαφημιστικό πλαίσιο περιαγωγής"</string> <string name="roamingText12" msgid="1189071119992726320">"Διαφημιστικό πλαίσιο περιαγωγής απενεργοποιημένο"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Αναζήτηση υπηρεσιών"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Κλήση Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Δεν προωθήθηκε"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Υπάρχει διαθέσιμο ανοικτό δίκτυο Wi-Fi</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Συνδεθείτε στο δίκτυο Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Σύνδεση στο δίκτυο"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Δεν είναι δυνατή η σύνδεση στο Wi-Fi"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 0a69e00cbc78..eafd4dc6d7c2 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Roaming Banner On"</string> <string name="roamingText12" msgid="1189071119992726320">"Roaming Banner Off"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Searching for Service"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi Calling"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Not forwarded"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Open Wi-Fi network available</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Sign in to a Wi-Fi network"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Sign in to network"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Couldn\'t connect to Wi-Fi"</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 0a69e00cbc78..eafd4dc6d7c2 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Roaming Banner On"</string> <string name="roamingText12" msgid="1189071119992726320">"Roaming Banner Off"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Searching for Service"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi Calling"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Not forwarded"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Open Wi-Fi network available</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Sign in to a Wi-Fi network"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Sign in to network"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Couldn\'t connect to Wi-Fi"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index a71bef0ad7e2..23446ffbf5d4 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Banner de roaming activado"</string> <string name="roamingText12" msgid="1189071119992726320">"Banner de roaming desactivado"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Buscando servicio"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Llamada por Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: no se ha remitido"</string> @@ -1270,7 +1269,7 @@ <string name="new_app_action" msgid="5472756926945440706">"Inicio <xliff:g id="OLD_APP">%1$s</xliff:g>"</string> <string name="new_app_description" msgid="1932143598371537340">"Interrumpe la aplicación anterior sin guardar los cambios."</string> <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g> superó el límite de memoria."</string> - <string name="dump_heap_notification_detail" msgid="2075673362317481664">"Se recopiló el volcado de pila, toca para compartir."</string> + <string name="dump_heap_notification_detail" msgid="2075673362317481664">"Se recopiló el volcado de pila. Toca para compartir."</string> <string name="dump_heap_title" msgid="5864292264307651673">"¿Compartir volcado de pila?"</string> <string name="dump_heap_text" msgid="4809417337240334941">"El proceso <xliff:g id="PROC">%1$s</xliff:g> superó el límite de memoria de proceso de <xliff:g id="SIZE">%2$s</xliff:g>. Hay un volcado de pila disponible para que puedas compartirlo con el programador. Ten cuidado, este volcado de pila puede contener información personal a la que la aplicación tiene acceso."</string> <string name="sendText" msgid="5209874571959469142">"Seleccionar una acción para el texto"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Abrir red de Wi-Fi disponible</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Accede a una red Wi-Fi."</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Acceder a la red"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"No se pudo conectar a la red Wi-Fi."</string> diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index c55c89563c29..c7e78ea5bceb 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Rändluse bänner sees"</string> <string name="roamingText12" msgid="1189071119992726320">"Rändlusbänner väljas"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Teenuse otsimine"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"WiFi-kõned"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: pole suunatud"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Avatud WiFi-võrk on saadaval</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Logi sisse WiFi-võrku"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Võrku sisselogimine"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Ei saanud WiFi-ga ühendust"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index a354f2208a32..58a53b59643c 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"اعلان رومینگ روشن"</string> <string name="roamingText12" msgid="1189071119992726320">"اعلان رومینگ خاموش"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"جستجوی سرویس"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"تماس از طریق Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: هدایت نشده"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">شبکه Wi-Fi باز در دسترس</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"ورود به شبکه Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"ورود به سیستم شبکه"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"اتصال به Wi-Fi ممکن نیست"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index f4cbc11cedc7..37718fa2d912 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Roaming-banneri käytössä"</string> <string name="roamingText12" msgid="1189071119992726320">"Roaming-banneri pois käytöstä"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Etsitään signaalia"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi-puhelut"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ei siirretty"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Avoin Wi-Fi-verkko käytettävissä</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Kirjaudu Wi-Fi-verkkoon"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Kirjaudu verkkoon"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Wi-Fi-yhteyden muodostaminen epäonnistui"</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index d406d1d10c4c..98a299f72385 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Bannière d\'itinérance activée"</string> <string name="roamingText12" msgid="1189071119992726320">"Bannière d\'itinérance désactivée"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Recherche des services disponibles"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Appels Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g> : non transféré"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">Réseaux Wi-Fi ouverts à proximité</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Connectez-vous au réseau Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Connectez-vous au réseau"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Impossible de se connecter au Wi-Fi."</string> diff --git a/core/res/res/values-hu-watch/strings.xml b/core/res/res/values-hu-watch/strings.xml index 7355022f492b..9f2e97f3c475 100644 --- a/core/res/res/values-hu-watch/strings.xml +++ b/core/res/res/values-hu-watch/strings.xml @@ -20,5 +20,5 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="android_upgrading_apk" msgid="1090732262010398759">"<xliff:g id="NUMBER_1">%2$d</xliff:g>/<xliff:g id="NUMBER_0">%1$d</xliff:g>. alkalmazás"</string> + <string name="android_upgrading_apk" msgid="1090732262010398759">"<xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g>. alkalmazás"</string> </resources> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index da946740f8e6..ddeefa890df0 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Spanduk Roaming Hidup"</string> <string name="roamingText12" msgid="1189071119992726320">"Spanduk Roaming Mati"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Mencari layanan"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Panggilan Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Tidak diteruskan"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Jaringan Wi-Fi terbuka tersedia</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Masuk ke jaringan Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Masuk ke jaringan"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Tidak dapat tersambung ke Wi-Fi"</string> diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml index f76d2b5d11a6..957a22476d73 100644 --- a/core/res/res/values-is-rIS/strings.xml +++ b/core/res/res/values-is-rIS/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Kveikt á reikiborða"</string> <string name="roamingText12" msgid="1189071119992726320">"Slökkt á reikiborða"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Leitar að þjónustu"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi símtöl"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Ekki áframsent"</string> @@ -1301,10 +1300,8 @@ <item quantity="one">Opin Wi-Fi net í boði</item> <item quantity="other">Opin Wi-Fi net í boði</item> </plurals> - <!-- no translation found for wifi_available_sign_in (9157196203958866662) --> - <skip /> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="wifi_available_sign_in" msgid="9157196203958866662">"Skrá inn á Wi-Fi net"</string> + <string name="network_available_sign_in" msgid="1848877297365446605">"Skrá inn á net"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Ekki var hægt að tengjast Wi-Fi"</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 72814f2fce3a..e04c8e4ec007 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Banner roaming attivato"</string> <string name="roamingText12" msgid="1189071119992726320">"Banner roaming disattivato"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Ricerca servizio"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Chiamate Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: inoltro non effettuato"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Apri rete Wi-Fi disponibile</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Accedi a rete Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Accedi alla rete"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Impossibile connettersi alla rete Wi-Fi"</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 4a68ef704fa8..25a6ffd36da8 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -125,8 +125,7 @@ <string name="roamingText11" msgid="4154476854426920970">"מודעת באנר נודדת מופעלת"</string> <string name="roamingText12" msgid="1189071119992726320">"מודעת באנר נודדת כבויה"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"מחפש שירות"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"שיחות ב-Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ללא העברה"</string> @@ -1316,8 +1315,7 @@ <item quantity="one">יש רשת Wi-Fi פתוחה וזמינה</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"היכנס לרשת Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"היכנס לרשת"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"אין אפשרות להתחבר ל-Wi-Fi"</string> diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml index 900327449bcd..be720e8facf0 100644 --- a/core/res/res/values-lo-rLA/strings.xml +++ b/core/res/res/values-lo-rLA/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"ເປີດໂຣມມິງແບນເນີ"</string> <string name="roamingText12" msgid="1189071119992726320">"ປິດໂຣມມິງແບນເນີ"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"ຊອກຫາບໍລິການ"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"ການໂທ Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ບໍ່ຖືກສົ່ງຕໍ່"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">ເປີດເຄືອຂ່າຍ Wi-Fi ທີ່ມີໃຫ້</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"ເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"ລົງຊື່ເຂົ້າເຄືອຂ່າຍ"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ບໍ່ສາມາດເຊື່ອມຕໍ່ Wi-Fi ໄດ້"</string> diff --git a/core/res/res/values-mcc310-mnc260-af/strings.xml b/core/res/res/values-mcc310-mnc260-af/strings.xml new file mode 100644 index 000000000000..e33c27bada37 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-af/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi-oproepe is nie beskikbaar nie. Kontak jou diensverskaffer om Wi-Fi-oproepe te aktiveer."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-am/strings.xml b/core/res/res/values-mcc310-mnc260-am/strings.xml new file mode 100644 index 000000000000..24a8809726a1 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-am/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi ጥሪ ማድረጊያ አይገኝም። የ Wi-Fi ጥሪ ማድረጊያን ለማንቃት የእርስዎን አገልግሎት አቅራቢ ያነጋግሩ።"</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-ar/strings.xml b/core/res/res/values-mcc310-mnc260-ar/strings.xml new file mode 100644 index 000000000000..8c2e6f63d525 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-ar/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"الاتصال عبر Wi-Fi ليس متوفرًا. اتصل بمشغل شبكة الجوّال لتمكين الاتصال عبر Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-da/strings.xml b/core/res/res/values-mcc310-mnc260-da/strings.xml new file mode 100644 index 000000000000..20532b2b812c --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-da/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Opkald via Wi-Fi er ikke muligt. Kontakt dit mobilselskab for at aktivere Opkald via Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-el/strings.xml b/core/res/res/values-mcc310-mnc260-el/strings.xml new file mode 100644 index 000000000000..cd5d615d6b93 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-el/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Η κλήση Wi-Fi δεν είναι διαθέσιμη. Επικοινωνήστε με την εταιρεία κινητής τηλεφωνίας σας για να ενεργοποιήσετε την κλήση Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-en-rGB/strings.xml b/core/res/res/values-mcc310-mnc260-en-rGB/strings.xml new file mode 100644 index 000000000000..3f764c08d80f --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-en-rGB/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi Calling isn\'t available. Contact your operator to enable Wi-Fi Calling."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-en-rIN/strings.xml b/core/res/res/values-mcc310-mnc260-en-rIN/strings.xml new file mode 100644 index 000000000000..3f764c08d80f --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-en-rIN/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi Calling isn\'t available. Contact your operator to enable Wi-Fi Calling."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-es-rUS/strings.xml b/core/res/res/values-mcc310-mnc260-es-rUS/strings.xml new file mode 100644 index 000000000000..3e13ebbf4009 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-es-rUS/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Las llamadas con Wi-Fi no están disponibles. Comunícate con el proveedor para habilitar la función."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-et-rEE/strings.xml b/core/res/res/values-mcc310-mnc260-et-rEE/strings.xml new file mode 100644 index 000000000000..465507aab2b5 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-et-rEE/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"WiFi-kõned pole saadaval. WiFi-kõnede lubamiseks võtke ühendust operaatoriga."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-fa/strings.xml b/core/res/res/values-mcc310-mnc260-fa/strings.xml new file mode 100644 index 000000000000..083a613b7eb0 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-fa/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"تماس از طریق Wi-Fi امکانپذیر نیست. برای فعال کردن تماس Wi-Fi، با شرکت مخابراتیتان تماس بگیرید."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-fi/strings.xml b/core/res/res/values-mcc310-mnc260-fi/strings.xml new file mode 100644 index 000000000000..43efe46730dc --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-fi/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi-puhelut eivät ole käytettävissä. Pyydä operaattoriasi ottamaan Wi-Fi-puhelut käyttöön."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-fr-rCA/strings.xml b/core/res/res/values-mcc310-mnc260-fr-rCA/strings.xml new file mode 100644 index 000000000000..2d63c897856c --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-fr-rCA/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"La fonction d\'appel par Wi-Fi n\'est pas disponible. Communiquez avec votre fournisseur de services pour activer les appels par Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-in/strings.xml b/core/res/res/values-mcc310-mnc260-in/strings.xml new file mode 100644 index 000000000000..669d384f7d3d --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-in/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Panggilan Wi-Fi tidak tersedia. Hubungi operator untuk mengaktifkan Panggilan Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-is-rIS/strings.xml b/core/res/res/values-mcc310-mnc260-is-rIS/strings.xml new file mode 100644 index 000000000000..25497568a2ed --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-is-rIS/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi símtöl eru ekki í boði. Hafðu samband við símafyrirtækið þitt til að virkja Wi-Fi símtöl."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-it/strings.xml b/core/res/res/values-mcc310-mnc260-it/strings.xml new file mode 100644 index 000000000000..7f58424e3597 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-it/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Le chiamate Wi-Fi non sono disponibili. Contatta il tuo operatore per attivarle."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-iw/strings.xml b/core/res/res/values-mcc310-mnc260-iw/strings.xml new file mode 100644 index 000000000000..161c86809b29 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-iw/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"שיחות ב-Wi-Fi אינן זמינות. צור קשר עם הספק שלך כדי להפעיל שיחות ב-Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-lo-rLA/strings.xml b/core/res/res/values-mcc310-mnc260-lo-rLA/strings.xml new file mode 100644 index 000000000000..8f826e4fe655 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-lo-rLA/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"ການໂທ Wi-Fi ບໍ່ພ້ອມໃຊ້ງານ. ໃຫ້ຕິດຕໍ່ຫາຜູ້ໃຫ້ບໍລິການຂອງທ່ານເພື່ອເປີດໃຊ້ການໂທ Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-ms-rMY/strings.xml b/core/res/res/values-mcc310-mnc260-ms-rMY/strings.xml new file mode 100644 index 000000000000..aa13114a4f28 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-ms-rMY/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Panggilan Wi-Fi tidak tersedia. Hubungi pembawa anda untuk mendayakan Panggilan Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-my-rMM/strings.xml b/core/res/res/values-mcc310-mnc260-my-rMM/strings.xml new file mode 100644 index 000000000000..90e99af98744 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-my-rMM/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"ဝိုင်ဖိုင်ခေါ်ဆိုမှု မရပါ။ ဝိုင်ဖိုင် ခေါ်နိုင်ရန် သင်၏ ဖုန်းဝန်ဆောင်မှုပေးသူအား ဆက်သွယ်ပါ။"</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-ne-rNP/strings.xml b/core/res/res/values-mcc310-mnc260-ne-rNP/strings.xml new file mode 100644 index 000000000000..532cf17d72c3 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-ne-rNP/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Wi-Fi कलिङ् उपलब्ध छैन। Wi-Fi कलिङ सक्षम पार्न तपाईँको वाहकलाई सम्पर्क गर्नुहोस्।"</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-pt-rPT/strings.xml b/core/res/res/values-mcc310-mnc260-pt-rPT/strings.xml new file mode 100644 index 000000000000..bb22d9efc711 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-pt-rPT/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"As chamadas Wi-Fi não estão disponíveis. Contacte o seu operador para as ativar."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-pt/strings.xml b/core/res/res/values-mcc310-mnc260-pt/strings.xml new file mode 100644 index 000000000000..d422e83068b9 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-pt/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"A chamada por Wi-Fi não está disponível. Entre em contato com sua operadora para ativá-la."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-ro/strings.xml b/core/res/res/values-mcc310-mnc260-ro/strings.xml new file mode 100644 index 000000000000..422280f360e9 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-ro/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Apelarea prin Wi-Fi nu este disponibilă. Contactați-vă operatorul pentru a activa Apelarea prin Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-sk/strings.xml b/core/res/res/values-mcc310-mnc260-sk/strings.xml new file mode 100644 index 000000000000..527388fe9b7c --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-sk/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Volanie cez Wi-Fi nie je k dispozícii. Kontaktujte svojho operátora a požiadajte ho o povolenie volania cez Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-sv/strings.xml b/core/res/res/values-mcc310-mnc260-sv/strings.xml new file mode 100644 index 000000000000..8e0d15980bd3 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-sv/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Det går inte att ringa Wi-Fi-samtal. Kontakta operatören om du vill aktivera Wi-Fi-samtal."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-sw/strings.xml b/core/res/res/values-mcc310-mnc260-sw/strings.xml new file mode 100644 index 000000000000..ff9bf3fe2af8 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-sw/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Huduma ya Upigaji simu kwa Wi-Fi haipatikani. Wasiliana na mtoa huduma wako ili awashe Upigaji simu kwa Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-th/strings.xml b/core/res/res/values-mcc310-mnc260-th/strings.xml new file mode 100644 index 000000000000..52dc04f19a37 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-th/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"การโทรผ่าน Wi-Fi ไม่พร้อมใช้งาน โปรดติดต่อผู้ให้บริการของคุณเพื่อเปิดใช้การโทรผ่าน Wi-Fi"</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-uk/strings.xml b/core/res/res/values-mcc310-mnc260-uk/strings.xml new file mode 100644 index 000000000000..243c7b00358a --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-uk/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Ви не можете телефонувати через Wi-Fi. Щоб увімкнути цю функцію, зв’яжіться з оператором."</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc310-mnc260-zu/strings.xml b/core/res/res/values-mcc310-mnc260-zu/strings.xml new file mode 100644 index 000000000000..a037bb817943 --- /dev/null +++ b/core/res/res/values-mcc310-mnc260-zu/strings.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my 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. +*/ + --> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="wfcOperatorErrorMessages"> + <item msgid="931634632269046788">"Ukushaya kwe-Wi-Fi akutholakali. Xhumana nenkampani yakho yenethiwekhi ukuze unike amandla ukushaya kwe-Wi-Fi."</item> + </string-array> +</resources> diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml index 6545081e8ab7..9a80da8e3fd5 100644 --- a/core/res/res/values-ms-rMY/strings.xml +++ b/core/res/res/values-ms-rMY/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Sepanduk Perayauan Dihidupkan"</string> <string name="roamingText12" msgid="1189071119992726320">"Sepanduk Perayauan Dimatikan"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Mencari Perkhidmatan"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Panggilan Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Tidak dimajukan"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Rangkaian Wi-Fi terbuka tersedia</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Log masuk ke rangkaian Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Log masuk ke rangkaian"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Tidak boleh menyambung kepada Wi-Fi"</string> diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml index 605d53cd622e..cb46c91be906 100644 --- a/core/res/res/values-my-rMM/strings.xml +++ b/core/res/res/values-my-rMM/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"ရုန်းမင်းစာတမ်းဖွင့်ရန်"</string> <string name="roamingText12" msgid="1189071119992726320">"ရုန်းမင်းစာတမ်းပိတ်ထားရန်"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"ဆားဗစ်အားရှာဖွေနေသည်"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"ဝိုင်ဖိုင် ခေါ်ဆိုမှု"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ထပ်ဆင့်မပို့နိုင်ပါ"</string> @@ -1301,10 +1300,8 @@ <item quantity="other">Wi-Fi ကွန်ယက်များရရှိနိုင်သည်အား ဖွင့်ပါ</item> <item quantity="one">Wi-Fi ကွန်ယက်ရရှိနိုင်သည်အား ဖွင့်ပါ</item> </plurals> - <!-- no translation found for wifi_available_sign_in (9157196203958866662) --> - <skip /> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="wifi_available_sign_in" msgid="9157196203958866662">"ဝိုင်ဖိုင်ကွန်ရက်သို့ လက်မှတ်ထိုးဝင်ပါ"</string> + <string name="network_available_sign_in" msgid="1848877297365446605">"ကွန်ယက်သို့ လက်မှတ်ထိုးဝင်ရန်"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ဝိုင်ဖိုင်ကိုချိတ်ဆက်မရပါ"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 1cfc116a4b80..1d1373cf4119 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -1271,7 +1271,7 @@ <string name="new_app_description" msgid="1932143598371537340">"Stopp den gamle appen uten å lagre."</string> <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g> er over minnegrensen"</string> <string name="dump_heap_notification_detail" msgid="2075673362317481664">"Minnedumpen («heap dump») er samlet inn – trykk for å dele"</string> - <string name="dump_heap_title" msgid="5864292264307651673">"Vil du dele minnedumpen? («heap dump»)"</string> + <string name="dump_heap_title" msgid="5864292264307651673">"Vil du dele minnedumpen («heap dump»)?"</string> <string name="dump_heap_text" msgid="4809417337240334941">"<xliff:g id="PROC">%1$s</xliff:g>-prosessen er <xliff:g id="SIZE">%2$s</xliff:g> over grensen for prosessminne. En minnedump («heap dump») er tilgjengelig for deling med utvikleren. Vær forsiktig – denne minnedumpen kan inneholde noen av de personlige opplysningene dine som appen har tilgang til."</string> <string name="sendText" msgid="5209874571959469142">"Velg handling for tekst"</string> <string name="volume_ringtone" msgid="6885421406845734650">"Ringetonevolum"</string> diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml index 01acc310f683..7f472461b77b 100644 --- a/core/res/res/values-ne-rNP/strings.xml +++ b/core/res/res/values-ne-rNP/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"रोमिङ ध्वजा चालु छ"</string> <string name="roamingText12" msgid="1189071119992726320">"रोमिङ ब्यानर बन्द छ"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"सेवाको खोजी गर्दै…"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi कलिङ्"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: अगाडि पठाइएको छैन"</string> @@ -1308,8 +1307,7 @@ <item quantity="one">खुल्ला Wi-Fi सञ्जाल उपलब्ध छ</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"वाइफाइ नेटवर्कमा साइन इन गर्नुहोस्"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"सञ्जालमा साइन इन गर्नुहोस्"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"वाइ-फाइसँग जडान गर्न सकेन"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 6085cccc2766..39ae51c9215d 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Faixa de Roaming activada"</string> <string name="roamingText12" msgid="1189071119992726320">"Faixa de Roaming desativada"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"A procurar Serviço"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Chamadas Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não reencaminhado"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Rede Wi-Fi aberta disponível</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Iniciar sessão na rede Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Início de sessão na rede"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Não foi possível ligar a Wi-Fi"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 5bf6332e91a4..3a22dd3c754b 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Banner de roaming ativado"</string> <string name="roamingText12" msgid="1189071119992726320">"Banner de roaming desativado"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Pesquisando serviço"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Chamadas por Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não encaminhado"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">Abrir redes Wi-Fi disponíveis</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Fazer login na rede Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Fazer login na rede"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Não foi possível se conectar a redes Wi-Fi"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 24b282615428..722b59a665df 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -124,8 +124,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Banner roaming activat"</string> <string name="roamingText12" msgid="1189071119992726320">"Banner roaming dezactivat"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Se caută serviciul"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Apelare prin Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: neredirecţionată"</string> @@ -1309,8 +1308,7 @@ <item quantity="one">Rețea Wi-Fi deschisă disponibilă</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Conectaţi-vă la reţeaua Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Conectați-vă la rețea"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Nu se poate conecta la Wi-Fi"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 5b7a9457a214..fefc92e82c66 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -125,8 +125,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Banner roamingu je zapnutý"</string> <string name="roamingText12" msgid="1189071119992726320">"Banner roamingu je vypnutý"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Vyhľadávanie služby"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Volanie cez Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Nepresmerované"</string> @@ -1316,8 +1315,7 @@ <item quantity="one">K dispozícii je verejná sieť Wi-Fi</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Prihlásiť sa do siete Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Prihlásenie do siete"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Nepodarilo sa pripojiť k sieti Wi-Fi"</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index feaf09316805..0c13a51ac93e 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -1282,7 +1282,7 @@ <string name="dump_heap_notification" msgid="2618183274836056542">"Proces <xliff:g id="PROC">%1$s</xliff:g> je presegel omejitev pomnilnika"</string> <string name="dump_heap_notification_detail" msgid="2075673362317481664">"Izvoz kopice je zbran; dotaknite se za deljenje z drugimi"</string> <string name="dump_heap_title" msgid="5864292264307651673">"Deljenje izvoza kopice z drugimi?"</string> - <string name="dump_heap_text" msgid="4809417337240334941">"Proces <xliff:g id="PROC">%1$s</xliff:g> je presegel <xliff:g id="SIZE">%2$s</xliff:g> omejitve pomnilnika za procese. Izvoz kopice je na voljo, da ga delite z razvijalcem. Previdno: izvoz kopica lahko vsebuje vaše osebne podatke, do katerih ima aplikacija dostop."</string> + <string name="dump_heap_text" msgid="4809417337240334941">"Proces <xliff:g id="PROC">%1$s</xliff:g> je presegel <xliff:g id="SIZE">%2$s</xliff:g> omejitve pomnilnika za proces. Izvoz kopice je na voljo, da ga delite z razvijalcem. Previdno: izvoz kopice lahko vsebuje vaše osebne podatke, do katerih ima aplikacija dostop."</string> <string name="sendText" msgid="5209874571959469142">"Izberite dejanje za besedilo"</string> <string name="volume_ringtone" msgid="6885421406845734650">"Glasnost zvonjenja"</string> <string name="volume_music" msgid="5421651157138628171">"Glasnost predstavnosti"</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index ba68c0be1cef..450b2ff184d0 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Roamingbanner på"</string> <string name="roamingText12" msgid="1189071119992726320">"Roamingbanner av"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Söker efter tjänst"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Wi-Fi-samtal"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Vidarebefordras inte"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Öppet Wi-Fi-nätverk är tillgängligt</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Logga in på ett Wi-Fi-nätverk"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Logga in på nätverket"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Det gick inte att ansluta till Wi-Fi"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 7ddf7d8bf00c..129287d2bfa4 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Washa Bango la Uzururaji"</string> <string name="roamingText12" msgid="1189071119992726320">"Zima Bango la Uzururaji"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Inatafuta Huduma"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Upigaji Simu kwa Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Haijatumiwa mwingine"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">Fungua mtandao wa Wi-Fi unaopatikana</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Ingia kwa mtandao wa Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Ingia katika mtandao"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Haikuweza kuunganisha kwa Mtandao-Hewa"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index eb1d7d21da76..0c73ea1f6b24 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"เปิดโรมมิ่งแบนเนอร์"</string> <string name="roamingText12" msgid="1189071119992726320">"ปิดโรมมิ่งแบนเนอร์"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"กำลังค้นหาบริการ"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"การโทรผ่าน Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ไม่ได้โอนสาย"</string> @@ -1302,8 +1301,7 @@ <item quantity="one">มี 1 เครือข่าย Wi-Fi สาธารณะที่ใช้งานได้</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"ลงชื่อเข้าใช้เครือข่าย WiFi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"ลงชื่อเข้าใช้เครือข่าย"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"ไม่สามารถเชื่อมต่อ WiFi"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 4aad8908df15..a865f927d1cd 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -125,8 +125,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Банер роум-гу ввімк."</string> <string name="roamingText12" msgid="1189071119992726320">"Банер роум-гу вимк."</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Пошук служби"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Дзвінок через Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: не переслано"</string> @@ -1316,8 +1315,7 @@ <item quantity="other">Відкриті мережі Wi-Fi доступні</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Вхід у мережу Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Вхід у мережу"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Не вдалося під’єднатися до мережі Wi-Fi"</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 0c16cb6362b3..4a3a7c5e4ec4 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -793,7 +793,7 @@ <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"读取网络使用情况历史记录"</string> <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"允许应用读取特定网络和应用的网络使用情况历史记录。"</string> <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"管理网络政策"</string> - <string name="permdesc_manageNetworkPolicy" msgid="7537586771559370668">"允许应用管理网络政策和定义专门针对应用的规则。"</string> + <string name="permdesc_manageNetworkPolicy" msgid="7537586771559370668">"允许应用管理网络规范和定义专门针对应用的规则。"</string> <string name="permlab_modifyNetworkAccounting" msgid="5088217309088729650">"修改网络使用情况记录方式"</string> <string name="permdesc_modifyNetworkAccounting" msgid="5443412866746198123">"允许该应用修改对于各应用的网络使用情况的统计方式。普通应用不应使用此权限。"</string> <string name="permlab_accessNotifications" msgid="7673416487873432268">"访问通知"</string> @@ -1269,10 +1269,10 @@ <string name="old_app_description" msgid="2082094275580358049">"不启动新的应用。"</string> <string name="new_app_action" msgid="5472756926945440706">"启动<xliff:g id="OLD_APP">%1$s</xliff:g>"</string> <string name="new_app_description" msgid="1932143598371537340">"停止旧的应用,但不保存。"</string> - <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g>所占的内存已超出限制"</string> - <string name="dump_heap_notification_detail" msgid="2075673362317481664">"已收集堆转储;触摸即可共享"</string> - <string name="dump_heap_title" msgid="5864292264307651673">"要共享堆转储吗?"</string> - <string name="dump_heap_text" msgid="4809417337240334941">"<xliff:g id="PROC">%1$s</xliff:g>进程所占的内存已超出限制 (<xliff:g id="SIZE">%2$s</xliff:g>)。您可以将收集的堆转储共享给相应的开发者。请注意:此堆转储中可能包含该应用有权存取的您的个人信息。"</string> + <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g>占用的内存已超出限制"</string> + <string name="dump_heap_notification_detail" msgid="2075673362317481664">"已收集堆转储数据;触摸即可共享"</string> + <string name="dump_heap_title" msgid="5864292264307651673">"要共享堆转储数据吗?"</string> + <string name="dump_heap_text" msgid="4809417337240334941">"<xliff:g id="PROC">%1$s</xliff:g>进程占用的内存已超出限制 (<xliff:g id="SIZE">%2$s</xliff:g>)。您可以将收集的堆转储数据共享给相应的开发者。请注意:此数据中可能包含该应用有权存取的您的个人信息。"</string> <string name="sendText" msgid="5209874571959469142">"选择要对文字执行的操作"</string> <string name="volume_ringtone" msgid="6885421406845734650">"铃声音量"</string> <string name="volume_music" msgid="5421651157138628171">"媒体音量"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 49b688487c13..a30ae974a56e 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1270,9 +1270,9 @@ <string name="new_app_action" msgid="5472756926945440706">"啟動 <xliff:g id="OLD_APP">%1$s</xliff:g>"</string> <string name="new_app_description" msgid="1932143598371537340">"停止舊的應用程式且不儲存。"</string> <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g> 已超出記憶體上限"</string> - <string name="dump_heap_notification_detail" msgid="2075673362317481664">"已收集堆積傾印文件;輕觸即可分享"</string> - <string name="dump_heap_title" msgid="5864292264307651673">"分享堆積傾印文件?"</string> - <string name="dump_heap_text" msgid="4809417337240334941">"程序「<xliff:g id="PROC">%1$s</xliff:g>」已超出 <xliff:g id="SIZE">%2$s</xliff:g> 的程序記憶體上限。已有堆積傾印文件可供您與開發人員分享。請注意:這份堆積傾印文件可能包含應用程式可存取的個人資訊。"</string> + <string name="dump_heap_notification_detail" msgid="2075673362317481664">"已取得記憶體快照資料;輕觸這裡即可分享"</string> + <string name="dump_heap_title" msgid="5864292264307651673">"分享記憶體快照資料?"</string> + <string name="dump_heap_text" msgid="4809417337240334941">"程序「<xliff:g id="PROC">%1$s</xliff:g>」已超出 <xliff:g id="SIZE">%2$s</xliff:g> 的程序記憶體上限。系統已產生記憶體快照資料,可供您與開發人員分享。請注意:記憶體快照資料中可能包含應用程式可存取的個人資訊。"</string> <string name="sendText" msgid="5209874571959469142">"選取傳送文字內容的方式"</string> <string name="volume_ringtone" msgid="6885421406845734650">"鈴聲音量"</string> <string name="volume_music" msgid="5421651157138628171">"媒體音量"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 37dcec9ee4eb..f905a916b0f0 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -123,8 +123,7 @@ <string name="roamingText11" msgid="4154476854426920970">"Ibhena Yokuzulazula Ivuliwe"</string> <string name="roamingText12" msgid="1189071119992726320">"Ibhena yokuzulazula ivaliwe"</string> <string name="roamingTextSearching" msgid="8360141885972279963">"Iseshela Isevisi"</string> - <!-- no translation found for wfcRegErrorTitle (2301376280632110664) --> - <skip /> + <string name="wfcRegErrorTitle" msgid="2301376280632110664">"Ukushaya kwe-Wi-Fi"</string> <string-array name="wfcOperatorErrorMessages"> </string-array> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Akudlulisiwe"</string> @@ -1302,8 +1301,7 @@ <item quantity="other">Vula amanethiwekhi we-Wi-Fi atholakalayo</item> </plurals> <string name="wifi_available_sign_in" msgid="9157196203958866662">"Ngena ngemvume kunethiwekhi ye-Wi-Fi"</string> - <!-- no translation found for network_available_sign_in (1848877297365446605) --> - <skip /> + <string name="network_available_sign_in" msgid="1848877297365446605">"Ngena ngemvume kunethiwekhi"</string> <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) --> <skip /> <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Ayikwazanga ukuxhuma kwi-Wi-Fi"</string> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index a78178622931..37c95987ba8d 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -664,6 +664,12 @@ --> <integer name="config_triplePressOnPowerBehavior">0</integer> + <!-- Control the behavior when the user presses the sleep button. + 0 - Go to sleep (doze) + 1 - Go to sleep (doze) and go home + --> + <integer name="config_shortPressOnSleepBehavior">0</integer> + <!-- Package name for default keyguard appwidget [DO NOT TRANSLATE] --> <string name="widget_default_package_name" translatable="false"></string> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 20ec56392a62..061750396450 100755 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -367,6 +367,7 @@ <java-symbol type="integer" name="config_shortPressOnPowerBehavior" /> <java-symbol type="integer" name="config_toastDefaultGravity" /> <java-symbol type="integer" name="config_triplePressOnPowerBehavior" /> + <java-symbol type="integer" name="config_shortPressOnSleepBehavior" /> <java-symbol type="integer" name="config_wifi_framework_scan_interval" /> <java-symbol type="integer" name="config_wifi_supplicant_scan_interval" /> <java-symbol type="integer" name="config_wifi_scan_interval_p2p_connected" /> diff --git a/docs/html/guide/topics/manifest/application-element.jd b/docs/html/guide/topics/manifest/application-element.jd index 8a0e837629b8..b5af9c38e992 100644 --- a/docs/html/guide/topics/manifest/application-element.jd +++ b/docs/html/guide/topics/manifest/application-element.jd @@ -449,9 +449,13 @@ href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> developer guide.< <dt><a name="vmSafeMode"></a>{@code android:vmSafeMode}</dt> <dd>Indicates whether the app would like the virtual machine (VM) to operate in safe mode. The default value is {@code "false"}. -</dd> +<p> This attribute was added in API level 8 where a value of "true" +disabled the Dalvik just-in-time (JIT) compiler. </p> +<p> This attribute was adapted in API level 22 where a value of "true" +disabled the ART ahead-of-time (AOT) compiler. </p> +</dd> </dl></dd> diff --git a/graphics/java/android/graphics/Matrix.java b/graphics/java/android/graphics/Matrix.java index b4e6babffe9c..90e5a4e487fa 100644 --- a/graphics/java/android/graphics/Matrix.java +++ b/graphics/java/android/graphics/Matrix.java @@ -35,7 +35,7 @@ public class Matrix { public static final int MPERSP_2 = 8; //!< use with getValues/setValues /** @hide */ - public static Matrix IDENTITY_MATRIX = new Matrix() { + public final static Matrix IDENTITY_MATRIX = new Matrix() { void oops() { throw new IllegalStateException("Matrix can not be modified"); } diff --git a/graphics/java/android/graphics/drawable/RippleBackground.java b/graphics/java/android/graphics/drawable/RippleBackground.java index 6d1b1fecd51c..1c14e2f9205c 100644 --- a/graphics/java/android/graphics/drawable/RippleBackground.java +++ b/graphics/java/android/graphics/drawable/RippleBackground.java @@ -25,7 +25,7 @@ import android.graphics.CanvasProperty; import android.graphics.Paint; import android.graphics.Rect; import android.util.FloatProperty; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; import android.view.animation.LinearInterpolator; @@ -73,7 +73,7 @@ class RippleBackground extends RippleComponent { } @Override - protected boolean drawHardware(HardwareCanvas c) { + protected boolean drawHardware(DisplayListCanvas c) { c.drawCircle(mPropX, mPropY, mPropRadius, mPropPaint); return true; } diff --git a/graphics/java/android/graphics/drawable/RippleComponent.java b/graphics/java/android/graphics/drawable/RippleComponent.java index 79407f71d5c8..7976e8285371 100644 --- a/graphics/java/android/graphics/drawable/RippleComponent.java +++ b/graphics/java/android/graphics/drawable/RippleComponent.java @@ -20,7 +20,7 @@ import android.animation.Animator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; import java.util.ArrayList; @@ -36,7 +36,7 @@ abstract class RippleComponent { protected final Rect mBounds; /** Whether we can use hardware acceleration for the exit animation. */ - private boolean mHasHardwareCanvas; + private boolean mHasDisplayListCanvas; private boolean mHasPendingHardwareAnimator; private RenderNodeAnimatorSet mHardwareAnimator; @@ -93,7 +93,7 @@ abstract class RippleComponent { public final void exit() { cancel(); - if (mHasHardwareCanvas) { + if (mHasDisplayListCanvas) { // We don't have access to a canvas here, but we expect one on the // next frame. We'll start the render thread animation then. mHasPendingHardwareAnimator = true; @@ -132,19 +132,19 @@ abstract class RippleComponent { * @return {@code true} if something was drawn, {@code false} otherwise */ public boolean draw(Canvas c, Paint p) { - final boolean hasHardwareCanvas = c.isHardwareAccelerated() - && c instanceof HardwareCanvas; - if (mHasHardwareCanvas != hasHardwareCanvas) { - mHasHardwareCanvas = hasHardwareCanvas; + final boolean hasDisplayListCanvas = c.isHardwareAccelerated() + && c instanceof DisplayListCanvas; + if (mHasDisplayListCanvas != hasDisplayListCanvas) { + mHasDisplayListCanvas = hasDisplayListCanvas; - if (!hasHardwareCanvas) { + if (!hasDisplayListCanvas) { // We've switched from hardware to non-hardware mode. Panic. endHardwareAnimations(); } } - if (hasHardwareCanvas) { - final HardwareCanvas hw = (HardwareCanvas) c; + if (hasDisplayListCanvas) { + final DisplayListCanvas hw = (DisplayListCanvas) c; startPendingAnimation(hw, p); if (mHardwareAnimator != null) { @@ -173,7 +173,7 @@ abstract class RippleComponent { * @param hw hardware canvas on which the animation should draw * @param p paint whose properties the hardware canvas should use */ - private void startPendingAnimation(HardwareCanvas hw, Paint p) { + private void startPendingAnimation(DisplayListCanvas hw, Paint p) { if (mHasPendingHardwareAnimator) { mHasPendingHardwareAnimator = false; @@ -258,7 +258,7 @@ abstract class RippleComponent { protected abstract RenderNodeAnimatorSet createHardwareExit(Paint p); - protected abstract boolean drawHardware(HardwareCanvas c); + protected abstract boolean drawHardware(DisplayListCanvas c); protected abstract boolean drawSoftware(Canvas c, Paint p); @@ -279,7 +279,7 @@ abstract class RippleComponent { mAnimators.clear(); } - public void start(HardwareCanvas target) { + public void start(DisplayListCanvas target) { if (target == null) { throw new IllegalArgumentException("Hardware canvas must be non-null"); } diff --git a/graphics/java/android/graphics/drawable/RippleForeground.java b/graphics/java/android/graphics/drawable/RippleForeground.java index 334122dc0276..4853b04875d7 100644 --- a/graphics/java/android/graphics/drawable/RippleForeground.java +++ b/graphics/java/android/graphics/drawable/RippleForeground.java @@ -27,7 +27,7 @@ import android.graphics.Paint; import android.graphics.Rect; import android.util.FloatProperty; import android.util.MathUtils; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; import android.view.animation.LinearInterpolator; @@ -127,7 +127,7 @@ class RippleForeground extends RippleComponent { } @Override - protected boolean drawHardware(HardwareCanvas c) { + protected boolean drawHardware(DisplayListCanvas c) { c.drawCircle(mPropX, mPropY, mPropRadius, mPropPaint); return true; } diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 8c1ba05c7848..365b935e7362 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -438,6 +438,12 @@ public class AudioManager { */ public static final int FLAG_SHOW_VIBRATE_HINT = 1 << 11; + /** + * Adjusting the volume due to a hardware key press. + * @hide + */ + public static final int FLAG_FROM_KEY = 1 << 12; + private static final String[] FLAG_NAMES = { "FLAG_SHOW_UI", "FLAG_ALLOW_RINGER_MODES", @@ -451,6 +457,7 @@ public class AudioManager { "FLAG_ACTIVE_MEDIA_ONLY", "FLAG_SHOW_UI_WARNINGS", "FLAG_SHOW_VIBRATE_HINT", + "FLAG_FROM_KEY", }; /** @hide */ diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java index 824a7adcf057..18ffe12e0880 100644 --- a/media/java/android/media/ImageReader.java +++ b/media/java/android/media/ImageReader.java @@ -443,6 +443,7 @@ public class ImageReader implements AutoCloseable { @Override public void close() { setOnImageAvailableListener(null, null); + if (mSurface != null) mSurface.release(); nativeClose(); } diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java index d7752b9f6d11..6b37a34c2895 100644 --- a/media/java/android/media/MediaDrm.java +++ b/media/java/android/media/MediaDrm.java @@ -254,6 +254,9 @@ public final class MediaDrm { * This event type indicates that the app needs to request a certificate from * the provisioning server. The request message data is obtained using * {@link #getProvisionRequest} + * + * @deprecated Handle provisioning via {@link android.media.NotProvisionedException} + * instead. */ public static final int EVENT_PROVISION_REQUIRED = 1; diff --git a/media/java/android/media/session/MediaSessionLegacyHelper.java b/media/java/android/media/session/MediaSessionLegacyHelper.java index 3276f0c9267e..c61d7ad0a0b6 100644 --- a/media/java/android/media/session/MediaSessionLegacyHelper.java +++ b/media/java/android/media/session/MediaSessionLegacyHelper.java @@ -197,17 +197,17 @@ public class MediaSessionLegacyHelper { break; } if (down || up) { - int flags; + int flags = AudioManager.FLAG_FROM_KEY; if (musicOnly) { // This flag is used when the screen is off to only affect // active media - flags = AudioManager.FLAG_ACTIVE_MEDIA_ONLY; + flags |= AudioManager.FLAG_ACTIVE_MEDIA_ONLY; } else { // These flags are consistent with the home screen if (up) { - flags = AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE; + flags |= AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE; } else { - flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE; + flags |= AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE; } } if (direction != 0) { diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 6607765135d1..cf1b4414b094 100644 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -241,7 +241,7 @@ public abstract class TvInputService extends Service { final Handler mHandler; private WindowManager.LayoutParams mWindowParams; private Surface mSurface; - private Context mContext; + private final Context mContext; private FrameLayout mOverlayViewContainer; private View mOverlayView; private OverlayViewCleanUpTask mOverlayViewCleanUpTask; @@ -249,11 +249,11 @@ public abstract class TvInputService extends Service { private IBinder mWindowToken; private Rect mOverlayFrame; - private Object mLock = new Object(); + private final Object mLock = new Object(); // @GuardedBy("mLock") private ITvInputSessionCallback mSessionCallback; // @GuardedBy("mLock") - private List<Runnable> mPendingActions = new ArrayList<>(); + private final List<Runnable> mPendingActions = new ArrayList<>(); /** * Creates a new Session. @@ -614,16 +614,17 @@ public abstract class TvInputService extends Service { public void onSetMain(boolean isMain) { } - /** - * Sets the {@link Surface} for the current input session on which the TV input renders video. - * <p> - * When {@code setSurface(null)} is called, the implementation should stop using the Surface - * object previously given and release any references to it. - * - * @param surface possibly {@code null} {@link Surface} an application passes to this TV input - * session. - * @return {@code true} if the surface was set, {@code false} otherwise. - */ + /** + * Sets the {@link Surface} for the current input session on which the TV input renders + * video. + * <p> + * When {@code setSurface(null)} is called, the implementation should stop using the Surface + * object previously given and release any references to it. + * + * @param surface possibly {@code null} {@link Surface} an application passes to this TV + * input session. + * @return {@code true} if the surface was set, {@code false} otherwise. + */ public abstract boolean onSetSurface(Surface surface); /** @@ -662,11 +663,11 @@ public abstract class TvInputService extends Service { /** * Tunes to a given channel. When the video is available, {@link #notifyVideoAvailable()} - * should be called. Also, {@link #notifyVideoUnavailable(int)} should be called when the - * TV input cannot continue playing the given channel. + * should be called. Also, {@link #notifyVideoUnavailable(int)} should be called when the TV + * input cannot continue playing the given channel. * * @param channelUri The URI of the channel. - * @return {@code true} the tuning was successful, {@code false} otherwise. + * @return {@code true} if the tuning was successful, {@code false} otherwise. */ public abstract boolean onTune(Uri channelUri); @@ -675,7 +676,7 @@ public abstract class TvInputService extends Service { * * @param channelUri The URI of the channel. * @param params The extra parameters from other applications. - * @return {@code true} the tuning was successful, {@code false} otherwise. + * @return {@code true} if the tuning was successful, {@code false} otherwise. * @hide */ @SystemApi @@ -711,10 +712,10 @@ public abstract class TvInputService extends Service { } /** - * Select a given track. + * Selects a given track. * <p> * If this is done successfully, the implementation should call {@link #notifyTrackSelected} - * to help applications maintain the selcted track lists. + * to help applications maintain the up-to-date list of the selected tracks. * </p> * * @param trackId The ID of the track to select. {@code null} means to unselect the current @@ -722,6 +723,7 @@ public abstract class TvInputService extends Service { * @param type The type of the track to select. The type can be * {@link TvTrackInfo#TYPE_AUDIO}, {@link TvTrackInfo#TYPE_VIDEO} or * {@link TvTrackInfo#TYPE_SUBTITLE}. + * @return {@code true} if the track selection was successful, {@code false} otherwise. * @see #notifyTrackSelected */ public boolean onSelectTrack(int type, String trackId) { diff --git a/media/jni/soundpool/SoundPool.cpp b/media/jni/soundpool/SoundPool.cpp index 1205f9d3a2f2..10233f3bef80 100644 --- a/media/jni/soundpool/SoundPool.cpp +++ b/media/jni/soundpool/SoundPool.cpp @@ -256,7 +256,7 @@ int SoundPool::play(int sampleID, float leftVolume, float rightVolume, dump(); // allocate a channel - channel = allocateChannel_l(priority); + channel = allocateChannel_l(priority, sampleID); // no channel allocated - return 0 if (!channel) { @@ -271,13 +271,25 @@ int SoundPool::play(int sampleID, float leftVolume, float rightVolume, return channelID; } -SoundChannel* SoundPool::allocateChannel_l(int priority) +SoundChannel* SoundPool::allocateChannel_l(int priority, int sampleID) { List<SoundChannel*>::iterator iter; SoundChannel* channel = NULL; - // allocate a channel + // check if channel for given sampleID still available if (!mChannels.empty()) { + for (iter = mChannels.begin(); iter != mChannels.end(); ++iter) { + if (sampleID == (*iter)->getPrevSampleID() && (*iter)->state() == SoundChannel::IDLE) { + channel = *iter; + mChannels.erase(iter); + ALOGV("Allocated recycled channel for same sampleID"); + break; + } + } + } + + // allocate any channel + if (!channel && !mChannels.empty()) { iter = mChannels.begin(); if (priority >= (*iter)->priority()) { channel = *iter; @@ -648,6 +660,7 @@ error: void SoundChannel::init(SoundPool* soundPool) { mSoundPool = soundPool; + mPrevSampleID = -1; } // call with sound pool lock held @@ -656,7 +669,7 @@ void SoundChannel::play(const sp<Sample>& sample, int nextChannelID, float leftV { sp<AudioTrack> oldTrack; sp<AudioTrack> newTrack; - status_t status; + status_t status = NO_ERROR; { // scope for the lock Mutex::Autolock lock(&mLock); @@ -703,38 +716,43 @@ void SoundChannel::play(const sp<Sample>& sample, int nextChannelID, float leftV } #endif - // mToggle toggles each time a track is started on a given channel. - // The toggle is concatenated with the SoundChannel address and passed to AudioTrack - // as callback user data. This enables the detection of callbacks received from the old - // audio track while the new one is being started and avoids processing them with - // wrong audio audio buffer size (mAudioBufferSize) - unsigned long toggle = mToggle ^ 1; - void *userData = (void *)((unsigned long)this | toggle); - audio_channel_mask_t channelMask = audio_channel_out_mask_from_count(numChannels); - - // do not create a new audio track if current track is compatible with sample parameters -#ifdef USE_SHARED_MEM_BUFFER - newTrack = new AudioTrack(streamType, sampleRate, sample->format(), - channelMask, sample->getIMemory(), AUDIO_OUTPUT_FLAG_FAST, callback, userData); -#else - uint32_t bufferFrames = (totalFrames + (kDefaultBufferCount - 1)) / kDefaultBufferCount; - newTrack = new AudioTrack(streamType, sampleRate, sample->format(), - channelMask, frameCount, AUDIO_OUTPUT_FLAG_FAST, callback, userData, - bufferFrames); -#endif - oldTrack = mAudioTrack; - status = newTrack->initCheck(); - if (status != NO_ERROR) { - ALOGE("Error creating AudioTrack"); - goto exit; + if (!mAudioTrack.get() || mPrevSampleID != sample->sampleID()) { + // mToggle toggles each time a track is started on a given channel. + // The toggle is concatenated with the SoundChannel address and passed to AudioTrack + // as callback user data. This enables the detection of callbacks received from the old + // audio track while the new one is being started and avoids processing them with + // wrong audio audio buffer size (mAudioBufferSize) + unsigned long toggle = mToggle ^ 1; + void *userData = (void *)((unsigned long)this | toggle); + audio_channel_mask_t channelMask = audio_channel_out_mask_from_count(numChannels); + + // do not create a new audio track if current track is compatible with sample parameters + #ifdef USE_SHARED_MEM_BUFFER + newTrack = new AudioTrack(streamType, sampleRate, sample->format(), + channelMask, sample->getIMemory(), AUDIO_OUTPUT_FLAG_FAST, callback, userData); + #else + uint32_t bufferFrames = (totalFrames + (kDefaultBufferCount - 1)) / kDefaultBufferCount; + newTrack = new AudioTrack(streamType, sampleRate, sample->format(), + channelMask, frameCount, AUDIO_OUTPUT_FLAG_FAST, callback, userData, + bufferFrames); + #endif + oldTrack = mAudioTrack; + status = newTrack->initCheck(); + if (status != NO_ERROR) { + ALOGE("Error creating AudioTrack"); + goto exit; + } + // From now on, AudioTrack callbacks received with previous toggle value will be ignored. + mToggle = toggle; + mAudioTrack = newTrack; + ALOGV("using new track %p for sample %d", newTrack.get(), sample->sampleID()); + } else { + newTrack = mAudioTrack; + newTrack->setSampleRate(sampleRate); + ALOGV("reusing track %p for sample %d", mAudioTrack.get(), sample->sampleID()); } - ALOGV("setVolume %p", newTrack.get()); newTrack->setVolume(leftVolume, rightVolume); newTrack->setLoop(0, frameCount, loop); - - // From now on, AudioTrack callbacks received with previous toggle value will be ignored. - mToggle = toggle; - mAudioTrack = newTrack; mPos = 0; mSample = sample; mChannelID = nextChannelID; @@ -877,6 +895,7 @@ bool SoundChannel::doStop_l() setVolume_l(0, 0); ALOGV("stop"); mAudioTrack->stop(); + mPrevSampleID = mSample->sampleID(); mSample.clear(); mState = IDLE; mPriority = IDLE_PRIORITY; diff --git a/media/jni/soundpool/SoundPool.h b/media/jni/soundpool/SoundPool.h index d19cd9103222..4aacf5335531 100644 --- a/media/jni/soundpool/SoundPool.h +++ b/media/jni/soundpool/SoundPool.h @@ -136,6 +136,7 @@ public: void nextEvent(); int nextChannelID() { return mNextEvent.channelID(); } void dump(); + int getPrevSampleID(void) { return mPrevSampleID; } private: static void callback(int event, void* user, void *info); @@ -152,6 +153,7 @@ private: int mAudioBufferSize; unsigned long mToggle; bool mAutoPaused; + int mPrevSampleID; }; // application object for managing a pool of sounds @@ -193,7 +195,7 @@ private: sp<Sample> findSample(int sampleID) { return mSamples.valueFor(sampleID); } SoundChannel* findChannel (int channelID); SoundChannel* findNextChannel (int channelID); - SoundChannel* allocateChannel_l(int priority); + SoundChannel* allocateChannel_l(int priority, int sampleID); void moveToFront_l(SoundChannel* channel); void notify(SoundPoolEvent event); void dump(); diff --git a/packages/CaptivePortalLogin/res/values-af/strings.xml b/packages/CaptivePortalLogin/res/values-af/strings.xml index 24fc2aea6d71..f36746aa2599 100644 --- a/packages/CaptivePortalLogin/res/values-af/strings.xml +++ b/packages/CaptivePortalLogin/res/values-af/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortal-aanmelding"</string> <string name="action_use_network" msgid="6076184727448466030">"Gebruik hierdie netwerk nes dit is"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Moenie hierdie netwerk gebruik nie"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Meld by netwerk aan"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-am/strings.xml b/packages/CaptivePortalLogin/res/values-am/strings.xml index 260f139ad6fa..d49e146e6afe 100644 --- a/packages/CaptivePortalLogin/res/values-am/strings.xml +++ b/packages/CaptivePortalLogin/res/values-am/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"ይህን አውታረ መረብ እንዳለ ተጠቀምበት"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"ይህን አውታረ መረብ አትጠቀምበት"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"ወደ አውታረ መረብ በመለያ ይግቡ"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-ar/strings.xml b/packages/CaptivePortalLogin/res/values-ar/strings.xml index b42bc937e913..a5150fdb58ff 100644 --- a/packages/CaptivePortalLogin/res/values-ar/strings.xml +++ b/packages/CaptivePortalLogin/res/values-ar/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"استخدام هذه الشبكة كما هي"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"عدم استخدام هذه الشبكة"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"تسجيل الدخول إلى الشبكة"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-da/strings.xml b/packages/CaptivePortalLogin/res/values-da/strings.xml index 3d4db169433a..0b24ea8190aa 100644 --- a/packages/CaptivePortalLogin/res/values-da/strings.xml +++ b/packages/CaptivePortalLogin/res/values-da/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"Login til captive portal"</string> <string name="action_use_network" msgid="6076184727448466030">"Brug dette netværk, som det er"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Brug ikke dette netværk"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Log ind på netværk"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-el/strings.xml b/packages/CaptivePortalLogin/res/values-el/strings.xml index e9ffac74080b..2a67af5811a2 100644 --- a/packages/CaptivePortalLogin/res/values-el/strings.xml +++ b/packages/CaptivePortalLogin/res/values-el/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Χρήση αυτού του δικτύου ως έχει"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Να μη χρησιμοποιείται αυτό το δίκτυο"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Σύνδεση στο δίκτυο"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-en-rGB/strings.xml b/packages/CaptivePortalLogin/res/values-en-rGB/strings.xml index 7346de4447c6..c1c03f80d328 100644 --- a/packages/CaptivePortalLogin/res/values-en-rGB/strings.xml +++ b/packages/CaptivePortalLogin/res/values-en-rGB/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Use this network as is"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Do not use this network"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Sign in to network"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-en-rIN/strings.xml b/packages/CaptivePortalLogin/res/values-en-rIN/strings.xml index 7346de4447c6..c1c03f80d328 100644 --- a/packages/CaptivePortalLogin/res/values-en-rIN/strings.xml +++ b/packages/CaptivePortalLogin/res/values-en-rIN/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Use this network as is"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Do not use this network"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Sign in to network"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-es-rUS/strings.xml b/packages/CaptivePortalLogin/res/values-es-rUS/strings.xml index 5e4cc6573ae7..6c116f9e8a8f 100644 --- a/packages/CaptivePortalLogin/res/values-es-rUS/strings.xml +++ b/packages/CaptivePortalLogin/res/values-es-rUS/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Usar esta red como está"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"No usar esta red"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Acceder a la red"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-et-rEE/strings.xml b/packages/CaptivePortalLogin/res/values-et-rEE/strings.xml index ed9b2bbfef41..306e3320ccf2 100644 --- a/packages/CaptivePortalLogin/res/values-et-rEE/strings.xml +++ b/packages/CaptivePortalLogin/res/values-et-rEE/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Kasuta seda võrku olemasoleval kujul"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Ära kasuta seda võrku"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Logi võrku sisse"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-fa/strings.xml b/packages/CaptivePortalLogin/res/values-fa/strings.xml index cef99748d65a..b57e6920dd0a 100644 --- a/packages/CaptivePortalLogin/res/values-fa/strings.xml +++ b/packages/CaptivePortalLogin/res/values-fa/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"از این شبکه همانطور که هست استفاده شود"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"از این شبکه استفاده نشود"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"ورود به سیستم شبکه"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-fi/strings.xml b/packages/CaptivePortalLogin/res/values-fi/strings.xml index e2df34017911..1d48d605136e 100644 --- a/packages/CaptivePortalLogin/res/values-fi/strings.xml +++ b/packages/CaptivePortalLogin/res/values-fi/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Käytä tätä verkkoa sellaisenaan"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Älä käytä tätä verkkoa"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Kirjaudu verkkoon"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-fr-rCA/strings.xml b/packages/CaptivePortalLogin/res/values-fr-rCA/strings.xml index 4b012ce54b6e..535a9cf4f911 100644 --- a/packages/CaptivePortalLogin/res/values-fr-rCA/strings.xml +++ b/packages/CaptivePortalLogin/res/values-fr-rCA/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Utiliser ce réseau tel quel"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Ne pas utiliser ce réseau"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Connectez-vous au réseau"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-in/strings.xml b/packages/CaptivePortalLogin/res/values-in/strings.xml index 41a4f535d7a8..196d32724384 100644 --- a/packages/CaptivePortalLogin/res/values-in/strings.xml +++ b/packages/CaptivePortalLogin/res/values-in/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Gunakan jaringan ini sebagaimana adanya"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Jangan gunakan jaringan ini"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Masuk ke jaringan"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-is-rIS/strings.xml b/packages/CaptivePortalLogin/res/values-is-rIS/strings.xml index 83ad5ec72024..27dc12b13250 100644 --- a/packages/CaptivePortalLogin/res/values-is-rIS/strings.xml +++ b/packages/CaptivePortalLogin/res/values-is-rIS/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Nota þetta net óbreytt"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Ekki nota þetta net"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Skrá inn á net"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-it/strings.xml b/packages/CaptivePortalLogin/res/values-it/strings.xml index 02b658679010..fc4fcd91df4d 100644 --- a/packages/CaptivePortalLogin/res/values-it/strings.xml +++ b/packages/CaptivePortalLogin/res/values-it/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Utilizza questa rete così com\'è"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Non utilizzare questa rete"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Accedi alla rete"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-iw/strings.xml b/packages/CaptivePortalLogin/res/values-iw/strings.xml index 71e11438fa01..c88dd0d1f87b 100644 --- a/packages/CaptivePortalLogin/res/values-iw/strings.xml +++ b/packages/CaptivePortalLogin/res/values-iw/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"השתמש ברשת זו כפי שהיא"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"אל תשתמש ברשת זו"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"היכנס לרשת"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-lo-rLA/strings.xml b/packages/CaptivePortalLogin/res/values-lo-rLA/strings.xml index 587267cf32a8..0cd0f4ec00e7 100644 --- a/packages/CaptivePortalLogin/res/values-lo-rLA/strings.xml +++ b/packages/CaptivePortalLogin/res/values-lo-rLA/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"ໃຊ້ເຄືອຂ່າຍນີ້ຕາມທີ່ມັນເປັນ"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"ບໍ່ໃຊ້ເຄືອຂ່າຍນີ້"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"ລົງຊື່ເຂົ້າເຄືອຂ່າຍ"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-ms-rMY/strings.xml b/packages/CaptivePortalLogin/res/values-ms-rMY/strings.xml index dfed2db76db9..91b20701da7e 100644 --- a/packages/CaptivePortalLogin/res/values-ms-rMY/strings.xml +++ b/packages/CaptivePortalLogin/res/values-ms-rMY/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Gunakan rangkaian ini"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Jangan gunakan rangkaian ini"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Log masuk ke rangkaian"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-my-rMM/strings.xml b/packages/CaptivePortalLogin/res/values-my-rMM/strings.xml index c1db1f8cade3..b82ced3bbeb3 100644 --- a/packages/CaptivePortalLogin/res/values-my-rMM/strings.xml +++ b/packages/CaptivePortalLogin/res/values-my-rMM/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"ဒီကွန်ရက်ကို လက်ရှိအတိုင်း သုံးရန်"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"ဒီကွန်ရက်ကို မသုံးပါနှင့်"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"ကွန်ယက်သို့ လက်မှတ်ထိုးဝင်ရန်"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-ne-rNP/strings.xml b/packages/CaptivePortalLogin/res/values-ne-rNP/strings.xml index 1a8969a8a8da..ccae8930fae7 100644 --- a/packages/CaptivePortalLogin/res/values-ne-rNP/strings.xml +++ b/packages/CaptivePortalLogin/res/values-ne-rNP/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"यो सञ्जाल जस्तो छ प्रयोग गर्नुहोस्"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"यो सञ्जाल प्रयोग नगर्नुहोस्"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"सञ्जालमा साइन इन गर्नुहोस्"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-pt-rPT/strings.xml b/packages/CaptivePortalLogin/res/values-pt-rPT/strings.xml index d06ff6c34a13..241d977ba971 100644 --- a/packages/CaptivePortalLogin/res/values-pt-rPT/strings.xml +++ b/packages/CaptivePortalLogin/res/values-pt-rPT/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Utilizar esta rede como está"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Não utilizar esta rede"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Início de sessão na rede"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-pt/strings.xml b/packages/CaptivePortalLogin/res/values-pt/strings.xml index 524a6eeab6e0..b1e6ac92b517 100644 --- a/packages/CaptivePortalLogin/res/values-pt/strings.xml +++ b/packages/CaptivePortalLogin/res/values-pt/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Usar esta rede como está"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Não usar esta rede"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Fazer login na rede"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-ro/strings.xml b/packages/CaptivePortalLogin/res/values-ro/strings.xml index ca950285d2ef..36a1516d0f01 100644 --- a/packages/CaptivePortalLogin/res/values-ro/strings.xml +++ b/packages/CaptivePortalLogin/res/values-ro/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Utilizați această rețea în starea actuală"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Nu utilizați această rețea"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Conectați-vă la rețea"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-sk/strings.xml b/packages/CaptivePortalLogin/res/values-sk/strings.xml index 1b0efd6b4bca..560bdc484a66 100644 --- a/packages/CaptivePortalLogin/res/values-sk/strings.xml +++ b/packages/CaptivePortalLogin/res/values-sk/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Použiť túto sieť tak, ako je"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Túto sieť nepoužívať"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Prihlásiť sa do siete"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-sv/strings.xml b/packages/CaptivePortalLogin/res/values-sv/strings.xml index 93acce16a534..1de663004f56 100644 --- a/packages/CaptivePortalLogin/res/values-sv/strings.xml +++ b/packages/CaptivePortalLogin/res/values-sv/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Använd det här nätverket som det är"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Använd inte det här nätverket"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Logga in på nätverket"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-sw/strings.xml b/packages/CaptivePortalLogin/res/values-sw/strings.xml index 59ab43ed5dc2..d4d22a6f6d44 100644 --- a/packages/CaptivePortalLogin/res/values-sw/strings.xml +++ b/packages/CaptivePortalLogin/res/values-sw/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Tumia mtandao huu jinsi ulivyo"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Usitumie mtandao huu"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Ingia katika mtandao"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-th/strings.xml b/packages/CaptivePortalLogin/res/values-th/strings.xml index ab276bbdf56e..1bfe45d52f87 100644 --- a/packages/CaptivePortalLogin/res/values-th/strings.xml +++ b/packages/CaptivePortalLogin/res/values-th/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"ใช้เครือข่ายนี้ตามที่เป็นอยู่"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"ไม่ใช้เครือข่ายนี้"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"ลงชื่อเข้าใช้เครือข่าย"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-uk/strings.xml b/packages/CaptivePortalLogin/res/values-uk/strings.xml index ced9a9104ad3..a39607cfdace 100644 --- a/packages/CaptivePortalLogin/res/values-uk/strings.xml +++ b/packages/CaptivePortalLogin/res/values-uk/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Використовувати цю мережу як є"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Не використовувати цю мережу"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Увійти в мережу"</string> </resources> diff --git a/packages/CaptivePortalLogin/res/values-zu/strings.xml b/packages/CaptivePortalLogin/res/values-zu/strings.xml index 6791b00d6411..aef043ced266 100644 --- a/packages/CaptivePortalLogin/res/values-zu/strings.xml +++ b/packages/CaptivePortalLogin/res/values-zu/strings.xml @@ -4,6 +4,5 @@ <string name="app_name" msgid="5934709770924185752">"I-CaptivePortalLogin"</string> <string name="action_use_network" msgid="6076184727448466030">"Sebenzisa le nethiwekhi njengoba injalo"</string> <string name="action_do_not_use_network" msgid="4577366536956516683">"Ungasebenzisi le nethiwekhi"</string> - <!-- no translation found for action_bar_label (917235635415966620) --> - <skip /> + <string name="action_bar_label" msgid="917235635415966620">"Ngena ngemvume kunethiwekhi"</string> </resources> diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java index 84e66ffa2275..3bf6828e37b1 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java @@ -17,7 +17,6 @@ package com.android.providers.settings; import android.os.Handler; -import android.os.HandlerThread; import android.os.Message; import android.os.SystemClock; import android.provider.Settings; @@ -27,6 +26,7 @@ import android.util.AtomicFile; import android.util.Slog; import android.util.Xml; import com.android.internal.annotations.GuardedBy; +import com.android.internal.os.BackgroundThread; import libcore.io.IoUtils; import libcore.util.Objects; import org.xmlpull.v1.XmlPullParser; @@ -153,7 +153,7 @@ final class SettingsState { final int settingCount = mSettings.size(); for (int i = settingCount - 1; i >= 0; i--) { String name = mSettings.keyAt(i); - // Settings defined by us are never dropped. + // Settings defined by use are never dropped. if (Settings.System.PUBLIC_SETTINGS.contains(name) || Settings.System.PRIVATE_SETTINGS.contains(name)) { continue; @@ -494,7 +494,7 @@ final class SettingsState { public static final int MSG_PERSIST_SETTINGS = 1; public MyHandler() { - super(PersistThread.getInstance().getLooper()); + super(BackgroundThread.getHandler().getLooper()); } @Override @@ -574,24 +574,4 @@ final class SettingsState { return true; } } - - private static final class PersistThread extends HandlerThread { - private static final Object sLock = new Object(); - - private static PersistThread sInstance; - - private PersistThread() { - super("settings.persist"); - } - - public static PersistThread getInstance() { - synchronized (sLock) { - if (sInstance == null) { - sInstance = new PersistThread(); - sInstance.start(); - } - return sInstance; - } - } - } } diff --git a/packages/SystemUI/res/layout/recents.xml b/packages/SystemUI/res/layout/recents.xml index 26523f99deda..bdda527290de 100644 --- a/packages/SystemUI/res/layout/recents.xml +++ b/packages/SystemUI/res/layout/recents.xml @@ -32,12 +32,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true"> - <!-- MultiStack Debug View --> - <ViewStub android:id="@+id/multistack_debug_view_stub" - android:layout="@layout/recents_multistack_debug" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="left|bottom" /> </com.android.systemui.recents.views.RecentsView> <!-- Empty View --> diff --git a/packages/SystemUI/res/layout/recents_multistack_debug.xml b/packages/SystemUI/res/layout/recents_multistack_debug.xml deleted file mode 100644 index 6524a546aa2b..000000000000 --- a/packages/SystemUI/res/layout/recents_multistack_debug.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014 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:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="left|bottom" - android:orientation="vertical"> - <Button - android:id="@+id/add_stack" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="center" - android:padding="8dp" - android:textSize="20sp" - android:textColor="#ffffffff" - android:text="@string/recents_multistack_add_stack" - android:fontFamily="sans-serif" - android:background="#000000" - android:alpha="0.5" /> - <Button - android:id="@+id/resize_stack" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="center" - android:padding="8dp" - android:textSize="20sp" - android:textColor="#ffffffff" - android:text="@string/recents_multistack_resize_stack" - android:fontFamily="sans-serif" - android:background="#000000" - android:alpha="0.5" /> -</LinearLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 3b0a05990ced..34e4bebf015f 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk nie"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi af"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Geen gestoorde netwerke beskikbaar nie"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Uitsaaiskerm"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Saai tans uit"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Onbenoemde toestel"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Gereed om uit te saai"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"soek"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Kon nie <xliff:g id="APP">%s</xliff:g> begin nie."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Maak alle programme toe"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Verdeel horisontaal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Verdeel vertikaal"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Verdeel gepasmaak"</string> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 2ceb2e4515ea..827a8a32379d 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ምንም አውታረ መረብ የለም"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ጠፍቷል"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ምንም የተቀመጡ አውታረ መረቦች አይገኙም"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ማያ ገጽ ውሰድ"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"በመውሰድ ላይ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ያልተሰየመ መሳሪያ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ለመውሰድ ዝግጁ"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ፈልግ"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>ን መጀመር አልተቻለም።"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"ሁሉንም ማመልከቻዎች አሰናብት"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"አግድም ክፈል"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ቁልቁል ክፈል"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"በብጁ ክፈል"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ከመክፈትዎ በፊት ይመልከቷቸው"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"አይ፣ አመሰግናለሁ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"አዋቅር"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"ሁሉንም ይመልከቱ"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"ሁሉንም ደብቅ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>። <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ማያ ገጽ ተሰክቷል"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ይህ እስከሚነቅሉት ድረስ ድረስ በዕይታ ውስጥ እንዲቆይ ያደርገዋል። ለመንቀል በተመሳሳይ ጊዜ ተመለስን እና አጠቃላይ ዕይታን አንድ ላይ ነክተው ይያዙ።"</string> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 8e7580bee9d0..104067aca1f2 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -261,7 +261,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"لا تتوفر شبكة"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"إيقاف Wi-Fi"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"لا تتوفر أية شبكة محفوظة"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"إرسال الشاشة"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"جارٍ الإرسال"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"جهاز لا يحمل اسمًا"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"جاهز للإرسال"</string> @@ -291,9 +292,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"بحث"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"تعذر بدء <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"تجاهل كل التطبيقات"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"تقسيم أفقي"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"تقسيم رأسي"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"تقسيم مخصص"</string> @@ -371,10 +369,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"الاطلاع عليها قبل إلغاء القفل"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"لا، شكرًا"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"إعداد"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"عرض الكل"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"إخفاء الكل"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"تم تثبيت الشاشة"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"يساعد هذا على استمرار العرض حتى يتم إلغاء التثبيت. ويمكنك لمس \"رجوع\" و\"عرض عام\" مع الاستمرار في وقت واحد لإلغاء التثبيت."</string> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 2a97eaa56071..a4251beef753 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма мрежа"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi е изключен"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Няма налични запазени мрежи"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Екран за предаване"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Предава се"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Устройство без име"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Готово за предаване"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"търсене"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> не можа да стартира."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Отхвърляне на всички приложения"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Хоризонтално разделяне"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Вертикално разделяне"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Персонализирано разделяне"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Вижте известията, преди да отключите"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Няма нужда"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Настройване"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Преглед на всичко"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Скриване на всичко"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екранът е фиксиран"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Така екранът ще се показва, докато не го освободите. За да направите това, докоснете и задръжте бутона за връщане назад и този за общ преглед едновременно."</string> diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index bc305d514466..b085767ffb13 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"কোনো নেটওয়ার্ক নেই"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi বন্ধ"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"কোন সংরক্ষিত নেটওয়ার্ক উপলব্ধ নেই"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"স্ক্রীন কাস্ট করুন"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"কাস্ট করা হচ্ছে"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"নামবিহীন ডিভাইস"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"কাস্ট করার জন্য প্রস্তুত"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"অনুসন্ধান"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> শুরু করা যায়নি৷"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"সমস্ত অ্যাপ্লিকেশন খারিজ করুন"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"অনুভূমিক স্প্লিট"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"উল্লম্ব স্প্লিট"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"কাস্টম স্প্লিট করুন"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"আপনি আনলক করার আগে ওগুলো দেখুন"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"না থাক"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"সেট আপ"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"সবগুলি দেখুন"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"সবগুলি লুকান"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"স্ক্রীন পিন করা হয়েছে"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"এটি আপনার আনপিন না করা পর্যন্ত এটিকে দর্শনে রাখে৷ আনপিন করতে একই সময়ে ফিরুন এবং ওভারভিউ এ স্পর্শ করে ধরে রাখুন৷"</string> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 2854d0d10235..b260e444f8c2 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hi ha cap xarxa"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desconnectada"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hi ha cap xarxa desada disponible."</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Envia pantalla"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"En emissió"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositiu sense nom"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"A punt per a l\'emissió"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"cerca"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"No s\'ha pogut iniciar <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Descarta totes les aplicacions"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisió horitzontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisió vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisió personalitzada"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Mostra-les abans de desbloquejar"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"No"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configura"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Mostra-les totes"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Amaga-les totes"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"La pantalla està fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Continuarà a la visualització fins que n\'anul·lis la fixació. Per fer-ho, toca i mantén premuts els botons Enrere i Visió general a la vegada."</string> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 57ff15f6bc07..f1cbb7e1c824 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -261,7 +261,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žádná síť"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi vypnuta"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nejsou dostupné žádné uložené sítě"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Odesílání obrazovky"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Odesílání"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nepojmenované zařízení"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Připraveno k vysílání"</string> @@ -291,9 +292,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"vyhledat"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikaci <xliff:g id="APP">%s</xliff:g> nelze spustit."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Odstranit všechny aplikace"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Vodorovné rozdělení"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikální rozdělení"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Vlastní rozdělení"</string> @@ -371,10 +369,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Můžete si je přečíst před odemčením obrazovky."</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, děkuji"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Nastavit"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Zobrazit vše"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skrýt vše"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Obrazovka je připnuta"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Obsah bude připnut v zobrazení, dokud jej neuvolníte. Chcete-li jej uvolnit, stiskněte a podržte současně tlačítka Zpět a Přehled."</string> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index b1d002129174..92efc8934934 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Intet netværk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi slået fra"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Der er ingen tilgængelige gemte netværk"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Cast skærm"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Caster"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Enhed uden navn"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Klar til at caste"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"søg"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> kunne ikke startes."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Luk alle applikationer"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Opdel vandret"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Opdel lodret"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Opdel brugerdefineret"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Se dem, før du låser op"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nej tak"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Konfigurer"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Se alle"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skjul alle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skærmen er fastgjort"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Dette fastholder den i visningen, indtil du frigør den. Tryk på Tilbage og Oversigt på samme tid, og hold dem nede for at frigøre denne skærm."</string> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 251b0de6b8e4..1119f1fe0bae 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netz"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WLAN aus"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Keine gespeicherten Netzwerke verfügbar"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Bildschirm übertragen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Wird übertragen"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unbenanntes Gerät"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Startklar"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"Suche"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> konnte nicht gestartet werden."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Alle Apps entfernen"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Geteilte Schaltfläche – horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Geteilte Schaltfläche – vertikal"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Geteilte Schaltfläche – benutzerdefiniert"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Vor dem Entsperren anzeigen"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nein danke"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Einrichten"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Alle anzeigen"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Alle ausblenden"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Bildschirm ist fixiert"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Hiermit wird sie angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Zurück\" und \"Übersicht\" gleichzeitig, um die Fixierung aufzuheben."</string> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index 6586a3fe42ca..bc1b7a29f482 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Κανένα δίκτυο"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ανενεργό"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Δεν υπάρχουν διαθέσιμα αποθηκευμένα δίκτυα"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Οθόνη μετάδοσης"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Μετάδοση"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Ανώνυμη συσκευή"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Έτοιμο για μετάδοση"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"αναζήτηση"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Δεν ήταν δυνατή η εκκίνηση της εφαρμογής <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Παράβλεψη όλων των εφαρμογών"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Οριζόντιος διαχωρισμός"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Κάθετος διαχωρισμός"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Προσαρμοσμένος διαχωρισμός"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Εμφάνιση πριν το ξεκλείδωμα"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Όχι"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Ρύθμιση"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Εμφάνιση όλων"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Aπόκρυψη όλων"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Η οθόνη καρφιτσώθηκε"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Με αυτόν τον τρόπο παραμένει σε προβολή έως ότου την ξεκαρφιτσώσετε. Αγγίξτε παρατεταμένα \"Επιστροφή\" και \"Επισκόπηση\" ταυτόχρονα για ξεκαρφίτσωμα."</string> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 94bb70e4abba..9ac2a641347a 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No saved networks available"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Cast screen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unnamed device"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Ready to cast"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"search"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Could not start <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Dismiss all applications"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Customised"</string> diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index 94bb70e4abba..9ac2a641347a 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No saved networks available"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Cast screen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unnamed device"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Ready to cast"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"search"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Could not start <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Dismiss all applications"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Customised"</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 1babfba0cf83..a605a03a2ea5 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sin red"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desactivada"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hay redes guardadas disponibles"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Transmitir pantalla"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmitiendo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sin nombre"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Listo para transmitir"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"No se pudo iniciar <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Descartar todas las aplicaciones"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"División horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"División vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"División personalizada"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"No"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todas"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todas"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantalla fija"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Esta función mantiene fija la vista de la pantalla hasta que la desactivas. Mantén presionados los botones Atrás y Recientes al mismo tiempo para anular la fijación."</string> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 3c6cf4c2bf5e..dcffc65be5e2 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hay red."</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desactivado"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hay redes guardadas disponibles"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Enviar pantalla"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Enviando"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sin nombre"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Listo para enviar"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"No se ha podido iniciar <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ignorar todas las aplicaciones"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"División horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"División vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"División personalizada"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, gracias"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todas"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todas"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantalla fijada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"La pantalla se mantendrá visible hasta que dejes de fijarla. Para ello, mantén pulsados los botones de retroceso e información general."</string> diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 90a6edeb08bd..1a74a8f96f5e 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Võrku pole"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WiFi-ühendus on väljas"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ühtegi salvestatud võrku pole saadaval"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Ülekandeekraan"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Osatäitjad"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nimeta seade"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Valmis ülekandmiseks"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"otsing"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Rakendust <xliff:g id="APP">%s</xliff:g> ei saanud käivitada."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Loobu kõikidest rakendustest"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horisontaalne poolitamine"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikaalne poolitamine"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Kohandatud poolitamine"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Näete neid enne avamist"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tänan, ei"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Seadistus"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Kuva kõik"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Peida kõik"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekraan on kinnitatud"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"See hoiab selle kuval, kuni selle vabastate. Vabastamiseks puudutage ning hoidke korraga all nuppe Tagasi ja Ülevaade."</string> diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index 74aae796d0fc..c7019d9784b8 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ez dago sarerik"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi konexioa desaktibatuta"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ez dago gordetako sarerik erabilgarri"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Igorri pantailako edukia"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Igortzen"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Izenik gabeko gailua"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Igortzeko prest"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"bilatu"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Ezin izan da hasi <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Baztertu aplikazio guztiak"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Banaketa horizontala"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Banaketa bertikala"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Banaketa pertsonalizatua"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ikusi desblokeatu baino lehen"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ez, eskerrik asko"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Konfiguratu"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ikusi guztiak"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ezkutatu guztiak"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantaila ainguratuta dago"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Horrela, ikusgai mantenduko da aingura kendu arte. Aingura kentzeko, eduki ukituta aldi berean \"Atzera\" eta \"Ikuspegi orokorra\" botoiak."</string> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 33ed3b4661d9..398e0b0806e4 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"شبکهای موجود نیست"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi خاموش است"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"شبکه ذخیره شدهای در دسترس نیست"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"فرستادن صفحهنمایش"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"در حال فرستادن"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"دستگاه بدون نام"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"آماده برای فرستادن"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"جستجو"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> شروع نشد."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"رد کردن همه برنامهها"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"تقسیم افقی"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"تقسیم عمودی"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"سفارشی کردن تقسیم"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"قبل از باز کردن قفل آنها را مشاهده کنید"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"خیر، سپاسگزارم"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"راهاندازی"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"مشاهده همه"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"پنهان کردن همه"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"صفحه نمایش پین شد"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"تا زمانی که پین را بردارید، در نما نگهداشته میشود. برای برداشتن پین، برگشت و نمای کلی را به صورت همزمان لمس کنید و نگهدارید."</string> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index e472cff7216c..61e591acfc83 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ei verkkoa"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi-yhteys pois käytöstä"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Tallennettuja verkkoja ei ole käytettävissä"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Lähetysnäyttö"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Lähetetään"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nimetön laite"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Valmis lähetystä varten"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"haku"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Sovelluksen <xliff:g id="APP">%s</xliff:g> käynnistäminen epäonnistui."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Hylkää kaikki sovellukset"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Vaakasuuntainen jako"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Pystysuuntainen jako"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Muokattu jako"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Näytä ennen lukituksen avaamista"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ei kiitos"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Määritä asetukset"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Näytä kaikki"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Piilota kaikki"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Näyttö on kiinnitetty"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Tämä pitää sen näkyvissä, kunnes poistat kiinnityksen. Kosketa Edellinen- ja Viimeisimmät-kohtaa samanaikaisesti pitkään kiinnityksen poistamiseksi."</string> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index d07bdc3331db..3427cfaada5c 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi désactivé"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Aucun des réseaux enregistrés n\'est disponible"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Diffuser l\'écran"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Diffusion"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Appareil sans nom"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Prêt à diffuser"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Impossible de lancer <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Supprimer toutes les applications"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Séparation horizontale"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Séparation verticale"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Séparation personnalisée"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Afficher les notifications avant de déverrouiller l\'appareil"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non, merci"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurer"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Tout afficher"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tout masquer"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"L\'écran est épinglé"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Cet écran est épinglé jusqu\'à ce que vous annuliez l\'opération. Pour annuler l\'épinglage, maintenez un doigt simultanément sur « Retour » et « Aperçu »."</string> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 7bc3249afcce..393a0f80623b 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi désactivé"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Aucun réseau enregistré disponible."</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Caster l\'écran"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Diffusion"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Appareil sans nom"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Prêt à caster"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Impossible de lancer <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Supprimer toutes les applications"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"–"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Séparation horizontale"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Séparation verticale"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Séparation personnalisée"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Afficher les notifications avant de déverrouiller l\'appareil"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non, merci"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurer"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Tout afficher"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tout masquer"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Écran épinglé"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Cet écran est épinglé jusqu\'à annulation de l\'opération. Pour annuler l\'épinglage, appuyez simultanément sur \"Retour\" et \"Aperçu\" de manière prolongée."</string> diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index d26d8f2623fa..c47fc4e4a445 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Non hai rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wifi desactivada"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Non hai redes gardadas dispoñibles"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Enviar pantalla"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Emitindo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sen nome"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Listo para emitir"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Non foi posible iniciar <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Rexeitar todas as aplicacións"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Dividir en horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dividir en vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Dividir de xeito personalizado"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Consúltaas antes de desbloquear"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non grazas"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todo"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A pantalla está fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"A pantalla manterase visible ata que anules a fixación. Para facelo, mantén premido Atrás e Visión xeral ao mesmo tempo."</string> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 0fd7e6e932ae..516ae5ecc999 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"कोई नेटवर्क नहीं"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाई-फ़ाई बंद"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"कोई भी सहेजा गया नेटवर्क उपलब्ध नहीं"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"स्क्रीन कास्ट करें"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"कास्टिंग"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"अनाम डिवाइस"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"कास्ट करने के लिए तैयार"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"खोज"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> प्रारंभ नहीं किया जा सका."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"सभी ऐप्लिकेशन ख़ारिज करें"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"क्षैतिज रूप से विभाजित करें"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"लम्बवत रूप से विभाजित करें"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"कस्टम रूप से विभाजित करें"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"आपके द्वारा उन्हें अनलॉक किए जाने से पहले देखें"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"नहीं धन्यवाद"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"सेट करें"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"सभी देखें"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"सभी छिपाएं"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"स्क्रीन पिन कर दी गई है"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"इससे वह तब तक दृश्य में रहता है जब तक कि आप उसे अनपिन नहीं कर देते. अनपिन करने के लिए वापस जाएं और अवलोकन करें को एक ही समय पर स्पर्श करके रखें."</string> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index b8c3e1c7d0ba..f63b1cdb1c64 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -258,7 +258,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nema mreže"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi isključen"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Spremljene mreže nisu dostupne"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Emitiranje zaslona"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Emitiranje"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Uređaj bez naziva"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Spreman za emitiranje"</string> @@ -288,9 +289,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"pretraži"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikacija <xliff:g id="APP">%s</xliff:g> nije pokrenuta."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Odbaci sve aplikacije"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podijeli vodoravno"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podijeli okomito"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Podijeli prilagođeno"</string> @@ -368,10 +366,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Pogledajte ih prije otključavanja"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, hvala"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Postavi"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaži sve"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sakrij sve"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Zaslon je prikvačen"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Zaslon će tako ostati u prvom planu dok ga ne otkvačite. Istovremeno dodirnite i držite Natrag i Pregled da biste ga otkvačili."</string> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index e956e061e02c..621bdb89a3e9 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nincs hálózat"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi kikapcsolva"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nem áll rendelkezésre mentett hálózat"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Képernyőtartalom átküldése"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Átküldés"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Név nélküli eszköz"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Küldésre kész"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"keresés"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Nem lehet elindítani a következőt: <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Összes alkalmazás elvetése"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"–"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Osztott vízszintes"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Osztott függőleges"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Osztott egyéni"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Már a képernyőzár feloldása előtt megtekintheti őket"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nem, köszönöm"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Beállítás"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Az összes megjelenítése"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Az összes elrejtése"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A képernyő rögzítve van"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Megjelenítve tartja addig, amíg Ön fel nem oldja fel a rögzítést. A rögzítés feloldásához tartsa egyszerre lenyomva a Vissza és az Áttekintés lehetőséget."</string> diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 50d0ca18b615..4529415ba35b 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ցանց չկա"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi-ը անջատված է"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Հասանելի պահված ցանցեր չկան"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Հեռակա էկրան"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Հեռարձակում"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Անանուն սարք"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Պատրաստ է հեռարձակման"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"որոնել"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Հնարավոր չէ գործարկել <xliff:g id="APP">%s</xliff:g>-ը:"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Հեռացնել բոլոր հավելվածները"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Հորիզոնական տրոհում"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Ուղղահայաց տրոհում"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Հատուկ տրոհում"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Տեսեք դրանք մինչև ապակողպելը"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ոչ, շնորհակալություն"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Կարգավորել"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Տեսնել բոլորը"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Թաքցնել բոլորը"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Էկրանն ամրացված է"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Էկրանը կմնա տեսադաշտում, մինչև այն ապամրացնեք: Ապամրացնելու համար միաժամանակ հպեք և պահեք Համատեսքի և Հետ կոճակները:"</string> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index eb5eb018e18f..66a7df0c9e0b 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -31,7 +31,7 @@ </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Tidak ada pemberitahuan"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Berkelanjutan"</string> - <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Pemberitahuan"</string> + <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifikasi"</string> <string name="battery_low_title" msgid="6456385927409742437">"Baterai lemah"</string> <string name="battery_low_percent_format" msgid="2900940511201380775">"Tersisa <xliff:g id="PERCENTAGE">%s</xliff:g>"</string> <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"Tersisa <xliff:g id="PERCENTAGE">%s</xliff:g>. Penghemat baterai aktif."</string> @@ -48,7 +48,7 @@ <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotasi layar otomatis"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"BUNGKAM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> - <string name="status_bar_settings_notifications" msgid="397146176280905137">"Pemberitahuan"</string> + <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifikasi"</string> <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth tertambat"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Menyiapkan metode masukan"</string> <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Keyboard fisik"</string> @@ -147,7 +147,7 @@ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode pesawat."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterai <xliff:g id="NUMBER">%d</xliff:g> persen."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Setelan sistem."</string> - <string name="accessibility_notifications_button" msgid="4498000369779421892">"Pemberitahuan."</string> + <string name="accessibility_notifications_button" msgid="4498000369779421892">"Notifikasi."</string> <string name="accessibility_remove_notification" msgid="3603099514902182350">"Menghapus pemberitahuan."</string> <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS diaktifkan."</string> <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Memperoleh GPS."</string> @@ -160,7 +160,7 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> disingkirkan."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Semua aplikasi terbaru telah ditutup."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Memulai <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pemberitahuan disingkirkan."</string> + <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notifikasi disingkirkan."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bayangan pemberitahuan."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Setelan cepat."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Layar kunci."</string> @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tidak Ada Jaringan"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Mati"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Jaringan yang tersimpan tak tersedia"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Layar transmisi"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Melakukan transmisi"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Perangkat tanpa nama"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Siap melakukan transmisi"</string> @@ -272,7 +273,7 @@ <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> - <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Pemberitahuan"</string> + <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notifikasi"</string> <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Lampu senter"</string> <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Data seluler"</string> <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Penggunaan data"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"telusuri"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Tidak dapat memulai <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Tutup semua aplikasi"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Pisahkan Horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Pisahkan Vertikal"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Pisahkan Khusus"</string> @@ -308,7 +306,7 @@ <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Alarm Anda berikutnya hari <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tidak akan mendengar alarm pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> - <string name="speed_bump_explanation" msgid="1288875699658819755">"Pemberitahuan kurang darurat di bawah"</string> + <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifikasi kurang darurat di bawah"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Sentuh lagi untuk membuka"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Gesek ke atas untuk membuka kunci"</string> <string name="phone_hint" msgid="3101468054914424646">"Gesek ke kanan untuk menelepon"</string> @@ -367,16 +365,14 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Lihat sebelum membuka kunci"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tidak"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Siapkan"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Lihat semua"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sembunyikan semua"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Layar dipasangi pin"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ini akan terus ditampilkan sampai Anda melepas pin. Sentuh dan tahan tombol Kembali dan Ringkasan secara bersamaan untuk melepas pin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ini akan terus ditampilkan sampai Anda melepas pin. Sentuh dan tahan tombol Ringkasan untuk melepas pin."</string> <string name="screen_pinning_positive" msgid="3783985798366751226">"Mengerti"</string> - <string name="screen_pinning_negative" msgid="3741602308343880268">"Tidak, terima kasih"</string> + <string name="screen_pinning_negative" msgid="3741602308343880268">"Lain kali"</string> <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"Sembunyikan <xliff:g id="TILE_LABEL">%1$s</xliff:g>?"</string> <string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"Ini akan muncul kembali saat Anda mengaktifkannya dalam setelan."</string> <string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"Sembunyikan"</string> diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index bc4b707b1cbc..1ae45661d8f7 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ekkert net"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Slökkt á Wi-Fi"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Engin vistuð net til staðar"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Skjáútsending"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Sendir út"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Ónefnt tæki"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Tilbúið í útsendingu"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"leita"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Ekki var hægt að ræsa <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Fjarlægja öll forrit"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Lárétt skipting"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Lóðrétt skipting"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Sérsniðin skipting"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Sjáðu þær áður en þú opnar"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nei, takk"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Setja upp"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Sjá allt"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Fela allt"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skjárinn er festur"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Þetta heldur þessu opnu þangað til þú losar. Haltu bakk- og yfirlitshnöppunum inni á sama tíma til að losa."</string> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index 6a07df8e22dc..c9ccf051d8ac 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nessuna rete"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi disattivato"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nessuna rete salvata disponibile"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Trasmetti schermo"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"In trasmissione"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo senza nome"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pronto a trasmettere"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"cerca"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Impossibile avviare <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Rimuovi tutte le applicazioni"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisione in orizzontale"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisione in verticale"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisione personalizzata"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Visualizza prima di sbloccare"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, grazie"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configura"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Mostra tutto"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Nascondi tutto"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"La schermata è bloccata"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"La schermata rimane visibile finché la sblocchi. Tocca e tieni premuti contemporaneamente Indietro e Panoramica per sbloccare."</string> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 43fb0a42d995..ff7fc57e7ae7 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"אין רשת"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi כבוי"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"אין רשתות שמורות זמינות"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"העבר מסך"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"מעביר"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"מכשיר ללא שם"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"מוכן להעביר"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"חפש"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"לא ניתן היה להפעיל את <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"סגור את כל האפליקציות"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"פיצול אופקי"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"פיצול אנכי"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"פיצול מותאם אישית"</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index e4a3d0bcb49e..ca6aec9e5588 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ネットワークなし"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi OFF"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"保存されているネットワークがありません"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"画面のキャスト"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"キャストしています"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"名前のないデバイス"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"キャスト準備完了"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"検索"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>を開始できません。"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"すべてのアプリケーションを消去"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"横に分割"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"縦に分割"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"分割(カスタム)"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ロックを解除する前にご確認ください"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"キャンセル"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"すべて表示"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"すべて非表示"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"画面が固定されました"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"固定を解除するまで画面が常に表示されるようになります。[戻る]と[最近]を同時に押し続けると固定が解除されます。"</string> diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 5520830d0993..100af704c16e 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ქსელი არ არის"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi გამორთულია"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"შენახული ქსელები მიუწვდომელია"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ეკრანის გადაცემა"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"გადაიცემა"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"უსახელო მოწყობილობა"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"მზად არის სამაუწყებლოდ"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ძიება"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>-ის გამოძახება ვერ მოხერხდა."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"ყველა აპლიკაციის გაუქმება"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ჰორიზონტალური გაყოფა"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ვერტიკალური გაყოფა"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ინდივიდუალური გაყობა"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"იხილეთ განბლოკვამდე"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"არა, გმადლობთ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"დაყენება"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"ყველას ჩვენება"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"ყველას დამალვა"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ეკრანი ჩამაგრებულია"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ამით ის ხედში დარჩება, სანამ ჩამაგრებას არ გააუქმებთ. ჩამაგრების გასაუქმებლად შეეხეთ და დააყოვნეთ „დაბრუნება“-ზე და „მიმოხილვა“-ზე ერთდროულად."</string> diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index 1b43bd4db912..9ed07ca48eb2 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Желі жоқ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi өшірулі"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Сақталған желілер қол жетімді емес"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Экранды трансляциялау"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Трансляциялануда"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Атаусыз құрылғы"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Трансляциялауға дайын"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"іздеу"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> іске қосу мүмкін болмады."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Барлық қолданбаларды қабылдамау"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Бөлінген көлденең"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Бөлінген тік"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Бөлінген теңшелетін"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Бекітпесін ашу алдында оларды көру"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Жоқ, рақмет"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Реттеу"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Барлығын көру"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Барлығын жасыру"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Экран түйрелді"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Бұл сіз оны босатқанша оны көрсетіп тұрады. Босату үшін «Кері» және «Шолу» түймелерін бір уақытта басып тұрыңыз."</string> diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 743a81c0e903..de48a23e9e9b 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"គ្មានបណ្ដាញ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"វ៉ាយហ្វាយបានបិទ"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"មិនមានបណ្ដាញដែលបានរក្សាទុក"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ខាសអេក្រង់"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"ការចាត់ថ្នាក់"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ឧបករណ៍ដែលមិនមានឈ្មោះ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ត្រៀមរួចរាល់ដើម្បីចាត់ថ្នាក់"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ស្វែងរក"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"មិនអាចចាប់ផ្ដើម <xliff:g id="APP">%s</xliff:g> ទេ។"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"បោះបង់កម្មវិធីទាំងអស់"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"បំបែកផ្តេក"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"បំបែកបញ្ឈរ"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"បំបែកផ្ទាល់ខ្លួន"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ឃើញពួកវាមុនពេលដោះសោ"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ទេ អរគុណ!"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"រៀបចំ"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"មើលទាំងអស់"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"លាក់ទាំងអស់"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"អេក្រង់ត្រូវបានភ្ជាប់"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"រក្សាទុកវាក្នុងទិដ្ឋភាពរហូតដល់អ្នកផ្ដាច់។ ប៉ះ ហើយសង្កត់ថយក្រោយ និងទិដ្ឋភាពនៅពេលតែមួយដើម្បីផ្ដាច់។"</string> diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index dd02d92dafb7..2687de189ff4 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ಆಫ್"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ಯಾವುದೇ ಉಳಿಸಲಾದ ನೆಟ್ವರ್ಕ್ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ಬಿತ್ತರದ ಪರದೆ"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ಹೆಸರಿಸದಿರುವ ಸಾಧನ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ಬಿತ್ತರಿಸಲು ಸಿದ್ದವಾಗಿದೆ"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ಹುಡುಕಾಟ"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ಪ್ರಾರಂಭಿಸಲು ಸಾದ್ಯವಿಲ್ಲ."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವಜಾಗೊಳಿಸಿ"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ಅಡ್ಡಲಾಗಿ ವಿಭಜಿಸಿದ"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ಲಂಬವಾಗಿ ವಿಭಜಿಸಿದ"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ಕಸ್ಟಮ್ ವಿಭಜಿಸಿದ"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ನೀವು ಅನ್ಲಾಕ್ ಮಾಡುವ ಮೊದಲೇ ಅವುಗಳನ್ನು ನೋಡಿ"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ಬೇಡ ಧನ್ಯವಾದಗಳು"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ಹೊಂದಿಸು"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"ಎಲ್ಲ ಮರೆಮಾಡಿ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ಪರದೆಯನ್ನು ಪಿನ್ ಮಾಡಲಾಗಿದೆ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ನೀವು ಅನ್ಪಿನ್ ಮಾಡುವವರೆಗೆ ಅದನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿಡುತ್ತದೆ. ಅನ್ಪಿನ್ ಮಾಡಲು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ ಹಾಗೂ ಅವಲೋಕಿಸಿ."</string> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index bc30a5062f89..993bef48e60a 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"네트워크가 연결되지 않음"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 꺼짐"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"저장된 네트워크가 없습니다."</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"화면 전송"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"전송 중"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"이름이 없는 기기"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"전송 준비 완료"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"검색"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>을(를) 시작할 수 없습니다."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"모든 애플리케이션 닫기"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"수평 분할"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"수직 분할"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"맞춤 분할"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"잠금 해제하기 전에 알림을 봅니다."</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"사용 안함"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"설정"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"모두 보기"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"모두 숨기기"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"화면 고정됨"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 뒤로와 개요를 동시에 길게 터치합니다."</string> diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index e34c659a0749..25471e5e64b1 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -282,7 +282,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Желе жок"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi өчүк"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Сакталган тармактар жок"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Тышкы экранга чыгаруу"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Тышкы экранга чыгарылууда"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Аты жок түзмөк"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Тышкы экранга чыгарууга даяр"</string> @@ -312,9 +313,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"издөө"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> баштай алган жок."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Бардык колдонмолорду көз жаздымда калтыруу"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Туурасынан бөлүү"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Тигинен бөлүү"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Ыңгайлаштырылган бөлүү"</string> @@ -392,10 +390,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Аларды кулпудан чыгараардан мурун көрүңүз"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Жок, рахмат"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Орнотуу"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Бардыгын көрүү"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Баарын жашыруу"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Экран кадалган"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Бул бошотулмайынча көрүнө берет. Бошотуу үчүн, бир убакта Артка жана Карап чыгууну коё бербей басып туруңуз."</string> diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index e9e221999927..b5e1bfe5781c 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ບໍ່ມີເຄືອຂ່າຍ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ປິດ"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ບໍ່ມີເຄືອຂ່າຍທີ່ບັນທຶກໄວ້ທີ່ສາມາດໃຊ້ໄດ້"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ສົ່ງສັນຍານໜ້າຈໍ"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"ກຳລັງສົ່ງສັນຍານ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ອຸປະກອນບໍ່ມີຊື່"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ພ້ອມສົ່ງສັນຍານແລ້ວ"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ຊອກຫາ"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"ບໍ່ສາມາດເລີ່ມ <xliff:g id="APP">%s</xliff:g> ໄດ້."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"ປ່ອຍທຸກແອັບພລິເຄ"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ການແຍກລວງຂວາງ"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ການແຍກລວງຕັ້ງ"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ການແຍກກຳນົດເອງ"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ເບິ່ງພວກມັນກ່ອນທ່ານຈະປົດລັອກ"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ບໍ່, ຂອບໃຈ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ຕັ້ງຄ່າ"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"ເບິ່ງທັງໝົດ"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"ເຊື່ອງທັງຫມົດ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ປັກໝຸດໜ້າຈໍແລ້ວ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ມັນຈະຮັກສາໜ້າຈໍໄວ້ໃນມຸມມອງຂອງທ່ານຈົນກວ່າທ່ານຈະຖອດໝຸດ. ແຕະປຸ່ມ ກັບຄືນ ແລະ ພາບຮວມ ຄ້າງໄວ້ພ້ອມກັນເພື່ອຖອດໝຸດ."</string> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index dceb996d23a6..0fc6fbb42fdf 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tinklo nėra"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"„Wi-Fi“ išjungta"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nėra pasiekiamų išsaugotų tinklų"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Perdavimo ekranas"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Perduodama"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Įrenginys be pavadinimo"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Paruošta perduoti"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"paieška"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Nepavyko paleisti <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Atsisakyti visų programų"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"–"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontalus skaidymas"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikalus skaidymas"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tinkintas skaidymas"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Peržiūrėti prieš atrakinant"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, ačiū"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Nustatyti"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Žr. viską"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Slėpti viską"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekranas prisegtas"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Tai bus rodoma, kol atsegsite. Kad atsegtumėte, tuo pačiu metu palieskite ir laikykite „Atgal“ ir „Apžvalga“."</string> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 76d33724231c..54cc36af3424 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -258,7 +258,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nav tīkla"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ir izslēgts"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nav pieejams neviens saglabātais tīkls."</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Apraides ekrāns"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Notiek apraide…"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nenosaukta ierīce"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Gatavs apraidei"</string> @@ -288,9 +289,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"Meklēt"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Nevarēja palaist lietotni <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Noņemt visas lietojumprogrammas"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontāls dalījums"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikāls dalījums"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Pielāgots dalījums"</string> @@ -368,10 +366,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Skatiet tos pirms atbloķēšanas."</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nē"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Iestatīt"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Skatīt visus"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Slēpt visus"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekrāns ir piesprausts"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Šādi tas būs redzams līdz brīdim, kad to atspraudīsiet. Lai atspraustu, vienlaikus pieskarieties vienumiem “Atpakaļ” un “Pārskats” un turiet tos nospiestus."</string> diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index 06569016ec75..2be9c4ccbccc 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мрежа"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi е исклучено"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Нема достапни зачувани мрежи"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Емитувај екран"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Емитување"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Неименуван уред"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Подготвено за емитување"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"пребарај"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> не може да се вклучи."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Отфрли ги сите апликации"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"22°"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"22°"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"22°"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Раздели хоризонтално"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Раздели вертикално"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Раздели прилагодено"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Видете ги пред да отклучите"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Не, фала"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Постави"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Види ги сите"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сокриј ги сите"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екранот е прикачен"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ќе се гледа сè додека не го откачите. Допрете и држете Назад и Краток преглед истовремено за откачување."</string> diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index d0532e846afe..c446927eb0db 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"നെറ്റ്വർക്ക് ഒന്നുമില്ല"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ഓഫുചെയ്യുക"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"സംരംക്ഷിച്ച നെറ്റ്വർക്കുകളൊന്നും ലഭ്യമല്ല"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"കാസ്റ്റ് സ്ക്രീൻ"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"കാസ്റ്റുചെയ്യുന്നു"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"പേരിടാത്ത ഉപകരണം"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"കാസ്റ്റ് ചെയ്യാൻ തയ്യാറാണ്"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"തിരയുക"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ആരംഭിക്കാനായില്ല."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"എല്ലാ അപ്ലിക്കേഷനുകളും നിരസിക്കുക"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"തിരശ്ചീനമായി വേർതിരിക്കുക"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ലംബമായി വേർതിരിക്കുക"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ഇഷ്ടാനുസൃതമായി വേർതിരിക്കുക"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"അൺലോക്കുചെയ്യുന്നതിന് മുമ്പ് അവ കാണുക"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"വേണ്ട, നന്ദി"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"സജ്ജീകരിക്കുക"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"എല്ലാം കാണുക"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"എല്ലാം മറയ്ക്കുക"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"സ്ക്രീൻ പിൻ ചെയ്തു"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"നിങ്ങൾ അൺപിൻ ചെയ്യുന്നതുവരെ ഇത് കാണുന്ന വിധത്തിൽ നിലനിർത്തുന്നു. അൺപിൻ ചെയ്യാൻ \'മടങ്ങുക\', \'ചുരുക്കവിവരണം\' എന്നിവ ഒരേ സമയം സ്പർശിച്ച് പിടിക്കുക."</string> diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index 3de40d53e9d5..a767983137ac 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -255,7 +255,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Сүлжээгүй"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi унтарсан"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Хадгалагдсан сүлжээ байхгүй"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Дамжуулах дэлгэц"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Дамжуулж байна"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Нэргүй төхөөрөмж"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Дамжуулахад бэлэн"</string> @@ -285,9 +286,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"хайх"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>-г эхлүүлж чадсангүй."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Бүх програмыг арилгах"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Хэвтээ чиглэлд хуваах"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Босоо чиглэлд хуваах"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Хүссэн хэлбэрээр хуваах"</string> @@ -365,10 +363,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Түгжээг тайлахын өмнө үзнэ үү"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Үгүй"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Тохируулах"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Бүгдийг харах"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Бүгдийг нуух"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Дэлгэц эхэнд байрлуулагдсан"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Таныг эхэнд нээхийг болиулах хүртэл харагдана. Хүрээд, Back дээр удаан дараад хаахдаа Overview-ийг дар"</string> diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index d461e0555810..6023d49fb94d 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"नेटवर्क नाही"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाय-फाय बंद"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"कोणतीही जतन केलेली नेटवर्क उपलब्ध नाहीत"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"स्क्रीन कास्ट करा"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"कास्ट करत आहे"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"निनावी डिव्हाइस"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"कास्ट करण्यास सज्ज"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"शोधा"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> प्रारंभ करणे शक्य झाले नाही."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"सर्व अनुप्रयोग डिसमिस करा"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"क्षैतिज विभाजित करा"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"अनुलंब विभाजित करा"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"सानुकूल विभाजित करा"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"आपण अनलॉक करण्यापूर्वी त्यांना पहा"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"नाही धन्यवाद"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"सेट अप"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"सर्व पहा"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"सर्व लपवा"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"स्क्रीन पिन केलेली आहे"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"हे आपण अनपिन करेपर्यंत दृश्यामध्ये ते ठेवते. अनपिन करण्यासाठी एकाच वेळी परत आणि अलीकडील ला स्पर्श करा आणि धरून ठेवा आणि विहंगावलोकन करा."</string> diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index e0e7327b0996..8579e07acd45 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tiada Rangkaian"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Dimatikan"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Tiada rangkaian disimpan tersedia"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Skrin Cast"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Menghantar"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Peranti tidak bernama"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Bersedia untuk menghantar"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"cari"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Tidak dapat memulakan <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ketepikan semua aplikasi"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Mendatar Terpisah"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Menegak Terpisah"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tersuai Terpisah"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Lihat sebelum anda membuka kunci"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tidak"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Sediakan"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Lihat semua"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sembunyikan semua"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skrin telah disemat"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ini akan memastikan skrin kelihatan sehingga anda menyahsemat. Sentuh dan tahan Kembali dan Gambaran Keseluruhan pada masa yang sama untuk menyahsemat."</string> diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index 8ec709e28348..b6feaa2f9e2e 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ကွန်ရက်မရှိပါ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"ဝိုင်ဖိုင်ပိတ်ရန်"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"သိမ်းဆည်းထား ကွန်ရက်များ မရှိ"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ကာစ်တ် မျက်နှာပြင်"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"ကာစ်တင်"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"အမည်မတပ် ကိရိယာ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ကာစ်တ် လုပ်ရန် အသင့် ရှိနေပြီ"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ရှာဖွေရန်"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ကို မစနိုင်ပါ။"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"အပလီကေးရှင်းများအားလုံး ဖယ်ထုတ်မည်"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"−"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"..."</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ရေပြင်ညီ ပိုင်းမည်"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ဒေါင်လိုက်ပိုင်းမည်"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"စိတ်ကြိုက် ပိုင်းမည်"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"မဖွင့်ခင် ၎င်းတို့ကို ကြည့်ပါ"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"မလိုအပ်ပါ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"သတ်မှတ်ရန်"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"အားလုံးကို ကြည့်ရန်"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"အားလုံး ဝှက်ထားရန်"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>။ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"မျက်နှာပြင် ပင်ထိုးပြီးပါပြီ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"သင်ပင်ဖြုတ်သည့် တိုင်အောင် ၎င်းအား မြင်ကွင်းတွင် ထားရှိပါမည်။ ပင်ဖြုတ်ရန် အနောက်နှင့် ခြုံငုံကြည့်ခြင်းကို ဖိ၍ နှိပ်ထားနိုင်သည်။"</string> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index a5e912d02978..0a67650588a2 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ingen nettverk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi er av"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ingen lagrede nettverk er tilgjengelige"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Cast skjermen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Enhet uten navn"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Klar til å caste"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"Søk"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Kunne ikke starte <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Avvis alle apper"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Del horisontalt"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Del vertikalt"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Del tilpasset"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Se dem før du låser opp"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nei takk"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Konfigurer"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Se alle"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skjul alle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skjermen er låst"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"På denne måten blir skjermen synlig frem til du låser den opp. Trykk på og hold inne Tilbake og Oversikt samtidig for å låse opp."</string> diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index 277e1f19024a..71247d937e68 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"नेटवर्क छैन"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाइफाइ बन्द"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"उपलब्ध सञ्जाल सुरक्षित गरिएन"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"स्क्रिन प्रसारण गर्नुहोस्"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"प्रसारण गर्दै"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"बेनाम उपकरण"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"प्रसारण गर्न तयार"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"खोजी गर्नुहोस्"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"सुरु गर्न सकिएन <xliff:g id="APP">%s</xliff:g>।"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"सबै अनुप्रयोगहरू खारेज गर्नुहोस्"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"तेर्सो रूपमा विभाजन गर्नुहोस्"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ठाडो रूपमा विभाजन गर्नुहोस्"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"अनुकूलन विभाजन गर्नुहोस्"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"तपाईँले अनलक गर्नअघि तिनीहरूलाई हेर्नुहोस्"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"धन्यवाद पर्दैन"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"सेटअप गर्नुहोस्"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"सबै हेर्नुहोस्"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"सबै लुकाउनुहोस्"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"पर्दा राखेका छ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"तपाईं अनपिन सम्म यो दृश्य मा राख्छ। छुनुहोस् र अनपिन फिर्ता र सिंहावलोकन नै समय मा पकड।"</string> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index 2e403c2169a4..16d4eeae33fd 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wifi uit"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Geen opgeslagen netwerken beschikbaar"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Scherm casten"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Casten"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Naamloos apparaat"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Klaar om te casten"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"zoeken"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Kan <xliff:g id="APP">%s</xliff:g> niet starten."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Alle apps sluiten"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontaal splitsen"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Verticaal splitsen"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Aangepast splitsen"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Weergeven voordat u ontgrendelt"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nee, bedankt"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configureren"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Alles weergeven"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Alles verbergen"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Scherm is vastgezet"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Het scherm blijft zichtbaar totdat u het u losmaakt. Houd \'Terug\' en \'Overzicht\' tegelijkertijd aangeraakt om het los te maken."</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 839986229bdd..3b9efe7f2d51 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Brak sieci"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi wyłączone"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Brak dostępnych zapisanych sieci"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Prześlij ekran"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Przesyłam"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Urządzenie bez nazwy"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Wszystko gotowe do przesyłania"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"szukaj"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Nie udało się uruchomić aplikacji <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Zamknij wszystkie aplikacje"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podziel poziomo"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podziel pionowo"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Podziel niestandardowo"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Zobacz powiadomienia, jeszcze zanim odblokujesz ekran"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nie, dziękuję"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Skonfiguruj"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaż wszystkie"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ukrywaj wszystkie"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran jest przypięty"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ekran będzie widoczny, dopóki go nie odepniesz. Aby to zrobić, kliknij i przytrzymaj jednocześnie Wstecz i Przegląd."</string> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index fd79d33c2610..03ca5ee08e4d 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem Rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Desligado"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Sem redes guardadas disponíveis"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Transmitir ecrã"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmissão"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sem nome"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pronto para transmitir"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Não foi possível iniciar o <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ignorar todas as aplicações"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Não, obrigado"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver tudo"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar tudo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"O ecrã está fixado"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Será mantido na vista até soltar. Toque sem soltar em Anterior e Vista geral em simultâneo para soltar."</string> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index b5d7b531124c..5a68f7dc0cb8 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desligado"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Não há redes salvas disponíveis"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Transmitir tela"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmitindo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sem nome"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pronto para transmitir"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Não foi possível iniciar <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Dispensar todos os apps"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Veja-as antes de desbloquear"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Não, obrigado"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver tudo"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar tudo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A tela está fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ela é mantida à vista até que seja liberada. Toque em \"Voltar\" e \"Visão Geral\" e mantenha essas opções pressionadas ao mesmo tempo para liberar."</string> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 8afa8268bd46..5887c7952a8c 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -258,7 +258,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nicio reţea"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi deconectat"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nicio rețea salvată disponibilă"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Proiectați ecranul"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Se proiectează"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispozitiv nedenumit"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pregătit pentru proiecție"</string> @@ -288,9 +289,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"căutare"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> nu a putut porni."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Închideți toate aplicațiile"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divizare pe orizontală"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divizare pe verticală"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divizare personalizată"</string> @@ -368,10 +366,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Doresc să se afișeze înainte de deblocare"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nu, mulț."</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Config."</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Afișați toate"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ascundeți toate"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ecranul este fixat"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ecranul este afișat până anulați fixarea. Apăsați lung pe Înapoi și pe Vizualizare generală simultan pentru a anula fixarea."</string> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index c215f6956ced..23e8b3ab30c3 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -261,7 +261,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нет сети"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi выкл."</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Нет доступных сохраненных сетей"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Передать изображение экрана"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Передача изображения"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Безымянное устройство"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Готово к передаче"</string> @@ -291,9 +292,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"поиск"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Не удалось запустить приложение \"<xliff:g id="APP">%s</xliff:g>\""</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Закрыть все приложения"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"–"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Разделить по горизонтали"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Разделить по вертикали"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Разделить по-другому"</string> @@ -371,10 +369,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Просматривайте уведомления на заблокированном экране."</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Закрыть"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Настроить"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Показать все"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Скрыть все"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>."</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Блокировка в приложении включена"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Это приложение останется активным, пока вы не отмените блокировку, одновременно нажав кнопки \"Назад\" и \"Обзор\"."</string> diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index 100e88cbff20..becf69dc55bd 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ජාලයක් නැත"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi අක්රියයි"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"තිබෙන ජාල සුරැකුවේ නැත"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"රංගන තිරය"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"කාස්ට් කිරීම"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"නම් නොකළ උපාංගය"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"කාස්ට් කිරීමට සුදානම්"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"සෙවීම"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ආරම්භ කළ නොහැක."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"සියලුම යෙදුම් අස් කරන්න"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"තිරස්ව වෙන් කරන්න"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"සිරස්ව වෙන් කරන්න"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"අභිමත ලෙස වෙන් කරන්න"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ඔබ අඟුළු හැරීමට කලින් ඒවා බලන්න"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"එපා ස්තූතියි"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"සකසන්න"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"සියල්ල බලන්න"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"සියල්ල සඟවන්න"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"තීරය අමුණන ලදි"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ඔබ ගලවන තෙක් එය දර්ශනය තුළ මෙය තබයි. ගැලවීමට ආපසු සහ දළ විශ්ලේෂණය එකම වේලාවක ස්පර්ෂ කර අල්ලා සිටින්න."</string> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 50fbf906d063..4fc086de94e6 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -261,7 +261,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žiadna sieť"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Sieť Wi-Fi je vypnutá"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nie sú k dispozícii žiadne uložené siete"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Prenos obrazovky"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Prenáša sa"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nepomenované zariadenie"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pripravené na prenášanie"</string> @@ -291,9 +292,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"hľadať"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikáciu <xliff:g id="APP">%s</xliff:g> sa nepodarilo spustiť"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Odmietnuť všetky aplikácie"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Rozdeliť vodorovné"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Rozdeliť zvislé"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Rozdeliť vlastné"</string> @@ -371,10 +369,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Zobraziť pred odomknutím"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nie, vďaka"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Nastaviť"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Zobraziť všetko"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skryť všetko"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Obrazovka je pripnutá"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Obsah bude pripnutý v zobrazení, dokým ho neuvoľníte. Ak ho chcete uvoľniť, stlačte a podržte súčasne tlačidlá Späť a Prehľad."</string> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index af996e7ab35a..f20596b59b2d 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ni omrežja"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi izklopljen"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Na voljo ni nobeno shranjeno omrežje"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Zaslon za predvajanje"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Predvajanje"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Neimenovana naprava"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pripravljeno za predvajanje"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"iskanje"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikacije <xliff:g id="APP">%s</xliff:g> ni bilo mogoče zagnati."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Opusti vse aplikacije"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Razdeli vodoravno"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Razdeli navpično"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Razdeli po meri"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Oglejte si jih pred odklepanjem"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, hvala"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Nastavitev"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaži vse"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skrij vse"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Zaslon je pripet"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"S tem ostane zaslon v pogledu, dokler ga ne odpnete. Hkrati pridržite tipko za nazaj in tipko za pregled, če ga želite odpeti."</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index f02ef5cb7276..74b44f438ff8 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -258,7 +258,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мреже"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi је искључен"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Није доступна ниједна сачувана мрежа"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Пребацивање екрана"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Пребацивање"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Неименовани уређај"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Спремно за пребацивање"</string> @@ -288,9 +289,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"претражи"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Покретање апликације <xliff:g id="APP">%s</xliff:g> није успело."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Одбаци све апликације"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Подели хоризонтално"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Подели вертикално"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Прилагођено дељење"</string> @@ -368,10 +366,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Прегледајте их пре откључавања"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Не, хвала"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Подеси"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Прикажи све"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сакриј све"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екран је закачен"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"На овај начин ово остаје приказано док га не откачите. Истовремено додирните и задржите Назад и Преглед да бисте га откачили."</string> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 2d29894eb227..de4b84c643ea 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Inget nätverk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi av"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Inga sparade nätverk tillgängliga"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Casta skärmen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Castar"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Namnlös enhet"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Redo att casta"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"sök"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Det gick inte att starta appen <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ta bort alla appar"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Dela horisontellt"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dela vertikalt"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Dela anpassad"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Visa dem innan du låser upp"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nej tack"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Konfig."</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Visa alla"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Dölj alla"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skärmen har fästs"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Detta visar skärmen tills du lossar den. Tryck länge på bakåtknappen och Översikt samtidigt om du vill lossa skärmen."</string> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 3c8f2516fa24..c6c4ff0d482e 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Hakuna Mtandao"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Imezimwa"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Hakuna mitandao iliyohifadhiwa inayopatikana"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Tuma skrini"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Inatuma"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Kifaa hakina jina"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Tayari kutuma"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"tafuta"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Haikuweza kuanzisha <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ondoa programu zote"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Gawanya Mlalo"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Gawanya Wima"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Maalum Iliyogawanywa"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Zitazame kabla hujafungua"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Hapana, asante"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Sanidi"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Angalia zote"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ficha zote"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skrini imebandikwa"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Hii itaendelea kuonyesha hadi ubandue. Gusa na ushikilie Nyuma na Muhtasari kwa wakati mmoja ili ubandue."</string> diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index 257e55f3d12a..c9da1b8ea74a 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"நெட்வொர்க் இல்லை"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"வைஃபையை முடக்கு"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"சேமித்த நெட்வொர்க்குகள் இல்லை"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"திரையை அனுப்பு"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"அனுப்புகிறது"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"பெயரிடப்படாத சாதனம்"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"அனுப்பத் தயார்"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"தேடு"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>ஐத் தொடங்க முடியவில்லை."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"எல்லா பயன்பாடுகளையும் விலக்கு"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"கிடைமட்டமாகப் பிரி"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"செங்குத்தாகப் பிரி"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"தனிவிருப்பத்தில் பிரி"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"திறக்கும் முன் அவற்றைப் பார்க்கவும்"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"வேண்டாம்"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"அமை"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"எல்லாம் காட்டு"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"எல்லாம் மறை"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"திரை பொருத்தப்பட்டது"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"பொருத்தியதை விலக்கும்வரை இதைக் காட்சியில் வைக்கும். விலக்க, பின் மற்றும் மேலோட்டப் பார்வையை ஒரே நேரத்தில் தொட்டுப் பிடிக்கவும்."</string> diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index fcd725a46bae..62c377ea44e4 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"నెట్వర్క్ లేదు"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ఆఫ్లో ఉంది"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"సేవ్ చేసిన నెట్వర్క్లు ఏవీ అందుబాటులో లేవు"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ప్రసార స్క్రీన్"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"ప్రసారం చేస్తోంది"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"పేరులేని పరికరం"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ప్రసారం చేయడానికి సిద్ధంగా ఉంది"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"శోధించు"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>ని ప్రారంభించడం సాధ్యపడలేదు."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"అన్ని అనువర్తనాలను తీసివేయి"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"సమతలంగా విభజించు"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"లంబంగా విభజించు"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"అనుకూలంగా విభజించు"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"వీటిని మీరు అన్లాక్ చేయకముందే చూడండి"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"వద్దు, ధన్యవాదాలు"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"సెటప్ చేయి"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"అన్నీ చూడండి"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"అన్నీ దాచిపెట్టు"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"స్క్రీన్ పిన్ చేయబడింది"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ఇది మీరు అన్పిన్ చేసే వరకు దీన్ని వీక్షణలో ఉంచుతుంది. అన్పిన్ చేయడానికి వెనుకకు మరియు స్థూలదృష్టిని ఒకేసారి తాకి, ఉంచండి."</string> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 2c24eee650d8..6ef27911813b 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ไม่มีเครือข่าย"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"ปิด WiFi"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"เครือข่ายที่บันทึกไว้ทั้งหมดไม่พร้อมใช้งาน"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"ส่งหน้าจอ"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"กำลังส่ง"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"อุปกรณ์ที่ไม่มีชื่อ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"พร้อมที่จะส่ง"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ค้นหา"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"ไม่สามารถเริ่มใช้ <xliff:g id="APP">%s</xliff:g>"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"ปิดแอปพลิเคชันทั้งหมด"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"แยกในแนวนอน"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"แยกในแนวตั้ง"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"แยกแบบกำหนดเอง"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"ดูก่อนปลดล็อก"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ไม่เป็นไร"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ตั้งค่า"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"ดูทั้งหมด"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"ซ่อนทั้งหมด"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g> <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ตรึงหน้าจอแล้ว"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"การดำเนินการนี้จะเปิดหน้าจอนี้ไว้เสมอจนกว่าคุณจะเลิกตรึง แตะ \"กลับ\" และ \"ภาพรวม\" พร้อมกันค้างไว้เพื่อเลิกตรึง"</string> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 8c8755d37c7a..493c9e712b92 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Walang Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Naka-off ang Wi-Fi"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Walang available na naka-save na mga network"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"I-cast ang screen"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Nagka-cast"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Walang pangalang device"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Handang mag-cast"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"maghanap"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Hindi masimulan <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"I-dismiss ang lahat ng application"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Custom"</string> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 64e3ea9fb909..df073424fbd5 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ağ yok"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Kablosuz Kapalı"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Kullanılabilir kaydedilmiş ağ yok"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Ekranı yayınla"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Yayınlanıyor"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Adsız cihaz"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Yayın için hazır"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"ara"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> başlatılamadı."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Tüm uygulamaları kapat"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Yatay Ayırma"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dikey Ayırma"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Özel Ayırma"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Kilidi açmadan bildirimleri görün"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Hayır, teşekkürler"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Kur"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Tümünü göster"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tümünü gizle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran sabitlendi"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Böylece siz sabitlemesini kaldırana kadar görüntülenmeye devam eder. Sabitlemeyi kaldırmak için Geri ve Genel Bakış öğesine aynı anda dokunun ve basılı tutun."</string> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index d26b2c9ebd8c..879bbbca4ede 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Немає мережі"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi вимкнено"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Немає збережених мереж"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Транслювати екран"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Трансляція"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Пристрій без назви"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Можна транслювати"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"пошук"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Не вдалося запустити <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Закрити всі додатки"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Розділити горизонтально"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Розділити вертикально"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Розділити (власний варіант)"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Переглядайте сповіщення, перш ніж розблокувати екран"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ні, дякую"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Налаштув."</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Показати всі"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сховати всі"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екран закріплено"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Закріпить екран, щоб ви могли постійно його бачити, доки не відкріпите. Щоб відкріпити, одночасно натисніть і втримуйте кнопки \"Назад\" і \"Огляд\"."</string> diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index 7e26dd393e37..25cdd2d6f346 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"کوئی نیٹ ورک نہیں ہے"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi آف ہے"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"کوئی محفوظ کردہ نیٹ ورکس دستیاب نہیں ہیں"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"کاسٹ اسکرین"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"کاسٹنگ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"بغیر نام والا آلہ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"کاسٹ کرنے کیلئے تیار"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"تلاش کریں"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> کو شروع نہیں کیا جا سکا۔"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"سبھی ایپلیکیشنز کو برخاست کریں"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"بلحاظ افقی الگ کریں"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"بلحاظ عمودی الگ کریں"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"بلحاظ حسب ضرورت الگ کریں"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"غیر مقفل کرنے سے پہلے انہیں دیکھیں"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"نہیں شکریہ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ترتیب دیں"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"سبھی دیکھیں"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"سبھی چھپائیں"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>۔ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"اسکرین پن کردہ ہے"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"یہ اس کو اس وقت تک منظر میں رکھتا ہے جب تک آپ اس سے پن نہیں ہٹا دیتے۔ پن ہٹانے کیلئے واپس اور عمومی جائزہ کو ایک ساتھ ٹچ کریں اور پکڑ کر رکھیں۔"</string> diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index f316e4f8f4e1..7d7df5f55bdf 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tarmoq mavjud emas"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi o‘chirilgan"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Saqlangan tarmoqlar mavjud emas"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Ekranni translatsiya qilish"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Translatsiya qilinmoqda"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nomsiz qurilma"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Tarqatish uchun tayyor"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"qidirish"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"“<xliff:g id="APP">%s</xliff:g>” ilovasini ishga tushirib bo‘lmadi."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Barcha ilovalarni olib tashlash"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Gorizontal yo‘nalishda bo‘lish"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikal yo‘nalishda bo‘lish"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Boshqa usulda bo‘lish"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ularni qulfdan chiqarishdan oldin ko‘ring"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Yo‘q, kerak emas"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Sozlash"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Barchasini ko‘rsatish"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Barchasini yashirish"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran qadaldi"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ekran yechilmaguncha u qadalgan holatda qoladi. Uni yechish uchun “Orqaga” va “Umumiy nazar” tugmalarini bir vaqtda bosing va ushlab turing."</string> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index e7422396eba6..14b8e1e6194b 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Không có mạng nào"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Tắt Wi-Fi"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Không có mạng nào được lưu"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Màn hình truyền"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Đang truyền"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Thiết bị không có tên"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Sẵn sàng truyền"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"tìm kiếm"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Không thể khởi động <xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Bỏ qua tất cả các ứng dụng"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Phân tách ngang"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Phân tách dọc"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tùy chỉnh phân tách"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Xem thông báo trước khi bạn mở khóa"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ko, cảm ơn"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Thiết lập"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Xem tất cả"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ẩn tất cả"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Màn hình được ghim"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Thao tác này sẽ duy trì hiển thị màn hình cho đến khi bạn bỏ ghim. Chạm và giữ nút Quay lại và Tổng quan cùng một lúc để bỏ ghim."</string> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index f5432111a21c..43dd4f187a04 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"无网络"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WLAN:关闭"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"没有可用的已保存网络"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"投射屏幕"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"正在投射"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名设备"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"已准备好投射"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"搜索"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"无法启动<xliff:g id="APP">%s</xliff:g>。"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"关闭所有应用"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自定义分割"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"无需解锁即可查看通知"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"设置"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"查看全部"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隐藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>(<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>)"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"已固定屏幕"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"这将会固定显示此屏幕,直到您取消固定为止。触摸并同时按住“返回”和“概览”即可取消固定屏幕。"</string> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index f2f1c23664f0..78eadeeb98bd 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網絡"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 關閉"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"找不到已儲存的網絡"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"放送螢幕"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"正在放送"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名的裝置"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"放送準備完成"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"搜尋"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"無法啟動「<xliff:g id="APP">%s</xliff:g>」。"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"關閉所有應用程式"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自訂分割"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"解鎖前顯示"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了,謝謝"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"顯示全部"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隱藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"螢幕已固定"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"在您取消固定前,它會保持在檢視狀態。輕觸並同時按住 [返回] 和 [概覽],即可取消固定。"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 3d83fa6660c9..5505db4a78a7 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -259,7 +259,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網路"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 已關閉"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"找不到已儲存的網路"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"投放螢幕"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"投放"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名的裝置"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"可以開始投放了"</string> @@ -289,9 +290,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"搜尋"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"無法啟動「<xliff:g id="APP">%s</xliff:g>」。"</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"關閉所有應用程式"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自訂分割"</string> @@ -369,10 +367,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"解鎖前顯示"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了,謝謝"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"全部顯示"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隱藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"螢幕已固定"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"這會讓目前的螢幕畫面保持顯示狀態,直到取消固定為止。同時按住返回按鈕和總覽按鈕即可取消固定。"</string> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 3689b803b943..a020f213240d 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -257,7 +257,8 @@ <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ayikho inethiwekhi"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"I-Wi-Fi icimile"</string> <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Awekho amanethiwekhi alondoloziwe atholakalayo"</string> - <string name="quick_settings_cast_title" msgid="1893629685050355115">"Isikrini sabadlali"</string> + <!-- no translation found for quick_settings_cast_title (7709016546426454729) --> + <skip /> <string name="quick_settings_casting" msgid="6601710681033353316">"Ukusakaza"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Idivayisi engenalo igama"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Ilungele ukusakaza"</string> @@ -287,9 +288,6 @@ <string name="recents_search_bar_label" msgid="8074997400187836677">"sesha"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Ayikwazanga ukuqala i-<xliff:g id="APP">%s</xliff:g>."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Cashisa zonke izinhlelo zokusebenza"</string> - <string name="recents_multistack_add_stack" msgid="5044995965068125420">"+"</string> - <string name="recents_multistack_remove_stack" msgid="3014058144068028841">"-"</string> - <string name="recents_multistack_resize_stack" msgid="5511174284568497822">"[]"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Hlukanisa okuvundlile"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Hlukanisa okumile"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Hlukanisa kwezifiso"</string> @@ -367,10 +365,8 @@ <string name="hidden_notifications_text" msgid="2326409389088668981">"Ibone ngaphambi kokuthi uyivule"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Cha ngiyabonga"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"Lungisa"</string> - <!-- no translation found for notification_expand_button_text (1037425494153780718) --> - <skip /> - <!-- no translation found for notification_collapse_button_text (6883253262134328057) --> - <skip /> + <string name="notification_expand_button_text" msgid="1037425494153780718">"Buka konke"</string> + <string name="notification_collapse_button_text" msgid="6883253262134328057">"Fihla wonke"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Isikrini siphiniwe"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Lokhu kukugcina kubukeka uze ususe ukuphina. Thinta futhi ubambe u-Emuva no-Ukubuka konke ngesikhathi esisodwa ukuze ususe ukuphina."</string> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index d9aff440acc1..66d494b87bf3 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -621,7 +621,7 @@ <!-- QuickSettings: Wifi detail panel, text when there are no items [CHAR LIMIT=NONE] --> <string name="quick_settings_wifi_detail_empty_text">No saved networks available</string> <!-- QuickSettings: Cast title [CHAR LIMIT=NONE] --> - <string name="quick_settings_cast_title">Cast screen</string> + <string name="quick_settings_cast_title">Cast</string> <!-- QuickSettings: Cast detail panel, status text when casting [CHAR LIMIT=NONE] --> <string name="quick_settings_casting">Casting</string> <!-- QuickSettings: Cast detail panel, default device name [CHAR LIMIT=NONE] --> @@ -682,12 +682,6 @@ <!-- Recents: Dismiss all button. [CHAR LIMIT=NONE] --> <string name="recents_dismiss_all_message">Dismiss all applications</string> - <!-- Recents: MultiStack add stack button. [CHAR LIMIT=NONE] --> - <string name="recents_multistack_add_stack">+</string> - <!-- Recents: MultiStack remove stack button. [CHAR LIMIT=NONE] --> - <string name="recents_multistack_remove_stack">-</string> - <!-- Recents: MultiStack resize stack button. [CHAR LIMIT=NONE] --> - <string name="recents_multistack_resize_stack">[]</string> <!-- Recents: MultiStack add stack split horizontal radio button. [CHAR LIMIT=NONE] --> <string name="recents_multistack_add_stack_dialog_split_horizontal">Split Horizontal</string> <!-- Recents: MultiStack add stack split vertical radio button. [CHAR LIMIT=NONE] --> diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index 1561f70320b7..12486726b0db 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -74,8 +74,8 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView View mEmptyView; DebugOverlayView mDebugOverlay; - // MultiStack debug - RecentsMultiStackDialog mMultiStackDebugDialog; + // Resize task debug + RecentsResizeTaskDialog mResizeTaskDebugDialog; // Search AppWidget RecentsAppWidgetHost mAppWidgetHost; @@ -592,37 +592,18 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView } - /**** RecentsMultiStackDialog ****/ + /**** RecentsResizeTaskDialog ****/ - private RecentsMultiStackDialog getMultiStackDebugDialog() { - if (mMultiStackDebugDialog == null) { - mMultiStackDebugDialog = new RecentsMultiStackDialog(getFragmentManager()); + private RecentsResizeTaskDialog getResizeTaskDebugDialog() { + if (mResizeTaskDebugDialog == null) { + mResizeTaskDebugDialog = new RecentsResizeTaskDialog(getFragmentManager()); } - return mMultiStackDebugDialog; + return mResizeTaskDebugDialog; } @Override - public void onMultiStackAddStack() { - RecentsMultiStackDialog dialog = getMultiStackDebugDialog(); - dialog.showAddStackDialog(); - } - - @Override - public void onMultiStackResizeStack() { - RecentsMultiStackDialog dialog = getMultiStackDebugDialog(); - dialog.showResizeStackDialog(); - } - - @Override - public void onMultiStackRemoveStack() { - RecentsMultiStackDialog dialog = getMultiStackDebugDialog(); - dialog.showRemoveStackDialog(); - } - - @Override - public void onMultiStackMoveTask(Task t) { - RecentsMultiStackDialog dialog = getMultiStackDebugDialog(); - dialog.showMoveTaskDialog(t); + public void onTaskResize(Task t) { + getResizeTaskDebugDialog().showResizeTaskDialog(t); } /**** RecentsView.RecentsViewCallbacks Implementation ****/ diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsMultiStackDialog.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsMultiStackDialog.java deleted file mode 100644 index fdf9d394c531..000000000000 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsMultiStackDialog.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.recents; - -import android.app.ActivityManager; -import android.app.AlertDialog; -import android.app.Dialog; -import android.app.DialogFragment; -import android.app.FragmentManager; -import android.content.ComponentName; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.pm.ResolveInfo; -import android.graphics.Rect; -import android.os.Bundle; -import android.util.MutableInt; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.EditText; -import android.widget.Toast; -import com.android.systemui.R; -import com.android.systemui.recents.misc.SystemServicesProxy; -import com.android.systemui.recents.model.RecentsTaskLoader; -import com.android.systemui.recents.model.Task; - -import java.util.List; - -/** - * A helper for the dialogs that show when multistack debugging is on. - */ -public class RecentsMultiStackDialog extends DialogFragment { - - static final String TAG = "RecentsMultiStackDialog"; - - public static final int ADD_STACK_DIALOG = 0; - public static final int ADD_STACK_PICK_APP_DIALOG = 1; - public static final int REMOVE_STACK_DIALOG = 2; - public static final int RESIZE_STACK_DIALOG = 3; - public static final int RESIZE_STACK_PICK_STACK_DIALOG = 4; - public static final int MOVE_TASK_DIALOG = 5; - - FragmentManager mFragmentManager; - int mCurrentDialogType; - MutableInt mTargetStackIndex = new MutableInt(0); - Task mTaskToMove; - SparseArray<ActivityManager.StackInfo> mStacks; - List<ResolveInfo> mLauncherActivities; - Rect mAddStackRect; - Intent mAddStackIntent; - - View mAddStackDialogContent; - - public RecentsMultiStackDialog() {} - - public RecentsMultiStackDialog(FragmentManager mgr) { - mFragmentManager = mgr; - } - - /** Shows the add-stack dialog. */ - void showAddStackDialog() { - mCurrentDialogType = ADD_STACK_DIALOG; - show(mFragmentManager, TAG); - } - - /** Creates a new add-stack dialog. */ - private void createAddStackDialog(final Context context, LayoutInflater inflater, - AlertDialog.Builder builder, final SystemServicesProxy ssp) { - builder.setTitle("Add Stack - Enter new dimensions"); - mAddStackDialogContent = - inflater.inflate(R.layout.recents_multistack_stack_size_dialog, null, false); - Rect windowRect = ssp.getWindowRect(); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_left, windowRect.left); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_top, windowRect.top); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_right, windowRect.right); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_bottom, windowRect.bottom); - builder.setView(mAddStackDialogContent); - builder.setPositiveButton("Add Stack", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - int left = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_left); - int top = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_top); - int right = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_right); - int bottom = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_bottom); - if (bottom <= top || right <= left) { - Toast.makeText(context, "Invalid dimensions", Toast.LENGTH_SHORT).show(); - dismiss(); - return; - } - - // Prompt the user for the app to start - dismiss(); - mCurrentDialogType = ADD_STACK_PICK_APP_DIALOG; - mAddStackRect = new Rect(left, top, right, bottom); - show(mFragmentManager, TAG); - } - }); - builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - } - }); - } - - /** Creates a new add-stack pick-app dialog. */ - private void createAddStackPickAppDialog(final Context context, LayoutInflater inflater, - AlertDialog.Builder builder, final SystemServicesProxy ssp) { - mLauncherActivities = ssp.getLauncherApps(); - mAddStackIntent = null; - int activityCount = mLauncherActivities.size(); - CharSequence[] activityNames = new CharSequence[activityCount]; - for (int i = 0; i < activityCount; i++) { - activityNames[i] = ssp.getActivityLabel(mLauncherActivities.get(i).activityInfo); - } - builder.setTitle("Add Stack - Pick starting app"); - builder.setSingleChoiceItems(activityNames, -1, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - ActivityInfo ai = mLauncherActivities.get(which).activityInfo; - mAddStackIntent = new Intent(Intent.ACTION_MAIN); - mAddStackIntent.addCategory(Intent.CATEGORY_LAUNCHER); - mAddStackIntent.setComponent(new ComponentName(ai.packageName, ai.name)); - } - }); - builder.setPositiveButton("Add Stack", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - // Display 0 = default display - ssp.createNewStack(0, mAddStackRect, mAddStackIntent); - } - }); - builder.setNegativeButton("Skip", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - // Display 0 = default display - ssp.createNewStack(0, mAddStackRect, null); - } - }); - } - - /** Shows the resize-stack dialog. */ - void showResizeStackDialog() { - mCurrentDialogType = RESIZE_STACK_PICK_STACK_DIALOG; - show(mFragmentManager, TAG); - } - - /** Creates a new resize-stack pick-stack dialog. */ - private void createResizeStackPickStackDialog(final Context context, LayoutInflater inflater, - AlertDialog.Builder builder, final SystemServicesProxy ssp) { - mStacks = ssp.getAllStackInfos(); - mTargetStackIndex.value = -1; - CharSequence[] stackNames = getAllStacksDescriptions(mStacks, -1, null); - builder.setTitle("Resize Stack - Pick stack"); - builder.setSingleChoiceItems(stackNames, mTargetStackIndex.value, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - mTargetStackIndex.value = which; - } - }); - builder.setPositiveButton("Resize Stack", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (mTargetStackIndex.value != -1) { - // Prompt the user for the new dimensions - dismiss(); - mCurrentDialogType = RESIZE_STACK_DIALOG; - show(mFragmentManager, TAG); - } - } - }); - builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - } - }); - } - - /** Creates a new resize-stack dialog. */ - private void createResizeStackDialog(final Context context, LayoutInflater inflater, - AlertDialog.Builder builder, final SystemServicesProxy ssp) { - builder.setTitle("Resize Stack - Enter new dimensions"); - final ActivityManager.StackInfo stack = mStacks.valueAt(mTargetStackIndex.value); - mAddStackDialogContent = - inflater.inflate(R.layout.recents_multistack_stack_size_dialog, null, false); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_left, stack.bounds.left); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_top, stack.bounds.top); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_right, stack.bounds.right); - setDimensionInEditText(mAddStackDialogContent, R.id.inset_bottom, stack.bounds.bottom); - builder.setView(mAddStackDialogContent); - builder.setPositiveButton("Resize Stack", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - int left = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_left); - int top = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_top); - int right = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_right); - int bottom = getDimensionFromEditText(mAddStackDialogContent, R.id.inset_bottom); - if (bottom <= top || right <= left) { - Toast.makeText(context, "Invalid dimensions", Toast.LENGTH_SHORT).show(); - dismiss(); - return; - } - ssp.resizeStack(stack.stackId, new Rect(left, top, right, bottom)); - } - }); - builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - } - }); - } - - /** Shows the remove-stack dialog. */ - void showRemoveStackDialog() { - mCurrentDialogType = REMOVE_STACK_DIALOG; - show(mFragmentManager, TAG); - } - - /** Shows the move-task dialog. */ - void showMoveTaskDialog(Task task) { - mCurrentDialogType = MOVE_TASK_DIALOG; - mTaskToMove = task; - show(mFragmentManager, TAG); - } - - /** Creates a new move-stack dialog. */ - private void createMoveTaskDialog(final Context context, LayoutInflater inflater, - AlertDialog.Builder builder, final SystemServicesProxy ssp) { - mStacks = ssp.getAllStackInfos(); - mTargetStackIndex.value = -1; - CharSequence[] stackNames = getAllStacksDescriptions(mStacks, mTaskToMove.key.stackId, - mTargetStackIndex); - builder.setTitle("Move Task to Stack"); - builder.setSingleChoiceItems(stackNames, mTargetStackIndex.value, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - mTargetStackIndex.value = which; - } - }); - builder.setPositiveButton("Move Task", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (mTargetStackIndex.value != -1) { - ActivityManager.StackInfo toStack = mStacks.valueAt(mTargetStackIndex.value); - if (toStack.stackId != mTaskToMove.key.stackId) { - ssp.moveTaskToStack(mTaskToMove.key.id, toStack.stackId, true); - mTaskToMove.setStackId(toStack.stackId); - } - } - } - }); - builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dismiss(); - } - }); - } - - /** Helper to get an integer value from an edit text. */ - private int getDimensionFromEditText(View container, int id) { - String text = ((EditText) container.findViewById(id)).getText().toString(); - if (text.trim().length() != 0) { - return Integer.parseInt(text.trim()); - } - return 0; - } - - /** Helper to set an integer value to an edit text. */ - private void setDimensionInEditText(View container, int id, int value) { - ((EditText) container.findViewById(id)).setText("" + value); - } - - /** Gets a list of all the stacks. */ - private CharSequence[] getAllStacksDescriptions(SparseArray<ActivityManager.StackInfo> stacks, - int targetStackId, MutableInt indexOfTargetStackId) { - int stackCount = stacks.size(); - CharSequence[] stackNames = new CharSequence[stackCount]; - for (int i = 0; i < stackCount; i++) { - ActivityManager.StackInfo stack = stacks.valueAt(i); - Rect b = stack.bounds; - String desc = "Stack " + stack.stackId + " / " + - "" + (stack.taskIds.length > 0 ? stack.taskIds.length : "No") + " tasks\n" + - "(" + b.left + ", " + b.top + ")-(" + b.right + ", " + b.bottom + ")\n"; - stackNames[i] = desc; - if (targetStackId != -1 && stack.stackId == targetStackId) { - indexOfTargetStackId.value = i; - } - } - return stackNames; - } - - @Override - public Dialog onCreateDialog(Bundle args) { - final Context context = this.getActivity(); - final SystemServicesProxy ssp = RecentsTaskLoader.getInstance().getSystemServicesProxy(); - LayoutInflater inflater = getActivity().getLayoutInflater(); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - switch(mCurrentDialogType) { - case ADD_STACK_DIALOG: - createAddStackDialog(context, inflater, builder, ssp); - break; - case ADD_STACK_PICK_APP_DIALOG: - createAddStackPickAppDialog(context, inflater, builder, ssp); - break; - case MOVE_TASK_DIALOG: - createMoveTaskDialog(context, inflater, builder, ssp); - break; - case RESIZE_STACK_PICK_STACK_DIALOG: - createResizeStackPickStackDialog(context, inflater, builder, ssp); - break; - case RESIZE_STACK_DIALOG: - createResizeStackDialog(context, inflater, builder, ssp); - break; - } - return builder.create(); - } -} diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java new file mode 100644 index 000000000000..d67ecebd3533 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.recents; + +import android.app.ActivityManager; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.app.FragmentManager; +import android.content.ComponentName; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ResolveInfo; +import android.graphics.Rect; +import android.os.Bundle; +import android.util.MutableInt; +import android.util.SparseArray; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; +import android.widget.Toast; +import com.android.systemui.R; +import com.android.systemui.recents.misc.SystemServicesProxy; +import com.android.systemui.recents.model.RecentsTaskLoader; +import com.android.systemui.recents.model.Task; + +import java.util.List; + +/** + * A helper for the dialogs that show when task debugging is on. + */ +public class RecentsResizeTaskDialog extends DialogFragment { + + static final String TAG = "RecentsResizeTaskDialog"; + + // The task we want to resize. + Task mTaskToResize; + FragmentManager mFragmentManager; + View mResizeTaskDialogContent; + + public RecentsResizeTaskDialog() {} + + public RecentsResizeTaskDialog(FragmentManager mgr) { + mFragmentManager = mgr; + } + + /** Shows the resize-task dialog. */ + void showResizeTaskDialog(Task t) { + mTaskToResize = t; + show(mFragmentManager, TAG); + } + + /** Creates a new resize-task dialog. */ + private void createResizeTaskDialog(final Context context, LayoutInflater inflater, + AlertDialog.Builder builder, final SystemServicesProxy ssp) { + builder.setTitle("Resize Task - Enter new dimensions"); + mResizeTaskDialogContent = + inflater.inflate(R.layout.recents_multistack_stack_size_dialog, null, false); + Rect bounds = ssp.getTaskBounds(mTaskToResize.key.stackId); + setDimensionInEditText(mResizeTaskDialogContent, R.id.inset_left, bounds.left); + setDimensionInEditText(mResizeTaskDialogContent, R.id.inset_top, bounds.top); + setDimensionInEditText(mResizeTaskDialogContent, R.id.inset_right, bounds.right); + setDimensionInEditText(mResizeTaskDialogContent, R.id.inset_bottom, bounds.bottom); + builder.setView(mResizeTaskDialogContent); + builder.setPositiveButton("Resize Task", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + int left = getDimensionFromEditText(mResizeTaskDialogContent, R.id.inset_left); + int top = getDimensionFromEditText(mResizeTaskDialogContent, R.id.inset_top); + int right = getDimensionFromEditText(mResizeTaskDialogContent, R.id.inset_right); + int bottom = getDimensionFromEditText(mResizeTaskDialogContent, R.id.inset_bottom); + if (bottom <= top || right <= left) { + Toast.makeText(context, "Invalid dimensions", Toast.LENGTH_SHORT).show(); + dismiss(); + return; + } + ssp.resizeTask(mTaskToResize.key.id, new Rect(left, top, right, bottom)); + dismiss(); + } + }); + builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dismiss(); + } + }); + } + + /** Helper to get an integer value from an edit text. */ + private int getDimensionFromEditText(View container, int id) { + String text = ((EditText) container.findViewById(id)).getText().toString(); + if (text.trim().length() != 0) { + return Integer.parseInt(text.trim()); + } + return 0; + } + + /** Helper to set an integer value to an edit text. */ + private void setDimensionInEditText(View container, int id, int value) { + ((EditText) container.findViewById(id)).setText("" + value); + } + + @Override + public Dialog onCreateDialog(Bundle args) { + final Context context = this.getActivity(); + final SystemServicesProxy ssp = RecentsTaskLoader.getInstance().getSystemServicesProxy(); + LayoutInflater inflater = getActivity().getLayoutInflater(); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + createResizeTaskDialog(context, inflater, builder, ssp); + return builder.create(); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index 72040fe4f9f4..a473a29fd28b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -233,23 +233,6 @@ public class SystemServicesProxy { return null; } - /** Returns a list of all the launcher apps sorted by name. */ - public List<ResolveInfo> getLauncherApps() { - if (mPm == null) return new ArrayList<ResolveInfo>(); - - final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); - mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); - List<ResolveInfo> activities = mPm.queryIntentActivities(mainIntent, 0 /* flags */); - Collections.sort(activities, new Comparator<ResolveInfo>() { - @Override - public int compare(ResolveInfo o1, ResolveInfo o2) { - return getActivityLabel(o1.activityInfo).compareTo( - getActivityLabel(o2.activityInfo)); - } - }); - return activities; - } - /** Returns whether the recents is currently running */ public boolean isRecentsTopMost(ActivityManager.RunningTaskInfo topTask, AtomicBoolean isHomeTopMost) { @@ -272,27 +255,20 @@ public class SystemServicesProxy { return false; } - /** Create a new stack. */ - public void createNewStack(int displayId, Rect bounds, Intent activity) { - try { - IActivityContainer container = mIam.createStackOnDisplay(displayId); - if (container != null) { - // Resize the stack - resizeStack(container.getStackId(), bounds); - // Start the new activity on that stack - container.startActivity(activity); - } - } catch (RemoteException e) { - e.printStackTrace(); - } + /** Get the bounds of a stack / task. */ + public Rect getTaskBounds(int stackId) { + ActivityManager.StackInfo info = getAllStackInfos().get(stackId); + if (info != null) + return getAllStackInfos().get(stackId).bounds; + return new Rect(); } - /** Resizes a stack. */ - public void resizeStack(int stackId, Rect bounds) { + /** Resize a given task. */ + public void resizeTask(int taskId, Rect bounds) { if (mIam == null) return; try { - mIam.resizeStack(stackId, bounds); + mIam.resizeTask(taskId, bounds); } catch (RemoteException e) { e.printStackTrace(); } @@ -406,18 +382,6 @@ public class SystemServicesProxy { } } - /** Moves a task to another stack. */ - public void moveTaskToStack(int taskId, int stackId, boolean toTop) { - if (mIam == null) return; - if (Constants.DebugFlags.App.EnableSystemServicesProxy) return; - - try { - mIam.moveTaskToStack(taskId, stackId, toTop); - } catch (RemoteException e) { - e.printStackTrace(); - } - } - /** Removes the task */ public void removeTask(int taskId) { if (mAm == null) return; 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 d46e41b74972..448a7a9f3ceb 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -59,17 +59,12 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV public void onExitToHomeAnimationTriggered(); public void onScreenPinningRequest(); - public void onMultiStackAddStack(); - public void onMultiStackResizeStack(); - public void onMultiStackRemoveStack(); - public void onMultiStackMoveTask(Task t); + public void onTaskResize(Task t); } RecentsConfiguration mConfig; LayoutInflater mInflater; DebugOverlayView mDebugOverlay; - ViewStub mMultiStackDebugStub; - View mMultiStackDebugView; RecentsViewLayoutAlgorithm mLayoutAlgorithm; ArrayList<TaskStack> mStacks; @@ -96,28 +91,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV mLayoutAlgorithm = new RecentsViewLayoutAlgorithm(mConfig); } - @Override - protected void onFinishInflate() { - if (!mConfig.multiStackEnabled) return; - - mMultiStackDebugStub = (ViewStub) findViewById(R.id.multistack_debug_view_stub); - if (mMultiStackDebugView == null) { - mMultiStackDebugView = mMultiStackDebugStub.inflate(); - mMultiStackDebugView.findViewById(R.id.add_stack).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mCb.onMultiStackAddStack(); - } - }); - mMultiStackDebugView.findViewById(R.id.resize_stack).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mCb.onMultiStackResizeStack(); - } - }); - } - } - /** Sets the callbacks */ public void setCallbacks(RecentsViewCallbacks cb) { mCb = cb; @@ -167,11 +140,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } } - // Bring the debug view to the front - if (mMultiStackDebugView != null) { - mMultiStackDebugView.bringToFront(); - } - // Trigger a new layout requestLayout(); } @@ -330,11 +298,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } } - // Measure the multistack debug view - if (mMultiStackDebugView != null) { - mMultiStackDebugView.measure(width, height); - } - setMeasuredDimension(width, height); } @@ -363,18 +326,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV top + stackView.getMeasuredHeight()); } } - - // Layout the multistack debug view - if (mMultiStackDebugView != null) { - Rect taskStackBounds = new Rect(); - mConfig.getAvailableTaskStackBounds(getMeasuredWidth(), getMeasuredHeight(), - mConfig.systemInsets.top, mConfig.systemInsets.right, taskStackBounds); - mMultiStackDebugView.layout(left, - taskStackBounds.bottom - mConfig.systemInsets.bottom - - mMultiStackDebugView.getMeasuredHeight(), - left + mMultiStackDebugView.getMeasuredWidth(), - taskStackBounds.bottom - mConfig.systemInsets.bottom); - } } @Override @@ -638,9 +589,9 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } @Override - public void onMultiStackMoveTask(Task t) { + public void onTaskResize(Task t) { if (mCb != null) { - mCb.onMultiStackMoveTask(t); + mCb.onTaskResize(t); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index 21975b01f8fd..e81a1d01434d 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -61,7 +61,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal public void onTaskStackFilterTriggered(); public void onTaskStackUnfilterTriggered(); - public void onMultiStackMoveTask(Task t); + public void onTaskResize(Task t); } RecentsConfiguration mConfig; @@ -1339,9 +1339,9 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal } @Override - public void onMultiStackMoveTask(TaskView tv) { + public void onTaskResize(TaskView tv) { if (mCb != null) { - mCb.onMultiStackMoveTask(tv.getTask()); + mCb.onTaskResize(tv.getTask()); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java index 6cdddc5c1a9f..509560ebf52b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java @@ -24,6 +24,7 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewParent; import com.android.systemui.recents.Constants; +import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsConfiguration; import java.util.List; @@ -53,6 +54,8 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { int mScrollTouchSlop; // The page touch slop is used to calculate when we start swiping float mPagingTouchSlop; + // Used to calculate when a tap is outside a task view rectangle. + final int mWindowTouchSlop; SwipeHelper mSwipeHelper; boolean mInterceptedBySwipeHelper; @@ -64,6 +67,7 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mMaximumVelocity = configuration.getScaledMaximumFlingVelocity(); mScrollTouchSlop = configuration.getScaledTouchSlop(); mPagingTouchSlop = configuration.getScaledPagingTouchSlop(); + mWindowTouchSlop = configuration.getScaledWindowTouchSlop(); mSv = sv; mScroller = scroller; mConfig = config; @@ -314,6 +318,9 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { } else if (mScroller.isScrollOutOfBounds()) { // Animate the scroll back into bounds mScroller.animateBoundScroll(); + } else if (mActiveTaskView == null) { + // This tap didn't start on a task. + maybeHideRecentsFromBackgroundTap((int) ev.getX(), (int) ev.getY()); } mActivePointerId = INACTIVE_POINTER_ID; @@ -351,6 +358,34 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { return true; } + /** Hides recents if the up event at (x, y) is a tap on the background area. */ + void maybeHideRecentsFromBackgroundTap(int x, int y) { + // Ignore the up event if it's too far from its start position. The user might have been + // trying to scroll or swipe. + int dx = Math.abs(mInitialMotionX - x); + int dy = Math.abs(mInitialMotionY - y); + if (dx > mScrollTouchSlop || dy > mScrollTouchSlop) { + return; + } + + // Shift the tap position toward the center of the task stack and check to see if it would + // have hit a view. The user might have tried to tap on a task and missed slightly. + int shiftedX = x; + if (x > mSv.getTouchableRegion().centerX()) { + shiftedX -= mWindowTouchSlop; + } else { + shiftedX += mWindowTouchSlop; + } + if (findViewAtPoint(shiftedX, y) != null) { + return; + } + + // The user intentionally tapped on the background, which is like a tap on the "desktop". + // Hide recents and transition to the launcher. + Recents recents = Recents.getInstanceAndStartIfNeeded(mSv.getContext()); + recents.hideRecents(false /* altTab */, true /* homeKey */); + } + /** Handles generic motion events */ public boolean onGenericMotionEvent(MotionEvent ev) { if ((ev.getSource() & InputDevice.SOURCE_CLASS_POINTER) == diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java index 098f2f9f8a53..682775bb4928 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java @@ -46,7 +46,7 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, public void onTaskViewClipStateChanged(TaskView tv); public void onTaskViewFocusChanged(TaskView tv, boolean focused); - public void onMultiStackMoveTask(TaskView tv); + public void onTaskResize(TaskView tv); } RecentsConfiguration mConfig; @@ -732,7 +732,7 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, dismissTask(); } else if (v == mHeaderView.mMoveTaskButton) { if (mCb != null) { - mCb.onMultiStackMoveTask(tv); + mCb.onTaskResize(tv); } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonRipple.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonRipple.java index a3ebb096b4d3..3f63b5fac5f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonRipple.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonRipple.java @@ -26,7 +26,7 @@ import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; import android.view.View; import android.view.animation.Interpolator; @@ -106,7 +106,7 @@ public class KeyButtonRipple extends Drawable { public void draw(Canvas canvas) { mSupportHardware = canvas.isHardwareAccelerated(); if (mSupportHardware) { - drawHardware((HardwareCanvas) canvas); + drawHardware((DisplayListCanvas) canvas); } else { drawSoftware(canvas); } @@ -131,7 +131,7 @@ public class KeyButtonRipple extends Drawable { return getBounds().width() > getBounds().height(); } - private void drawHardware(HardwareCanvas c) { + private void drawHardware(DisplayListCanvas c) { if (mDrawingHardwareGlow) { c.drawRoundRect(mLeftProp, mTopProp, mRightProp, mBottomProp, mRxProp, mRyProp, mPaintProp); diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java index 4d0868a4ed01..9ec886cbc3f9 100644 --- a/services/core/java/com/android/server/InputMethodManagerService.java +++ b/services/core/java/com/android/server/InputMethodManagerService.java @@ -764,9 +764,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub InputMethodInfo defIm = null; for (InputMethodInfo imi : mMethodList) { - if (defIm == null) { - if (InputMethodUtils.isValidSystemDefaultIme( - mSystemReady, imi, context)) { + if (defIm == null && mSystemReady) { + final Locale systemLocale = context.getResources().getConfiguration().locale; + if (InputMethodUtils.isSystemImeThatHasSubtypeOf(imi, context, + true /* checkDefaultAttribute */, systemLocale, false /* checkCountry */, + InputMethodUtils.SUBTYPE_MODE_ANY)) { defIm = imi; Slog.i(TAG, "Selected default: " + imi.getId()); } diff --git a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java index ae4006d327a1..fd4974e61d06 100644 --- a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java +++ b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java @@ -30,10 +30,10 @@ class ActivityManagerDebugConfig { // will be tagged with their class names instead fot the generic tag. static final boolean TAG_WITH_CLASS_NAME = false; - // While debugging it is sometimes useful to have the category name of the log prepended to the + // While debugging it is sometimes useful to have the category name of the log appended to the // base log tag to make sifting through logs with the same base tag easier. By setting this - // constant to true, the category name of the log point will be prepended to the log tag. - static final boolean PREPEND_CATEGORY_NAME = false; + // constant to true, the category name of the log point will be appended to the log tag. + static final boolean APPEND_CATEGORY_NAME = false; // Default log tag for the activity manager package. static final String TAG_AM = "ActivityManager"; @@ -74,12 +74,17 @@ class ActivityManagerDebugConfig { static final boolean DEBUG_USER_LEAVING = DEBUG_ALL || false; static final boolean DEBUG_VISBILITY = DEBUG_ALL || false; - static final String POSTFIX_BACKUP = (PREPEND_CATEGORY_NAME) ? "_Backup" : ""; - static final String POSTFIX_BROADCAST = (PREPEND_CATEGORY_NAME) ? "_Broadcast" : ""; - static final String POSTFIX_CLEANUP = (PREPEND_CATEGORY_NAME) ? "_Cleanup" : ""; + static final String POSTFIX_BACKUP = (APPEND_CATEGORY_NAME) ? "_Backup" : ""; + static final String POSTFIX_BROADCAST = (APPEND_CATEGORY_NAME) ? "_Broadcast" : ""; + static final String POSTFIX_CLEANUP = (APPEND_CATEGORY_NAME) ? "_Cleanup" : ""; + static final String POSTFIX_CONFIGURATION = (APPEND_CATEGORY_NAME) ? "_Configuration" : ""; + static final String POSTFIX_FOCUS = (APPEND_CATEGORY_NAME) ? "_Focus" : ""; + static final String POSTFIX_IMMERSIVE = (APPEND_CATEGORY_NAME) ? "_Immersive" : ""; + static final String POSTFIX_LRU = (APPEND_CATEGORY_NAME) ? "_LRU" : ""; static final String POSTFIX_MU = "_MU"; - static final String POSTFIX_SERVICE = (PREPEND_CATEGORY_NAME) ? "_Service" : ""; + static final String POSTFIX_OOM_ADJ = (APPEND_CATEGORY_NAME) ? "_OomAdj" : ""; + static final String POSTFIX_SERVICE = (APPEND_CATEGORY_NAME) ? "_Service" : ""; static final String POSTFIX_SERVICE_EXECUTING = - (PREPEND_CATEGORY_NAME) ? "_ServiceExecuting" : ""; + (APPEND_CATEGORY_NAME) ? "_ServiceExecuting" : ""; } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index a366c7bb9003..dcee96a1618d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -254,15 +254,14 @@ public final class ActivityManagerService extends ActivityManagerNative private static final String TAG_BACKUP = TAG + POSTFIX_BACKUP; private static final String TAG_BROADCAST = TAG + POSTFIX_BROADCAST; private static final String TAG_CLEANUP = TAG + POSTFIX_CLEANUP; + private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION; + private static final String TAG_FOCUS = TAG + POSTFIX_FOCUS; + private static final String TAG_IMMERSIVE = TAG + POSTFIX_IMMERSIVE; + private static final String TAG_LRU = TAG + POSTFIX_LRU; private static final String TAG_MU = TAG + POSTFIX_MU; + private static final String TAG_OOM_ADJ = TAG + POSTFIX_OOM_ADJ; // TODO(ogunwale): Migrate all the constants below to use ActivityManagerDebugConfig class. - static final boolean DEBUG_CONFIGURATION = DEBUG_ALL || false; - static final boolean DEBUG_FOCUS = false; - static final boolean DEBUG_IMMERSIVE = DEBUG_ALL || false; - static final boolean DEBUG_MU = DEBUG_ALL || false; - static final boolean DEBUG_OOM_ADJ = DEBUG_ALL || false; - static final boolean DEBUG_LRU = DEBUG_ALL || false; static final boolean DEBUG_PAUSE = DEBUG_ALL || false; static final boolean DEBUG_POWER = DEBUG_ALL || false; static final boolean DEBUG_POWER_QUICK = DEBUG_POWER || false; @@ -283,8 +282,6 @@ public final class ActivityManagerService extends ActivityManagerNative static final boolean DEBUG_PSS = DEBUG_ALL || false; static final boolean DEBUG_LOCKSCREEN = DEBUG_ALL || false; static final boolean DEBUG_RECENTS = DEBUG_ALL || false; - static final boolean VALIDATE_TOKENS = false; - static final boolean SHOW_ACTIVITY_START_TIME = true; // Control over CPU and battery monitoring. static final long BATTERY_STATS_TIME = 30*60*1000; // write battery stats every 30 minutes. @@ -1705,10 +1702,9 @@ public final class ActivityManagerService extends ActivityManagerNative case IMMERSIVE_MODE_LOCK_MSG: { final boolean nextState = (msg.arg1 != 0); if (mUpdateLock.isHeld() != nextState) { - if (DEBUG_IMMERSIVE) { - final ActivityRecord r = (ActivityRecord) msg.obj; - Slog.d(TAG, "Applying new update lock state '" + nextState + "' for " + r); - } + if (DEBUG_IMMERSIVE) Slog.d(TAG_IMMERSIVE, + "Applying new update lock state '" + nextState + + "' for " + (ActivityRecord)msg.obj); if (nextState) { mUpdateLock.acquire(); } else { @@ -2480,15 +2476,15 @@ public final class ActivityManagerService extends ActivityManagerNative } final void setFocusedActivityLocked(ActivityRecord r, String reason) { - if (mFocusedActivity != r) { - if (DEBUG_FOCUS) Slog.d(TAG, "setFocusedActivityLocked: r=" + r); + if (r != null && mFocusedActivity != r) { + if (DEBUG_FOCUS) Slog.d(TAG_FOCUS, "setFocusedActivityLocked: r=" + r); mFocusedActivity = r; if (r.task != null && r.task.voiceInteractor != null) { startRunningVoiceLocked(r.task.voiceSession, r.info.applicationInfo.uid); } else { finishRunningVoiceLocked(); } - if (r != null && mStackSupervisor.setFocusedStack(r, reason + " setFocusedActivity")) { + if (mStackSupervisor.setFocusedStack(r, reason + " setFocusedActivity")) { mWindowManager.setFocusedApp(r.appToken, true); } applyUpdateLockStateLocked(r); @@ -2505,7 +2501,7 @@ public final class ActivityManagerService extends ActivityManagerNative @Override public void setFocusedStack(int stackId) { - if (DEBUG_FOCUS) Slog.d(TAG, "setFocusedStack: stackId=" + stackId); + if (DEBUG_FOCUS) Slog.d(TAG_FOCUS, "setFocusedStack: stackId=" + stackId); synchronized (ActivityManagerService.this) { ActivityStack stack = mStackSupervisor.getStack(stackId); if (stack != null) { @@ -2587,7 +2583,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (index > 0) { index--; } - if (DEBUG_LRU) Slog.d(TAG, "Moving dep from " + lrui + " to " + index + if (DEBUG_LRU) Slog.d(TAG_LRU, "Moving dep from " + lrui + " to " + index + " in LRU list: " + app); mLruProcesses.add(index, app); return index; @@ -2633,13 +2629,13 @@ public final class ActivityManagerService extends ActivityManagerNative if (hasActivity) { final int N = mLruProcesses.size(); if (N > 0 && mLruProcesses.get(N-1) == app) { - if (DEBUG_LRU) Slog.d(TAG, "Not moving, already top activity: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Not moving, already top activity: " + app); return; } } else { if (mLruProcessServiceStart > 0 && mLruProcesses.get(mLruProcessServiceStart-1) == app) { - if (DEBUG_LRU) Slog.d(TAG, "Not moving, already top other: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Not moving, already top other: " + app); return; } } @@ -2649,7 +2645,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.persistent && lrui >= 0) { // We don't care about the position of persistent processes, as long as // they are in the list. - if (DEBUG_LRU) Slog.d(TAG, "Not moving, persistent: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Not moving, persistent: " + app); return; } @@ -2718,27 +2714,29 @@ public final class ActivityManagerService extends ActivityManagerNative int nextIndex; if (hasActivity) { final int N = mLruProcesses.size(); - if (app.activities.size() == 0 && mLruProcessActivityStart < (N-1)) { + if (app.activities.size() == 0 && mLruProcessActivityStart < (N - 1)) { // Process doesn't have activities, but has clients with // activities... move it up, but one below the top (the top // should always have a real activity). - if (DEBUG_LRU) Slog.d(TAG, "Adding to second-top of LRU activity list: " + app); - mLruProcesses.add(N-1, app); + if (DEBUG_LRU) Slog.d(TAG_LRU, + "Adding to second-top of LRU activity list: " + app); + mLruProcesses.add(N - 1, app); // To keep it from spamming the LRU list (by making a bunch of clients), // we will push down any other entries owned by the app. final int uid = app.info.uid; - for (int i=N-2; i>mLruProcessActivityStart; i--) { + for (int i = N - 2; i > mLruProcessActivityStart; i--) { ProcessRecord subProc = mLruProcesses.get(i); if (subProc.info.uid == uid) { // We want to push this one down the list. If the process after // it is for the same uid, however, don't do so, because we don't // want them internally to be re-ordered. - if (mLruProcesses.get(i-1).info.uid != uid) { - if (DEBUG_LRU) Slog.d(TAG, "Pushing uid " + uid + " swapping at " + i - + ": " + mLruProcesses.get(i) + " : " + mLruProcesses.get(i-1)); + if (mLruProcesses.get(i - 1).info.uid != uid) { + if (DEBUG_LRU) Slog.d(TAG_LRU, + "Pushing uid " + uid + " swapping at " + i + ": " + + mLruProcesses.get(i) + " : " + mLruProcesses.get(i - 1)); ProcessRecord tmp = mLruProcesses.get(i); - mLruProcesses.set(i, mLruProcesses.get(i-1)); - mLruProcesses.set(i-1, tmp); + mLruProcesses.set(i, mLruProcesses.get(i - 1)); + mLruProcesses.set(i - 1, tmp); i--; } } else { @@ -2748,13 +2746,13 @@ public final class ActivityManagerService extends ActivityManagerNative } } else { // Process has activities, put it at the very tipsy-top. - if (DEBUG_LRU) Slog.d(TAG, "Adding to top of LRU activity list: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Adding to top of LRU activity list: " + app); mLruProcesses.add(app); } nextIndex = mLruProcessServiceStart; } else if (hasService) { // Process has services, put it at the top of the service list. - if (DEBUG_LRU) Slog.d(TAG, "Adding to top of LRU service list: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Adding to top of LRU service list: " + app); mLruProcesses.add(mLruProcessActivityStart, app); nextIndex = mLruProcessServiceStart; mLruProcessActivityStart++; @@ -2765,7 +2763,7 @@ public final class ActivityManagerService extends ActivityManagerNative // If there is a client, don't allow the process to be moved up higher // in the list than that client. int clientIndex = mLruProcesses.lastIndexOf(client); - if (DEBUG_LRU && clientIndex < 0) Slog.d(TAG, "Unknown client " + client + if (DEBUG_LRU && clientIndex < 0) Slog.d(TAG_LRU, "Unknown client " + client + " when updating " + app); if (clientIndex <= lrui) { // Don't allow the client index restriction to push it down farther in the @@ -2776,7 +2774,7 @@ public final class ActivityManagerService extends ActivityManagerNative index = clientIndex; } } - if (DEBUG_LRU) Slog.d(TAG, "Adding at " + index + " of LRU list: " + app); + if (DEBUG_LRU) Slog.d(TAG_LRU, "Adding at " + index + " of LRU list: " + app); mLruProcesses.add(index, app); nextIndex = index-1; mLruProcessActivityStart++; @@ -5599,7 +5597,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.instrumentationClass != null) { ensurePackageDexOpt(app.instrumentationClass.getPackageName()); } - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Binding proc " + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Binding proc " + processName + " with config " + mConfiguration); ApplicationInfo appInfo = app.instrumentationInfo != null ? app.instrumentationInfo : app.info; @@ -6137,8 +6135,7 @@ public final class ActivityManagerService extends ActivityManagerNative int callingUid, int userId, IBinder token, String resultWho, int requestCode, Intent[] intents, String[] resolvedTypes, int flags, Bundle options) { - if (DEBUG_MU) - Slog.v(TAG_MU, "getIntentSenderLocked(): uid=" + callingUid); + if (DEBUG_MU) Slog.v(TAG_MU, "getIntentSenderLocked(): uid=" + callingUid); ActivityRecord activity = null; if (type == ActivityManager.INTENT_SENDER_ACTIVITY_RESULT) { activity = ActivityRecord.isInStackLocked(token); @@ -8616,8 +8613,8 @@ public final class ActivityManagerService extends ActivityManagerNative STOCK_PM_FLAGS | PackageManager.GET_URI_PERMISSION_PATTERNS); } catch (RemoteException ex) { } - if (DEBUG_MU) - Slog.v(TAG_MU, "generateApplicationProvidersLocked, app.info.uid = " + app.uid); + if (DEBUG_MU) Slog.v(TAG_MU, + "generateApplicationProvidersLocked, app.info.uid = " + app.uid); int userId = app.userId; if (providers != null) { int N = providers.size(); @@ -8644,8 +8641,8 @@ public final class ActivityManagerService extends ActivityManagerNative cpr = new ContentProviderRecord(this, cpi, app.info, comp, singleton); mProviderMap.putProviderByClass(comp, cpr); } - if (DEBUG_MU) - Slog.v(TAG_MU, "generateApplicationProvidersLocked, cpi.uid = " + cpr.uid); + if (DEBUG_MU) Slog.v(TAG_MU, + "generateApplicationProvidersLocked, cpi.uid = " + cpr.uid); app.pubProviders.put(cpi.name, cpr); if (!cpi.multiprocess || !"android".equals(cpi.packageName)) { // Don't add this if it is a platform component that is marked @@ -9174,10 +9171,9 @@ public final class ActivityManagerService extends ActivityManagerNative return null; } try { - if (DEBUG_MU) { - Slog.v(TAG_MU, "Waiting to start provider " + cpr + " launchingApp=" - + cpr.launchingApp); - } + if (DEBUG_MU) Slog.v(TAG_MU, + "Waiting to start provider " + cpr + + " launchingApp=" + cpr.launchingApp); if (conn != null) { conn.waiting = true; } @@ -9299,8 +9295,7 @@ public final class ActivityManagerService extends ActivityManagerNative enforceNotIsolatedCaller("publishContentProviders"); synchronized (this) { final ProcessRecord r = getRecordForAppLocked(caller); - if (DEBUG_MU) - Slog.v(TAG_MU, "ProcessRecord uid = " + r.uid); + if (DEBUG_MU) Slog.v(TAG_MU, "ProcessRecord uid = " + r.uid); if (r == null) { throw new SecurityException( "Unable to find app for caller " + caller @@ -9317,8 +9312,7 @@ public final class ActivityManagerService extends ActivityManagerNative continue; } ContentProviderRecord dst = r.pubProviders.get(src.info.name); - if (DEBUG_MU) - Slog.v(TAG_MU, "ContentProviderRecord uid = " + dst.uid); + if (DEBUG_MU) Slog.v(TAG_MU, "ContentProviderRecord uid = " + dst.uid); if (dst != null) { ComponentName comp = new ComponentName(dst.info.packageName, dst.info.name); mProviderMap.putProviderByClass(comp, dst); @@ -10400,9 +10394,7 @@ public final class ActivityManagerService extends ActivityManagerNative // update associated state if we're frontmost if (r == mFocusedActivity) { - if (DEBUG_IMMERSIVE) { - Slog.d(TAG, "Frontmost changed immersion: "+ r); - } + if (DEBUG_IMMERSIVE) Slog.d(TAG_IMMERSIVE, "Frontmost changed immersion: "+ r); applyUpdateLockStateLocked(r); } } @@ -10751,7 +10743,8 @@ public final class ActivityManagerService extends ActivityManagerNative // This happens before any activities are started, so we can // change mConfiguration in-place. updateConfigurationLocked(configuration, null, false, true); - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Initial config: " + mConfiguration); + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, + "Initial config: " + mConfiguration); } } @@ -15094,10 +15087,9 @@ public final class ActivityManagerService extends ActivityManagerNative result = UserHandle.isSameApp(aInfo.uid, Process.PHONE_UID) || (aInfo.flags & ApplicationInfo.FLAG_PERSISTENT) != 0; } - if (DEBUG_MU) { - Slog.v(TAG, "isSingleton(" + componentProcessName + ", " + aInfo - + ", " + className + ", 0x" + Integer.toHexString(flags) + ") = " + result); - } + if (DEBUG_MU) Slog.v(TAG_MU, + "isSingleton(" + componentProcessName + ", " + aInfo + ", " + className + ", 0x" + + Integer.toHexString(flags) + ") = " + result); return result; } @@ -16484,9 +16476,8 @@ public final class ActivityManagerService extends ActivityManagerNative Configuration newConfig = new Configuration(mConfiguration); changes = newConfig.updateFrom(values); if (changes != 0) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) { - Slog.i(TAG, "Updating configuration to: " + values); - } + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.i(TAG_CONFIGURATION, + "Updating configuration to: " + values); EventLog.writeEvent(EventLogTags.CONFIGURATION_CHANGED, changes); @@ -16537,7 +16528,7 @@ public final class ActivityManagerService extends ActivityManagerNative ProcessRecord app = mLruProcesses.get(i); try { if (app.thread != null) { - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending to proc " + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Sending to proc " + app.processName + " new config " + mConfiguration); app.thread.scheduleConfigurationChanged(configCopy); } @@ -17740,15 +17731,15 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.curAdj != app.setAdj) { ProcessList.setOomAdj(app.pid, app.info.uid, app.curAdj); - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v( - TAG, "Set " + app.pid + " " + app.processName + - " adj " + app.curAdj + ": " + app.adjType); + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, + "Set " + app.pid + " " + app.processName + " adj " + app.curAdj + ": " + + app.adjType); app.setAdj = app.curAdj; } if (app.setSchedGroup != app.curSchedGroup) { app.setSchedGroup = app.curSchedGroup; - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Setting process group of " + app.processName + " to " + app.curSchedGroup); if (app.waitingToKill != null && @@ -17832,7 +17823,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } if (app.setProcState != app.curProcState) { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Proc state change of " + app.processName + " to " + app.curProcState); boolean setImportant = app.setProcState < ActivityManager.PROCESS_STATE_SERVICE; @@ -18097,7 +18088,7 @@ public final class ActivityManagerService extends ActivityManagerNative // step that cached level. app.curRawAdj = curCachedAdj; app.curAdj = app.modifyRawOomAdj(curCachedAdj); - if (DEBUG_LRU && false) Slog.d(TAG, "Assigning activity LRU #" + i + if (DEBUG_LRU && false) Slog.d(TAG_LRU, "Assigning activity LRU #" + i + " adj: " + app.curAdj + " (curCachedAdj=" + curCachedAdj + ")"); if (curCachedAdj != nextCachedAdj) { @@ -18120,7 +18111,7 @@ public final class ActivityManagerService extends ActivityManagerNative // state is still as a service), which is what we want. app.curRawAdj = curEmptyAdj; app.curAdj = app.modifyRawOomAdj(curEmptyAdj); - if (DEBUG_LRU && false) Slog.d(TAG, "Assigning empty LRU #" + i + if (DEBUG_LRU && false) Slog.d(TAG_LRU, "Assigning empty LRU #" + i + " adj: " + app.curAdj + " (curEmptyAdj=" + curEmptyAdj + ")"); if (curEmptyAdj != nextEmptyAdj) { @@ -18210,13 +18201,13 @@ public final class ActivityManagerService extends ActivityManagerNative // We always allow the memory level to go up (better). We only allow it to go // down if we are in a state where that is allowed, *and* the total number of processes // has gone down since last time. - if (DEBUG_OOM_ADJ) Slog.d(TAG, "oom: memFactor=" + memFactor + " last=" + mLastMemoryLevel - + " allowLow=" + mAllowLowerMemLevel + " numProcs=" + mLruProcesses.size() - + " last=" + mLastNumProcesses); + if (DEBUG_OOM_ADJ) Slog.d(TAG_OOM_ADJ, "oom: memFactor=" + memFactor + + " last=" + mLastMemoryLevel + " allowLow=" + mAllowLowerMemLevel + + " numProcs=" + mLruProcesses.size() + " last=" + mLastNumProcesses); if (memFactor > mLastMemoryLevel) { if (!mAllowLowerMemLevel || mLruProcesses.size() >= mLastNumProcesses) { memFactor = mLastMemoryLevel; - if (DEBUG_OOM_ADJ) Slog.d(TAG, "Keeping last mem factor!"); + if (DEBUG_OOM_ADJ) Slog.d(TAG_OOM_ADJ, "Keeping last mem factor!"); } } mLastMemoryLevel = memFactor; @@ -18256,9 +18247,8 @@ public final class ActivityManagerService extends ActivityManagerNative && !app.killedByAm) { if (app.trimMemoryLevel < curLevel && app.thread != null) { try { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, - "Trimming memory of " + app.processName - + " to " + curLevel); + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, + "Trimming memory of " + app.processName + " to " + curLevel); app.thread.scheduleTrimMemory(curLevel); } catch (RemoteException e) { } @@ -18293,7 +18283,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.trimMemoryLevel < ComponentCallbacks2.TRIM_MEMORY_BACKGROUND && app.thread != null) { try { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Trimming memory of heavy-weight " + app.processName + " to " + ComponentCallbacks2.TRIM_MEMORY_BACKGROUND); app.thread.scheduleTrimMemory( @@ -18311,7 +18301,7 @@ public final class ActivityManagerService extends ActivityManagerNative final int level = ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN; if (app.trimMemoryLevel < level && app.thread != null) { try { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Trimming memory of bg-ui " + app.processName + " to " + level); app.thread.scheduleTrimMemory(level); @@ -18322,7 +18312,7 @@ public final class ActivityManagerService extends ActivityManagerNative } if (app.trimMemoryLevel < fgTrimLevel && app.thread != null) { try { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Trimming memory of fg " + app.processName + " to " + fgTrimLevel); app.thread.scheduleTrimMemory(fgTrimLevel); @@ -18348,7 +18338,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.trimMemoryLevel < ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN && app.thread != null) { try { - if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG_OOM_ADJ, "Trimming memory of ui hidden " + app.processName + " to " + ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN); app.thread.scheduleTrimMemory( @@ -18383,12 +18373,12 @@ public final class ActivityManagerService extends ActivityManagerNative } if (DEBUG_OOM_ADJ) { + final long duration = SystemClock.uptimeMillis() - now; if (false) { - RuntimeException here = new RuntimeException("here"); - here.fillInStackTrace(); - Slog.d(TAG, "Did OOM ADJ in " + (SystemClock.uptimeMillis()-now) + "ms", here); + Slog.d(TAG_OOM_ADJ, "Did OOM ADJ in " + duration + "ms", + new RuntimeException("here").fillInStackTrace()); } else { - Slog.d(TAG, "Did OOM ADJ in " + (SystemClock.uptimeMillis()-now) + "ms"); + Slog.d(TAG_OOM_ADJ, "Did OOM ADJ in " + duration + "ms"); } } } diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index ca2721c561ff..d34b33be33e5 100755 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -76,6 +76,7 @@ import java.util.Objects; final class ActivityRecord { private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityRecord" : TAG_AM; + private static final boolean SHOW_ACTIVITY_START_TIME = true; static final boolean DEBUG_SAVED_STATE = ActivityStackSupervisor.DEBUG_SAVED_STATE; final public static String RECENTS_PACKAGE_NAME = "com.android.systemui.recents"; @@ -939,7 +940,7 @@ final class ActivityRecord { final long thisTime = curTime - fullyDrawnStartTime; final long totalTime = stack.mFullyDrawnStartTime != 0 ? (curTime - stack.mFullyDrawnStartTime) : thisTime; - if (ActivityManagerService.SHOW_ACTIVITY_START_TIME) { + if (SHOW_ACTIVITY_START_TIME) { Trace.asyncTraceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, "drawing", 0); EventLog.writeEvent(EventLogTags.AM_ACTIVITY_FULLY_DRAWN_TIME, userId, System.identityHashCode(this), shortComponentName, @@ -973,7 +974,7 @@ final class ActivityRecord { final long thisTime = curTime - displayStartTime; final long totalTime = stack.mLaunchStartTime != 0 ? (curTime - stack.mLaunchStartTime) : thisTime; - if (ActivityManagerService.SHOW_ACTIVITY_START_TIME) { + if (SHOW_ACTIVITY_START_TIME) { Trace.asyncTraceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, "launching", 0); EventLog.writeEvent(EventLogTags.AM_ACTIVITY_LAUNCH_TIME, userId, System.identityHashCode(this), shortComponentName, diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 456ed3330eac..b102a0731736 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -17,7 +17,6 @@ package com.android.server.am; import static com.android.server.am.ActivityManagerDebugConfig.*; -import static com.android.server.am.ActivityManagerService.DEBUG_CONFIGURATION; import static com.android.server.am.ActivityManagerService.DEBUG_PAUSE; import static com.android.server.am.ActivityManagerService.DEBUG_RESULTS; import static com.android.server.am.ActivityManagerService.DEBUG_STACK; @@ -26,7 +25,6 @@ import static com.android.server.am.ActivityManagerService.DEBUG_TASKS; import static com.android.server.am.ActivityManagerService.DEBUG_TRANSITION; import static com.android.server.am.ActivityManagerService.DEBUG_USER_LEAVING; import static com.android.server.am.ActivityManagerService.DEBUG_VISBILITY; -import static com.android.server.am.ActivityManagerService.VALIDATE_TOKENS; import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE; import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE; @@ -97,6 +95,9 @@ final class ActivityStack { private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityStack" : TAG_AM; private static final String TAG_CLEANUP = TAG + POSTFIX_CLEANUP; + private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION; + + private static final boolean VALIDATE_TOKENS = false; // Ticks during which we check progress while waiting for an app to launch. static final int LAUNCH_TICK = 500; @@ -131,8 +132,6 @@ final class ActivityStack { // convertToTranslucent(). static final long TRANSLUCENT_CONVERSION_TIMEOUT = 2000; - static final boolean SCREENSHOT_FORCE_565 = ActivityManager.isLowRamDeviceStatic(); - enum ActivityState { INITIALIZING, RESUMED, @@ -507,6 +506,8 @@ final class ActivityStack { mStacks.remove(this); mStacks.add(this); } + // TODO(multi-display): Focus stack currently adjusted in call to move home stack. + // Needs to also work if focus is moving to the non-home display. if (isOnHomeDisplay()) { mStackSupervisor.moveHomeStack(homeStack, reason, lastFocusStack); } @@ -787,7 +788,7 @@ final class ActivityStack { if (w > 0) { if (DEBUG_SCREENSHOTS) Slog.d(TAG, "\tTaking screenshot"); return mWindowManager.screenshotApplications(who.appToken, Display.DEFAULT_DISPLAY, - w, h, SCREENSHOT_FORCE_565); + w, h); } Slog.e(TAG, "Invalid thumbnail dimensions: " + w + "x" + h); return null; @@ -2573,7 +2574,11 @@ final class ActivityStack { } // Move the home stack to the top if this stack is fullscreen or there is no // other visible stack. - mStackSupervisor.moveHomeStackTaskToTop(task.getTaskToReturnTo(), myReason); + if (mStackSupervisor.moveHomeStackTaskToTop( + task.getTaskToReturnTo(), myReason)) { + // Activity focus was already adjusted. Nothing else to do... + return; + } } } @@ -3575,7 +3580,6 @@ final class ActivityStack { mTaskHistory.remove(taskNdx); mTaskHistory.add(top, task); updateTaskMovement(task, true); - mWindowManager.moveTaskToTop(task.taskId); return; } } @@ -3600,12 +3604,14 @@ final class ActivityStack { // Shift all activities with this task up to the top // of the stack, keeping them in the same internal order. insertTaskAtTop(tr); - moveToFront(reason); + + // Set focus to the top running activity of this stack. + ActivityRecord r = topRunningActivityLocked(null); + mService.setFocusedActivityLocked(r, reason); if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare to front transition: task=" + tr); if (noAnimation) { mWindowManager.prepareAppTransition(AppTransition.TRANSIT_NONE, false); - ActivityRecord r = topRunningActivityLocked(null); if (r != null) { mNoAnimActivities.add(r); } @@ -3740,12 +3746,12 @@ final class ActivityStack { final boolean ensureActivityConfigurationLocked(ActivityRecord r, int globalChanges) { if (mConfigWillChange) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Skipping config check (will change): " + r); return true; } - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Ensuring correct configuration: " + r); // Make sure the current stack override configuration is supported by the top task @@ -3758,7 +3764,7 @@ final class ActivityStack { mWindowManager.forceStackToFullscreen(mStackId, !topTask.mResizeable); updateOverrideConfiguration(newOverrideConfig); mForcedFullscreen = !prevFullscreen && mFullscreen; - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Updated stack config to support task=" + topTask + " resizeable=" + topTask.mResizeable + " mForcedFullscreen=" + mForcedFullscreen @@ -3772,14 +3778,14 @@ final class ActivityStack { if (r.configuration == newConfig && r.stackConfigOverride == mOverrideConfig && !r.forceNewConfig) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Configuration unchanged in " + r); return true; } // We don't worry about activities that are finishing. if (r.finishing) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Configuration doesn't matter in finishing " + r); r.stopFreezingScreenLocked(false); return true; @@ -3813,7 +3819,7 @@ final class ActivityStack { } final int changes = oldConfig.diff(newConfig) | stackChanges; if (changes == 0 && !r.forceNewConfig) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Configuration no differences in " + r); return true; } @@ -3821,7 +3827,7 @@ final class ActivityStack { // If the activity isn't currently running, just leave the new // configuration and it will pick that up next time it starts. if (r.app == null || r.app.thread == null) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Configuration doesn't matter not running " + r); r.stopFreezingScreenLocked(false); r.forceNewConfig = false; @@ -3829,26 +3835,25 @@ final class ActivityStack { } // Figure out how to handle the changes between the configurations. - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) { - Slog.v(TAG, "Checking to restart " + r.info.name + ": changed=0x" - + Integer.toHexString(changes) + ", handles=0x" - + Integer.toHexString(r.info.getRealConfigChanged()) - + ", newConfig=" + newConfig); - } + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, + "Checking to restart " + r.info.name + ": changed=0x" + + Integer.toHexString(changes) + ", handles=0x" + + Integer.toHexString(r.info.getRealConfigChanged()) + ", newConfig=" + newConfig); + if ((changes&(~r.info.getRealConfigChanged())) != 0 || r.forceNewConfig) { // Aha, the activity isn't handling the change, so DIE DIE DIE. r.configChangeFlags |= changes; r.startFreezingScreenLocked(r.app, globalChanges); r.forceNewConfig = false; if (r.app == null || r.app.thread == null) { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Config is destroying non-running " + r); destroyActivityLocked(r, true, "config"); } else if (r.state == ActivityState.PAUSING) { // A little annoying: we are waiting for this activity to // finish pausing. Let's not do anything now, but just // flag that it needs to be restarted when done pausing. - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Config is skipping already pausing " + r); r.configDestroy = true; return true; @@ -3857,12 +3862,12 @@ final class ActivityStack { // and we need to restart the top, resumed activity. // Instead of doing the normal handshaking, just say // "restart!". - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Config is relaunching resumed " + r); relaunchActivityLocked(r, r.configChangeFlags, true); r.configChangeFlags = 0; } else { - if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Config is relaunching non-resumed " + r); relaunchActivityLocked(r, r.configChangeFlags, false); r.configChangeFlags = 0; @@ -3879,7 +3884,7 @@ final class ActivityStack { // system level configuration it last got. if (r.app != null && r.app.thread != null) { try { - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending new config to " + r); + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Sending new config to " + r); r.app.thread.scheduleActivityConfigurationChanged( r.appToken, new Configuration(mOverrideConfig)); } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index f56f65fa8ec9..80664f55cfe1 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -17,12 +17,12 @@ package com.android.server.am; import static android.Manifest.permission.START_ANY_ACTIVITY; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.server.am.ActivityManagerDebugConfig.*; -import static com.android.server.am.ActivityManagerService.DEBUG_CONFIGURATION; -import static com.android.server.am.ActivityManagerService.DEBUG_FOCUS; import static com.android.server.am.ActivityManagerService.DEBUG_PAUSE; import static com.android.server.am.ActivityManagerService.DEBUG_RECENTS; import static com.android.server.am.ActivityManagerService.DEBUG_RESULTS; @@ -117,6 +117,8 @@ import java.util.List; public final class ActivityStackSupervisor implements DisplayListener { private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityStackSupervisor" : TAG_AM; + private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION; + private static final String TAG_FOCUS = TAG + POSTFIX_FOCUS; static final boolean DEBUG = DEBUG_ALL || false; static final boolean DEBUG_ADD_REMOVE = DEBUG || false; @@ -441,13 +443,21 @@ public final class ActivityStackSupervisor implements DisplayListener { } } - void moveHomeStackTaskToTop(int homeStackTaskType, String reason) { + /** Returns true if the focus activity was adjusted to the home stack top activity. */ + boolean moveHomeStackTaskToTop(int homeStackTaskType, String reason) { if (homeStackTaskType == RECENTS_ACTIVITY_TYPE) { mWindowManager.showRecentApps(); - return; + return false; } - moveHomeStack(true, reason); + mHomeStack.moveHomeStackTaskToTop(homeStackTaskType); + + final ActivityRecord top = mHomeStack.topRunningActivityLocked(null); + if (top == null) { + return false; + } + mService.setFocusedActivityLocked(top, reason); + return true; } boolean resumeHomeStackTask(int homeStackTaskType, ActivityRecord prev, String reason) { @@ -460,14 +470,13 @@ public final class ActivityStackSupervisor implements DisplayListener { mWindowManager.showRecentApps(); return false; } - moveHomeStackTaskToTop(homeStackTaskType, reason); + if (prev != null) { prev.task.setTaskToReturnTo(APPLICATION_ACTIVITY_TYPE); } ActivityRecord r = mHomeStack.topRunningActivityLocked(null); - // if (r != null && (r.isHomeActivity() || r.isRecentsActivity())) { - if (r != null && r.isHomeActivity()) { + if (r != null) { mService.setFocusedActivityLocked(r, reason); return resumeTopActivitiesLocked(mHomeStack, prev, null); } @@ -908,7 +917,7 @@ public final class ActivityStackSupervisor implements DisplayListener { stack = container.mStack; } stack.mConfigWillChange = config != null && mService.mConfiguration.diff(config) != 0; - if (DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Starting activity when config will change = " + stack.mConfigWillChange); final long origId = Binder.clearCallingIdentity(); @@ -998,7 +1007,7 @@ public final class ActivityStackSupervisor implements DisplayListener { mService.enforceCallingPermission(android.Manifest.permission.CHANGE_CONFIGURATION, "updateConfiguration()"); stack.mConfigWillChange = false; - if (DEBUG_CONFIGURATION) Slog.v(TAG, + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Updating to new configuration after starting activity."); mService.updateConfigurationLocked(config, null, false, false); } @@ -1575,10 +1584,11 @@ public final class ActivityStackSupervisor implements DisplayListener { stack = task.stack; if (stack.isOnHomeDisplay()) { if (mFocusedStack != stack) { - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, "computeStackFocus: Setting " + - "focused stack to r=" + r + " task=" + task); + if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, + "computeStackFocus: Setting " + "focused stack to r=" + r + + " task=" + task); } else { - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, + if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: Focused stack already=" + mFocusedStack); } } @@ -1594,7 +1604,7 @@ public final class ActivityStackSupervisor implements DisplayListener { if (mFocusedStack != mHomeStack && (!newTask || mFocusedStack.mActivityContainer.isEligibleForNewTasks())) { - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, + if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: Have a focused stack=" + mFocusedStack); return mFocusedStack; } @@ -1603,7 +1613,7 @@ public final class ActivityStackSupervisor implements DisplayListener { for (int stackNdx = homeDisplayStacks.size() - 1; stackNdx >= 0; --stackNdx) { stack = homeDisplayStacks.get(stackNdx); if (!stack.isHomeStack()) { - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, + if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: Setting focused stack=" + stack); return stack; } @@ -1611,8 +1621,8 @@ public final class ActivityStackSupervisor implements DisplayListener { // Need to create an app stack for this user. stack = createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY); - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, "computeStackFocus: New stack r=" + r + - " stackId=" + stack.mStackId); + if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: New stack r=" + + r + " stackId=" + stack.mStackId); return stack; } return mHomeStack; @@ -1874,11 +1884,6 @@ public final class ActivityStackSupervisor implements DisplayListener { if (r.task == null) { r.task = intentActivity.task; } - targetStack = intentActivity.task.stack; - targetStack.mLastPausedActivity = null; - if (DEBUG_TASKS) Slog.d(TAG, "Bring to front target: " + targetStack - + " from " + intentActivity); - targetStack.moveToFront("intentActivityFound"); if (intentActivity.task.intent == null) { // This task was started because of movement of // the activity based on affinity... now that we @@ -1886,29 +1891,31 @@ public final class ActivityStackSupervisor implements DisplayListener { // base intent. intentActivity.task.setIntent(r); } + targetStack = intentActivity.task.stack; + targetStack.mLastPausedActivity = null; // If the target task is not in the front, then we need // to bring it to the front... except... well, with // SINGLE_TASK_LAUNCH it's not entirely clear. We'd like // to have the same behavior as if a new instance was // being started, which means not bringing it to the front // if the caller is not itself in the front. - final ActivityStack lastStack = getLastStack(); - ActivityRecord curTop = lastStack == null? - null : lastStack.topRunningNonDelayedActivityLocked(notTop); + final ActivityStack focusStack = getFocusedStack(); + ActivityRecord curTop = (focusStack == null) + ? null : focusStack.topRunningNonDelayedActivityLocked(notTop); boolean movedToFront = false; if (curTop != null && (curTop.task != intentActivity.task || - curTop.task != lastStack.topTask())) { + curTop.task != focusStack.topTask())) { r.intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); if (sourceRecord == null || (sourceStack.topActivity() != null && sourceStack.topActivity().task == sourceRecord.task)) { - // We really do want to push this one into the - // user's face, right now. + // We really do want to push this one into the user's face, right now. if (launchTaskBehind && sourceRecord != null) { intentActivity.setTaskToAffiliateWith(sourceRecord.task); } movedHome = true; targetStack.moveTaskToFrontLocked(intentActivity.task, noAnimation, options, "bringingFoundTaskToFront"); + movedToFront = true; if ((launchFlags & (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME)) == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME)) { @@ -1916,9 +1923,14 @@ public final class ActivityStackSupervisor implements DisplayListener { intentActivity.task.setTaskToReturnTo(HOME_ACTIVITY_TYPE); } options = null; - movedToFront = true; } } + if (!movedToFront) { + if (DEBUG_TASKS) Slog.d(TAG, "Bring to front target: " + targetStack + + " from " + intentActivity); + targetStack.moveToFront("intentActivityFound"); + } + // If the caller has requested that the target task be // reset, then do so. if ((launchFlags&Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) != 0) { @@ -1943,15 +1955,15 @@ public final class ActivityStackSupervisor implements DisplayListener { return ActivityManager.START_RETURN_INTENT_TO_CALLER; } if ((launchFlags & - (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) - == (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) { + (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK)) + == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK)) { // The caller has requested to completely replace any // existing task with its new activity. Well that should // not be too hard... reuseTask = intentActivity.task; reuseTask.performClearTaskLocked(); reuseTask.setIntent(r); - } else if ((launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0 + } else if ((launchFlags & FLAG_ACTIVITY_CLEAR_TOP) != 0 || launchSingleInstance || launchSingleTask) { // In this situation we want to remove all activities // from the task up to the one being started. In most @@ -1971,15 +1983,22 @@ public final class ActivityStackSupervisor implements DisplayListener { r, top.task); top.deliverNewIntentLocked(callingUid, r.intent, r.launchedFromPackage); } else { - // A special case: we need to - // start the activity because it is not currently - // running, and the caller has asked to clear the - // current task to have this activity at the top. + // A special case: we need to start the activity because it is not + // currently running, and the caller has asked to clear the current + // task to have this activity at the top. addingToTask = true; - // Now pretend like this activity is being started - // by the top of its task, so it is put in the - // right place. + // Now pretend like this activity is being started by the top of its + // task, so it is put in the right place. sourceRecord = intentActivity; + TaskRecord task = sourceRecord.task; + if (task != null && task.stack == null) { + // Target stack got cleared when we all activities were removed + // above. Go ahead and reset it. + targetStack = computeStackFocus(sourceRecord, false /* newTask */); + targetStack.addTask( + task, !launchTaskBehind /* toTop */, false /* moving */); + } + } } else if (r.realActivity.equals(intentActivity.task.realActivity)) { // In this case the top activity on the task is the @@ -2120,8 +2139,8 @@ public final class ActivityStackSupervisor implements DisplayListener { } if (!movedHome) { if ((launchFlags & - (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_TASK_ON_HOME)) - == (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_TASK_ON_HOME)) { + (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME)) + == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME)) { // Caller wants to appear on home activity, so before starting // their own activity we will bring home to the front. r.task.setTaskToReturnTo(HOME_ACTIVITY_TYPE); diff --git a/services/core/java/com/android/server/am/CompatModePackages.java b/services/core/java/com/android/server/am/CompatModePackages.java index ce63d75415f4..0fe9231b4504 100644 --- a/services/core/java/com/android/server/am/CompatModePackages.java +++ b/services/core/java/com/android/server/am/CompatModePackages.java @@ -46,7 +46,7 @@ import android.util.Xml; public final class CompatModePackages { private static final String TAG = TAG_WITH_CLASS_NAME ? "CompatModePackages" : TAG_AM; - private final boolean DEBUG_CONFIGURATION = ActivityManagerService.DEBUG_CONFIGURATION; + private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION; private final ActivityManagerService mService; private final AtomicFile mFile; @@ -334,7 +334,7 @@ public final class CompatModePackages { } try { if (app.thread != null) { - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending to proc " + if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION, "Sending to proc " + app.processName + " new compat " + ci); app.thread.updatePackageCompatibilityInfo(packageName, ci); } diff --git a/services/core/java/com/android/server/audio/MediaFocusControl.java b/services/core/java/com/android/server/audio/MediaFocusControl.java index fcdd9d9ea20c..f05e6aaa6a7c 100644 --- a/services/core/java/com/android/server/audio/MediaFocusControl.java +++ b/services/core/java/com/android/server/audio/MediaFocusControl.java @@ -653,6 +653,7 @@ public class MediaFocusControl implements OnFinished { return; } else { mFocusFollowers.add(ff); + notifyExtPolicyCurrentFocusAsync(ff); } } } @@ -672,6 +673,32 @@ public class MediaFocusControl implements OnFinished { } /** + * @param pcb non null + */ + void notifyExtPolicyCurrentFocusAsync(IAudioPolicyCallback pcb) { + final IAudioPolicyCallback pcb2 = pcb; + final Thread thread = new Thread() { + @Override + public void run() { + synchronized(mAudioFocusLock) { + if (mFocusStack.isEmpty()) { + return; + } + try { + pcb2.notifyAudioFocusGrant(mFocusStack.peek().toAudioFocusInfo(), + // top of focus stack always has focus + AudioManager.AUDIOFOCUS_REQUEST_GRANTED); + } catch (RemoteException e) { + Log.e(TAG, "Can't call notifyAudioFocusGrant() on IAudioPolicyCallback " + + pcb2.asBinder(), e); + } + } + } + }; + thread.start(); + } + + /** * Called synchronized on mAudioFocusLock */ void notifyExtPolicyFocusGrant_syncAf(AudioFocusInfo afi, int requestResult) { @@ -680,7 +707,7 @@ public class MediaFocusControl implements OnFinished { // oneway pcb.notifyAudioFocusGrant(afi, requestResult); } catch (RemoteException e) { - Log.e(TAG, "Can't call newAudioFocusLoser() on IAudioPolicyCallback " + Log.e(TAG, "Can't call notifyAudioFocusGrant() on IAudioPolicyCallback " + pcb.asBinder(), e); } } @@ -695,7 +722,7 @@ public class MediaFocusControl implements OnFinished { // oneway pcb.notifyAudioFocusLoss(afi, wasDispatched); } catch (RemoteException e) { - Log.e(TAG, "Can't call newAudioFocusLoser() on IAudioPolicyCallback " + Log.e(TAG, "Can't call notifyAudioFocusLoss() on IAudioPolicyCallback " + pcb.asBinder(), e); } } diff --git a/services/core/java/com/android/server/policy/BurnInProtectionHelper.java b/services/core/java/com/android/server/policy/BurnInProtectionHelper.java index b99c436d3407..847eee8fc83f 100644 --- a/services/core/java/com/android/server/policy/BurnInProtectionHelper.java +++ b/services/core/java/com/android/server/policy/BurnInProtectionHelper.java @@ -16,28 +16,27 @@ package com.android.server.policy; +import android.animation.Animator; +import android.animation.ValueAnimator; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.res.Resources; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManagerInternal; -import android.os.Build; -import android.os.Handler; import android.os.SystemClock; -import android.os.SystemProperties; -import android.util.Log; import android.view.Display; +import android.view.animation.LinearInterpolator; import com.android.server.LocalServices; import java.io.PrintWriter; import java.util.concurrent.TimeUnit; -public class BurnInProtectionHelper implements DisplayManager.DisplayListener { +public class BurnInProtectionHelper implements DisplayManager.DisplayListener, + Animator.AnimatorListener, ValueAnimator.AnimatorUpdateListener { private static final String TAG = "BurnInProtection"; // Default value when max burnin radius is not set. @@ -50,8 +49,11 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener { "android.internal.policy.action.BURN_IN_PROTECTION"; private static final int BURN_IN_SHIFT_STEP = 2; + private static final long CENTERING_ANIMATION_DURATION_MS = 100; + private final ValueAnimator mCenteringAnimator; private boolean mBurnInProtectionActive; + private boolean mFirstUpdate; private final int mMinHorizontalBurnInOffset; private final int mMaxHorizontalBurnInOffset; @@ -82,11 +84,10 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener { public BurnInProtectionHelper(Context context, int minHorizontalOffset, int maxHorizontalOffset, int minVerticalOffset, int maxVerticalOffset, int maxOffsetRadius) { - final Resources resources = context.getResources(); mMinHorizontalBurnInOffset = minHorizontalOffset; mMaxHorizontalBurnInOffset = maxHorizontalOffset; mMinVerticalBurnInOffset = minVerticalOffset; - mMaxVerticalBurnInOffset = maxHorizontalOffset; + mMaxVerticalBurnInOffset = maxVerticalOffset; if (maxOffsetRadius != BURN_IN_MAX_RADIUS_DEFAULT) { mBurnInRadiusMaxSquared = maxOffsetRadius * maxOffsetRadius; } else { @@ -106,20 +107,35 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener { (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); mDisplay = displayManager.getDisplay(Display.DEFAULT_DISPLAY); displayManager.registerDisplayListener(this, null /* handler */); + + mCenteringAnimator = ValueAnimator.ofFloat(1f, 0f); + mCenteringAnimator.setDuration(CENTERING_ANIMATION_DURATION_MS); + mCenteringAnimator.setInterpolator(new LinearInterpolator()); + mCenteringAnimator.addListener(this); + mCenteringAnimator.addUpdateListener(this); } public void startBurnInProtection() { if (!mBurnInProtectionActive) { mBurnInProtectionActive = true; + mFirstUpdate = true; + mCenteringAnimator.cancel(); updateBurnInProtection(); } } private void updateBurnInProtection() { if (mBurnInProtectionActive) { - adjustOffsets(); - mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), - mLastBurnInXOffset, mLastBurnInYOffset); + // We don't want to adjust offsets immediately after the device goes into ambient mode. + // Instead, we want to wait until it's more likely that the user is not observing the + // screen anymore. + if (mFirstUpdate) { + mFirstUpdate = false; + } else { + adjustOffsets(); + mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), + mLastBurnInXOffset, mLastBurnInYOffset); + } // Next adjustment at least ten seconds in the future. long next = SystemClock.elapsedRealtime() + BURNIN_PROTECTION_MINIMAL_INTERVAL_MS; // And aligned to the minute. @@ -128,7 +144,7 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener { mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, next, mBurnInProtectionIntent); } else { mAlarmManager.cancel(mBurnInProtectionIntent); - mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), 0, 0); + mCenteringAnimator.start(); } } @@ -214,4 +230,33 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener { } } } + + @Override + public void onAnimationStart(Animator animator) { + } + + @Override + public void onAnimationEnd(Animator animator) { + if (animator == mCenteringAnimator && !mBurnInProtectionActive) { + // No matter how the animation finishes, we want to zero the offsets. + mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), 0, 0); + } + } + + @Override + public void onAnimationCancel(Animator animator) { + } + + @Override + public void onAnimationRepeat(Animator animator) { + } + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + if (!mBurnInProtectionActive) { + final float value = (Float) valueAnimator.getAnimatedValue(); + mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), + (int) (mLastBurnInXOffset * value), (int) (mLastBurnInYOffset * value)); + } + } } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index cdd6c7fd61d3..dfac6cf2e58e 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -176,6 +176,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { static final int DOUBLE_TAP_HOME_NOTHING = 0; static final int DOUBLE_TAP_HOME_RECENT_SYSTEM_UI = 1; + static final int SHORT_PRESS_SLEEP_GO_TO_SLEEP = 0; + static final int SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME = 1; + static final int APPLICATION_MEDIA_SUBLAYER = -2; static final int APPLICATION_MEDIA_OVERLAY_SUBLAYER = -1; static final int APPLICATION_PANEL_SUBLAYER = 1; @@ -371,6 +374,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLongPressOnPowerBehavior; int mDoublePressOnPowerBehavior; int mTriplePressOnPowerBehavior; + int mShortPressOnSleepBehavior; boolean mAwake; boolean mScreenOnEarly; boolean mScreenOnFully; @@ -1057,6 +1061,20 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + private void sleepPress(KeyEvent event) { + switch (mShortPressOnSleepBehavior) { + case SHORT_PRESS_SLEEP_GO_TO_SLEEP: + mPowerManager.goToSleep(event.getEventTime(), + PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON, 0); + break; + case SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME: + launchHomeFromHotKey(false /* awakenDreams */); + mPowerManager.goToSleep(event.getEventTime(), + PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON, 0); + break; + } + } + private int getResolvedLongPressOnPowerBehavior() { if (FactoryTest.isLongPressOnPowerOffEnabled()) { return LONG_PRESS_POWER_SHUT_OFF_NO_CONFIRM; @@ -1321,6 +1339,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { com.android.internal.R.integer.config_doublePressOnPowerBehavior); mTriplePressOnPowerBehavior = mContext.getResources().getInteger( com.android.internal.R.integer.config_triplePressOnPowerBehavior); + mShortPressOnSleepBehavior = mContext.getResources().getInteger( + com.android.internal.R.integer.config_shortPressOnSleepBehavior); mUseTvRouting = AudioSystem.getPlatformType(mContext) == AudioSystem.PLATFORM_TELEVISION; @@ -3028,11 +3048,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + void launchHomeFromHotKey() { + launchHomeFromHotKey(true /* awakenFromDreams */); + } + /** * A home key -> launch home action was detected. Take the appropriate action * given the situation with the keyguard. */ - void launchHomeFromHotKey() { + void launchHomeFromHotKey(final boolean awakenFromDreams) { if (isKeyguardShowingAndNotOccluded()) { // don't launch home if keyguard showing } else if (!mHideLockScreen && mKeyguardDelegate.isInputRestricted()) { @@ -3047,7 +3071,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } catch (RemoteException e) { } sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); - startDockOrHome(true /*fromHomeKey*/); + startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); } } }); @@ -3059,13 +3083,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { } if (mRecentsVisible) { // Hide Recents and notify it to launch Home - awakenDreams(); + if (awakenFromDreams) { + awakenDreams(); + } sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); hideRecentApps(false, true); } else { // Otherwise, just launch Home sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); - startDockOrHome(true /*fromHomeKey*/); + startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); } } } @@ -4712,12 +4738,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { case KeyEvent.KEYCODE_SLEEP: { result &= ~ACTION_PASS_TO_USER; + isWakeKey = false; if (!mPowerManager.isInteractive()) { useHapticFeedback = false; // suppress feedback if already non-interactive } - mPowerManager.goToSleep(event.getEventTime(), - PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0); - isWakeKey = false; + sleepPress(event); break; } @@ -4905,7 +4930,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } int keyCode = event.getKeyCode(); - int flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND; + int flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND + | AudioManager.FLAG_FROM_KEY; String pkgName = mContext.getOpPackageName(); switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: @@ -5896,8 +5922,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { return null; } - void startDockOrHome(boolean fromHomeKey) { - awakenDreams(); + void startDockOrHome(boolean fromHomeKey, boolean awakenFromDreams) { + if (awakenFromDreams) { + awakenDreams(); + } Intent dock = createHomeDockIntent(); if (dock != null) { @@ -5935,7 +5963,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } catch (RemoteException e) { } sendCloseSystemWindows(); - startDockOrHome(false /*fromHomeKey*/); + startDockOrHome(false /*fromHomeKey*/, true /* awakenFromDreams */); } else { // This code brings home to the front or, if it is already // at the front, puts the device to sleep. diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 66c2f5f5418e..9e373b72d445 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -1080,6 +1080,9 @@ public final class PowerManagerService extends SystemService case PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON: Slog.i(TAG, "Going to sleep due to power button (uid " + uid +")..."); break; + case PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON: + Slog.i(TAG, "Going to sleep due to sleep button (uid " + uid +")..."); + break; case PowerManager.GO_TO_SLEEP_REASON_HDMI: Slog.i(TAG, "Going to sleep due to HDMI standby (uid " + uid +")..."); break; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 99bad07ec30f..9a97a2dace7a 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -29,6 +29,7 @@ import android.view.IWindowId; import android.view.IWindowSessionCallback; import android.view.WindowContentFrameStats; +import com.android.internal.app.IAssistScreenshotReceiver; import com.android.internal.app.IBatteryStats; import com.android.internal.util.FastPrintWriter; import com.android.internal.view.IInputContext; @@ -38,6 +39,7 @@ import com.android.internal.view.WindowManagerPolicyThread; import com.android.server.AttributeCache; import com.android.server.DisplayThread; import com.android.server.EventLogTags; +import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.UiThread; import com.android.server.Watchdog; @@ -5997,26 +5999,57 @@ public class WindowManagerService extends IWindowManager.Stub * Takes a snapshot of the screen. In landscape mode this grabs the whole screen. * In portrait mode, it grabs the upper region of the screen based on the vertical dimension * of the target image. + */ + @Override + public boolean requestAssistScreenshot(final IAssistScreenshotReceiver receiver) { + if (!checkCallingPermission(Manifest.permission.READ_FRAME_BUFFER, + "requestAssistScreenshot()")) { + throw new SecurityException("Requires READ_FRAME_BUFFER permission"); + } + + FgThread.getHandler().post(new Runnable() { + @Override + public void run() { + Bitmap bm = screenshotApplicationsInner(null, Display.DEFAULT_DISPLAY, -1, -1, + true); + try { + receiver.send(bm); + } catch (RemoteException e) { + } + } + }); + + return true; + } + + /** + * Takes a snapshot of the screen. In landscape mode this grabs the whole screen. + * In portrait mode, it grabs the upper region of the screen based on the vertical dimension + * of the target image. * * @param displayId the Display to take a screenshot of. * @param width the width of the target bitmap * @param height the height of the target bitmap - * @param force565 if true the returned bitmap will be RGB_565, otherwise it - * will be the same config as the surface */ @Override - public Bitmap screenshotApplications(IBinder appToken, int displayId, int width, - int height, boolean force565) { + public Bitmap screenshotApplications(IBinder appToken, int displayId, int width, int height) { if (!checkCallingPermission(Manifest.permission.READ_FRAME_BUFFER, "screenshotApplications()")) { throw new SecurityException("Requires READ_FRAME_BUFFER permission"); } + return screenshotApplicationsInner(appToken, displayId, width, height, false); + } - final DisplayContent displayContent = getDisplayContentLocked(displayId); - if (displayContent == null) { - if (DEBUG_SCREENSHOT) Slog.i(TAG, "Screenshot of " + appToken - + ": returning null. No Display for displayId=" + displayId); - return null; + Bitmap screenshotApplicationsInner(IBinder appToken, int displayId, int width, int height, + boolean includeFullDisplay) { + final DisplayContent displayContent; + synchronized(mWindowMap) { + displayContent = getDisplayContentLocked(displayId); + if (displayContent == null) { + if (DEBUG_SCREENSHOT) Slog.i(TAG, "Screenshot of " + appToken + + ": returning null. No Display for displayId=" + displayId); + return null; + } } final DisplayInfo displayInfo = displayContent.getDisplayInfo(); int dw = displayInfo.logicalWidth; @@ -6033,9 +6066,6 @@ public class WindowManagerService extends IWindowManager.Stub final Rect frame = new Rect(); final Rect stackBounds = new Rect(); - float scale = 0; - int rot = Surface.ROTATION_0; - boolean screenshotReady; int minLayer; if (appToken == null) { @@ -6116,7 +6146,7 @@ public class WindowManagerService extends IWindowManager.Stub } // Don't include wallpaper in bounds calculation - if (!ws.mIsWallpaper) { + if (!includeFullDisplay && !ws.mIsWallpaper) { final Rect wf = ws.mFrame; final Rect cr = ws.mContentInsets; int left = wf.left + cr.left; @@ -6170,8 +6200,21 @@ public class WindowManagerService extends IWindowManager.Stub return null; } - // Constrain frame to the screen size. - frame.intersect(0, 0, dw, dh); + if (!includeFullDisplay) { + // Constrain frame to the screen size. + frame.intersect(0, 0, dw, dh); + } else { + // Caller just wants entire display. + frame.set(0, 0, dw, dh); + } + + + if (width < 0) { + width = frame.width(); + } + if (height < 0) { + height = frame.height(); + } // Tell surface flinger what part of the image to crop. Take the top // right part of the application, and crop the larger dimension to fit. @@ -6185,7 +6228,7 @@ public class WindowManagerService extends IWindowManager.Stub } // The screenshot API does not apply the current screen rotation. - rot = getDefaultDisplayContentLocked().getDisplay().getRotation(); + int rot = getDefaultDisplayContentLocked().getDisplay().getRotation(); if (rot == Surface.ROTATION_90 || rot == Surface.ROTATION_270) { rot = (rot == Surface.ROTATION_90) ? Surface.ROTATION_270 : Surface.ROTATION_90; diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 0080d9edb0cb..7e1fe4810390 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3079,8 +3079,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { long ident = Binder.clearCallingIdentity(); try { if ((flags & WIPE_RESET_PROTECTION_DATA) != 0) { + boolean ownsInitialization = isDeviceInitializer(admin.info.getPackageName()) + && !hasUserSetupCompleted(userHandle); if (userHandle != UserHandle.USER_OWNER - || !isDeviceOwner(admin.info.getPackageName())) { + || !(isDeviceOwner(admin.info.getPackageName()) + || ownsInitialization)) { throw new SecurityException( "Only device owner admins can set WIPE_RESET_PROTECTION_DATA"); } diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java index 30d97b9e24b2..7a379c23bf2e 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java @@ -26,6 +26,7 @@ import android.content.ContentProvider; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.graphics.Bitmap; import android.net.Uri; import android.os.Binder; import android.os.Bundle; @@ -39,6 +40,7 @@ import android.service.voice.VoiceInteractionService; import android.util.Slog; import android.view.IWindowManager; import android.view.WindowManager; +import com.android.internal.app.IAssistScreenshotReceiver; import com.android.internal.app.IVoiceInteractor; import com.android.internal.os.IResultReceiver; @@ -70,6 +72,8 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { IVoiceInteractor mInteractor; boolean mHaveAssistData; Bundle mAssistData; + boolean mHaveScreenshot; + Bitmap mScreenshot; public interface Callback { public void sessionConnectionGone(VoiceInteractionSessionConnection connection); @@ -91,7 +95,20 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { if (mShown) { mHaveAssistData = true; mAssistData = resultData; - deliverAssistData(); + deliverSessionDataLocked(); + } + } + } + }; + + final IAssistScreenshotReceiver mScreenshotReceiver = new IAssistScreenshotReceiver.Stub() { + @Override + public void send(Bitmap screenshot) throws RemoteException { + synchronized (mLock) { + if (mShown) { + mHaveScreenshot = true; + mScreenshot = screenshot; + deliverSessionDataLocked(); } } } @@ -144,6 +161,7 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { mShown = true; mShowArgs = args; mShowFlags = flags; + mHaveAssistData = false; if ((flags&VoiceInteractionService.START_WITH_ASSIST) != 0) { try { mAm.requestAssistContextExtras(ActivityManager.ASSIST_CONTEXT_FULL, @@ -151,9 +169,17 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { } catch (RemoteException e) { } } else { - mHaveAssistData = false; mAssistData = null; } + mHaveScreenshot = false; + if ((flags&VoiceInteractionService.START_WITH_SCREENSHOT) != 0) { + try { + mIWindowManager.requestAssistScreenshot(mScreenshotReceiver); + } catch (RemoteException e) { + } + } else { + mScreenshot = null; + } if (mSession != null) { try { mSession.show(mShowArgs, mShowFlags); @@ -161,7 +187,7 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { mShowFlags = 0; } catch (RemoteException e) { } - deliverAssistData(); + deliverSessionDataLocked(); } return true; } @@ -210,39 +236,50 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { } } - void deliverAssistData() { - if (mSession == null || !mHaveAssistData) { + void deliverSessionDataLocked() { + if (mSession == null) { return; } - if (mAssistData != null) { - int uid = mAssistData.getInt(Intent.EXTRA_ASSIST_UID, -1); - if (uid >= 0) { - Bundle assistContext = mAssistData.getBundle(Intent.EXTRA_ASSIST_CONTEXT); - if (assistContext != null) { - AssistContent content = AssistContent.getAssistContent(assistContext); - if (content != null) { - Intent intent = content.getIntent(); - if (intent != null) { - ClipData data = intent.getClipData(); - if (data != null && Intent.isAccessUriMode(intent.getFlags())) { - grantClipDataPermissions(data, intent.getFlags(), uid, - mCallingUid, mSessionComponentName.getPackageName()); + if (mHaveAssistData) { + if (mAssistData != null) { + int uid = mAssistData.getInt(Intent.EXTRA_ASSIST_UID, -1); + if (uid >= 0) { + Bundle assistContext = mAssistData.getBundle(Intent.EXTRA_ASSIST_CONTEXT); + if (assistContext != null) { + AssistContent content = AssistContent.getAssistContent(assistContext); + if (content != null) { + Intent intent = content.getIntent(); + if (intent != null) { + ClipData data = intent.getClipData(); + if (data != null && Intent.isAccessUriMode(intent.getFlags())) { + grantClipDataPermissions(data, intent.getFlags(), uid, + mCallingUid, mSessionComponentName.getPackageName()); + } + } + ClipData data = content.getClipData(); + if (data != null) { + grantClipDataPermissions(data, + Intent.FLAG_GRANT_READ_URI_PERMISSION, + uid, mCallingUid, mSessionComponentName.getPackageName()); } - } - ClipData data = content.getClipData(); - if (data != null) { - grantClipDataPermissions(data, Intent.FLAG_GRANT_READ_URI_PERMISSION, - uid, mCallingUid, mSessionComponentName.getPackageName()); } } } } - } - try { - mSession.handleAssist(mAssistData); + try { + mSession.handleAssist(mAssistData); + } catch (RemoteException e) { + } mAssistData = null; mHaveAssistData = false; - } catch (RemoteException e) { + } + if (mHaveScreenshot) { + try { + mSession.handleScreenshot(mScreenshot); + } catch (RemoteException e) { + } + mScreenshot = null; + mHaveScreenshot = false; } } @@ -288,14 +325,7 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { mShowFlags = 0; } catch (RemoteException e) { } - if (mHaveAssistData) { - try { - session.handleAssist(mAssistData); - mAssistData = null; - mHaveAssistData = false; - } catch (RemoteException e) { - } - } + deliverSessionDataLocked(); } return true; } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index eef91e11d591..89978b72fd65 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -3754,12 +3754,32 @@ public class TelephonyManager { } /** - * This function retrieves value for setting "name+subId", and if that is not found - * retrieves value for setting "name", and if that is not found uses def as default + * Whether the phone supports TTY mode. * - * @hide */ - public static int getIntWithSubId(ContentResolver cr, String name, int subId, int def) { - return Settings.Global.getInt(cr, name + subId, Settings.Global.getInt(cr, name, def)); + * @return {@code true} if the device supports TTY mode, and {@code false} otherwise. + */ + public boolean isTtyModeSupported() { + try { + return getITelephony().isTtyModeSupported(); + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#isTtyModeSupported", e); + } + return false; + } + + /** + * Whether the phone supports hearing aid compatibility. + * + * @return {@code true} if the device supports hearing aid compatibility, and {@code false} + * otherwise. + */ + public boolean isHearingAidCompatibilitySupported() { + try { + return getITelephony().isHearingAidCompatibilitySupported(); + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#isHearingAidCompatibilitySupported", e); + } + return false; } /** diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 3769deed233d..f9e15f3968c2 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -882,6 +882,20 @@ interface ITelephony { boolean isWorldPhone(); /** + * Whether the phone supports TTY mode. + * + * @return {@code true} if the device supports TTY mode. + */ + boolean isTtyModeSupported(); + + /** + * Whether the phone supports hearing aid compatibility. + * + * @return {@code true} if the device supports hearing aid compatibility. + */ + boolean isHearingAidCompatibilitySupported(); + + /** * Get IMS Registration Status */ boolean isImsRegistered(); diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java index afd6a8d87bdb..5bc8934279d6 100644 --- a/tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/CirclePropActivity.java @@ -24,7 +24,7 @@ import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Bundle; import android.os.Trace; -import android.view.HardwareCanvas; +import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; import android.view.View; import android.widget.LinearLayout; @@ -88,8 +88,8 @@ public class CirclePropActivity extends Activity { super.onDraw(canvas); if (canvas.isHardwareAccelerated()) { - HardwareCanvas hwcanvas = (HardwareCanvas) canvas; - hwcanvas.drawCircle(mX, mY, mRadius, mPaint); + DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; + displayListCanvas.drawCircle(mX, mY, mRadius, mPaint); } } diff --git a/tests/VoiceInteraction/res/layout/voice_interaction_session.xml b/tests/VoiceInteraction/res/layout/voice_interaction_session.xml index 10571765793e..d44afb066793 100644 --- a/tests/VoiceInteraction/res/layout/voice_interaction_session.xml +++ b/tests/VoiceInteraction/res/layout/voice_interaction_session.xml @@ -26,7 +26,7 @@ android:layout_height="match_parent" android:fitsSystemWindows="true"> - <FrameLayout android:id="@+id/top_content" + <LinearLayout android:id="@+id/top_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" @@ -34,15 +34,16 @@ android:background="#ffffffff" android:elevation="8dp" > - <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:text="@string/start" /> - - </FrameLayout> + <ImageView android:id="@+id/screenshot" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + </LinearLayout> <LinearLayout android:id="@+id/bottom_content" android:layout_width="match_parent" diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/AssistVisualizer.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/AssistVisualizer.java index bae19a6a68ec..2ad23ed51791 100644 --- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/AssistVisualizer.java +++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/AssistVisualizer.java @@ -55,6 +55,7 @@ public class AssistVisualizer extends View { buildTextRects(window, 0, 0); } } + invalidate(); } public void clearAssistData() { diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionService.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionService.java index 722b0de901f3..15196b442738 100644 --- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionService.java +++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionService.java @@ -79,7 +79,7 @@ public class MainInteractionService extends VoiceInteractionService { Bundle args = new Bundle(); args.putParcelable("intent", new Intent(this, TestInteractionActivity.class)); args.putBundle("assist", intent.getExtras()); - startSession(args, START_WITH_ASSIST); + startSession(args, START_WITH_ASSIST|START_WITH_SCREENSHOT); } else { Log.w(TAG, "Not starting -- not current voice interaction service"); } diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java index ad339befdd00..bc18ca9f285f 100644 --- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java +++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java @@ -21,11 +21,13 @@ import android.app.AssistStructure; import android.app.VoiceInteractor; import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; import android.os.Bundle; import android.service.voice.VoiceInteractionSession; import android.util.Log; import android.view.View; import android.widget.Button; +import android.widget.ImageView; import android.widget.TextView; public class MainInteractionSession extends VoiceInteractionSession @@ -39,6 +41,7 @@ public class MainInteractionSession extends VoiceInteractionSession View mBottomContent; TextView mText; Button mStartButton; + ImageView mScreenshot; Button mConfirmButton; Button mCompleteButton; Button mAbortButton; @@ -76,6 +79,7 @@ public class MainInteractionSession extends VoiceInteractionSession if (mAssistVisualizer != null) { mAssistVisualizer.clearAssistData(); } + onHandleScreenshot(null); updateState(); } @@ -101,6 +105,7 @@ public class MainInteractionSession extends VoiceInteractionSession mText = (TextView)mContentView.findViewById(R.id.text); mStartButton = (Button)mContentView.findViewById(R.id.start); mStartButton.setOnClickListener(this); + mScreenshot = (ImageView)mContentView.findViewById(R.id.screenshot); mConfirmButton = (Button)mContentView.findViewById(R.id.confirm); mConfirmButton.setOnClickListener(this); mCompleteButton = (Button)mContentView.findViewById(R.id.complete); @@ -119,6 +124,18 @@ public class MainInteractionSession extends VoiceInteractionSession } } + @Override + public void onHandleScreenshot(Bitmap screenshot) { + if (screenshot != null) { + mScreenshot.setImageBitmap(screenshot); + mScreenshot.setAdjustViewBounds(true); + mScreenshot.setMaxWidth(screenshot.getWidth()/3); + mScreenshot.setMaxHeight(screenshot.getHeight()/3); + } else { + mScreenshot.setImageDrawable(null); + } + } + void parseAssistData(Bundle assistBundle) { if (assistBundle != null) { Bundle assistContext = assistBundle.getBundle(Intent.EXTRA_ASSIST_CONTEXT); diff --git a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java index 8192b5fbbf82..4acbd1cded0a 100644 --- a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java +++ b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java @@ -39,6 +39,8 @@ import android.util.AttributeSet; import java.io.File; +import static com.android.layoutlib.bridge.android.BridgeContext.getBaseContext; + /** * Custom implementation of {@link LayoutInflater} to handle custom views. */ @@ -60,7 +62,12 @@ public final class BridgeInflater extends LayoutInflater { protected BridgeInflater(LayoutInflater original, Context newContext) { super(original, newContext); - mProjectCallback = null; + newContext = getBaseContext(newContext); + if (newContext instanceof BridgeContext) { + mProjectCallback = ((BridgeContext) newContext).getProjectCallback(); + } else { + mProjectCallback = null; + } } /** @@ -154,9 +161,7 @@ public final class BridgeInflater extends LayoutInflater { @Override public View inflate(int resource, ViewGroup root) { Context context = getContext(); - while (context instanceof ContextThemeWrapper) { - context = ((ContextThemeWrapper) context).getBaseContext(); - } + context = getBaseContext(context); if (context instanceof BridgeContext) { BridgeContext bridgeContext = (BridgeContext)context; @@ -219,9 +224,7 @@ public final class BridgeInflater extends LayoutInflater { private void setupViewInContext(View view, AttributeSet attrs) { Context context = getContext(); - while (context instanceof ContextThemeWrapper) { - context = ((ContextThemeWrapper) context).getBaseContext(); - } + context = getBaseContext(context); if (context instanceof BridgeContext) { BridgeContext bc = (BridgeContext) context; // get the view key diff --git a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java index 32305a090d76..818940d768dd 100644 --- a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java +++ b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java @@ -17,6 +17,7 @@ package android.view; import android.graphics.Point; +import com.android.internal.app.IAssistScreenshotReceiver; import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodClient; @@ -275,8 +276,15 @@ public class IWindowManagerImpl implements IWindowManager { } @Override - public Bitmap screenshotApplications(IBinder arg0, int displayId, int arg1, - int arg2, boolean arg3) throws RemoteException { + public boolean requestAssistScreenshot(IAssistScreenshotReceiver receiver) + throws RemoteException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, + int maxHeight) throws RemoteException { // TODO Auto-generated method stub return null; } diff --git a/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java b/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java index dafc96b1e534..08a97d647938 100644 --- a/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java +++ b/tools/layoutlib/bridge/src/android/view/MenuInflater_Delegate.java @@ -48,9 +48,7 @@ public class MenuInflater_Delegate { AttributeSet attrs) { if (menuItem instanceof BridgeMenuItemImpl) { Context context = thisInflater.getContext(); - while (context instanceof ContextThemeWrapper) { - context = ((ContextThemeWrapper) context).getBaseContext(); - } + context = BridgeContext.getBaseContext(context); if (context instanceof BridgeContext) { Object viewKey = BridgeInflater.getViewKeyFromParser( attrs, ((BridgeContext) context), null, false); diff --git a/tools/layoutlib/bridge/src/android/view/ViewGroup_Delegate.java b/tools/layoutlib/bridge/src/android/view/ViewGroup_Delegate.java index 391504682c72..82ae1df33583 100644 --- a/tools/layoutlib/bridge/src/android/view/ViewGroup_Delegate.java +++ b/tools/layoutlib/bridge/src/android/view/ViewGroup_Delegate.java @@ -122,9 +122,7 @@ public class ViewGroup_Delegate { @NonNull private static DisplayMetrics getMetrics(View view) { Context context = view.getContext(); - while (context instanceof ContextThemeWrapper) { - context = ((ContextThemeWrapper) context).getBaseContext(); - } + context = BridgeContext.getBaseContext(context); if (context instanceof BridgeContext) { return ((BridgeContext) context).getMetrics(); } diff --git a/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java b/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java index 8d1d0c16cb9a..bb95c4e35398 100644 --- a/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java +++ b/tools/layoutlib/bridge/src/com/android/internal/view/menu/BridgeMenuItemImpl.java @@ -19,7 +19,6 @@ package com.android.internal.view.menu; import com.android.layoutlib.bridge.android.BridgeContext; import android.content.Context; -import android.view.ContextThemeWrapper; import android.view.View; /** @@ -42,9 +41,7 @@ public class BridgeMenuItemImpl extends MenuItemImpl { CharSequence title, int showAsAction) { super(menu, group, id, categoryOrder, ordering, title, showAsAction); Context context = menu.getContext(); - while (context instanceof ContextThemeWrapper) { - context = ((ContextThemeWrapper) context).getBaseContext(); - } + context = BridgeContext.getBaseContext(context); if (context instanceof BridgeContext) { mContext = ((BridgeContext) context); } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java index 179a8e773482..e1c58fd5b5f5 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java @@ -40,6 +40,7 @@ import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentSender; @@ -963,6 +964,13 @@ public final class BridgeContext extends Context { return defValue; } + public static Context getBaseContext(Context context) { + while (context instanceof ContextWrapper) { + context = ((ContextWrapper) context).getBaseContext(); + } + return context; + } + //------------ NOT OVERRIDEN -------------------- @Override diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java index e5023b873e23..ee57067007d1 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/AppCompatActionBar.java @@ -21,11 +21,15 @@ import com.android.annotations.Nullable; import com.android.ide.common.rendering.api.RenderResources; import com.android.ide.common.rendering.api.ResourceValue; import com.android.ide.common.rendering.api.SessionParams; +import com.android.ide.common.rendering.api.StyleResourceValue; import com.android.layoutlib.bridge.android.BridgeContext; import com.android.layoutlib.bridge.impl.ResourceHelper; import com.android.resources.ResourceType; +import android.content.Context; import android.graphics.drawable.Drawable; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -55,7 +59,7 @@ public class AppCompatActionBar extends BridgeActionBar { View contentView = getDecorContent().findViewById(contentRootId); if (contentView != null) { assert contentView instanceof FrameLayout; - setContentRoot(((FrameLayout) contentView)); + setContentRoot((FrameLayout) contentView); } else { // Something went wrong. Create a new FrameLayout in the enclosing layout. FrameLayout contentRoot = new FrameLayout(context); @@ -85,6 +89,27 @@ public class AppCompatActionBar extends BridgeActionBar { } @Override + protected LayoutInflater getInflater(BridgeContext context) { + // Other than the resource resolution part, the code has been taken from the support + // library. see code from line 269 onwards in + // https://android.googlesource.com/platform/frameworks/support/+/android-5.1.0_r1/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateBase.java + Context themedContext = context; + RenderResources resources = context.getRenderResources(); + ResourceValue actionBarTheme = resources.findItemInTheme("actionBarTheme", false); + if (actionBarTheme != null) { + // resolve it, if needed. + actionBarTheme = resources.resolveResValue(actionBarTheme); + } + if (actionBarTheme instanceof StyleResourceValue) { + int styleId = context.getDynamicIdByStyle(((StyleResourceValue) actionBarTheme)); + if (styleId != 0) { + themedContext = new ContextThemeWrapper(context, styleId); + } + } + return LayoutInflater.from(themedContext); + } + + @Override protected void setTitle(CharSequence title) { if (title != null && mWindowDecorActionBar != null) { Method setTitle = getMethod(mWindowActionBarClass, "setTitle", CharSequence.class); @@ -104,8 +129,8 @@ public class AppCompatActionBar extends BridgeActionBar { protected void setIcon(String icon) { // Do this only if the action bar doesn't already have an icon. if (icon != null && !icon.isEmpty() && mWindowDecorActionBar != null) { - if (((Boolean) invoke(getMethod(mWindowActionBarClass, "hasIcon"), mWindowDecorActionBar) - )) { + if (invoke(getMethod(mWindowActionBarClass, "hasIcon"), mWindowDecorActionBar) + == Boolean.TRUE) { Drawable iconDrawable = getDrawable(icon, false); if (iconDrawable != null) { Method setIcon = getMethod(mWindowActionBarClass, "setIcon", Drawable.class); diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java index b29d25f78d65..2a83ea165ab0 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/BridgeActionBar.java @@ -44,6 +44,7 @@ public abstract class BridgeActionBar { private final View mDecorContent; private final ActionBarCallback mCallback; + @SuppressWarnings("NullableProblems") // Should be initialized by subclasses. @NonNull private FrameLayout mContentRoot; public BridgeActionBar(@NonNull BridgeContext context, @NonNull SessionParams params, @@ -80,7 +81,7 @@ public abstract class BridgeActionBar { } // Inflate action bar layout. - mDecorContent = LayoutInflater.from(context).inflate(layoutId, mEnclosingLayout, true); + mDecorContent = getInflater(context).inflate(layoutId, mEnclosingLayout, true); } @@ -91,7 +92,11 @@ public abstract class BridgeActionBar { */ protected abstract ResourceValue getLayoutResource(BridgeContext context); - protected void setContentRoot(FrameLayout contentRoot) { + protected LayoutInflater getInflater(BridgeContext context) { + return LayoutInflater.from(context); + } + + protected void setContentRoot(@NonNull FrameLayout contentRoot) { mContentRoot = contentRoot; } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java index c9aa40010665..7c11284d3a84 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java @@ -1128,8 +1128,7 @@ public class RenderSessionImpl extends RenderAction<SessionParams> { } } else { // action bar overrides title bar so only look for this one if action bar is hidden - boolean windowNoTitle = getBooleanThemeValue(resources, - "windowNoTitle", false, !isThemeAppCompat(resources)); + boolean windowNoTitle = getBooleanThemeValue(resources, "windowNoTitle", false, true); if (!windowNoTitle) { |