diff options
251 files changed, 4641 insertions, 9940 deletions
diff --git a/Android.mk b/Android.mk index cb1b90b304f9..be98487063cf 100644 --- a/Android.mk +++ b/Android.mk @@ -79,6 +79,7 @@ LOCAL_SRC_FILES += \ core/java/android/app/IThumbnailRetriever.aidl \ core/java/android/app/ITransientNotification.aidl \ core/java/android/app/IUiModeManager.aidl \ + core/java/android/app/IUserSwitchObserver.aidl \ core/java/android/app/IWallpaperManager.aidl \ core/java/android/app/IWallpaperManagerCallback.aidl \ core/java/android/app/admin/IDevicePolicyManager.aidl \ diff --git a/api/17.txt b/api/17.txt index d002449864a3..cab0cf53ff5a 100644 --- a/api/17.txt +++ b/api/17.txt @@ -18415,10 +18415,10 @@ package android.provider { field public static final java.lang.String USE_GOOGLE_MAIL = "use_google_mail"; field public static final java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count"; field public static final java.lang.String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms"; - field public static final java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on"; - field public static final java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay"; - field public static final java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept"; - field public static final java.lang.String WIFI_ON = "wifi_on"; + field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on"; + field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay"; + field public static final deprecated java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept"; + field public static final deprecated java.lang.String WIFI_ON = "wifi_on"; field public static final deprecated java.lang.String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage"; field public static final deprecated java.lang.String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count"; field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms"; @@ -26107,35 +26107,6 @@ package android.view.textservice { package android.webkit { - public final deprecated class CacheManager { - ctor public CacheManager(); - method public static deprecated boolean cacheDisabled(); - method public static deprecated boolean endCacheTransaction(); - method public static deprecated android.webkit.CacheManager.CacheResult getCacheFile(java.lang.String, java.util.Map<java.lang.String, java.lang.String>); - method public static deprecated java.io.File getCacheFileBaseDir(); - method public static deprecated void saveCacheFile(java.lang.String, android.webkit.CacheManager.CacheResult); - method public static deprecated boolean startCacheTransaction(); - } - - public static deprecated class CacheManager.CacheResult { - ctor public CacheManager.CacheResult(); - method public java.lang.String getContentDisposition(); - method public long getContentLength(); - method public java.lang.String getETag(); - method public java.lang.String getEncoding(); - method public long getExpires(); - method public java.lang.String getExpiresString(); - method public int getHttpStatusCode(); - method public java.io.InputStream getInputStream(); - method public java.lang.String getLastModified(); - method public java.lang.String getLocalPath(); - method public java.lang.String getLocation(); - method public java.lang.String getMimeType(); - method public java.io.OutputStream getOutputStream(); - method public void setEncoding(java.lang.String); - method public void setInputStream(java.io.InputStream); - } - public class ConsoleMessage { ctor public ConsoleMessage(java.lang.String, java.lang.String, int, android.webkit.ConsoleMessage.MessageLevel); method public int lineNumber(); @@ -26298,7 +26269,6 @@ package android.webkit { public class WebHistoryItem implements java.lang.Cloneable { method public android.graphics.Bitmap getFavicon(); - method public deprecated int getId(); method public java.lang.String getOriginalUrl(); method public java.lang.String getTitle(); method public java.lang.String getUrl(); @@ -26357,7 +26327,6 @@ package android.webkit { method public synchronized boolean getLoadsImagesAutomatically(); method public synchronized int getMinimumFontSize(); method public synchronized int getMinimumLogicalFontSize(); - method public deprecated boolean getNavDump(); method public synchronized android.webkit.WebSettings.PluginState getPluginState(); method public deprecated synchronized boolean getPluginsEnabled(); method public deprecated synchronized java.lang.String getPluginsPath(); @@ -26368,10 +26337,7 @@ package android.webkit { method public synchronized java.lang.String getStandardFontFamily(); method public deprecated synchronized android.webkit.WebSettings.TextSize getTextSize(); method public synchronized int getTextZoom(); - method public deprecated synchronized boolean getUseDoubleTree(); - method public deprecated boolean getUseWebViewBackgroundForOverscrollBackground(); method public synchronized boolean getUseWideViewPort(); - method public deprecated synchronized int getUserAgent(); method public synchronized java.lang.String getUserAgentString(); method public void setAllowContentAccess(boolean); method public void setAllowFileAccess(boolean); @@ -26406,7 +26372,6 @@ package android.webkit { method public synchronized void setLoadsImagesAutomatically(boolean); method public synchronized void setMinimumFontSize(int); method public synchronized void setMinimumLogicalFontSize(int); - method public deprecated void setNavDump(boolean); method public void setNeedInitialFocus(boolean); method public synchronized void setPluginState(android.webkit.WebSettings.PluginState); method public deprecated synchronized void setPluginsEnabled(boolean); @@ -26421,10 +26386,7 @@ package android.webkit { method public void setSupportZoom(boolean); method public deprecated synchronized void setTextSize(android.webkit.WebSettings.TextSize); method public synchronized void setTextZoom(int); - method public deprecated synchronized void setUseDoubleTree(boolean); - method public deprecated void setUseWebViewBackgroundForOverscrollBackground(boolean); method public synchronized void setUseWideViewPort(boolean); - method public deprecated synchronized void setUserAgent(int); method public synchronized void setUserAgentString(java.lang.String); method public synchronized boolean supportMultipleWindows(); method public boolean supportZoom(); @@ -26529,12 +26491,8 @@ package android.webkit { method public void clearSslPreferences(); method public void clearView(); method public android.webkit.WebBackForwardList copyBackForwardList(); - method public deprecated void debugDump(); method public void destroy(); - method public static deprecated void disablePlatformNotifications(); method public void documentHasImages(android.os.Message); - method public deprecated void emulateShiftHeld(); - method public static deprecated void enablePlatformNotifications(); method public static java.lang.String findAddress(java.lang.String); method public deprecated int findAll(java.lang.String); method public void findAllAsync(java.lang.String); @@ -26552,7 +26510,6 @@ package android.webkit { method public android.webkit.WebSettings getSettings(); method public java.lang.String getTitle(); method public java.lang.String getUrl(); - method public deprecated int getVisibleTitleHeight(); method public void goBack(); method public void goBackOrForward(int); method public void goForward(); @@ -26577,11 +26534,9 @@ package android.webkit { method public void removeJavascriptInterface(java.lang.String); method public void requestFocusNodeHref(android.os.Message); method public void requestImageRef(android.os.Message); - method public deprecated boolean restorePicture(android.os.Bundle, java.io.File); method public android.webkit.WebBackForwardList restoreState(android.os.Bundle); method public void resumeTimers(); method public void savePassword(java.lang.String, java.lang.String, java.lang.String); - method public deprecated boolean savePicture(android.os.Bundle, java.io.File); method public android.webkit.WebBackForwardList saveState(android.os.Bundle); method public void saveWebArchive(java.lang.String); method public void saveWebArchive(java.lang.String, boolean, android.webkit.ValueCallback<java.lang.String>); @@ -26593,7 +26548,6 @@ package android.webkit { method public void setInitialScale(int); method public void setMapTrackballToArrowKeys(boolean); method public void setNetworkAvailable(boolean); - method public deprecated void setPictureListener(android.webkit.WebView.PictureListener); method public void setVerticalScrollbarOverlay(boolean); method public void setWebChromeClient(android.webkit.WebChromeClient); method public void setWebViewClient(android.webkit.WebViewClient); @@ -26677,7 +26631,6 @@ package android.webkit { method public boolean hasFormData(); method public boolean hasHttpAuthUsernamePassword(); method public boolean hasUsernamePassword(); - field protected static final java.lang.String LOGTAG = "webviewdatabase"; } public class WebViewFragment extends android.app.Fragment { diff --git a/api/current.txt b/api/current.txt index cda6be188adc..0825c6497fb8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -164,7 +164,6 @@ package android { field public static final java.lang.String PERSONAL_INFO = "android.permission-group.PERSONAL_INFO"; field public static final java.lang.String PHONE_CALLS = "android.permission-group.PHONE_CALLS"; field public static final java.lang.String SCREENLOCK = "android.permission-group.SCREENLOCK"; - field public static final java.lang.String SHORTRANGE_NETWORK = "android.permission-group.SHORTRANGE_NETWORK"; field public static final java.lang.String SOCIAL_INFO = "android.permission-group.SOCIAL_INFO"; field public static final java.lang.String STATUS_BAR = "android.permission-group.STATUS_BAR"; field public static final java.lang.String STORAGE = "android.permission-group.STORAGE"; @@ -775,6 +774,7 @@ package android { field public static final int pathPattern = 16842796; // 0x101002c field public static final int pathPrefix = 16842795; // 0x101002b field public static final int permission = 16842758; // 0x1010006 + field public static final int permissionFlags = 16843719; // 0x10103c7 field public static final int permissionGroup = 16842762; // 0x101000a field public static final int permissionGroupFlags = 16843717; // 0x10103c5 field public static final int persistent = 16842765; // 0x101000d @@ -4169,6 +4169,7 @@ package android.app { method public android.graphics.drawable.Drawable getFastDrawable(); method public static android.app.WallpaperManager getInstance(android.content.Context); method public android.app.WallpaperInfo getWallpaperInfo(); + method public boolean hasResourceWallpaper(int); method public android.graphics.drawable.Drawable peekDrawable(); method public android.graphics.drawable.Drawable peekFastDrawable(); method public void sendWallpaperCommand(android.os.IBinder, java.lang.String, int, int, int, android.os.Bundle); @@ -5843,6 +5844,9 @@ package android.content { field public static final deprecated java.lang.String ACTION_UMS_CONNECTED = "android.intent.action.UMS_CONNECTED"; field public static final deprecated java.lang.String ACTION_UMS_DISCONNECTED = "android.intent.action.UMS_DISCONNECTED"; field public static final java.lang.String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE"; + field public static final java.lang.String ACTION_USER_BACKGROUND = "android.intent.action.USER_BACKGROUND"; + field public static final java.lang.String ACTION_USER_FOREGROUND = "android.intent.action.USER_FOREGROUND"; + field public static final java.lang.String ACTION_USER_INITIALIZE = "android.intent.action.USER_INITIALIZE"; field public static final java.lang.String ACTION_USER_PRESENT = "android.intent.action.USER_PRESENT"; field public static final java.lang.String ACTION_VIEW = "android.intent.action.VIEW"; field public static final java.lang.String ACTION_VOICE_COMMAND = "android.intent.action.VOICE_COMMAND"; @@ -6739,6 +6743,7 @@ package android.content.pm { method public int describeContents(); method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager); field public static final android.os.Parcelable.Creator CREATOR; + field public static final int FLAG_COSTS_MONEY = 1; // 0x1 field public static final int PROTECTION_DANGEROUS = 1; // 0x1 field public static final int PROTECTION_FLAG_DEVELOPMENT = 32; // 0x20 field public static final int PROTECTION_FLAG_SYSTEM = 16; // 0x10 @@ -6748,6 +6753,7 @@ package android.content.pm { field public static final int PROTECTION_SIGNATURE = 2; // 0x2 field public static final int PROTECTION_SIGNATURE_OR_SYSTEM = 3; // 0x3 field public int descriptionRes; + field public int flags; field public java.lang.String group; field public java.lang.CharSequence nonLocalizedDescription; field public int protectionLevel; @@ -18880,10 +18886,10 @@ package android.provider { field public static final deprecated java.lang.String USE_GOOGLE_MAIL = "use_google_mail"; field public static final deprecated java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count"; field public static final java.lang.String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms"; - field public static final java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on"; - field public static final java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay"; - field public static final java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept"; - field public static final java.lang.String WIFI_ON = "wifi_on"; + field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on"; + field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay"; + field public static final deprecated java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept"; + field public static final deprecated java.lang.String WIFI_ON = "wifi_on"; field public static final deprecated java.lang.String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage"; field public static final deprecated java.lang.String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count"; field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms"; @@ -20188,10 +20194,6 @@ package android.sax { package android.security { - public class AndroidKeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec { - ctor public AndroidKeyPairGeneratorSpec(android.content.Context, java.lang.String, javax.security.auth.x500.X500Principal, java.math.BigInteger, java.util.Date, java.util.Date); - } - public final class KeyChain { ctor public KeyChain(); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String); @@ -22205,9 +22207,9 @@ package android.text.format { method public static java.lang.String formatElapsedTime(long); method public static java.lang.String formatElapsedTime(java.lang.StringBuilder, long); method public static final java.lang.CharSequence formatSameDayTime(long, long, int, int); - method public static java.lang.String getAMPMString(int); - method public static java.lang.String getDayOfWeekString(int, int); - method public static java.lang.String getMonthString(int, int); + method public static deprecated java.lang.String getAMPMString(int); + method public static deprecated java.lang.String getDayOfWeekString(int, int); + method public static deprecated java.lang.String getMonthString(int, int); method public static java.lang.CharSequence getRelativeDateTimeString(android.content.Context, long, long, long, int); method public static java.lang.CharSequence getRelativeTimeSpanString(long); method public static java.lang.CharSequence getRelativeTimeSpanString(long, long, long); @@ -22215,24 +22217,24 @@ package android.text.format { method public static java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long, boolean); method public static java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long); method public static boolean isToday(long); - field public static final java.lang.String ABBREV_MONTH_FORMAT = "%b"; + field public static final deprecated java.lang.String ABBREV_MONTH_FORMAT = "%b"; field public static final java.lang.String ABBREV_WEEKDAY_FORMAT = "%a"; field public static final long DAY_IN_MILLIS = 86400000L; // 0x5265c00L - field public static final int FORMAT_12HOUR = 64; // 0x40 - field public static final int FORMAT_24HOUR = 128; // 0x80 + field public static final deprecated int FORMAT_12HOUR = 64; // 0x40 + field public static final deprecated int FORMAT_24HOUR = 128; // 0x80 field public static final int FORMAT_ABBREV_ALL = 524288; // 0x80000 field public static final int FORMAT_ABBREV_MONTH = 65536; // 0x10000 field public static final int FORMAT_ABBREV_RELATIVE = 262144; // 0x40000 field public static final int FORMAT_ABBREV_TIME = 16384; // 0x4000 field public static final int FORMAT_ABBREV_WEEKDAY = 32768; // 0x8000 - field public static final int FORMAT_CAP_AMPM = 256; // 0x100 - field public static final int FORMAT_CAP_MIDNIGHT = 4096; // 0x1000 - field public static final int FORMAT_CAP_NOON = 1024; // 0x400 - field public static final int FORMAT_CAP_NOON_MIDNIGHT = 5120; // 0x1400 + field public static final deprecated int FORMAT_CAP_AMPM = 256; // 0x100 + field public static final deprecated int FORMAT_CAP_MIDNIGHT = 4096; // 0x1000 + field public static final deprecated int FORMAT_CAP_NOON = 1024; // 0x400 + field public static final deprecated int FORMAT_CAP_NOON_MIDNIGHT = 5120; // 0x1400 field public static final int FORMAT_NO_MIDNIGHT = 2048; // 0x800 field public static final int FORMAT_NO_MONTH_DAY = 32; // 0x20 field public static final int FORMAT_NO_NOON = 512; // 0x200 - field public static final int FORMAT_NO_NOON_MIDNIGHT = 2560; // 0xa00 + field public static final deprecated int FORMAT_NO_NOON_MIDNIGHT = 2560; // 0xa00 field public static final int FORMAT_NO_YEAR = 8; // 0x8 field public static final int FORMAT_NUMERIC_DATE = 131072; // 0x20000 field public static final int FORMAT_SHOW_DATE = 16; // 0x10 @@ -22241,12 +22243,12 @@ package android.text.format { field public static final int FORMAT_SHOW_YEAR = 4; // 0x4 field public static final deprecated int FORMAT_UTC = 8192; // 0x2000 field public static final long HOUR_IN_MILLIS = 3600000L; // 0x36ee80L - field public static final java.lang.String HOUR_MINUTE_24 = "%H:%M"; - field public static final int LENGTH_LONG = 10; // 0xa - field public static final int LENGTH_MEDIUM = 20; // 0x14 - field public static final int LENGTH_SHORT = 30; // 0x1e - field public static final int LENGTH_SHORTER = 40; // 0x28 - field public static final int LENGTH_SHORTEST = 50; // 0x32 + field public static final deprecated java.lang.String HOUR_MINUTE_24 = "%H:%M"; + field public static final deprecated int LENGTH_LONG = 10; // 0xa + field public static final deprecated int LENGTH_MEDIUM = 20; // 0x14 + field public static final deprecated int LENGTH_SHORT = 30; // 0x1e + field public static final deprecated int LENGTH_SHORTER = 40; // 0x28 + field public static final deprecated int LENGTH_SHORTEST = 50; // 0x32 field public static final long MINUTE_IN_MILLIS = 60000L; // 0xea60L field public static final java.lang.String MONTH_DAY_FORMAT = "%-d"; field public static final java.lang.String MONTH_FORMAT = "%B"; @@ -22257,8 +22259,8 @@ package android.text.format { field public static final java.lang.String YEAR_FORMAT = "%Y"; field public static final java.lang.String YEAR_FORMAT_TWO_DIGITS = "%g"; field public static final long YEAR_IN_MILLIS = 31449600000L; // 0x7528ad000L - field public static final int[] sameMonthTable; - field public static final int[] sameYearTable; + field public static final deprecated int[] sameMonthTable; + field public static final deprecated int[] sameYearTable; } public final class Formatter { @@ -26054,9 +26056,13 @@ package android.view.accessibility { field public static final deprecated int MAX_TEXT_LENGTH = 500; // 0x1f4 field public static final int TYPES_ALL_MASK = -1; // 0xffffffff field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000 + field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000 + field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000 field public static final int TYPE_NOTIFICATION_STATE_CHANGED = 64; // 0x40 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200 + field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000 + field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000 field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000 field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000 field public static final int TYPE_VIEW_CLICKED = 1; // 0x1 @@ -26922,35 +26928,6 @@ package android.view.textservice { package android.webkit { - public final deprecated class CacheManager { - ctor public CacheManager(); - method public static deprecated boolean cacheDisabled(); - method public static deprecated boolean endCacheTransaction(); - method public static deprecated android.webkit.CacheManager.CacheResult getCacheFile(java.lang.String, java.util.Map<java.lang.String, java.lang.String>); - method public static deprecated java.io.File getCacheFileBaseDir(); - method public static deprecated void saveCacheFile(java.lang.String, android.webkit.CacheManager.CacheResult); - method public static deprecated boolean startCacheTransaction(); - } - - public static deprecated class CacheManager.CacheResult { - ctor public CacheManager.CacheResult(); - method public java.lang.String getContentDisposition(); - method public long getContentLength(); - method public java.lang.String getETag(); - method public java.lang.String getEncoding(); - method public long getExpires(); - method public java.lang.String getExpiresString(); - method public int getHttpStatusCode(); - method public java.io.InputStream getInputStream(); - method public java.lang.String getLastModified(); - method public java.lang.String getLocalPath(); - method public java.lang.String getLocation(); - method public java.lang.String getMimeType(); - method public java.io.OutputStream getOutputStream(); - method public void setEncoding(java.lang.String); - method public void setInputStream(java.io.InputStream); - } - public class ConsoleMessage { ctor public ConsoleMessage(java.lang.String, java.lang.String, int, android.webkit.ConsoleMessage.MessageLevel); method public int lineNumber(); @@ -27116,7 +27093,6 @@ package android.webkit { public class WebHistoryItem implements java.lang.Cloneable { method public android.graphics.Bitmap getFavicon(); - method public deprecated int getId(); method public java.lang.String getOriginalUrl(); method public java.lang.String getTitle(); method public java.lang.String getUrl(); @@ -27177,7 +27153,6 @@ package android.webkit { method public boolean getMediaPlaybackRequiresUserGesture(); method public synchronized int getMinimumFontSize(); method public synchronized int getMinimumLogicalFontSize(); - method public deprecated boolean getNavDump(); method public synchronized android.webkit.WebSettings.PluginState getPluginState(); method public deprecated synchronized boolean getPluginsEnabled(); method public deprecated synchronized java.lang.String getPluginsPath(); @@ -27188,10 +27163,7 @@ package android.webkit { method public synchronized java.lang.String getStandardFontFamily(); method public deprecated synchronized android.webkit.WebSettings.TextSize getTextSize(); method public synchronized int getTextZoom(); - method public deprecated synchronized boolean getUseDoubleTree(); - method public deprecated boolean getUseWebViewBackgroundForOverscrollBackground(); method public synchronized boolean getUseWideViewPort(); - method public deprecated synchronized int getUserAgent(); method public synchronized java.lang.String getUserAgentString(); method public void setAllowContentAccess(boolean); method public void setAllowFileAccess(boolean); @@ -27227,7 +27199,6 @@ package android.webkit { method public void setMediaPlaybackRequiresUserGesture(boolean); method public synchronized void setMinimumFontSize(int); method public synchronized void setMinimumLogicalFontSize(int); - method public deprecated void setNavDump(boolean); method public void setNeedInitialFocus(boolean); method public synchronized void setPluginState(android.webkit.WebSettings.PluginState); method public deprecated synchronized void setPluginsEnabled(boolean); @@ -27242,10 +27213,8 @@ package android.webkit { method public void setSupportZoom(boolean); method public deprecated synchronized void setTextSize(android.webkit.WebSettings.TextSize); method public synchronized void setTextZoom(int); - method public deprecated synchronized void setUseDoubleTree(boolean); method public deprecated void setUseWebViewBackgroundForOverscrollBackground(boolean); method public synchronized void setUseWideViewPort(boolean); - method public deprecated synchronized void setUserAgent(int); method public synchronized void setUserAgentString(java.lang.String); method public synchronized boolean supportMultipleWindows(); method public boolean supportZoom(); @@ -27350,12 +27319,8 @@ package android.webkit { method public void clearSslPreferences(); method public void clearView(); method public android.webkit.WebBackForwardList copyBackForwardList(); - method public deprecated void debugDump(); method public void destroy(); - method public static deprecated void disablePlatformNotifications(); method public void documentHasImages(android.os.Message); - method public deprecated void emulateShiftHeld(); - method public static deprecated void enablePlatformNotifications(); method public static java.lang.String findAddress(java.lang.String); method public deprecated int findAll(java.lang.String); method public void findAllAsync(java.lang.String); @@ -27373,7 +27338,6 @@ package android.webkit { method public android.webkit.WebSettings getSettings(); method public java.lang.String getTitle(); method public java.lang.String getUrl(); - method public deprecated int getVisibleTitleHeight(); method public void goBack(); method public void goBackOrForward(int); method public void goForward(); @@ -27398,11 +27362,9 @@ package android.webkit { method public void removeJavascriptInterface(java.lang.String); method public void requestFocusNodeHref(android.os.Message); method public void requestImageRef(android.os.Message); - method public deprecated boolean restorePicture(android.os.Bundle, java.io.File); method public android.webkit.WebBackForwardList restoreState(android.os.Bundle); method public void resumeTimers(); method public void savePassword(java.lang.String, java.lang.String, java.lang.String); - method public deprecated boolean savePicture(android.os.Bundle, java.io.File); method public android.webkit.WebBackForwardList saveState(android.os.Bundle); method public void saveWebArchive(java.lang.String); method public void saveWebArchive(java.lang.String, boolean, android.webkit.ValueCallback<java.lang.String>); @@ -27414,7 +27376,6 @@ package android.webkit { method public void setInitialScale(int); method public deprecated void setMapTrackballToArrowKeys(boolean); method public void setNetworkAvailable(boolean); - method public deprecated void setPictureListener(android.webkit.WebView.PictureListener); method public void setVerticalScrollbarOverlay(boolean); method public void setWebChromeClient(android.webkit.WebChromeClient); method public void setWebViewClient(android.webkit.WebViewClient); @@ -27498,7 +27459,6 @@ package android.webkit { method public boolean hasFormData(); method public boolean hasHttpAuthUsernamePassword(); method public boolean hasUsernamePassword(); - field protected static final java.lang.String LOGTAG = "webviewdatabase"; } public class WebViewFragment extends android.app.Fragment { diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index 6b3b7fd59f52..5358bc796ab9 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -15,6 +15,8 @@ */ package android.accounts; +import com.google.android.collect.Sets; + import android.app.Activity; import android.content.Intent; import android.os.Bundle; @@ -105,6 +107,13 @@ public class ChooseTypeAndAccountActivity extends Activity private static final int SELECTED_ITEM_NONE = -1; + private Set<Account> mSetOfAllowableAccounts; + private Set<String> mSetOfRelevantAccountTypes; + private String mSelectedAccountName = null; + private boolean mSelectedAddNewAccount = false; + private boolean mAlwaysPromptForAccount = false; + private String mDescriptionOverride; + private ArrayList<Account> mAccounts; private int mPendingRequest = REQUEST_NULL; private Parcelable[] mExistingAccounts = null; @@ -120,22 +129,18 @@ public class ChooseTypeAndAccountActivity extends Activity } // save some items we use frequently - final AccountManager accountManager = AccountManager.get(this); final Intent intent = getIntent(); - String selectedAccountName = null; - boolean selectedAddNewAccount = false; - if (savedInstanceState != null) { mPendingRequest = savedInstanceState.getInt(KEY_INSTANCE_STATE_PENDING_REQUEST); mExistingAccounts = savedInstanceState.getParcelableArray(KEY_INSTANCE_STATE_EXISTING_ACCOUNTS); // Makes sure that any user selection is preserved across orientation changes. - selectedAccountName = savedInstanceState.getString( + mSelectedAccountName = savedInstanceState.getString( KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME); - selectedAddNewAccount = savedInstanceState.getBoolean( + mSelectedAddNewAccount = savedInstanceState.getBoolean( KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT, false); } else { mPendingRequest = REQUEST_NULL; @@ -144,85 +149,38 @@ public class ChooseTypeAndAccountActivity extends Activity // show is as pre-selected. Account selectedAccount = (Account) intent.getParcelableExtra(EXTRA_SELECTED_ACCOUNT); if (selectedAccount != null) { - selectedAccountName = selectedAccount.name; + mSelectedAccountName = selectedAccount.name; } } if (Log.isLoggable(TAG, Log.VERBOSE)) { - Log.v(TAG, "selected account name is " + selectedAccountName); + Log.v(TAG, "selected account name is " + mSelectedAccountName); } - // build an efficiently queryable map of account types to authenticator descriptions - final HashMap<String, AuthenticatorDescription> typeToAuthDescription = - new HashMap<String, AuthenticatorDescription>(); - for(AuthenticatorDescription desc : accountManager.getAuthenticatorTypes()) { - typeToAuthDescription.put(desc.type, desc); - } - - // Read the validAccounts, if present, and add them to the setOfAllowableAccounts - Set<Account> setOfAllowableAccounts = null; - final ArrayList<Parcelable> validAccounts = - intent.getParcelableArrayListExtra(EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST); - if (validAccounts != null) { - setOfAllowableAccounts = new HashSet<Account>(validAccounts.size()); - for (Parcelable parcelable : validAccounts) { - setOfAllowableAccounts.add((Account)parcelable); - } - } - // An account type is relevant iff it is allowed by the caller and supported by the account - // manager. - Set<String> setOfRelevantAccountTypes = null; - final String[] allowedAccountTypes = - intent.getStringArrayExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY); - if (allowedAccountTypes != null) { - - setOfRelevantAccountTypes = new HashSet<String>(allowedAccountTypes.length); - Set<String> setOfAllowedAccountTypes = new HashSet<String>(allowedAccountTypes.length); - for (String type : allowedAccountTypes) { - setOfAllowedAccountTypes.add(type); - } - - AuthenticatorDescription[] descs = AccountManager.get(this).getAuthenticatorTypes(); - Set<String> supportedAccountTypes = new HashSet<String>(descs.length); - for (AuthenticatorDescription desc : descs) { - supportedAccountTypes.add(desc.type); - } + mSetOfAllowableAccounts = getAllowableAccountSet(intent); + mSetOfRelevantAccountTypes = getReleventAccountTypes(intent); + mAlwaysPromptForAccount = intent.getBooleanExtra(EXTRA_ALWAYS_PROMPT_FOR_ACCOUNT, false); + mDescriptionOverride = intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); + } - for (String acctType : setOfAllowedAccountTypes) { - if (supportedAccountTypes.contains(acctType)) { - setOfRelevantAccountTypes.add(acctType); - } - } - } + @Override + protected void onResume() { + super.onResume(); + final AccountManager accountManager = AccountManager.get(this); - // Create a list of AccountInfo objects for each account that is allowable. Filter out - // accounts that don't match the allowable types, if provided, or that don't match the - // allowable accounts, if provided. - final Account[] accounts = accountManager.getAccounts(); - mAccounts = new ArrayList<Account>(accounts.length); - mSelectedItemIndex = SELECTED_ITEM_NONE; - for (Account account : accounts) { - if (setOfAllowableAccounts != null - && !setOfAllowableAccounts.contains(account)) { - continue; - } - if (setOfRelevantAccountTypes != null - && !setOfRelevantAccountTypes.contains(account.type)) { - continue; - } - if (account.name.equals(selectedAccountName)) { - mSelectedItemIndex = mAccounts.size(); - } - mAccounts.add(account); - } + mAccounts = getAcceptableAccountChoices(accountManager); + // In cases where the activity does not need to show an account picker, cut the chase + // and return the result directly. Eg: + // Single account -> select it directly + // No account -> launch add account activity directly if (mPendingRequest == REQUEST_NULL) { // If there are no relevant accounts and only one relevant account type go directly to // add account. Otherwise let the user choose. if (mAccounts.isEmpty()) { - if (setOfRelevantAccountTypes.size() == 1) { - runAddAccountForAuthenticator(setOfRelevantAccountTypes.iterator().next()); + if (mSetOfRelevantAccountTypes.size() == 1) { + runAddAccountForAuthenticator(mSetOfRelevantAccountTypes.iterator().next()); } else { startChooseAccountTypeActivity(); } @@ -230,61 +188,22 @@ public class ChooseTypeAndAccountActivity extends Activity } // if there is only one allowable account return it - if (!intent.getBooleanExtra(EXTRA_ALWAYS_PROMPT_FOR_ACCOUNT, false) - && mAccounts.size() == 1) { + if (!mAlwaysPromptForAccount && mAccounts.size() == 1) { Account account = mAccounts.get(0); setResultAndFinish(account.name, account.type); return; } } + String[] listItems = getListOfDisplayableOptions(mAccounts); + mSelectedItemIndex = getItemIndexToSelect( + mAccounts, mSelectedAccountName, mSelectedAddNewAccount); + // Cannot set content view until we know that mPendingRequest is not null, otherwise // would cause screen flicker. setContentView(R.layout.choose_type_and_account); - - // Override the description text if supplied - final String descriptionOverride = - intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); - TextView descriptionView = (TextView) findViewById(R.id.description); - if (!TextUtils.isEmpty(descriptionOverride)) { - descriptionView.setText(descriptionOverride); - } else { - descriptionView.setVisibility(View.GONE); - } - - // List of options includes all accounts found together with "Add new account" as the - // last item in the list. - String[] listItems = new String[mAccounts.size() + 1]; - for (int i = 0; i < mAccounts.size(); i++) { - listItems[i] = mAccounts.get(i).name; - } - listItems[mAccounts.size()] = getResources().getString( - R.string.add_account_button_label); - - ListView list = (ListView) findViewById(android.R.id.list); - list.setAdapter(new ArrayAdapter<String>(this, - android.R.layout.simple_list_item_single_choice, listItems)); - list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); - list.setItemsCanFocus(false); - list.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView<?> parent, View v, int position, long id) { - mSelectedItemIndex = position; - mOkButton.setEnabled(true); - } - }); - - // If "Add account" option was previously selected by user, preserve it across - // orientation changes. - if (selectedAddNewAccount) { - mSelectedItemIndex = mAccounts.size(); - } - if (mSelectedItemIndex != SELECTED_ITEM_NONE) { - list.setItemChecked(mSelectedItemIndex, true); - if (Log.isLoggable(TAG, Log.VERBOSE)) { - Log.v(TAG, "List item " + mSelectedItemIndex + " should be selected"); - } - } + overrideDescriptionIfSupplied(mDescriptionOverride); + populateUIAccountList(listItems); // Only enable "OK" button if something has been selected. mOkButton = (Button) findViewById(android.R.id.button2); @@ -480,4 +399,137 @@ public class ChooseTypeAndAccountActivity extends Activity startActivityForResult(intent, REQUEST_CHOOSE_TYPE); mPendingRequest = REQUEST_CHOOSE_TYPE; } + + /** + * @return a value between 0 (inclusive) and accounts.size() (inclusive) or SELECTED_ITEM_NONE. + * An index value of accounts.size() indicates 'Add account' option. + */ + private int getItemIndexToSelect(ArrayList<Account> accounts, String selectedAccountName, + boolean selectedAddNewAccount) { + // If "Add account" option was previously selected by user, preserve it across + // orientation changes. + if (selectedAddNewAccount) { + return accounts.size(); + } + // search for the selected account name if present + for (int i = 0; i < accounts.size(); i++) { + if (accounts.get(i).name.equals(selectedAccountName)) { + return i; + } + } + // no account selected. + return SELECTED_ITEM_NONE; + } + + private String[] getListOfDisplayableOptions(ArrayList<Account> accounts) { + // List of options includes all accounts found together with "Add new account" as the + // last item in the list. + String[] listItems = new String[accounts.size() + 1]; + for (int i = 0; i < accounts.size(); i++) { + listItems[i] = accounts.get(i).name; + } + listItems[accounts.size()] = getResources().getString( + R.string.add_account_button_label); + return listItems; + } + + /** + * Create a list of Account objects for each account that is acceptable. Filter out + * accounts that don't match the allowable types, if provided, or that don't match the + * allowable accounts, if provided. + */ + private ArrayList<Account> getAcceptableAccountChoices(AccountManager accountManager) { + final Account[] accounts = accountManager.getAccounts(); + ArrayList<Account> accountsToPopulate = new ArrayList<Account>(accounts.length); + for (Account account : accounts) { + if (mSetOfAllowableAccounts != null + && !mSetOfAllowableAccounts.contains(account)) { + continue; + } + if (mSetOfRelevantAccountTypes != null + && !mSetOfRelevantAccountTypes.contains(account.type)) { + continue; + } + accountsToPopulate.add(account); + } + return accountsToPopulate; + } + + /** + * Return a set of account types speficied by the intent as well as supported by the + * AccountManager. + */ + private Set<String> getReleventAccountTypes(final Intent intent) { + // An account type is relevant iff it is allowed by the caller and supported by the account + // manager. + Set<String> setOfRelevantAccountTypes = null; + final String[] allowedAccountTypes = + intent.getStringArrayExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY); + if (allowedAccountTypes != null) { + setOfRelevantAccountTypes = Sets.newHashSet(allowedAccountTypes); + AuthenticatorDescription[] descs = AccountManager.get(this).getAuthenticatorTypes(); + Set<String> supportedAccountTypes = new HashSet<String>(descs.length); + for (AuthenticatorDescription desc : descs) { + supportedAccountTypes.add(desc.type); + } + setOfRelevantAccountTypes.retainAll(supportedAccountTypes); + } + return setOfRelevantAccountTypes; + } + + /** + * Returns a set of whitelisted accounts given by the intent or null if none specified by the + * intent. + */ + private Set<Account> getAllowableAccountSet(final Intent intent) { + Set<Account> setOfAllowableAccounts = null; + final ArrayList<Parcelable> validAccounts = + intent.getParcelableArrayListExtra(EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST); + if (validAccounts != null) { + setOfAllowableAccounts = new HashSet<Account>(validAccounts.size()); + for (Parcelable parcelable : validAccounts) { + setOfAllowableAccounts.add((Account)parcelable); + } + } + return setOfAllowableAccounts; + } + + /** + * Overrides the description text view for the picker activity if specified by the intent. + * If not specified then makes the description invisible. + */ + private void overrideDescriptionIfSupplied(String descriptionOverride) { + TextView descriptionView = (TextView) findViewById(R.id.description); + if (!TextUtils.isEmpty(descriptionOverride)) { + descriptionView.setText(descriptionOverride); + } else { + descriptionView.setVisibility(View.GONE); + } + } + + /** + * Populates the UI ListView with the given list of items and selects an item + * based on {@code mSelectedItemIndex} member variable. + */ + private final void populateUIAccountList(String[] listItems) { + ListView list = (ListView) findViewById(android.R.id.list); + list.setAdapter(new ArrayAdapter<String>(this, + android.R.layout.simple_list_item_single_choice, listItems)); + list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); + list.setItemsCanFocus(false); + list.setOnItemClickListener( + new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View v, int position, long id) { + mSelectedItemIndex = position; + mOkButton.setEnabled(true); + } + }); + if (mSelectedItemIndex != SELECTED_ITEM_NONE) { + list.setItemChecked(mSelectedItemIndex, true); + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "List item " + mSelectedItemIndex + " should be selected"); + } + } + } } diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 05b04dc55662..7606d5e3d215 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -5010,7 +5010,21 @@ public class Activity extends ContextThemeWrapper if (TextUtils.isEmpty(parentName)) { return null; } - return new Intent().setClassName(this, parentName); + + // If the parent itself has no parent, generate a main activity intent. + final ComponentName target = new ComponentName(this, parentName); + try { + final ActivityInfo parentInfo = getPackageManager().getActivityInfo(target, 0); + final String parentActivity = parentInfo.parentActivityName; + final Intent parentIntent = parentActivity == null + ? Intent.makeMainActivity(target) + : new Intent().setComponent(target); + return parentIntent; + } catch (NameNotFoundException e) { + Log.e(TAG, "getParentActivityIntent: bad parentActivityName '" + parentName + + "' in manifest"); + return null; + } } // ------------------ Internal API ------------------ diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java index bf77f6e995c0..eae3b1f9bb17 100644 --- a/core/java/android/app/ActivityManagerNative.java +++ b/core/java/android/app/ActivityManagerNative.java @@ -1734,6 +1734,22 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } + case REGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( + data.readStrongBinder()); + registerUserSwitchObserver(observer); + return true; + } + + case UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( + data.readStrongBinder()); + unregisterUserSwitchObserver(observer); + return true; + } + } return super.onTransact(code, data, reply, flags); @@ -3955,5 +3971,27 @@ class ActivityManagerProxy implements IActivityManager return result; } + public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + data.writeStrongBinder(observer != null ? observer.asBinder() : null); + mRemote.transact(REGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); + reply.readException(); + data.recycle(); + reply.recycle(); + } + + public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + data.writeStrongBinder(observer != null ? observer.asBinder() : null); + mRemote.transact(UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); + reply.readException(); + data.recycle(); + reply.recycle(); + } + private IBinder mRemote; } diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 1cd5fa29b1b8..cb4d4a116956 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -84,7 +84,6 @@ import android.view.Window; import android.view.WindowManager; import android.view.WindowManagerGlobal; import android.renderscript.RenderScript; -import android.security.AndroidKeyStoreProvider; import com.android.internal.os.BinderInternal; import com.android.internal.os.RuntimeInit; @@ -4891,8 +4890,6 @@ public final class ActivityThread { // Set the reporter for event logging in libcore EventLogger.setReporter(new EventLoggingReporter()); - Security.addProvider(new AndroidKeyStoreProvider()); - Process.setArgV0("<pre-initialized>"); Looper.prepareMainLooper(); diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java index 4c0e2a7c05de..9ef375ac256d 100644 --- a/core/java/android/app/IActivityManager.java +++ b/core/java/android/app/IActivityManager.java @@ -360,6 +360,9 @@ public interface IActivityManager extends IInterface { // manage your activity to make sure it is always the uid you expect. public int getLaunchedFromUid(IBinder activityToken) throws RemoteException; + public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException; + public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException; + /* * Private non-Binder interfaces */ @@ -609,4 +612,6 @@ public interface IActivityManager extends IInterface { int IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+151; int START_ACTIVITY_AS_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+152; int STOP_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+153; + int REGISTER_USER_SWITCH_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+154; + int UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+155; } diff --git a/core/java/android/app/IUserSwitchObserver.aidl b/core/java/android/app/IUserSwitchObserver.aidl new file mode 100644 index 000000000000..845897b7827e --- /dev/null +++ b/core/java/android/app/IUserSwitchObserver.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2012 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.app; + +import android.os.IRemoteCallback; + +/** {@hide} */ +oneway interface IUserSwitchObserver { + void onUserSwitching(int newUserId, IRemoteCallback reply); + void onUserSwitchComplete(int newUserId); +} diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl index 69f64a11fde3..3efd3c0ede8b 100644 --- a/core/java/android/app/IWallpaperManager.aidl +++ b/core/java/android/app/IWallpaperManager.aidl @@ -52,6 +52,11 @@ interface IWallpaperManager { void clearWallpaper(); /** + * Return whether there is a wallpaper set with the given name. + */ + boolean hasNamedWallpaper(String name); + + /** * Sets the dimension hint for the wallpaper. These hints indicate the desired * minimum width and height for the wallpaper. */ diff --git a/core/java/android/app/TaskStackBuilder.java b/core/java/android/app/TaskStackBuilder.java index f21b3fdff5db..9c83362f6086 100644 --- a/core/java/android/app/TaskStackBuilder.java +++ b/core/java/android/app/TaskStackBuilder.java @@ -124,24 +124,12 @@ public class TaskStackBuilder { * @return This TaskStackBuilder for method chaining */ public TaskStackBuilder addParentStack(Activity sourceActivity) { - final int insertAt = mIntents.size(); - Intent parent = sourceActivity.getParentActivityIntent(); - PackageManager pm = sourceActivity.getPackageManager(); - while (parent != null) { - mIntents.add(insertAt, parent); - try { - ActivityInfo info = pm.getActivityInfo(parent.getComponent(), 0); - String parentActivity = info.parentActivityName; - if (parentActivity != null) { - parent = new Intent().setComponent( - new ComponentName(mSourceContext, parentActivity)); - } else { - parent = null; - } - } catch (NameNotFoundException e) { - Log.e(TAG, "Bad ComponentName while traversing activity parent metadata"); - throw new IllegalArgumentException(e); - } + final Intent parent = sourceActivity.getParentActivityIntent(); + if (parent != null) { + // We have the actual parent intent, build the rest from static metadata + // then add the direct parent intent to the end. + addParentStack(parent.getComponent()); + addNextIntent(parent); } return this; } @@ -155,24 +143,7 @@ public class TaskStackBuilder { * @return This TaskStackBuilder for method chaining */ public TaskStackBuilder addParentStack(Class<?> sourceActivityClass) { - final int insertAt = mIntents.size(); - PackageManager pm = mSourceContext.getPackageManager(); - try { - ActivityInfo info = pm.getActivityInfo( - new ComponentName(mSourceContext, sourceActivityClass), 0); - String parentActivity = info.parentActivityName; - while (parentActivity != null) { - Intent parent = new Intent().setComponent( - new ComponentName(mSourceContext, parentActivity)); - mIntents.add(insertAt, parent); - info = pm.getActivityInfo(parent.getComponent(), 0); - parentActivity = info.parentActivityName; - } - } catch (NameNotFoundException e) { - Log.e(TAG, "Bad ComponentName while traversing activity parent metadata"); - throw new IllegalArgumentException(e); - } - return this; + return addParentStack(new ComponentName(mSourceContext, sourceActivityClass)); } /** @@ -191,11 +162,13 @@ public class TaskStackBuilder { ActivityInfo info = pm.getActivityInfo(sourceActivityName, 0); String parentActivity = info.parentActivityName; while (parentActivity != null) { - Intent parent = new Intent().setComponent( - new ComponentName(info.packageName, parentActivity)); - mIntents.add(insertAt, parent); - info = pm.getActivityInfo(parent.getComponent(), 0); + final ComponentName target = new ComponentName(mSourceContext, parentActivity); + info = pm.getActivityInfo(target, 0); parentActivity = info.parentActivityName; + final Intent parent = parentActivity == null && insertAt == 0 + ? Intent.makeMainActivity(target) + : new Intent().setComponent(target); + mIntents.add(insertAt, parent); } } catch (NameNotFoundException e) { Log.e(TAG, "Bad ComponentName while traversing activity parent metadata"); diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index 1ad2e6dbefa0..9c0064efe65e 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -590,6 +590,25 @@ public class WallpaperManager { } /** + * Return whether any users are currently set to use the wallpaper + * with the given resource ID. That is, their wallpaper has been + * set through {@link #setResource(int)} with the same resource id. + */ + public boolean hasResourceWallpaper(int resid) { + if (sGlobals.mService == null) { + Log.w(TAG, "WallpaperService not running"); + return false; + } + try { + Resources resources = mContext.getResources(); + String name = "res:" + resources.getResourceName(resid); + return sGlobals.mService.hasNamedWallpaper(name); + } catch (RemoteException e) { + return false; + } + } + + /** * Returns the desired minimum width for the wallpaper. Callers of * {@link #setBitmap(android.graphics.Bitmap)} or * {@link #setStream(java.io.InputStream)} should check this value diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index c76bf91fcae7..51a81c5caf41 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -24,8 +24,10 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; +import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserHandle; import android.util.DisplayMetrics; import android.util.TypedValue; import android.widget.RemoteViews; @@ -115,18 +117,22 @@ public class AppWidgetHost { private OnClickHandler mOnClickHandler; public AppWidgetHost(Context context, int hostId) { - this(context, hostId, null); + this(context, hostId, null, Looper.getMainLooper()); } /** * @hide */ - public AppWidgetHost(Context context, int hostId, OnClickHandler handler) { + public AppWidgetHost(Context context, int hostId, OnClickHandler handler, Looper looper) { mContext = context; mHostId = hostId; mOnClickHandler = handler; - mHandler = new UpdateHandler(context.getMainLooper()); + mHandler = new UpdateHandler(looper); mDisplayMetrics = context.getResources().getDisplayMetrics(); + bindService(); + } + + private static void bindService() { synchronized (sServiceLock) { if (sService == null) { IBinder b = ServiceManager.getService(Context.APPWIDGET_SERVICE); @@ -190,6 +196,32 @@ public class AppWidgetHost { } /** + * Get a appWidgetId for a host in the calling process. + * + * @return a appWidgetId + * @hide + */ + public static int allocateAppWidgetIdForHost(String packageName, int hostId) { + checkCallerIsSystem(); + try { + if (sService == null) { + bindService(); + } + return sService.allocateAppWidgetId(packageName, hostId); + } catch (RemoteException e) { + throw new RuntimeException("system server dead?", e); + } + } + + private static void checkCallerIsSystem() { + int uid = Process.myUid(); + if (UserHandle.getAppId(uid) == Process.SYSTEM_UID || uid == 0) { + return; + } + throw new SecurityException("Disallowed call for uid " + uid); + } + + /** * Stop listening to changes for this AppWidget. */ public void deleteAppWidgetId(int appWidgetId) { @@ -205,6 +237,22 @@ public class AppWidgetHost { } /** + * Stop listening to changes for this AppWidget. + * @hide + */ + public static void deleteAppWidgetIdForHost(int appWidgetId) { + checkCallerIsSystem(); + try { + if (sService == null) { + bindService(); + } + sService.deleteAppWidgetId(appWidgetId); + } catch (RemoteException e) { + throw new RuntimeException("system server dead?", e); + } + } + + /** * Remove all records about this host from the AppWidget manager. * <ul> * <li>Call this when initializing your database, as it might be because of a data wipe.</li> diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 100a2b8cc7e7..6fb6dc43ac09 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -216,6 +216,28 @@ public class AppWidgetManager { public static final String EXTRA_CUSTOM_EXTRAS = "customExtras"; /** + * An intent extra to pass to the AppWidget picker which allows the picker to filter + * the list based on the {@link AppWidgetProviderInfo#widgetCategory}. + * + * @hide + */ + public static final String EXTRA_CATEGORY_FILTER = "categoryFilter"; + + /** + * An intent extra to pass to the AppWidget picker which allows the picker to filter + * the list based on the {@link AppWidgetProviderInfo#widgetFeatures}. + * @hide + */ + public static final String EXTRA_FEATURES_FILTER = "featuresFilter"; + + /** + * An intent extra to pass to the AppWidget picker to specify whether or not to sort + * the list of caller-specified extra AppWidgets along with the rest of the AppWidgets + * @hide + */ + public static final String EXTRA_CUSTOM_SORT = "customSort"; + + /** * A sentiel value that the AppWidget manager will never return as a appWidgetId. */ public static final int INVALID_APPWIDGET_ID = 0; diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index bca5ade50655..d3b8648f5d59 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1345,6 +1345,13 @@ public class Intent implements Parcelable, Cloneable { public static final String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE"; /** + * Specify whether the package should be uninstalled for all users. + * @hide because these should not be part of normal application flow. + */ + public static final String EXTRA_UNINSTALL_ALL_USERS + = "android.intent.extra.UNINSTALL_ALL_USERS"; + + /** * A string associated with a {@link #ACTION_UPGRADE_SETUP} activity * describing the last run version of the platform that was setup. * @hide @@ -1473,7 +1480,7 @@ public class Intent implements Parcelable, Cloneable { * Broadcast Action: A new application package has been installed on the * device. The data contains the name of the package. Note that the * newly installed package does <em>not</em> receive this broadcast. - * <p>My include the following extras: + * <p>May include the following extras: * <ul> * <li> {@link #EXTRA_UID} containing the integer uid assigned to the new package. * <li> {@link #EXTRA_REPLACING} is set to true if this is following @@ -1489,7 +1496,7 @@ public class Intent implements Parcelable, Cloneable { * Broadcast Action: A new version of an application package has been * installed, replacing an existing version that was previously installed. * The data contains the name of the package. - * <p>My include the following extras: + * <p>May include the following extras: * <ul> * <li> {@link #EXTRA_UID} containing the integer uid assigned to the new package. * </ul> @@ -2287,17 +2294,62 @@ public class Intent implements Parcelable, Cloneable { "android.intent.action.PRE_BOOT_COMPLETED"; /** + * Sent the first time a user is starting, to allow system apps to + * perform one time initialization. (This will not be seen by third + * party applications because a newly initialized user does not have any + * third party applications installed for it.) This is sent early in + * starting the user, around the time the home app is started, before + * {@link #ACTION_BOOT_COMPLETED} is sent. + */ + public static final String ACTION_USER_INITIALIZE = + "android.intent.action.USER_INITIALIZE"; + + /** + * Sent when a user switch is happening, causing the process's user to be + * brought to the foreground. This is only sent to receivers registered + * through {@link Context#registerReceiver(BroadcastReceiver, IntentFilter) + * Context.registerReceiver}. It is sent to the user that is going to the + * foreground. + */ + public static final String ACTION_USER_FOREGROUND = + "android.intent.action.USER_FOREGROUND"; + + /** + * Sent when a user switch is happening, causing the process's user to be + * sent to the background. This is only sent to receivers registered + * through {@link Context#registerReceiver(BroadcastReceiver, IntentFilter) + * Context.registerReceiver}. It is sent to the user that is going to the + * background. + */ + public static final String ACTION_USER_BACKGROUND = + "android.intent.action.USER_BACKGROUND"; + + /** * Broadcast sent to the system when a user is added. Carries an extra EXTRA_USER_HANDLE that has the - * userHandle of the new user. + * userHandle of the new user. It is sent to all running users. You must hold + * {@link android.Manifest.permission#MANAGE_USERS} to receive this broadcast. * @hide */ public static final String ACTION_USER_ADDED = "android.intent.action.USER_ADDED"; /** + * Broadcast sent to the system when a user is started. Carries an extra EXTRA_USER_HANDLE that has + * the userHandle of the user. This is only sent to + * registered receivers, not manifest receivers. It is sent to the user + * that has been started. + * @hide + */ + public static final String ACTION_USER_STARTED = + "android.intent.action.USER_STARTED"; + + /** * Broadcast sent to the system when a user is stopped. Carries an extra EXTRA_USER_HANDLE that has * the userHandle of the user. This is similar to {@link #ACTION_PACKAGE_RESTARTED}, - * but for an entire user instead of a specific package. + * but for an entire user instead of a specific package. This is only sent to + * registered receivers, not manifest receivers. It is sent to all running + * users <em>except</em> the one that has just been stopped (which is no + * longer running). * @hide */ public static final String ACTION_USER_STOPPED = @@ -2305,7 +2357,9 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast sent to the system when a user is removed. Carries an extra EXTRA_USER_HANDLE that has - * the userHandle of the user. + * the userHandle of the user. It is sent to all running users except the + * one that has been removed. You must hold + * {@link android.Manifest.permission#MANAGE_USERS} to receive this broadcast. * @hide */ public static final String ACTION_USER_REMOVED = @@ -2313,7 +2367,10 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast sent to the system when the user switches. Carries an extra EXTRA_USER_HANDLE that has - * the userHandle of the user to become the current one. + * the userHandle of the user to become the current one. This is only sent to + * registered receivers, not manifest receivers. It is sent to all running users. + * You must hold + * {@link android.Manifest.permission#MANAGE_USERS} to receive this broadcast. * @hide */ public static final String ACTION_USER_SWITCHED = diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 53995835b5e8..4784d7f5144b 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -1151,6 +1151,22 @@ public abstract class PackageManager { = "android.content.pm.extra.VERIFICATION_INSTALL_FLAGS"; /** + * Extra field name for the uid of who is requesting to install + * the package. + * + * @hide + */ + public static final String EXTRA_VERIFICATION_INSTALLER_UID + = "android.content.pm.extra.VERIFICATION_INSTALLER_UID"; + + /** + * Extra field name for the package name of a package pending verification. + * + * @hide + */ + public static final String EXTRA_VERIFICATION_PACKAGE_NAME + = "android.content.pm.extra.VERIFICATION_PACKAGE_NAME"; + /** * Extra field name for the result of a verification, either * {@link #VERIFICATION_ALLOW}, or {@link #VERIFICATION_REJECT}. * Passed to package verifiers after a package is verified. @@ -1159,6 +1175,14 @@ public abstract class PackageManager { = "android.content.pm.extra.VERIFICATION_RESULT"; /** + * Extra field name for the version code of a package pending verification. + * + * @hide + */ + public static final String EXTRA_VERIFICATION_VERSION_CODE + = "android.content.pm.extra.VERIFICATION_VERSION_CODE"; + + /** * Retrieve overall information about an application package that is * installed on the system. * <p> diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 5ebca9eba1a9..0a22fcac2582 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -1543,6 +1543,9 @@ public class PackageParser { com.android.internal.R.styleable.AndroidManifestPermission_protectionLevel, PermissionInfo.PROTECTION_NORMAL); + perm.info.flags = sa.getInt( + com.android.internal.R.styleable.AndroidManifestPermission_permissionFlags, 0); + sa.recycle(); if (perm.info.protectionLevel == -1) { diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java index 69b812ca89aa..5a63e5f656f5 100644 --- a/core/java/android/content/pm/PermissionInfo.java +++ b/core/java/android/content/pm/PermissionInfo.java @@ -79,11 +79,34 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { public static final int PROTECTION_MASK_FLAGS = 0xf0; /** + * The level of access this permission is protecting, as per + * {@link android.R.attr#protectionLevel}. Values may be + * {@link #PROTECTION_NORMAL}, {@link #PROTECTION_DANGEROUS}, or + * {@link #PROTECTION_SIGNATURE}. May also include the additional + * flags {@link #PROTECTION_FLAG_SYSTEM} or {@link #PROTECTION_FLAG_DEVELOPMENT} + * (which only make sense in combination with the base + * {@link #PROTECTION_SIGNATURE}. + */ + public int protectionLevel; + + /** * The group this permission is a part of, as per * {@link android.R.attr#permissionGroup}. */ public String group; - + + /** + * Flag for {@link #flags}, corresponding to <code>costsMoney</code> + * value of {@link android.R.attr#permissionFlags}. + */ + public static final int FLAG_COSTS_MONEY = 1<<0; + + /** + * Additional flags about this permission as given by + * {@link android.R.attr#permissionFlags}. + */ + public int flags; + /** * A string resource identifier (in the package's resources) of this * permission's description. From the "description" attribute or, @@ -99,17 +122,6 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { */ public CharSequence nonLocalizedDescription; - /** - * The level of access this permission is protecting, as per - * {@link android.R.attr#protectionLevel}. Values may be - * {@link #PROTECTION_NORMAL}, {@link #PROTECTION_DANGEROUS}, or - * {@link #PROTECTION_SIGNATURE}. May also include the additional - * flags {@link #PROTECTION_FLAG_SYSTEM} or {@link #PROTECTION_FLAG_DEVELOPMENT} - * (which only make sense in combination with the base - * {@link #PROTECTION_SIGNATURE}. - */ - public int protectionLevel; - /** @hide */ public static int fixProtectionLevel(int level) { if (level == PROTECTION_SIGNATURE_OR_SYSTEM) { @@ -149,9 +161,10 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { public PermissionInfo(PermissionInfo orig) { super(orig); + protectionLevel = orig.protectionLevel; + flags = orig.flags; group = orig.group; descriptionRes = orig.descriptionRes; - protectionLevel = orig.protectionLevel; nonLocalizedDescription = orig.nonLocalizedDescription; } @@ -191,9 +204,10 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { public void writeToParcel(Parcel dest, int parcelableFlags) { super.writeToParcel(dest, parcelableFlags); + dest.writeInt(protectionLevel); + dest.writeInt(flags); dest.writeString(group); dest.writeInt(descriptionRes); - dest.writeInt(protectionLevel); TextUtils.writeToParcel(nonLocalizedDescription, dest, parcelableFlags); } @@ -209,9 +223,10 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { private PermissionInfo(Parcel source) { super(source); + protectionLevel = source.readInt(); + flags = source.readInt(); group = source.readString(); descriptionRes = source.readInt(); - protectionLevel = source.readInt(); nonLocalizedDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source); } } diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java index 6bc9a1f541bc..a06aba9224df 100644 --- a/core/java/android/content/pm/UserInfo.java +++ b/core/java/android/content/pm/UserInfo.java @@ -30,6 +30,12 @@ public class UserInfo implements Parcelable { public static final int FLAG_MASK_USER_TYPE = 0x0000003F; /** + * *************************** NOTE *************************** + * These flag values CAN NOT CHANGE because they are written + * directly to storage. + */ + + /** * Primary user. Only one user can have this flag set. Meaning of this * flag TBD. */ @@ -52,6 +58,11 @@ public class UserInfo implements Parcelable { */ public static final int FLAG_RESTRICTED = 0x00000008; + /** + * Indicates that this user has gone through its first-time initialization. + */ + public static final int FLAG_INITIALIZED = 0x00000010; + public int id; public int serialNumber; public String name; diff --git a/core/java/android/content/pm/VerificationParams.java b/core/java/android/content/pm/VerificationParams.java index 9bec87e4f020..6454de005555 100644 --- a/core/java/android/content/pm/VerificationParams.java +++ b/core/java/android/content/pm/VerificationParams.java @@ -39,6 +39,9 @@ public class VerificationParams implements Parcelable { /** HTTP referrer URI associated with the originatingURI. */ private final Uri mReferrer; + /** UID of application requesting the install */ + private int mInstallerUid; + /** * An object that holds the digest of the package which can be used to * verify ownership. @@ -63,6 +66,7 @@ public class VerificationParams implements Parcelable { mOriginatingURI = originatingURI; mReferrer = referrer; mManifestDigest = manifestDigest; + mInstallerUid = -1; } public Uri getVerificationURI() { @@ -81,6 +85,15 @@ public class VerificationParams implements Parcelable { return mManifestDigest; } + /** @return -1 when not set */ + public int getInstallerUid() { + return mInstallerUid; + } + + public void setInstallerUid(int uid) { + mInstallerUid = uid; + } + @Override public int describeContents() { return 0; @@ -126,6 +139,10 @@ public class VerificationParams implements Parcelable { return false; } + if (mInstallerUid != other.mInstallerUid) { + return false; + } + return true; } @@ -137,6 +154,7 @@ public class VerificationParams implements Parcelable { hash += 7 * (mOriginatingURI==null?1:mOriginatingURI.hashCode()); hash += 11 * (mReferrer==null?1:mReferrer.hashCode()); hash += 13 * (mManifestDigest==null?1:mManifestDigest.hashCode()); + hash += 17 * mInstallerUid; return hash; } @@ -153,6 +171,8 @@ public class VerificationParams implements Parcelable { sb.append(mReferrer.toString()); sb.append(",mManifestDigest="); sb.append(mManifestDigest.toString()); + sb.append(",mInstallerUid="); + sb.append(mInstallerUid); sb.append('}'); return sb.toString(); @@ -164,6 +184,7 @@ public class VerificationParams implements Parcelable { dest.writeParcelable(mOriginatingURI, 0); dest.writeParcelable(mReferrer, 0); dest.writeParcelable(mManifestDigest, 0); + dest.writeInt(mInstallerUid); } @@ -172,6 +193,7 @@ public class VerificationParams implements Parcelable { mOriginatingURI = source.readParcelable(Uri.class.getClassLoader()); mReferrer = source.readParcelable(Uri.class.getClassLoader()); mManifestDigest = source.readParcelable(ManifestDigest.class.getClassLoader()); + mInstallerUid = source.readInt(); } public static final Parcelable.Creator<VerificationParams> CREATOR = diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index bc10e036cd50..7b3a8af3eb61 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -1332,8 +1332,14 @@ public class Camera { public Rect rect; /** - * The confidence level for the detection of the face. The range is 1 to 100. 100 is the - * highest confidence. + * <p>The confidence level for the detection of the face. The range is 1 to + * 100. 100 is the highest confidence.</p> + * + * <p>Depending on the device, even very low-confidence faces may be + * listed, so applications should filter out faces with low confidence, + * depending on the use case. For a typical point-and-shoot camera + * application that wishes to display rectangles around detected faces, + * filtering out faces with confidence less than 50 is recommended.</p> * * @see #startFaceDetection() */ diff --git a/core/java/android/net/INetworkPolicyManager.aidl b/core/java/android/net/INetworkPolicyManager.aidl index 3250ae7fd257..df6057ed5b62 100644 --- a/core/java/android/net/INetworkPolicyManager.aidl +++ b/core/java/android/net/INetworkPolicyManager.aidl @@ -30,9 +30,9 @@ import android.net.NetworkTemplate; interface INetworkPolicyManager { /** Control UID policies. */ - void setAppPolicy(int appId, int policy); - int getAppPolicy(int appId); - int[] getAppsWithPolicy(int policy); + void setUidPolicy(int uid, int policy); + int getUidPolicy(int uid); + int[] getUidsWithPolicy(int policy); boolean isUidForeground(int uid); diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java index 07bfd4b584f1..2cd1f9bd2c85 100644 --- a/core/java/android/net/NetworkPolicyManager.java +++ b/core/java/android/net/NetworkPolicyManager.java @@ -26,6 +26,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.Signature; import android.os.RemoteException; +import android.os.UserHandle; import android.text.format.Time; import com.google.android.collect.Sets; @@ -72,29 +73,29 @@ public class NetworkPolicyManager { } /** - * Set policy flags for specific application. + * Set policy flags for specific UID. * * @param policy {@link #POLICY_NONE} or combination of flags like * {@link #POLICY_REJECT_METERED_BACKGROUND}. */ - public void setAppPolicy(int appId, int policy) { + public void setUidPolicy(int uid, int policy) { try { - mService.setAppPolicy(appId, policy); + mService.setUidPolicy(uid, policy); } catch (RemoteException e) { } } - public int getAppPolicy(int appId) { + public int getUidPolicy(int uid) { try { - return mService.getAppPolicy(appId); + return mService.getUidPolicy(uid); } catch (RemoteException e) { return POLICY_NONE; } } - public int[] getAppsWithPolicy(int policy) { + public int[] getUidsWithPolicy(int policy) { try { - return mService.getAppsWithPolicy(policy); + return mService.getUidsWithPolicy(policy); } catch (RemoteException e) { return new int[0]; } @@ -236,8 +237,7 @@ public class NetworkPolicyManager { @Deprecated public static boolean isUidValidForPolicy(Context context, int uid) { // first, quick-reject non-applications - if (uid < android.os.Process.FIRST_APPLICATION_UID - || uid > android.os.Process.LAST_APPLICATION_UID) { + if (!UserHandle.isApp(uid)) { return false; } diff --git a/core/java/android/net/http/CertificateChainValidator.java b/core/java/android/net/http/CertificateChainValidator.java index 6ad8fe38c11f..f66075d66b75 100644 --- a/core/java/android/net/http/CertificateChainValidator.java +++ b/core/java/android/net/http/CertificateChainValidator.java @@ -168,7 +168,13 @@ public class CertificateChainValidator { } try { - SSLParametersImpl.getDefaultTrustManager().checkServerTrusted(chain, authType); + X509TrustManager x509TrustManager = SSLParametersImpl.getDefaultTrustManager(); + if (x509TrustManager instanceof TrustManagerImpl) { + TrustManagerImpl trustManager = (TrustManagerImpl) x509TrustManager; + trustManager.checkServerTrusted(chain, authType, domain); + } else { + x509TrustManager.checkServerTrusted(chain, authType); + } return null; // No errors. } catch (GeneralSecurityException e) { if (HttpLog.LOGV) { diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java index 22994ff3b271..cc9615260a0c 100644 --- a/core/java/android/os/UserHandle.java +++ b/core/java/android/os/UserHandle.java @@ -87,15 +87,19 @@ public final class UserHandle implements Parcelable { /** @hide */ public static final boolean isIsolated(int uid) { - uid = getAppId(uid); - return uid >= Process.FIRST_ISOLATED_UID && uid <= Process.LAST_ISOLATED_UID; + if (uid > 0) { + final int appId = getAppId(uid); + return appId >= Process.FIRST_ISOLATED_UID && appId <= Process.LAST_ISOLATED_UID; + } else { + return false; + } } /** @hide */ public static boolean isApp(int uid) { if (uid > 0) { - uid = UserHandle.getAppId(uid); - return uid >= Process.FIRST_APPLICATION_UID && uid <= Process.LAST_APPLICATION_UID; + final int appId = getAppId(uid); + return appId >= Process.FIRST_APPLICATION_UID && appId <= Process.LAST_APPLICATION_UID; } else { return false; } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9ea523de7191..a18223468596 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -754,22 +754,29 @@ public final class Settings { } public String getStringForUser(ContentResolver cr, String name, final int userHandle) { - long newValuesVersion = SystemProperties.getLong(mVersionSystemProperty, 0); + final boolean isSelf = (userHandle == UserHandle.myUserId()); + if (isSelf) { + long newValuesVersion = SystemProperties.getLong(mVersionSystemProperty, 0); - synchronized (this) { - if (mValuesVersion != newValuesVersion) { - if (LOCAL_LOGV || false) { - Log.v(TAG, "invalidate [" + mUri.getLastPathSegment() + "]: current " + - newValuesVersion + " != cached " + mValuesVersion); - } + // Our own user's settings data uses a client-side cache + synchronized (this) { + if (mValuesVersion != newValuesVersion) { + if (LOCAL_LOGV || false) { + Log.v(TAG, "invalidate [" + mUri.getLastPathSegment() + "]: current " + + newValuesVersion + " != cached " + mValuesVersion); + } - mValues.clear(); - mValuesVersion = newValuesVersion; - } + mValues.clear(); + mValuesVersion = newValuesVersion; + } - if (mValues.containsKey(name)) { - return mValues.get(name); // Could be null, that's OK -- negative caching + if (mValues.containsKey(name)) { + return mValues.get(name); // Could be null, that's OK -- negative caching + } } + } else { + if (LOCAL_LOGV) Log.v(TAG, "get setting for user " + userHandle + + " by user " + UserHandle.myUserId() + " so skipping cache"); } IContentProvider cp = lazyGetProvider(cr); @@ -788,8 +795,15 @@ public final class Settings { Bundle b = cp.call(mCallGetCommand, name, args); if (b != null) { String value = b.getPairValue(); - synchronized (this) { - mValues.put(name, value); + // Don't update our cache for reads of other users' data + if (isSelf) { + synchronized (this) { + mValues.put(name, value); + } + } else { + if (LOCAL_LOGV) Log.i(TAG, "call-query of user " + userHandle + + " by " + UserHandle.myUserId() + + " so not updating cache"); } return value; } @@ -3187,6 +3201,20 @@ public final class Settings { public static final String LOCK_SCREEN_OWNER_INFO = "lock_screen_owner_info"; /** + * Id of the time appwidget on the lockscreen, or -1 if none + * @hide + */ + public static final String LOCK_SCREEN_CLOCK_APPWIDGET_ID = + "lock_screen_clock_appwidget_id"; + + /** + * Id of the user-selected appwidget on the lockscreen, or -1 if none + * @hide + */ + public static final String LOCK_SCREEN_USER_SELECTED_APPWIDGET_ID = + "lock_screen_user_selected_appwidget_id"; + + /** * This preference enables showing the owner info on LockScren. * @hide */ @@ -3208,7 +3236,7 @@ public final class Settings { public static final String DISPLAY_DENSITY_FORCED = Global.DISPLAY_DENSITY_FORCED; /** - * @deprecated Use {@link android.provider.Settings.Global#ASSISTED_GPS_ENABLE} instead + * @deprecated Use {@link android.provider.Settings.Global#ASSISTED_GPS_ENABLED} instead * @hide */ @Deprecated @@ -3535,46 +3563,51 @@ public final class Settings { public static final String TTS_ENABLED_PLUGINS = "tts_enabled_plugins"; /** - * Whether to notify the user of open networks. - * <p> - * If not connected and the scan results have an open network, we will - * put this notification up. If we attempt to connect to a network or - * the open network(s) disappear, we remove the notification. When we - * show the notification, we will not show it again for - * {@link android.provider.Settings.Secure#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} time. + * @deprecated Use {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON} + * instead. */ + @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = - "wifi_networks_available_notification_on"; + Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON; /** + * @deprecated Moved to Global namespace * {@hide} */ + @Deprecated public static final String WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON = - "wimax_networks_available_notification_on"; + Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON; /** - * Delay (in seconds) before repeating the Wi-Fi networks available notification. - * Connecting to a network will reset the timer. + * @deprecated Use {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} + * instead. */ + @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = - "wifi_networks_available_repeat_delay"; + Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY; /** - * 802.11 country code in ISO 3166 format + * @deprecated Use {@link android.provider.Settings.Global#WIFI_COUNTRY_CODE} + * instead. * @hide */ - public static final String WIFI_COUNTRY_CODE = "wifi_country_code"; + @Deprecated + public static final String WIFI_COUNTRY_CODE = Global.WIFI_COUNTRY_CODE; /** - * When the number of open networks exceeds this number, the - * least-recently-used excess networks will be removed. + * @deprecated Use {@link android.provider.Settings.Global#WIFI_NUM_OPEN_NETWORKS_KEPT} + * instead. */ - public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept"; + @Deprecated + public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = + Global.WIFI_NUM_OPEN_NETWORKS_KEPT; /** - * Whether the Wi-Fi should be on. Only the Wi-Fi service should touch this. + * @deprecated Use {@link android.provider.Settings.Global#WIFI_ON} + * instead. */ - public static final String WIFI_ON = "wifi_on"; + @Deprecated + public static final String WIFI_ON = Global.WIFI_ON; /** * Used to save the Wifi_ON state prior to tethering. @@ -3582,8 +3615,10 @@ public final class Settings { * the user turns off tethering. * * @hide + * @deprecated moved to Global */ - public static final String WIFI_SAVED_STATE = "wifi_saved_state"; + @Deprecated + public static final String WIFI_SAVED_STATE = Global.WIFI_SAVED_STATE; /** * AP SSID @@ -4192,24 +4227,30 @@ public final class Settings { * When idle, it is possible for the device to be switched from Wi-Fi to * the mobile data network. * @hide + * @deprecated Moved to Global */ - public static final String WIFI_IDLE_MS = "wifi_idle_ms"; + @Deprecated + public static final String WIFI_IDLE_MS = Global.WIFI_IDLE_MS; /** * The interval in milliseconds to issue wake up scans when wifi needs * to connect. This is necessary to connect to an access point when * device is on the move and the screen is off. * @hide + * @deprecated Moved to Global */ + @Deprecated public static final String WIFI_FRAMEWORK_SCAN_INTERVAL_MS = - "wifi_framework_scan_interval_ms"; + Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS; /** * The interval in milliseconds to scan as used by the wifi supplicant * @hide + * @deprecated Moved to Global */ + @Deprecated public static final String WIFI_SUPPLICANT_SCAN_INTERVAL_MS = - "wifi_supplicant_scan_interval_ms"; + Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS; /** * @deprecated Moved to Settings.Global @@ -4304,21 +4345,18 @@ public final class Settings { "sync_max_retry_delay_in_seconds"; /** - * The interval in milliseconds at which to check the number of SMS sent - * out without asking for use permit, to limit the un-authorized SMS - * usage. + * @deprecated Use {@link Settings.Global#SMS_OUTGOING_CHECK_INTERVAL_MS} instead. * @hide */ public static final String SMS_OUTGOING_CHECK_INTERVAL_MS = - "sms_outgoing_check_interval_ms"; + Global.SMS_OUTGOING_CHECK_INTERVAL_MS; /** - * The number of outgoing SMS sent without asking for user permit - * (of {@link #SMS_OUTGOING_CHECK_INTERVAL_MS} + * @deprecated Use {@link Settings.Global#SMS_OUTGOING_CHECK_MAX_COUNT} instead. * @hide */ public static final String SMS_OUTGOING_CHECK_MAX_COUNT = - "sms_outgoing_check_max_count"; + Global.SMS_OUTGOING_CHECK_MAX_COUNT; /** * The global search provider chosen by the user (if multiple global @@ -4820,13 +4858,6 @@ public final class Settings { "contacts_preauth_uri_expiration"; /** - * Prefix for SMS short code regex patterns (country code is appended). - * @see com.android.internal.telephony.SmsUsageMonitor - * @hide - */ - public static final String SMS_SHORT_CODES_PREFIX = "sms_short_codes_"; - - /** * Overlay display devices setting. * The associated value is a specially formatted string that describes the * size and density of simulated secondary display devices. @@ -5300,6 +5331,13 @@ public final class Settings { * {@hide} */ public static final String PACKAGE_VERIFIER_DEFAULT_RESPONSE = "verifier_default_response"; + /** Show package verification setting in the Settings app. + * 1 = show (default) + * 0 = hide + * {@hide} + */ + public static final String PACKAGE_VERIFIER_SETTING_VISIBLE = "verifier_setting_visible"; + /** * The interval in milliseconds at which to check packet counts on the * mobile data interface when screen is on, to detect possible data @@ -5386,6 +5424,38 @@ public final class Settings { "setup_prepaid_detection_redir_host"; /** + * The interval in milliseconds at which to check the number of SMS sent out without asking + * for use permit, to limit the un-authorized SMS usage. + * + * @hide + */ + public static final String SMS_OUTGOING_CHECK_INTERVAL_MS = + "sms_outgoing_check_interval_ms"; + + /** + * The number of outgoing SMS sent without asking for user permit (of {@link + * #SMS_OUTGOING_CHECK_INTERVAL_MS} + * + * @hide + */ + public static final String SMS_OUTGOING_CHECK_MAX_COUNT = + "sms_outgoing_check_max_count"; + + /** + * Used to disable SMS short code confirmation - defaults to true. + * @see com.android.internal.telephony.SmsUsageMonitor + * @hide + */ + public static final String SMS_SHORT_CODE_CONFIRMATION = "sms_short_code_confirmation"; + + /** + * Prefix for SMS short code regex patterns (country code is appended). + * @see com.android.internal.telephony.SmsUsageMonitor + * @hide + */ + public static final String SMS_SHORT_CODES_PREFIX = "sms_short_codes_"; + + /** * Used to disable Tethering on a device - defaults to true * @hide */ diff --git a/core/java/android/service/wallpaper/IWallpaperConnection.aidl b/core/java/android/service/wallpaper/IWallpaperConnection.aidl index b09ccabe26b9..f9c5aaa97612 100644 --- a/core/java/android/service/wallpaper/IWallpaperConnection.aidl +++ b/core/java/android/service/wallpaper/IWallpaperConnection.aidl @@ -24,5 +24,6 @@ import android.service.wallpaper.IWallpaperEngine; */ interface IWallpaperConnection { void attachEngine(IWallpaperEngine engine); + void engineShown(IWallpaperEngine engine); ParcelFileDescriptor setWallpaper(String name); } diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index efa8911e12c4..86bbc5588b40 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -1020,6 +1020,12 @@ public abstract class WallpaperService extends Service { mEngine = engine; mActiveEngines.add(engine); engine.attach(this); + try { + mConnection.engineShown(this); + } catch (RemoteException e) { + Log.w(TAG, "Wallpaper host disappeared", e); + return; + } return; } case DO_DETACH: { diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java index 211453d58f30..0babcc5e6e54 100644 --- a/core/java/android/text/format/DateUtils.java +++ b/core/java/android/text/format/DateUtils.java @@ -29,6 +29,8 @@ import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; +import libcore.icu.LocaleData; + /** * This class contains various date-related utilities for creating text for things like * elapsed time and date ranges, strings for days of the week and months, and AM/PM text etc. @@ -36,102 +38,6 @@ import java.util.TimeZone; public class DateUtils { private static final Object sLock = new Object(); - private static final int[] sDaysLong = new int[] { - com.android.internal.R.string.day_of_week_long_sunday, - com.android.internal.R.string.day_of_week_long_monday, - com.android.internal.R.string.day_of_week_long_tuesday, - com.android.internal.R.string.day_of_week_long_wednesday, - com.android.internal.R.string.day_of_week_long_thursday, - com.android.internal.R.string.day_of_week_long_friday, - com.android.internal.R.string.day_of_week_long_saturday, - }; - private static final int[] sDaysMedium = new int[] { - com.android.internal.R.string.day_of_week_medium_sunday, - com.android.internal.R.string.day_of_week_medium_monday, - com.android.internal.R.string.day_of_week_medium_tuesday, - com.android.internal.R.string.day_of_week_medium_wednesday, - com.android.internal.R.string.day_of_week_medium_thursday, - com.android.internal.R.string.day_of_week_medium_friday, - com.android.internal.R.string.day_of_week_medium_saturday, - }; - private static final int[] sDaysShort = new int[] { - com.android.internal.R.string.day_of_week_short_sunday, - com.android.internal.R.string.day_of_week_short_monday, - com.android.internal.R.string.day_of_week_short_tuesday, - com.android.internal.R.string.day_of_week_short_wednesday, - com.android.internal.R.string.day_of_week_short_thursday, - com.android.internal.R.string.day_of_week_short_friday, - com.android.internal.R.string.day_of_week_short_saturday, - }; - private static final int[] sDaysShortest = new int[] { - com.android.internal.R.string.day_of_week_shortest_sunday, - com.android.internal.R.string.day_of_week_shortest_monday, - com.android.internal.R.string.day_of_week_shortest_tuesday, - com.android.internal.R.string.day_of_week_shortest_wednesday, - com.android.internal.R.string.day_of_week_shortest_thursday, - com.android.internal.R.string.day_of_week_shortest_friday, - com.android.internal.R.string.day_of_week_shortest_saturday, - }; - private static final int[] sMonthsStandaloneLong = new int [] { - com.android.internal.R.string.month_long_standalone_january, - com.android.internal.R.string.month_long_standalone_february, - com.android.internal.R.string.month_long_standalone_march, - com.android.internal.R.string.month_long_standalone_april, - com.android.internal.R.string.month_long_standalone_may, - com.android.internal.R.string.month_long_standalone_june, - com.android.internal.R.string.month_long_standalone_july, - com.android.internal.R.string.month_long_standalone_august, - com.android.internal.R.string.month_long_standalone_september, - com.android.internal.R.string.month_long_standalone_october, - com.android.internal.R.string.month_long_standalone_november, - com.android.internal.R.string.month_long_standalone_december, - }; - private static final int[] sMonthsLong = new int [] { - com.android.internal.R.string.month_long_january, - com.android.internal.R.string.month_long_february, - com.android.internal.R.string.month_long_march, - com.android.internal.R.string.month_long_april, - com.android.internal.R.string.month_long_may, - com.android.internal.R.string.month_long_june, - com.android.internal.R.string.month_long_july, - com.android.internal.R.string.month_long_august, - com.android.internal.R.string.month_long_september, - com.android.internal.R.string.month_long_october, - com.android.internal.R.string.month_long_november, - com.android.internal.R.string.month_long_december, - }; - private static final int[] sMonthsMedium = new int [] { - com.android.internal.R.string.month_medium_january, - com.android.internal.R.string.month_medium_february, - com.android.internal.R.string.month_medium_march, - com.android.internal.R.string.month_medium_april, - com.android.internal.R.string.month_medium_may, - com.android.internal.R.string.month_medium_june, - com.android.internal.R.string.month_medium_july, - com.android.internal.R.string.month_medium_august, - com.android.internal.R.string.month_medium_september, - com.android.internal.R.string.month_medium_october, - com.android.internal.R.string.month_medium_november, - com.android.internal.R.string.month_medium_december, - }; - private static final int[] sMonthsShortest = new int [] { - com.android.internal.R.string.month_shortest_january, - com.android.internal.R.string.month_shortest_february, - com.android.internal.R.string.month_shortest_march, - com.android.internal.R.string.month_shortest_april, - com.android.internal.R.string.month_shortest_may, - com.android.internal.R.string.month_shortest_june, - com.android.internal.R.string.month_shortest_july, - com.android.internal.R.string.month_shortest_august, - com.android.internal.R.string.month_shortest_september, - com.android.internal.R.string.month_shortest_october, - com.android.internal.R.string.month_shortest_november, - com.android.internal.R.string.month_shortest_december, - }; - private static final int[] sAmPm = new int[] { - com.android.internal.R.string.am, - com.android.internal.R.string.pm, - }; private static Configuration sLastConfig; private static java.text.DateFormat sStatusTimeFormat; private static String sElapsedFormatMMSS; @@ -161,12 +67,17 @@ public class DateUtils public static final int FORMAT_NO_YEAR = 0x00008; public static final int FORMAT_SHOW_DATE = 0x00010; public static final int FORMAT_NO_MONTH_DAY = 0x00020; + @Deprecated public static final int FORMAT_12HOUR = 0x00040; + @Deprecated public static final int FORMAT_24HOUR = 0x00080; + @Deprecated public static final int FORMAT_CAP_AMPM = 0x00100; public static final int FORMAT_NO_NOON = 0x00200; + @Deprecated public static final int FORMAT_CAP_NOON = 0x00400; public static final int FORMAT_NO_MIDNIGHT = 0x00800; + @Deprecated public static final int FORMAT_CAP_MIDNIGHT = 0x01000; /** * @deprecated Use @@ -181,19 +92,25 @@ public class DateUtils public static final int FORMAT_NUMERIC_DATE = 0x20000; public static final int FORMAT_ABBREV_RELATIVE = 0x40000; public static final int FORMAT_ABBREV_ALL = 0x80000; + @Deprecated public static final int FORMAT_CAP_NOON_MIDNIGHT = (FORMAT_CAP_NOON | FORMAT_CAP_MIDNIGHT); + @Deprecated public static final int FORMAT_NO_NOON_MIDNIGHT = (FORMAT_NO_NOON | FORMAT_NO_MIDNIGHT); // Date and time format strings that are constant and don't need to be // translated. /** * This is not actually the preferred 24-hour date format in all locales. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final String HOUR_MINUTE_24 = "%H:%M"; public static final String MONTH_FORMAT = "%B"; /** * This is not actually a useful month name in all locales. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final String ABBREV_MONTH_FORMAT = "%b"; public static final String NUMERIC_MONTH_FORMAT = "%m"; public static final String MONTH_DAY_FORMAT = "%-d"; @@ -207,6 +124,7 @@ public class DateUtils // The index is constructed from a bit-wise OR of the boolean values: // {showTime, showYear, showWeekDay}. For example, if showYear and // showWeekDay are both true, then the index would be 3. + /** @deprecated do not use. */ public static final int sameYearTable[] = { com.android.internal.R.string.same_year_md1_md2, com.android.internal.R.string.same_year_wday1_md1_wday2_md2, @@ -233,6 +151,7 @@ public class DateUtils // The index is constructed from a bit-wise OR of the boolean values: // {showTime, showYear, showWeekDay}. For example, if showYear and // showWeekDay are both true, then the index would be 3. + /** @deprecated do not use. */ public static final int sameMonthTable[] = { com.android.internal.R.string.same_month_md1_md2, com.android.internal.R.string.same_month_wday1_md1_wday2_md2, @@ -259,7 +178,9 @@ public class DateUtils * * @more <p> * e.g. "Sunday" or "January" + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final int LENGTH_LONG = 10; /** @@ -268,7 +189,9 @@ public class DateUtils * * @more <p> * e.g. "Sun" or "Jan" + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final int LENGTH_MEDIUM = 20; /** @@ -278,14 +201,18 @@ public class DateUtils * <p>e.g. "Su" or "Jan" * <p>In most languages, the results returned for LENGTH_SHORT will be the same as * the results returned for {@link #LENGTH_MEDIUM}. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final int LENGTH_SHORT = 30; /** * Request an even shorter abbreviated version of the name. * Do not use this. Currently this will always return the same result * as {@link #LENGTH_SHORT}. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final int LENGTH_SHORTER = 40; /** @@ -295,7 +222,9 @@ public class DateUtils * <p>e.g. "S", "T", "T" or "J" * <p>In some languages, the results returned for LENGTH_SHORTEST will be the same as * the results returned for {@link #LENGTH_SHORT}. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static final int LENGTH_SHORTEST = 50; /** @@ -309,20 +238,21 @@ public class DateUtils * Undefined lengths will return {@link #LENGTH_MEDIUM} * but may return something different in the future. * @throws IndexOutOfBoundsException if the dayOfWeek is out of bounds. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static String getDayOfWeekString(int dayOfWeek, int abbrev) { - int[] list; + LocaleData d = LocaleData.get(Locale.getDefault()); + String[] names; switch (abbrev) { - case LENGTH_LONG: list = sDaysLong; break; - case LENGTH_MEDIUM: list = sDaysMedium; break; - case LENGTH_SHORT: list = sDaysShort; break; - case LENGTH_SHORTER: list = sDaysShort; break; - case LENGTH_SHORTEST: list = sDaysShortest; break; - default: list = sDaysMedium; break; + case LENGTH_LONG: names = d.longWeekdayNames; break; + case LENGTH_MEDIUM: names = d.shortWeekdayNames; break; + case LENGTH_SHORT: names = d.shortWeekdayNames; break; // TODO + case LENGTH_SHORTER: names = d.shortWeekdayNames; break; // TODO + case LENGTH_SHORTEST: names = d.tinyWeekdayNames; break; + default: names = d.shortWeekdayNames; break; } - - Resources r = Resources.getSystem(); - return r.getString(list[dayOfWeek - Calendar.SUNDAY]); + return names[dayOfWeek]; } /** @@ -330,10 +260,11 @@ public class DateUtils * @param ampm Either {@link Calendar#AM Calendar.AM} or {@link Calendar#PM Calendar.PM}. * @throws IndexOutOfBoundsException if the ampm is out of bounds. * @return Localized version of "AM" or "PM". + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static String getAMPMString(int ampm) { - Resources r = Resources.getSystem(); - return r.getString(sAmPm[ampm - Calendar.AM]); + return LocaleData.get(Locale.getDefault()).amPm[ampm - Calendar.AM]; } /** @@ -345,24 +276,25 @@ public class DateUtils * Undefined lengths will return {@link #LENGTH_MEDIUM} * but may return something different in the future. * @return Localized month of the year. + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static String getMonthString(int month, int abbrev) { - // Note that here we use sMonthsMedium for MEDIUM, SHORT and SHORTER. + // Note that here we use d.shortMonthNames for MEDIUM, SHORT and SHORTER. // This is a shortcut to not spam the translators with too many variations // of the same string. If we find that in a language the distinction // is necessary, we can can add more without changing this API. - int[] list; + LocaleData d = LocaleData.get(Locale.getDefault()); + String[] names; switch (abbrev) { - case LENGTH_LONG: list = sMonthsLong; break; - case LENGTH_MEDIUM: list = sMonthsMedium; break; - case LENGTH_SHORT: list = sMonthsMedium; break; - case LENGTH_SHORTER: list = sMonthsMedium; break; - case LENGTH_SHORTEST: list = sMonthsShortest; break; - default: list = sMonthsMedium; break; + case LENGTH_LONG: names = d.longMonthNames; break; + case LENGTH_MEDIUM: names = d.shortMonthNames; break; + case LENGTH_SHORT: names = d.shortMonthNames; break; + case LENGTH_SHORTER: names = d.shortMonthNames; break; + case LENGTH_SHORTEST: names = d.tinyMonthNames; break; + default: names = d.shortMonthNames; break; } - - Resources r = Resources.getSystem(); - return r.getString(list[month - Calendar.JANUARY]); + return names[month]; } /** @@ -378,25 +310,26 @@ public class DateUtils * but may return something different in the future. * @return Localized month of the year. * @hide Pending API council approval + * @deprecated use {@link java.text.SimpleDateFormat} instead. */ + @Deprecated public static String getStandaloneMonthString(int month, int abbrev) { - // Note that here we use sMonthsMedium for MEDIUM, SHORT and SHORTER. + // Note that here we use d.shortMonthNames for MEDIUM, SHORT and SHORTER. // This is a shortcut to not spam the translators with too many variations // of the same string. If we find that in a language the distinction // is necessary, we can can add more without changing this API. - int[] list; + LocaleData d = LocaleData.get(Locale.getDefault()); + String[] names; switch (abbrev) { - case LENGTH_LONG: list = sMonthsStandaloneLong; + case LENGTH_LONG: names = d.longStandAloneMonthNames; break; - case LENGTH_MEDIUM: list = sMonthsMedium; break; - case LENGTH_SHORT: list = sMonthsMedium; break; - case LENGTH_SHORTER: list = sMonthsMedium; break; - case LENGTH_SHORTEST: list = sMonthsShortest; break; - default: list = sMonthsMedium; break; + case LENGTH_MEDIUM: names = d.shortMonthNames; break; + case LENGTH_SHORT: names = d.shortMonthNames; break; + case LENGTH_SHORTER: names = d.shortMonthNames; break; + case LENGTH_SHORTEST: names = d.tinyMonthNames; break; + default: names = d.shortMonthNames; break; } - - Resources r = Resources.getSystem(); - return r.getString(list[month - Calendar.JANUARY]); + return names[month]; } /** @@ -619,14 +552,19 @@ public class DateUtils int days = Math.abs(currentDay - startDay); boolean past = (today > day); + // TODO: some locales name other days too, such as de_DE's "Vorgestern" (today - 2). + Locale locale = r.getConfiguration().locale; + if (locale == null) { + locale = Locale.getDefault(); + } if (days == 1) { if (past) { - return r.getString(com.android.internal.R.string.yesterday); + return LocaleData.get(locale).yesterday; } else { - return r.getString(com.android.internal.R.string.tomorrow); + return LocaleData.get(locale).tomorrow; } } else if (days == 0) { - return r.getString(com.android.internal.R.string.today); + return LocaleData.get(locale).today; } int resId; diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java index b0b18dad49c3..45d5a70672ee 100644 --- a/core/java/android/text/format/Time.java +++ b/core/java/android/text/format/Time.java @@ -21,6 +21,8 @@ import android.content.res.Resources; import java.util.Locale; import java.util.TimeZone; +import libcore.icu.LocaleData; + /** * An alternative to the {@link java.util.Calendar} and * {@link java.util.GregorianCalendar} classes. An instance of the Time class represents @@ -317,73 +319,21 @@ public class Time { Locale locale = Locale.getDefault(); if (sLocale == null || locale == null || !(locale.equals(sLocale))) { - Resources r = Resources.getSystem(); + LocaleData localeData = LocaleData.get(locale); + + sAm = localeData.amPm[0]; + sPm = localeData.amPm[1]; - sShortMonths = new String[] { - r.getString(com.android.internal.R.string.month_medium_january), - r.getString(com.android.internal.R.string.month_medium_february), - r.getString(com.android.internal.R.string.month_medium_march), - r.getString(com.android.internal.R.string.month_medium_april), - r.getString(com.android.internal.R.string.month_medium_may), - r.getString(com.android.internal.R.string.month_medium_june), - r.getString(com.android.internal.R.string.month_medium_july), - r.getString(com.android.internal.R.string.month_medium_august), - r.getString(com.android.internal.R.string.month_medium_september), - r.getString(com.android.internal.R.string.month_medium_october), - r.getString(com.android.internal.R.string.month_medium_november), - r.getString(com.android.internal.R.string.month_medium_december), - }; - sLongMonths = new String[] { - r.getString(com.android.internal.R.string.month_long_january), - r.getString(com.android.internal.R.string.month_long_february), - r.getString(com.android.internal.R.string.month_long_march), - r.getString(com.android.internal.R.string.month_long_april), - r.getString(com.android.internal.R.string.month_long_may), - r.getString(com.android.internal.R.string.month_long_june), - r.getString(com.android.internal.R.string.month_long_july), - r.getString(com.android.internal.R.string.month_long_august), - r.getString(com.android.internal.R.string.month_long_september), - r.getString(com.android.internal.R.string.month_long_october), - r.getString(com.android.internal.R.string.month_long_november), - r.getString(com.android.internal.R.string.month_long_december), - }; - sLongStandaloneMonths = new String[] { - r.getString(com.android.internal.R.string.month_long_standalone_january), - r.getString(com.android.internal.R.string.month_long_standalone_february), - r.getString(com.android.internal.R.string.month_long_standalone_march), - r.getString(com.android.internal.R.string.month_long_standalone_april), - r.getString(com.android.internal.R.string.month_long_standalone_may), - r.getString(com.android.internal.R.string.month_long_standalone_june), - r.getString(com.android.internal.R.string.month_long_standalone_july), - r.getString(com.android.internal.R.string.month_long_standalone_august), - r.getString(com.android.internal.R.string.month_long_standalone_september), - r.getString(com.android.internal.R.string.month_long_standalone_october), - r.getString(com.android.internal.R.string.month_long_standalone_november), - r.getString(com.android.internal.R.string.month_long_standalone_december), - }; - sShortWeekdays = new String[] { - r.getString(com.android.internal.R.string.day_of_week_medium_sunday), - r.getString(com.android.internal.R.string.day_of_week_medium_monday), - r.getString(com.android.internal.R.string.day_of_week_medium_tuesday), - r.getString(com.android.internal.R.string.day_of_week_medium_wednesday), - r.getString(com.android.internal.R.string.day_of_week_medium_thursday), - r.getString(com.android.internal.R.string.day_of_week_medium_friday), - r.getString(com.android.internal.R.string.day_of_week_medium_saturday), - }; - sLongWeekdays = new String[] { - r.getString(com.android.internal.R.string.day_of_week_long_sunday), - r.getString(com.android.internal.R.string.day_of_week_long_monday), - r.getString(com.android.internal.R.string.day_of_week_long_tuesday), - r.getString(com.android.internal.R.string.day_of_week_long_wednesday), - r.getString(com.android.internal.R.string.day_of_week_long_thursday), - r.getString(com.android.internal.R.string.day_of_week_long_friday), - r.getString(com.android.internal.R.string.day_of_week_long_saturday), - }; + sShortMonths = localeData.shortMonthNames; + sLongMonths = localeData.longMonthNames; + sLongStandaloneMonths = localeData.longStandAloneMonthNames; + sShortWeekdays = localeData.shortWeekdayNames; + sLongWeekdays = localeData.longWeekdayNames; + + Resources r = Resources.getSystem(); sTimeOnlyFormat = r.getString(com.android.internal.R.string.time_of_day); sDateOnlyFormat = r.getString(com.android.internal.R.string.month_day_year); sDateTimeFormat = r.getString(com.android.internal.R.string.date_and_time); - sAm = r.getString(com.android.internal.R.string.am); - sPm = r.getString(com.android.internal.R.string.pm); sLocale = locale; } diff --git a/core/java/android/util/NtpTrustedTime.java b/core/java/android/util/NtpTrustedTime.java index 2179ff36e1c7..602a68c81a69 100644 --- a/core/java/android/util/NtpTrustedTime.java +++ b/core/java/android/util/NtpTrustedTime.java @@ -59,10 +59,10 @@ public class NtpTrustedTime implements TrustedTime { final long defaultTimeout = res.getInteger( com.android.internal.R.integer.config_ntpTimeout); - final String secureServer = Settings.Secure.getString( - resolver, Settings.Secure.NTP_SERVER); - final long timeout = Settings.Secure.getLong( - resolver, Settings.Secure.NTP_TIMEOUT, defaultTimeout); + final String secureServer = Settings.Global.getString( + resolver, Settings.Global.NTP_SERVER); + final long timeout = Settings.Global.getLong( + resolver, Settings.Global.NTP_TIMEOUT, defaultTimeout); final String server = secureServer != null ? secureServer : defaultServer; sSingleton = new NtpTrustedTime(server, timeout); @@ -71,7 +71,7 @@ public class NtpTrustedTime implements TrustedTime { return sSingleton; } - /** {@inheritDoc} */ + @Override public boolean forceRefresh() { if (mServer == null) { // missing server, so no trusted time available @@ -91,12 +91,12 @@ public class NtpTrustedTime implements TrustedTime { } } - /** {@inheritDoc} */ + @Override public boolean hasCache() { return mHasCache; } - /** {@inheritDoc} */ + @Override public long getCacheAge() { if (mHasCache) { return SystemClock.elapsedRealtime() - mCachedNtpElapsedRealtime; @@ -105,7 +105,7 @@ public class NtpTrustedTime implements TrustedTime { } } - /** {@inheritDoc} */ + @Override public long getCacheCertainty() { if (mHasCache) { return mCachedNtpCertainty; @@ -114,7 +114,7 @@ public class NtpTrustedTime implements TrustedTime { } } - /** {@inheritDoc} */ + @Override public long currentTimeMillis() { if (!mHasCache) { throw new IllegalStateException("Missing authoritative time source"); diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java index bcb8800621e1..fa0313949e01 100644 --- a/core/java/android/view/ScaleGestureDetector.java +++ b/core/java/android/view/ScaleGestureDetector.java @@ -137,6 +137,7 @@ public class ScaleGestureDetector { private long mPrevTime; private boolean mInProgress; private int mSpanSlop; + private int mMinSpan; /** * Consistency verifier for debugging purposes. @@ -149,6 +150,8 @@ public class ScaleGestureDetector { mContext = context; mListener = listener; mSpanSlop = ViewConfiguration.get(context).getScaledTouchSlop() * 2; + mMinSpan = context.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.config_minScalingSpan); } /** @@ -209,8 +212,11 @@ public class ScaleGestureDetector { float devSumX = 0, devSumY = 0; for (int i = 0; i < count; i++) { if (skipIndex == i) continue; - devSumX += Math.abs(event.getX(i) - focusX); - devSumY += Math.abs(event.getY(i) - focusY); + + // Average touch major and touch minor and convert the resulting diameter into a radius. + final float touchSize = (event.getTouchMajor(i) + event.getTouchMinor(i)) / 4; + devSumX += Math.abs(event.getX(i) - focusX) + touchSize; + devSumY += Math.abs(event.getY(i) - focusY) + touchSize; } final float devX = devSumX / div; final float devY = devSumY / div; @@ -228,7 +234,7 @@ public class ScaleGestureDetector { final boolean wasInProgress = mInProgress; mFocusX = focusX; mFocusY = focusY; - if (mInProgress && (span == 0 || configChanged)) { + if (mInProgress && (span < mMinSpan || configChanged)) { mListener.onScaleEnd(this); mInProgress = false; mInitialSpan = span; @@ -238,7 +244,7 @@ public class ScaleGestureDetector { mPrevSpanY = mCurrSpanY = spanY; mInitialSpan = mPrevSpan = mCurrSpan = span; } - if (!mInProgress && span != 0 && + if (!mInProgress && span >= mMinSpan && (wasInProgress || Math.abs(span - mInitialSpan) > mSpanSlop)) { mPrevSpanX = mCurrSpanX = spanX; mPrevSpanY = mCurrSpanY = spanY; diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java index 4d4e985c6bff..c93da06d38d5 100644 --- a/core/java/android/view/VolumePanel.java +++ b/core/java/android/view/VolumePanel.java @@ -18,6 +18,7 @@ package android.view; import com.android.internal.R; +import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface.OnDismissListener; import android.content.BroadcastReceiver; @@ -92,6 +93,7 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie private static final int MSG_REMOTE_VOLUME_CHANGED = 8; private static final int MSG_REMOTE_VOLUME_UPDATE_IF_SHOWN = 9; private static final int MSG_SLIDER_VISIBILITY_CHANGED = 10; + private static final int MSG_DISPLAY_SAFE_VOLUME_WARNING = 11; // Pseudo stream type for master volume private static final int STREAM_MASTER = -100; @@ -211,6 +213,31 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie private ToneGenerator mToneGenerators[]; private Vibrator mVibrator; + private static AlertDialog sConfirmSafeVolumeDialog; + + private static class WarningDialogReceiver extends BroadcastReceiver + implements DialogInterface.OnDismissListener { + private Context mContext; + private Dialog mDialog; + + WarningDialogReceiver(Context context, Dialog dialog) { + mContext = context; + mDialog = dialog; + IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + context.registerReceiver(this, filter); + } + + @Override + public void onReceive(Context context, Intent intent) { + mDialog.cancel(); + } + + public void onDismiss(DialogInterface unused) { + mContext.unregisterReceiver(this); + } + } + + public VolumePanel(final Context context, AudioService volumeService) { mContext = context; mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); @@ -528,6 +555,10 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie postMuteChanged(STREAM_MASTER, flags); } + public void postDisplaySafeVolumeWarning() { + obtainMessage(MSG_DISPLAY_SAFE_VOLUME_WARNING, 0, 0).sendToTarget(); + } + /** * Override this if you have other work to do when the volume changes (for * example, vibrating, playing a sound, etc.). Make sure to call through to @@ -796,6 +827,32 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie } } + protected void onDisplaySafeVolumeWarning() { + if (sConfirmSafeVolumeDialog != null) { + sConfirmSafeVolumeDialog.dismiss(); + } + sConfirmSafeVolumeDialog = new AlertDialog.Builder(mContext) + .setTitle(android.R.string.dialog_alert_title) + .setMessage(com.android.internal.R.string.safe_media_volume_warning) + .setPositiveButton(com.android.internal.R.string.yes, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + mAudioService.disableSafeMediaVolume(); + } + }) + .setNegativeButton(com.android.internal.R.string.no, null) + .setIconAttribute(android.R.attr.alertDialogIcon) + .create(); + + final WarningDialogReceiver warning = new WarningDialogReceiver(mContext, + sConfirmSafeVolumeDialog); + + sConfirmSafeVolumeDialog.setOnDismissListener(warning); + sConfirmSafeVolumeDialog.getWindow().setType( + WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); + sConfirmSafeVolumeDialog.show(); + } + /** * Lock on this VolumePanel instance as long as you use the returned ToneGenerator. */ @@ -910,6 +967,10 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie case MSG_SLIDER_VISIBILITY_CHANGED: onSliderVisibilityChanged(msg.arg1, msg.arg2); break; + + case MSG_DISPLAY_SAFE_VOLUME_WARNING: + onDisplaySafeVolumeWarning(); + break; } } diff --git a/core/java/android/view/accessibility/AccessibilityEvent.java b/core/java/android/view/accessibility/AccessibilityEvent.java index 1a2a194f8211..15009053571f 100644 --- a/core/java/android/view/accessibility/AccessibilityEvent.java +++ b/core/java/android/view/accessibility/AccessibilityEvent.java @@ -424,6 +424,28 @@ import java.util.List; * </ul> * </p> * <p> + * <b>Touch interaction start</b> - represents the event of starting a touch + * interaction, which is the user starts touching the screen.</br> + * <em>Type:</em> {@link #TYPE_TOUCH_INTERACTION_START}</br> + * <em>Properties:</em></br> + * <ul> + * <li>{@link #getEventType()} - The type of the event.</li> + * </ul> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> + * </p> + * <p> + * <b>Touch interaction end</b> - represents the event of ending a touch + * interaction, which is the user stops touching the screen.</br> + * <em>Type:</em> {@link #TYPE_TOUCH_INTERACTION_END}</br> + * <em>Properties:</em></br> + * <ul> + * <li>{@link #getEventType()} - The type of the event.</li> + * </ul> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> + * </p> + * <p> * <b>Touch exploration gesture start</b> - represents the event of starting a touch * exploring gesture.</br> * <em>Type:</em> {@link #TYPE_TOUCH_EXPLORATION_GESTURE_START}</br> @@ -431,15 +453,8 @@ import java.util.List; * <ul> * <li>{@link #getEventType()} - The type of the event.</li> * </ul> - * <em>Note:</em> This event type is not dispatched to descendants though - * {@link android.view.View#dispatchPopulateAccessibilityEvent(AccessibilityEvent) - * View.dispatchPopulateAccessibilityEvent(AccessibilityEvent)}, hence the event - * source {@link android.view.View} and the sub-tree rooted at it will not receive - * calls to {@link android.view.View#onPopulateAccessibilityEvent(AccessibilityEvent) - * View.onPopulateAccessibilityEvent(AccessibilityEvent)}. The preferred way to add - * text content to such events is by setting the - * {@link android.R.styleable#View_contentDescription contentDescription} of the source - * view.</br> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> * </p> * <p> * <b>Touch exploration gesture end</b> - represents the event of ending a touch @@ -449,15 +464,30 @@ import java.util.List; * <ul> * <li>{@link #getEventType()} - The type of the event.</li> * </ul> - * <em>Note:</em> This event type is not dispatched to descendants though - * {@link android.view.View#dispatchPopulateAccessibilityEvent(AccessibilityEvent) - * View.dispatchPopulateAccessibilityEvent(AccessibilityEvent)}, hence the event - * source {@link android.view.View} and the sub-tree rooted at it will not receive - * calls to {@link android.view.View#onPopulateAccessibilityEvent(AccessibilityEvent) - * View.onPopulateAccessibilityEvent(AccessibilityEvent)}. The preferred way to add - * text content to such events is by setting the - * {@link android.R.styleable#View_contentDescription contentDescription} of the source - * view.</br> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> + * </p> + * <p> + * <b>Touch gesture detection start</b> - represents the event of starting a user + * gesture detection.</br> + * <em>Type:</em> {@link #TYPE_GESTURE_DETECTION_START}</br> + * <em>Properties:</em></br> + * <ul> + * <li>{@link #getEventType()} - The type of the event.</li> + * </ul> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> + * </p> + * <p> + * <b>Touch gesture detection end</b> - represents the event of ending a user + * gesture detection.</br> + * <em>Type:</em> {@link #TYPE_GESTURE_DETECTION_END}</br> + * <em>Properties:</em></br> + * <ul> + * <li>{@link #getEventType()} - The type of the event.</li> + * </ul> + * <em>Note:</em> This event is fired only by the system and is not passed to the + * view tree to be populated.</br> * </p> * <p> * <b>MISCELLANEOUS TYPES</b></br> @@ -610,6 +640,26 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 0x00020000; /** + * Represents the event of beginning gesture detection. + */ + public static final int TYPE_GESTURE_DETECTION_START = 0x00040000; + + /** + * Represents the event of ending gesture detection. + */ + public static final int TYPE_GESTURE_DETECTION_END = 0x00080000; + + /** + * Represents the event of the user starting to touch the screen. + */ + public static final int TYPE_TOUCH_INTERACTION_START = 0x00100000; + + /** + * Represents the event of the user ending to touch the screen. + */ + public static final int TYPE_TOUCH_INTERACTION_END = 0x00200000; + + /** * Mask for {@link AccessibilityEvent} all types. * * @see #TYPE_VIEW_CLICKED @@ -628,6 +678,10 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par * @see #TYPE_VIEW_TEXT_SELECTION_CHANGED * @see #TYPE_ANNOUNCEMENT * @see #TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY + * @see #TYPE_GESTURE_DETECTION_START + * @see #TYPE_GESTURE_DETECTION_END + * @see #TYPE_TOUCH_INTERACTION_START + * @see #TYPE_TOUCH_INTERACTION_END */ public static final int TYPES_ALL_MASK = 0xFFFFFFFF; @@ -1120,6 +1174,14 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par return "TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED"; case TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY: return "TYPE_CURRENT_AT_GRANULARITY_MOVEMENT_CHANGED"; + case TYPE_GESTURE_DETECTION_START: + return "TYPE_GESTURE_DETECTION_START"; + case TYPE_GESTURE_DETECTION_END: + return "TYPE_GESTURE_DETECTION_END"; + case TYPE_TOUCH_INTERACTION_START: + return "TYPE_TOUCH_INTERACTION_START"; + case TYPE_TOUCH_INTERACTION_END: + return "TYPE_TOUCH_INTERACTION_END"; default: return null; } diff --git a/core/java/android/webkit/CacheManager.java b/core/java/android/webkit/CacheManager.java index f0e6ff03a919..52f41e64bc96 100644 --- a/core/java/android/webkit/CacheManager.java +++ b/core/java/android/webkit/CacheManager.java @@ -32,6 +32,7 @@ import java.util.Map; /** * Manages the HTTP cache used by an application's {@link WebView} instances. * @deprecated Access to the HTTP cache will be removed in a future release. + * @hide Since {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ // The class CacheManager provides the persistent cache of content that is // received over the network. The component handles parsing of HTTP headers and diff --git a/core/java/android/webkit/DateSorter.java b/core/java/android/webkit/DateSorter.java index 0e8ad7e07511..82c13aeea9a4 100644 --- a/core/java/android/webkit/DateSorter.java +++ b/core/java/android/webkit/DateSorter.java @@ -21,6 +21,9 @@ import android.content.res.Resources; import java.util.Calendar; import java.util.Date; +import java.util.Locale; + +import libcore.icu.LocaleData; /** * Sorts dates into the following groups: @@ -63,8 +66,13 @@ public class DateSorter { mBins[3] = c.getTimeInMillis(); // One month ago // build labels - mLabels[0] = context.getText(com.android.internal.R.string.today).toString(); - mLabels[1] = context.getText(com.android.internal.R.string.yesterday).toString(); + Locale locale = resources.getConfiguration().locale; + if (locale == null) { + locale = Locale.getDefault(); + } + LocaleData localeData = LocaleData.get(locale); + mLabels[0] = localeData.today; + mLabels[1] = localeData.yesterday; int resId = com.android.internal.R.plurals.last_num_days; String format = resources.getQuantityString(resId, NUM_DAYS_AGO); diff --git a/core/java/android/webkit/WebHistoryItem.java b/core/java/android/webkit/WebHistoryItem.java index cc9afe057a46..9a588e411f3a 100644 --- a/core/java/android/webkit/WebHistoryItem.java +++ b/core/java/android/webkit/WebHistoryItem.java @@ -38,6 +38,7 @@ public class WebHistoryItem implements Cloneable { * same object. * @return The id for this item. * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public int getId() { diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index a29ff3715fd0..be2d8634121d 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -164,6 +164,7 @@ public abstract class WebSettings { * is false. * * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public void setNavDump(boolean enabled) { @@ -176,6 +177,7 @@ public abstract class WebSettings { * @return whether dumping the navigation cache is enabled * @see #setNavDump * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public boolean getNavDump() { @@ -377,6 +379,7 @@ public abstract class WebSettings { * * @see #setUseWebViewBackgroundForOverscrollBackground * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public boolean getUseWebViewBackgroundForOverscrollBackground() { @@ -518,6 +521,7 @@ public abstract class WebSettings { * it now has no effect. * * @deprecated This setting now has no effect. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public synchronized void setUseDoubleTree(boolean use) { @@ -529,6 +533,7 @@ public abstract class WebSettings { * it now has no effect. * * @deprecated This setting now has no effect. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public synchronized boolean getUseDoubleTree() { @@ -547,6 +552,7 @@ public abstract class WebSettings { * * @param ua the integer code for the user-agent string * @deprecated Please use {@link #setUserAgentString} instead. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public synchronized void setUserAgent(int ua) { @@ -565,6 +571,7 @@ public abstract class WebSettings { * @return the integer code for the user-agent string * @see #setUserAgent * @deprecated Please use {@link #getUserAgentString} instead. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public synchronized int getUserAgent() { @@ -1251,8 +1258,7 @@ public abstract class WebSettings { /** * Returns the default User-Agent used by a WebView. * An instance of WebView could use a different User-Agent if a call - * is made to {@link WebSettings#setUserAgent(int)} or - * {@link WebSettings#setUserAgentString(String)}. + * is made to {@link WebSettings#setUserAgentString(String)}. * * @param context a Context object used to access application assets */ diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index e1c30f7f9b41..4202a7fc1027 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -555,6 +555,7 @@ public class WebView extends AbsoluteLayout * Gets the visible height (in pixels) of the embedded title bar (if any). * * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ public int getVisibleTitleHeight() { checkThread(); @@ -658,6 +659,7 @@ public class WebView extends AbsoluteLayout * Notifications are enabled by default. * * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public static void enablePlatformNotifications() { @@ -670,6 +672,7 @@ public class WebView extends AbsoluteLayout * Notifications are enabled by default. * * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public static void disablePlatformNotifications() { @@ -694,14 +697,11 @@ public class WebView extends AbsoluteLayout * {@link android.app.Activity#onSaveInstanceState}. Please note that this * method no longer stores the display data for this WebView. The previous * behavior could potentially leak files if {@link #restoreState} was never - * called. See {@link #savePicture} and {@link #restorePicture} for saving - * and restoring the display data. + * called. * * @param outState the Bundle to store this WebView's state * @return the same copy of the back/forward list used to save the state. If * saveState fails, the returned list will be null. - * @see #savePicture - * @see #restorePicture */ public WebBackForwardList saveState(Bundle outState) { checkThread(); @@ -716,6 +716,7 @@ public class WebView extends AbsoluteLayout * overwritten with this WebView's picture data. * @return true if the picture was successfully saved * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public boolean savePicture(Bundle b, final File dest) { @@ -732,6 +733,7 @@ public class WebView extends AbsoluteLayout * @param src the file where the picture data was stored * @return true if the picture was successfully restored * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public boolean restorePicture(Bundle b, File src) { @@ -746,13 +748,10 @@ public class WebView extends AbsoluteLayout * it is called after this WebView has had a chance to build state (load * pages, create a back/forward list, etc.) there may be undesirable * side-effects. Please note that this method no longer restores the - * display data for this WebView. See {@link #savePicture} and {@link - * #restorePicture} for saving and restoring the display data. + * display data for this WebView. * * @param inState the incoming Bundle of state * @return the restored back/forward list or null if restoreState failed - * @see #savePicture - * @see #restorePicture */ public WebBackForwardList restoreState(Bundle inState) { checkThread(); @@ -1334,12 +1333,11 @@ public class WebView extends AbsoluteLayout } /** - * Highlights and scrolls to the next match found by {@link #findAll} or + * Highlights and scrolls to the next match found by * {@link #findAllAsync}, wrapping around page boundaries as necessary. - * Notifies any registered {@link FindListener}. If neither - * {@link #findAll} nor {@link #findAllAsync(String)} has been called yet, - * or if {@link #clearMatches} has been called since the last find - * operation, this function does nothing. + * Notifies any registered {@link FindListener}. If {@link #findAllAsync(String)} + * has not been called yet, or if {@link #clearMatches} has been called since the + * last find operation, this function does nothing. * * @param forward the direction to search * @see #setFindListener @@ -1368,8 +1366,7 @@ public class WebView extends AbsoluteLayout /** * Finds all instances of find on the page and highlights them, * asynchronously. Notifies any registered {@link FindListener}. - * Successive calls to this or {@link #findAll} will cancel any - * pending searches. + * Successive calls to this will cancel any pending searches. * * @param find the string to find. * @see #setFindListener @@ -1423,7 +1420,7 @@ public class WebView extends AbsoluteLayout /** * Clears the highlighting surrounding text matches created by - * {@link #findAll} or {@link #findAllAsync}. + * {@link #findAllAsync}. */ public void clearMatches() { checkThread(); @@ -1483,6 +1480,7 @@ public class WebView extends AbsoluteLayout * * @param listener an implementation of WebView.PictureListener * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public void setPictureListener(PictureListener listener) { @@ -1590,6 +1588,7 @@ public class WebView extends AbsoluteLayout * functionality; it will be deprecated in the future. * * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public void emulateShiftHeld() { @@ -1709,6 +1708,7 @@ public class WebView extends AbsoluteLayout /** * @deprecated This method is now obsolete. + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */ @Deprecated public void debugDump() { diff --git a/core/java/android/webkit/WebViewDatabase.java b/core/java/android/webkit/WebViewDatabase.java index 1987f53570d2..62ec0d5e4baa 100644 --- a/core/java/android/webkit/WebViewDatabase.java +++ b/core/java/android/webkit/WebViewDatabase.java @@ -29,7 +29,9 @@ import android.content.Context; * </ul> */ public class WebViewDatabase { - // TODO: deprecate/hide this. + /** + * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} + */ protected static final String LOGTAG = "webviewdatabase"; /** diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java index 76b34efa08d1..f79ec421dfa8 100755 --- a/core/java/android/widget/AppSecurityPermissions.java +++ b/core/java/android/widget/AppSecurityPermissions.java @@ -67,7 +67,7 @@ public class AppSecurityPermissions { public static final int WHICH_ALL = 0xffff; private final static String TAG = "AppSecurityPermissions"; - private boolean localLOGV = false; + private final static boolean localLOGV = false; private Context mContext; private LayoutInflater mInflater; private PackageManager mPm; @@ -189,6 +189,8 @@ public class AppSecurityPermissions { permGrpIcon.setImageDrawable(icon); permNameView.setText(label); setOnClickListener(this); + if (localLOGV) Log.i(TAG, "Made perm item " + perm.name + + ": " + label + " in group " + grp.name); } @Override @@ -531,7 +533,9 @@ public class AppSecurityPermissions { MyPermissionGroupInfo grp, MyPermissionInfo perm, boolean first, CharSequence newPermPrefix) { PermissionItemView permView = (PermissionItemView)inflater.inflate( - R.layout.app_permission_item, null); + (perm.flags & PermissionInfo.FLAG_COSTS_MONEY) != 0 + ? R.layout.app_permission_item_money : R.layout.app_permission_item, + null); permView.setPermission(grp, perm, first, newPermPrefix); return permView; } @@ -568,6 +572,8 @@ public class AppSecurityPermissions { // already granted, they will not be granted as part of the install. if ((existingReqFlags&PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0 && (pInfo.protectionLevel & PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0) { + if (localLOGV) Log.i(TAG, "Special perm " + pInfo.name + + ": protlevel=0x" + Integer.toHexString(pInfo.protectionLevel)); return true; } return false; @@ -650,9 +656,9 @@ public class AppSecurityPermissions { mPermGroupsList.add(pgrp); } Collections.sort(mPermGroupsList, mPermGroupComparator); - if (false) { + if (localLOGV) { for (MyPermissionGroupInfo grp : mPermGroupsList) { - Log.i("foo", "Group " + grp.name + " personal=" + Log.i(TAG, "Group " + grp.name + " personal=" + ((grp.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) + " priority=" + grp.priority); } diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java index 689bd02fbe16..e754c17ca2d1 100644 --- a/core/java/android/widget/Switch.java +++ b/core/java/android/widget/Switch.java @@ -508,9 +508,9 @@ public class Switch extends CompoundButton { @Override public void onPopulateAccessibilityEvent(AccessibilityEvent event) { super.onPopulateAccessibilityEvent(event); - CharSequence text = isChecked() ? mOnLayout.getText() : mOffLayout.getText(); - if (!TextUtils.isEmpty(text)) { - event.getText().add(text); + Layout layout = isChecked() ? mOnLayout : mOffLayout; + if (layout != null && !TextUtils.isEmpty(layout.getText())) { + event.getText().add(layout.getText()); } } diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 4777c1621ae5..0710d96ff253 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -20,6 +20,7 @@ import com.android.internal.R; import com.android.internal.telephony.ITelephony; import com.google.android.collect.Lists; +import android.app.ActivityManagerNative; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; @@ -225,7 +226,11 @@ public class LockPatternUtils { public int getCurrentUser() { if (Process.myUid() == Process.SYSTEM_UID) { - return mCurrentUserId; + try { + return ActivityManagerNative.getDefault().getCurrentUser().id; + } catch (RemoteException re) { + return mCurrentUserId; + } } else { throw new SecurityException("Only the system process can get the current user"); } @@ -1001,6 +1006,17 @@ public class LockPatternUtils { } } + public int[] getUserDefinedWidgets() { + int appWidgetId = -1; + String appWidgetIdString = Settings.Secure.getString( + mContentResolver, Settings.Secure.LOCK_SCREEN_USER_SELECTED_APPWIDGET_ID); + if (appWidgetIdString != null) { + appWidgetId = (int) Integer.decode(appWidgetIdString); + } + + return new int[] { appWidgetId }; + } + private long getLong(String secureSettingKey, long defaultValue) { try { return getLockSettings().getLong(secureSettingKey, defaultValue, diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp index edc973220297..1f70c669df63 100644 --- a/core/jni/android/graphics/Paint.cpp +++ b/core/jni/android/graphics/Paint.cpp @@ -792,7 +792,7 @@ public: static void doTextBounds(JNIEnv* env, const jchar* text, int count, jobject bounds, const SkPaint& paint) { - SkRect r; + SkRect r{0,0,0,0}; SkIRect ir; sp<TextLayoutValue> value = TextLayoutEngine::getInstance().getValue(&paint, diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp index bb094215f5d2..aa2c5f39ba8e 100644 --- a/core/jni/android_text_format_Time.cpp +++ b/core/jni/android_text_format_Time.cpp @@ -239,31 +239,36 @@ static jstring android_text_format_Time_format(JNIEnv* env, jobject This, jobjectArray ja; ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_shortMonthsField); for (int i = 0; i < 12; i++) { + // Calendar.JANUARY == 0. js_mon[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i)); locale.mon[i] = env->GetStringUTFChars(js_mon[i], NULL); } ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_longMonthsField); for (int i = 0; i < 12; i++) { + // Calendar.JANUARY == 0. js_month[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i)); locale.month[i] = env->GetStringUTFChars(js_month[i], NULL); } ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_longStandaloneMonthsField); for (int i = 0; i < 12; i++) { + // Calendar.JANUARY == 0. js_standalone_month[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i)); locale.standalone_month[i] = env->GetStringUTFChars(js_standalone_month[i], NULL); } ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_shortWeekdaysField); for (int i = 0; i < 7; i++) { - js_wday[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i)); + // Calendar.SUNDAY == 1, and there's an empty string in element 0. + js_wday[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i + 1)); locale.wday[i] = env->GetStringUTFChars(js_wday[i], NULL); } ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_longWeekdaysField); for (int i = 0; i < 7; i++) { - js_weekday[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i)); + // Calendar.SUNDAY == 1, and there's an empty string in element 0. + js_weekday[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i + 1)); locale.weekday[i] = env->GetStringUTFChars(js_weekday[i], NULL); } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 7305d8b496bf..0bc09aa0da29 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -64,6 +64,8 @@ <protected-broadcast android:name="android.intent.action.USER_ADDED" /> <protected-broadcast android:name="android.intent.action.USER_REMOVED" /> <protected-broadcast android:name="android.intent.action.USER_STOPPED" /> + <protected-broadcast android:name="android.intent.action.USER_BACKGROUND" /> + <protected-broadcast android:name="android.intent.action.USER_FOREGROUND" /> <protected-broadcast android:name="android.intent.action.USER_SWITCHED" /> <protected-broadcast android:name="android.app.action.ENTER_CAR_MODE" /> @@ -169,6 +171,7 @@ <permission android:name="android.permission.SEND_SMS" android:permissionGroup="android.permission-group.MESSAGES" android:protectionLevel="dangerous" + android:permissionFlags="costsMoney" android:label="@string/permlab_sendSms" android:description="@string/permdesc_sendSms" /> @@ -402,7 +405,6 @@ android:label="@string/permgrouplab_writeDictionary" android:icon="@drawable/perm_group_user_dictionary_write" android:description="@string/permgroupdesc_writeDictionary" - android:permissionGroupFlags="personalInfo" android:priority="160" /> <!-- Allows an application to write to the user dictionary. --> @@ -513,14 +515,14 @@ <!-- Allows an application to create mock location providers for testing --> <permission android:name="android.permission.ACCESS_MOCK_LOCATION" - android:permissionGroup="android.permission-group.LOCATION" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="dangerous" android:label="@string/permlab_accessMockLocation" android:description="@string/permdesc_accessMockLocation" /> <!-- Allows an application to access extra location provider commands --> <permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" - android:permissionGroup="android.permission-group.LOCATION" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:protectionLevel="normal" android:label="@string/permlab_accessLocationExtraCommands" android:description="@string/permdesc_accessLocationExtraCommands" /> @@ -614,24 +616,14 @@ android:description="@string/permdesc_bluetoothAdmin" android:label="@string/permlab_bluetoothAdmin" /> - <!-- Used for permissions that provide access to network services that - are for peripherals and other nearby devices. These networks - generally do not provide IP based networking or internet access.--> - <permission-group android:name="android.permission-group.SHORTRANGE_NETWORK" - android:label="@string/permgrouplab_shortrangeNetwork" - android:icon="@drawable/perm_group_shortrange_network" - android:description="@string/permgroupdesc_shortrangeNetwork" - android:priority="250" /> - <!-- Allows applications to perform I/O operations over NFC --> <permission android:name="android.permission.NFC" - android:permissionGroup="android.permission-group.SHORTRANGE_NETWORK" + android:permissionGroup="android.permission-group.NETWORK" android:protectionLevel="dangerous" android:description="@string/permdesc_nfc" android:label="@string/permlab_nfc" /> - <!-- Allows an internal user to use privileged ConnectivityManager - APIs. + <!-- Allows an internal user to use privileged ConnectivityManager APIs. @hide --> <permission android:name="android.permission.CONNECTIVITY_INTERNAL" android:permissionGroup="android.permission-group.NETWORK" @@ -902,6 +894,7 @@ <permission android:name="android.permission.CALL_PHONE" android:permissionGroup="android.permission-group.PHONE_CALLS" android:protectionLevel="dangerous" + android:permissionFlags="costsMoney" android:label="@string/permlab_callPhone" android:description="@string/permdesc_callPhone" /> @@ -927,7 +920,7 @@ <!-- Allows an application to read from external storage --> <permission android:name="android.permission.READ_EXTERNAL_STORAGE" - android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:label="@string/permlab_sdcardRead" android:description="@string/permdesc_sdcardRead" android:protectionLevel="normal" /> @@ -1225,7 +1218,7 @@ <!-- Allows an application to modify the current configuration, such as locale. --> <permission android:name="android.permission.CHANGE_CONFIGURATION" - android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS" android:protectionLevel="signature|system|development" android:label="@string/permlab_changeConfiguration" android:description="@string/permdesc_changeConfiguration" /> @@ -1285,7 +1278,7 @@ <!-- @deprecated This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent. --> <permission android:name="android.permission.PERSISTENT_ACTIVITY" - android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:permissionGroup="android.permission-group.APP_INFO" android:protectionLevel="normal" android:label="@string/permlab_persistentActivity" android:description="@string/permdesc_persistentActivity" /> @@ -1318,7 +1311,7 @@ explicitly declare your use of this facility to make that visible to the user. --> <permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" - android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:permissionGroup="android.permission-group.APP_INFO" android:protectionLevel="normal" android:label="@string/permlab_receiveBootCompleted" android:description="@string/permdesc_receiveBootCompleted" /> @@ -1409,7 +1402,7 @@ <!-- Allows applications to change network connectivity state --> <permission android:name="android.permission.CHANGE_NETWORK_STATE" - android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:permissionGroup="android.permission-group.NETWORK" android:protectionLevel="normal" android:description="@string/permdesc_changeNetworkState" android:label="@string/permlab_changeNetworkState" /> @@ -1533,8 +1526,8 @@ <!-- Allows an application to update device statistics. Not for use by third party apps. --> <permission android:name="android.permission.UPDATE_DEVICE_STATS" - android:label="@string/permlab_batteryStats" - android:description="@string/permdesc_batteryStats" + android:label="@string/permlab_updateBatteryStats" + android:description="@string/permdesc_updateBatteryStats" android:protectionLevel="signature|system" /> <!-- Allows an application to open windows that are for use by parts @@ -1852,9 +1845,10 @@ <!-- Allows an application to collect battery statistics --> <permission android:name="android.permission.BATTERY_STATS" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" android:label="@string/permlab_batteryStats" android:description="@string/permdesc_batteryStats" - android:protectionLevel="normal" /> + android:protectionLevel="dangerous" /> <!-- Allows an application to control the backup and restore process @hide pending API council --> diff --git a/core/res/res/anim/screen_user_enter.xml b/core/res/res/anim/screen_user_enter.xml index a73dea3717d1..cb0a63427089 100644 --- a/core/res/res/anim/screen_user_enter.xml +++ b/core/res/res/anim/screen_user_enter.xml @@ -17,9 +17,6 @@ --> <set xmlns:android="http://schemas.android.com/apk/res/android"> - <translate android:fromXDelta="100%p" android:toXDelta="0" - android:duration="500" - android:interpolator="@interpolator/decelerate_quad" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" android:interpolator="@interpolator/decelerate_quad" /> diff --git a/core/res/res/anim/screen_user_exit.xml b/core/res/res/anim/screen_user_exit.xml index ec94b763f7e3..3d465be06007 100644 --- a/core/res/res/anim/screen_user_exit.xml +++ b/core/res/res/anim/screen_user_exit.xml @@ -17,9 +17,6 @@ --> <set xmlns:android="http://schemas.android.com/apk/res/android"> - <translate android:fromXDelta="0" android:toXDelta="-100%p" - android:duration="500" - android:interpolator="@interpolator/decelerate_quad" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" android:interpolator="@interpolator/decelerate_quad" /> diff --git a/core/res/res/drawable-hdpi/panel_bg_holo_dark.9.png b/core/res/res/drawable-hdpi/panel_bg_holo_dark.9.png Binary files differindex 1b4fed88c462..a5ac279767b7 100644 --- a/core/res/res/drawable-hdpi/panel_bg_holo_dark.9.png +++ b/core/res/res/drawable-hdpi/panel_bg_holo_dark.9.png diff --git a/core/res/res/drawable-hdpi/panel_bg_holo_light.9.png b/core/res/res/drawable-hdpi/panel_bg_holo_light.9.png Binary files differindex c8b3177ceabd..583865e78f1d 100644 --- a/core/res/res/drawable-hdpi/panel_bg_holo_light.9.png +++ b/core/res/res/drawable-hdpi/panel_bg_holo_light.9.png diff --git a/core/res/res/drawable-mdpi/panel_bg_holo_dark.9.png b/core/res/res/drawable-mdpi/panel_bg_holo_dark.9.png Binary files differindex 8c51b013d22c..588eb3c08719 100644 --- a/core/res/res/drawable-mdpi/panel_bg_holo_dark.9.png +++ b/core/res/res/drawable-mdpi/panel_bg_holo_dark.9.png diff --git a/core/res/res/drawable-mdpi/panel_bg_holo_light.9.png b/core/res/res/drawable-mdpi/panel_bg_holo_light.9.png Binary files differindex f4a25bc007db..c1cdbc75fc0b 100644 --- a/core/res/res/drawable-mdpi/panel_bg_holo_light.9.png +++ b/core/res/res/drawable-mdpi/panel_bg_holo_light.9.png diff --git a/core/res/res/drawable-xhdpi/panel_bg_holo_dark.9.png b/core/res/res/drawable-xhdpi/panel_bg_holo_dark.9.png Binary files differindex 0cf7ac83dff2..aaf6d8b19774 100644 --- a/core/res/res/drawable-xhdpi/panel_bg_holo_dark.9.png +++ b/core/res/res/drawable-xhdpi/panel_bg_holo_dark.9.png diff --git a/core/res/res/drawable-xhdpi/panel_bg_holo_light.9.png b/core/res/res/drawable-xhdpi/panel_bg_holo_light.9.png Binary files differindex 9bdf3f1665c7..6ea76159c9b0 100644 --- a/core/res/res/drawable-xhdpi/panel_bg_holo_light.9.png +++ b/core/res/res/drawable-xhdpi/panel_bg_holo_light.9.png diff --git a/core/res/res/drawable/kg_avatar_overlay.xml b/core/res/res/drawable/kg_avatar_overlay.xml new file mode 100644 index 000000000000..781c1df6ac65 --- /dev/null +++ b/core/res/res/drawable/kg_avatar_overlay.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" + android:drawable="@drawable/activity_picker_bg_activated" /> +</selector>
\ No newline at end of file diff --git a/core/res/res/layout/alert_dialog_holo.xml b/core/res/res/layout/alert_dialog_holo.xml index 7fc31d828c71..3f1fa3c337b9 100644 --- a/core/res/res/layout/alert_dialog_holo.xml +++ b/core/res/res/layout/alert_dialog_holo.xml @@ -67,7 +67,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" - android:orientation="vertical"> + android:orientation="vertical" + android:minHeight="64dp"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -86,7 +87,8 @@ <FrameLayout android:id="@+id/customPanel" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1"> + android:layout_weight="1" + android:minHeight="64dp"> <FrameLayout android:id="@+android:id/custom" android:layout_width="match_parent" android:layout_height="wrap_content" /> diff --git a/core/res/res/layout/app_permission_item.xml b/core/res/res/layout/app_permission_item.xml index 7d44d44e046b..e2ffffb77636 100644 --- a/core/res/res/layout/app_permission_item.xml +++ b/core/res/res/layout/app_permission_item.xml @@ -16,7 +16,6 @@ <!-- Defines the layout of a single permission item. - Contains the group name and a list of permission labels under the group. --> <view class="android.widget.AppSecurityPermissions$PermissionItemView" diff --git a/core/res/res/layout/app_permission_item_money.xml b/core/res/res/layout/app_permission_item_money.xml new file mode 100644 index 000000000000..ab0d5328696e --- /dev/null +++ b/core/res/res/layout/app_permission_item_money.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<!-- + Defines the layout of a single permission item that costs money. +--> + +<view class="android.widget.AppSecurityPermissions$PermissionItemView" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:background="?android:attr/selectableItemBackground"> + + <ImageView + android:id="@+id/perm_icon" + android:layout_width="32dp" + android:layout_height="32dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="8dp" + android:scaleType="fitCenter" /> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:background="?android:attr/dividerVertical" /> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="8dp"> + <TextView + android:id="@+id/perm_name" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textSize="16sp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentStart="true" + android:layout_alignParentTop="true" /> + <ImageView + android:id="@+id/perm_money_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentStart="true" + android:layout_below="@id/perm_name" + android:scaleType="fitCenter" /> + <TextView + android:textAppearance="?android:attr/textAppearanceSmall" + android:textSize="16sp" + android:textColor="@color/perms_costs_money" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_toEndOf="@id/perm_money_icon" + android:layout_below="@id/perm_name" + android:text="@string/perm_costs_money" /> + </RelativeLayout> + +</view> diff --git a/core/res/res/layout/keyguard_multi_user_avatar.xml b/core/res/res/layout/keyguard_multi_user_avatar.xml index 999917709401..23f9b6d45507 100644 --- a/core/res/res/layout/keyguard_multi_user_avatar.xml +++ b/core/res/res/layout/keyguard_multi_user_avatar.xml @@ -23,9 +23,11 @@ android:layout_width="125dp" android:layout_height="125dp" android:background="#550000ff" - android:gravity="center_horizontal"> + android:gravity="center_horizontal" + android:foreground="@drawable/kg_avatar_overlay"> <ImageView android:id="@+id/keyguard_user_avatar" + android:scaleType="centerCrop" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center"/> diff --git a/core/res/res/layout/keyguard_multi_user_selector.xml b/core/res/res/layout/keyguard_multi_user_selector.xml index 3ed91038f833..c599fd5ddbfc 100644 --- a/core/res/res/layout/keyguard_multi_user_selector.xml +++ b/core/res/res/layout/keyguard_multi_user_selector.xml @@ -19,23 +19,15 @@ <com.android.internal.policy.impl.keyguard.KeyguardMultiUserSelectorView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" - android:layout_width="375dp" - android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_height="match_parent" android:layout_gravity="center"> - <include - android:id="@+id/keyguard_active_user" - android:layout_width="250dp" - android:layout_height="250dp" - layout="@layout/keyguard_multi_user_avatar"/> + <com.android.internal.policy.impl.keyguard.KeyguardSubdivisionLayout + android:id="@+id/keyguard_users_grid" + android:orientation="horizontal" + android:layout_width="300dp" + android:layout_height="300dp" + android:layout_gravity="center" /> - <ScrollView - android:layout_width="125dp" - android:layout_height="250dp"> - <LinearLayout - android:id="@+id/keyguard_inactive_users" - android:orientation="vertical" - layout_width="match_parent" - layout_height="wrap_content"/> - </ScrollView> </com.android.internal.policy.impl.keyguard.KeyguardMultiUserSelectorView>
\ No newline at end of file diff --git a/core/res/res/layout/sms_short_code_confirmation_dialog.xml b/core/res/res/layout/sms_short_code_confirmation_dialog.xml new file mode 100644 index 000000000000..ed08375e472d --- /dev/null +++ b/core/res/res/layout/sms_short_code_confirmation_dialog.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2012 The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/parentPanel" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="8dip" + android:layout_marginRight="8dip" + android:orientation="vertical"> + + <TextView android:id="@+id/sms_short_code_confirm_message" + style="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingLeft="16dip" + android:paddingRight="16dip" + android:paddingTop="8dip" + android:paddingBottom="8dip"/> + + <LinearLayout android:id="@+id/sms_short_code_detail_layout" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:gravity="center_vertical" + android:minHeight="@dimen/alert_dialog_title_height" + android:layout_marginLeft="16dip" + android:layout_marginRight="16dip"> + <ImageView android:id="@+id/sms_short_code_coins_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingRight="8dip" + android:src="@null" /> + <TextView android:id="@+id/sms_short_code_detail_message" + style="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </LinearLayout> + + <CheckBox android:id="@+id/sms_short_code_remember_choice_checkbox" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/sms_short_code_remember_choice" /> +</LinearLayout> diff --git a/core/res/res/values-af/donottranslate-cldr.xml b/core/res/res/values-af/donottranslate-cldr.xml index 9d38717a5731..77b7f7cfbaeb 100644 --- a/core/res/res/values-af/donottranslate-cldr.xml +++ b/core/res/res/values-af/donottranslate-cldr.xml @@ -1,93 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januarie</string> - <string name="month_long_standalone_february">Februarie</string> - <string name="month_long_standalone_march">Maart</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">Mei</string> - <string name="month_long_standalone_june">Junie</string> - <string name="month_long_standalone_july">Julie</string> - <string name="month_long_standalone_august">Augustus</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">Oktober</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">Desember</string> - - <string name="month_long_january">Januarie</string> - <string name="month_long_february">Februarie</string> - <string name="month_long_march">Maart</string> - <string name="month_long_april">April</string> - <string name="month_long_may">Mei</string> - <string name="month_long_june">Junie</string> - <string name="month_long_july">Julie</string> - <string name="month_long_august">Augustus</string> - <string name="month_long_september">September</string> - <string name="month_long_october">Oktober</string> - <string name="month_long_november">November</string> - <string name="month_long_december">Desember</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mei</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Des</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Sondag</string> - <string name="day_of_week_long_monday">Maandag</string> - <string name="day_of_week_long_tuesday">Dinsdag</string> - <string name="day_of_week_long_wednesday">Woensdag</string> - <string name="day_of_week_long_thursday">Donderdag</string> - <string name="day_of_week_long_friday">Vrydag</string> - <string name="day_of_week_long_saturday">Saterdag</string> - - <string name="day_of_week_medium_sunday">So</string> - <string name="day_of_week_medium_monday">Ma</string> - <string name="day_of_week_medium_tuesday">Di</string> - <string name="day_of_week_medium_wednesday">Wo</string> - <string name="day_of_week_medium_thursday">Do</string> - <string name="day_of_week_medium_friday">Vr</string> - <string name="day_of_week_medium_saturday">Sa</string> - - <string name="day_of_week_short_sunday">So</string> - <string name="day_of_week_short_monday">Ma</string> - <string name="day_of_week_short_tuesday">Di</string> - <string name="day_of_week_short_wednesday">Wo</string> - <string name="day_of_week_short_thursday">Do</string> - <string name="day_of_week_short_friday">Vr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">vm.</string> - <string name="pm">nm.</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-am/donottranslate-cldr.xml b/core/res/res/values-am/donottranslate-cldr.xml index 2319fbf50b4b..b3b76f921fb7 100644 --- a/core/res/res/values-am/donottranslate-cldr.xml +++ b/core/res/res/values-am/donottranslate-cldr.xml @@ -1,93 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">ጃንዩወሪ</string> - <string name="month_long_standalone_february">ፌብሩወሪ</string> - <string name="month_long_standalone_march">ማርች</string> - <string name="month_long_standalone_april">ኤፕረል</string> - <string name="month_long_standalone_may">ሜይ</string> - <string name="month_long_standalone_june">ጁን</string> - <string name="month_long_standalone_july">ጁላይ</string> - <string name="month_long_standalone_august">ኦገስት</string> - <string name="month_long_standalone_september">ሴፕቴምበር</string> - <string name="month_long_standalone_october">ኦክተውበር</string> - <string name="month_long_standalone_november">ኖቬምበር</string> - <string name="month_long_standalone_december">ዲሴምበር</string> - - <string name="month_long_january">ጃንዩወሪ</string> - <string name="month_long_february">ፌብሩወሪ</string> - <string name="month_long_march">ማርች</string> - <string name="month_long_april">ኤፕረል</string> - <string name="month_long_may">ሜይ</string> - <string name="month_long_june">ጁን</string> - <string name="month_long_july">ጁላይ</string> - <string name="month_long_august">ኦገስት</string> - <string name="month_long_september">ሴፕቴምበር</string> - <string name="month_long_october">ኦክተውበር</string> - <string name="month_long_november">ኖቬምበር</string> - <string name="month_long_december">ዲሴምበር</string> - - <string name="month_medium_january">ጃንዩ</string> - <string name="month_medium_february">ፌብሩ</string> - <string name="month_medium_march">ማርች</string> - <string name="month_medium_april">ኤፕረ</string> - <string name="month_medium_may">ሜይ</string> - <string name="month_medium_june">ጁን</string> - <string name="month_medium_july">ጁላይ</string> - <string name="month_medium_august">ኦገስ</string> - <string name="month_medium_september">ሴፕቴ</string> - <string name="month_medium_october">ኦክተ</string> - <string name="month_medium_november">ኖቬም</string> - <string name="month_medium_december">ዲሴም</string> - - <string name="month_shortest_january">ጃ</string> - <string name="month_shortest_february">ፌ</string> - <string name="month_shortest_march">ማ</string> - <string name="month_shortest_april">ኤ</string> - <string name="month_shortest_may">ሜ</string> - <string name="month_shortest_june">ጁ</string> - <string name="month_shortest_july">ጁ</string> - <string name="month_shortest_august">ኦ</string> - <string name="month_shortest_september">ሴ</string> - <string name="month_shortest_october">ኦ</string> - <string name="month_shortest_november">ኖ</string> - <string name="month_shortest_december">ዲ</string> - - <string name="day_of_week_long_sunday">እሑድ</string> - <string name="day_of_week_long_monday">ሰኞ</string> - <string name="day_of_week_long_tuesday">ማክሰኞ</string> - <string name="day_of_week_long_wednesday">ረቡዕ</string> - <string name="day_of_week_long_thursday">ሐሙስ</string> - <string name="day_of_week_long_friday">ዓርብ</string> - <string name="day_of_week_long_saturday">ቅዳሜ</string> - - <string name="day_of_week_medium_sunday">እሑድ</string> - <string name="day_of_week_medium_monday">ሰኞ</string> - <string name="day_of_week_medium_tuesday">ማክሰ</string> - <string name="day_of_week_medium_wednesday">ረቡዕ</string> - <string name="day_of_week_medium_thursday">ሐሙስ</string> - <string name="day_of_week_medium_friday">ዓርብ</string> - <string name="day_of_week_medium_saturday">ቅዳሜ</string> - - <string name="day_of_week_short_sunday">እሑድ</string> - <string name="day_of_week_short_monday">ሰኞ</string> - <string name="day_of_week_short_tuesday">ማክሰ</string> - <string name="day_of_week_short_wednesday">ረቡዕ</string> - <string name="day_of_week_short_thursday">ሐሙስ</string> - <string name="day_of_week_short_friday">ዓርብ</string> - <string name="day_of_week_short_saturday">ቅዳሜ</string> - - <string name="day_of_week_shortest_sunday">እ</string> - <string name="day_of_week_shortest_monday">ሰ</string> - <string name="day_of_week_shortest_tuesday">ማ</string> - <string name="day_of_week_shortest_wednesday">ረ</string> - <string name="day_of_week_shortest_thursday">ሐ</string> - <string name="day_of_week_shortest_friday">ዓ</string> - <string name="day_of_week_shortest_saturday">ቅ</string> - - <string name="am">ጡዋት</string> - <string name="pm">ከሳዓት</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-ar-rEG/donottranslate-cldr.xml b/core/res/res/values-ar-rEG/donottranslate-cldr.xml index 57011d7683b2..155480da4592 100644 --- a/core/res/res/values-ar-rEG/donottranslate-cldr.xml +++ b/core/res/res/values-ar-rEG/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">يناير</string> - <string name="month_long_standalone_february">فبراير</string> - <string name="month_long_standalone_march">مارس</string> - <string name="month_long_standalone_april">أبريل</string> - <string name="month_long_standalone_may">مايو</string> - <string name="month_long_standalone_june">يونيو</string> - <string name="month_long_standalone_july">يوليو</string> - <string name="month_long_standalone_august">أغسطس</string> - <string name="month_long_standalone_september">سبتمبر</string> - <string name="month_long_standalone_october">أكتوبر</string> - <string name="month_long_standalone_november">نوفمبر</string> - <string name="month_long_standalone_december">ديسمبر</string> - - <string name="month_long_january">يناير</string> - <string name="month_long_february">فبراير</string> - <string name="month_long_march">مارس</string> - <string name="month_long_april">أبريل</string> - <string name="month_long_may">مايو</string> - <string name="month_long_june">يونيو</string> - <string name="month_long_july">يوليو</string> - <string name="month_long_august">أغسطس</string> - <string name="month_long_september">سبتمبر</string> - <string name="month_long_october">أكتوبر</string> - <string name="month_long_november">نوفمبر</string> - <string name="month_long_december">ديسمبر</string> - - <string name="month_medium_january">يناير</string> - <string name="month_medium_february">فبراير</string> - <string name="month_medium_march">مارس</string> - <string name="month_medium_april">أبريل</string> - <string name="month_medium_may">مايو</string> - <string name="month_medium_june">يونيو</string> - <string name="month_medium_july">يوليو</string> - <string name="month_medium_august">أغسطس</string> - <string name="month_medium_september">سبتمبر</string> - <string name="month_medium_october">أكتوبر</string> - <string name="month_medium_november">نوفمبر</string> - <string name="month_medium_december">ديسمبر</string> - - <string name="month_shortest_january">ي</string> - <string name="month_shortest_february">ف</string> - <string name="month_shortest_march">م</string> - <string name="month_shortest_april">أ</string> - <string name="month_shortest_may">و</string> - <string name="month_shortest_june">ن</string> - <string name="month_shortest_july">ل</string> - <string name="month_shortest_august">غ</string> - <string name="month_shortest_september">س</string> - <string name="month_shortest_october">ك</string> - <string name="month_shortest_november">ب</string> - <string name="month_shortest_december">د</string> - - <string name="day_of_week_long_sunday">الأحد</string> - <string name="day_of_week_long_monday">الإثنين</string> - <string name="day_of_week_long_tuesday">الثلاثاء</string> - <string name="day_of_week_long_wednesday">الأربعاء</string> - <string name="day_of_week_long_thursday">الخميس</string> - <string name="day_of_week_long_friday">الجمعة</string> - <string name="day_of_week_long_saturday">السبت</string> - - <string name="day_of_week_medium_sunday">أحد</string> - <string name="day_of_week_medium_monday">إثنين</string> - <string name="day_of_week_medium_tuesday">ثلاثاء</string> - <string name="day_of_week_medium_wednesday">أربعاء</string> - <string name="day_of_week_medium_thursday">خميس</string> - <string name="day_of_week_medium_friday">جمعة</string> - <string name="day_of_week_medium_saturday">سبت</string> - - <string name="day_of_week_short_sunday">أحد</string> - <string name="day_of_week_short_monday">إثنين</string> - <string name="day_of_week_short_tuesday">ثلاثاء</string> - <string name="day_of_week_short_wednesday">أربعاء</string> - <string name="day_of_week_short_thursday">خميس</string> - <string name="day_of_week_short_friday">جمعة</string> - <string name="day_of_week_short_saturday">سبت</string> - - <string name="day_of_week_shortest_sunday">ح</string> - <string name="day_of_week_shortest_monday">ن</string> - <string name="day_of_week_shortest_tuesday">ث</string> - <string name="day_of_week_shortest_wednesday">ر</string> - <string name="day_of_week_shortest_thursday">خ</string> - <string name="day_of_week_shortest_friday">ج</string> - <string name="day_of_week_shortest_saturday">س</string> - - <string name="am">ص</string> - <string name="pm">م</string> - <string name="yesterday">أمس</string> - <string name="today">اليوم</string> - <string name="tomorrow">غدًا</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-ar/donottranslate-cldr.xml b/core/res/res/values-ar/donottranslate-cldr.xml index 0b9da23b765d..135963bf9986 100644 --- a/core/res/res/values-ar/donottranslate-cldr.xml +++ b/core/res/res/values-ar/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">يناير</string> - <string name="month_long_standalone_february">فبراير</string> - <string name="month_long_standalone_march">مارس</string> - <string name="month_long_standalone_april">أبريل</string> - <string name="month_long_standalone_may">مايو</string> - <string name="month_long_standalone_june">يونيو</string> - <string name="month_long_standalone_july">يوليو</string> - <string name="month_long_standalone_august">أغسطس</string> - <string name="month_long_standalone_september">سبتمبر</string> - <string name="month_long_standalone_october">أكتوبر</string> - <string name="month_long_standalone_november">نوفمبر</string> - <string name="month_long_standalone_december">ديسمبر</string> - - <string name="month_long_january">يناير</string> - <string name="month_long_february">فبراير</string> - <string name="month_long_march">مارس</string> - <string name="month_long_april">أبريل</string> - <string name="month_long_may">مايو</string> - <string name="month_long_june">يونيو</string> - <string name="month_long_july">يوليو</string> - <string name="month_long_august">أغسطس</string> - <string name="month_long_september">سبتمبر</string> - <string name="month_long_october">أكتوبر</string> - <string name="month_long_november">نوفمبر</string> - <string name="month_long_december">ديسمبر</string> - - <string name="month_medium_january">يناير</string> - <string name="month_medium_february">فبراير</string> - <string name="month_medium_march">مارس</string> - <string name="month_medium_april">أبريل</string> - <string name="month_medium_may">مايو</string> - <string name="month_medium_june">يونيو</string> - <string name="month_medium_july">يوليو</string> - <string name="month_medium_august">أغسطس</string> - <string name="month_medium_september">سبتمبر</string> - <string name="month_medium_october">أكتوبر</string> - <string name="month_medium_november">نوفمبر</string> - <string name="month_medium_december">ديسمبر</string> - - <string name="month_shortest_january">ي</string> - <string name="month_shortest_february">ف</string> - <string name="month_shortest_march">م</string> - <string name="month_shortest_april">أ</string> - <string name="month_shortest_may">و</string> - <string name="month_shortest_june">ن</string> - <string name="month_shortest_july">ل</string> - <string name="month_shortest_august">غ</string> - <string name="month_shortest_september">س</string> - <string name="month_shortest_october">ك</string> - <string name="month_shortest_november">ب</string> - <string name="month_shortest_december">د</string> - - <string name="day_of_week_long_sunday">الأحد</string> - <string name="day_of_week_long_monday">الإثنين</string> - <string name="day_of_week_long_tuesday">الثلاثاء</string> - <string name="day_of_week_long_wednesday">الأربعاء</string> - <string name="day_of_week_long_thursday">الخميس</string> - <string name="day_of_week_long_friday">الجمعة</string> - <string name="day_of_week_long_saturday">السبت</string> - - <string name="day_of_week_medium_sunday">أحد</string> - <string name="day_of_week_medium_monday">إثنين</string> - <string name="day_of_week_medium_tuesday">ثلاثاء</string> - <string name="day_of_week_medium_wednesday">أربعاء</string> - <string name="day_of_week_medium_thursday">خميس</string> - <string name="day_of_week_medium_friday">جمعة</string> - <string name="day_of_week_medium_saturday">سبت</string> - - <string name="day_of_week_short_sunday">أحد</string> - <string name="day_of_week_short_monday">إثنين</string> - <string name="day_of_week_short_tuesday">ثلاثاء</string> - <string name="day_of_week_short_wednesday">أربعاء</string> - <string name="day_of_week_short_thursday">خميس</string> - <string name="day_of_week_short_friday">جمعة</string> - <string name="day_of_week_short_saturday">سبت</string> - - <string name="day_of_week_shortest_sunday">ح</string> - <string name="day_of_week_shortest_monday">ن</string> - <string name="day_of_week_shortest_tuesday">ث</string> - <string name="day_of_week_shortest_wednesday">ر</string> - <string name="day_of_week_shortest_thursday">خ</string> - <string name="day_of_week_shortest_friday">ج</string> - <string name="day_of_week_shortest_saturday">س</string> - - <string name="am">ص</string> - <string name="pm">م</string> - <string name="yesterday">أمس</string> - <string name="today">اليوم</string> - <string name="tomorrow">غدًا</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-be/donottranslate-cldr.xml b/core/res/res/values-be/donottranslate-cldr.xml index 365e60d1f8dc..a346c8372bfa 100644 --- a/core/res/res/values-be/donottranslate-cldr.xml +++ b/core/res/res/values-be/donottranslate-cldr.xml @@ -1,85 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_may">травень</string> - - <string name="month_long_january">студзень</string> - <string name="month_long_february">люты</string> - <string name="month_long_march">сакавік</string> - <string name="month_long_april">красавік</string> - <string name="month_long_may">май</string> - <string name="month_long_june">чэрвень</string> - <string name="month_long_july">ліпень</string> - <string name="month_long_august">жнівень</string> - <string name="month_long_september">верасень</string> - <string name="month_long_october">кастрычнік</string> - <string name="month_long_november">лістапад</string> - <string name="month_long_december">снежань</string> - - <string name="month_medium_january">сту</string> - <string name="month_medium_february">лют</string> - <string name="month_medium_march">сак</string> - <string name="month_medium_april">кра</string> - <string name="month_medium_may">май</string> - <string name="month_medium_june">чэр</string> - <string name="month_medium_july">ліп</string> - <string name="month_medium_august">жні</string> - <string name="month_medium_september">вер</string> - <string name="month_medium_october">кас</string> - <string name="month_medium_november">ліс</string> - <string name="month_medium_december">сне</string> - - <string name="month_shortest_january">с</string> - <string name="month_shortest_february">л</string> - <string name="month_shortest_march">с</string> - <string name="month_shortest_april">к</string> - <string name="month_shortest_may">м</string> - <string name="month_shortest_june">ч</string> - <string name="month_shortest_july">л</string> - <string name="month_shortest_august">ж</string> - <string name="month_shortest_september">в</string> - <string name="month_shortest_october">к</string> - <string name="month_shortest_november">л</string> - <string name="month_shortest_december">с</string> - - <string name="day_of_week_long_sunday">нядзеля</string> - <string name="day_of_week_long_monday">панядзелак</string> - <string name="day_of_week_long_tuesday">аўторак</string> - <string name="day_of_week_long_wednesday">серада</string> - <string name="day_of_week_long_thursday">чацвер</string> - <string name="day_of_week_long_friday">пятніца</string> - <string name="day_of_week_long_saturday">субота</string> - - <string name="day_of_week_medium_sunday">нд</string> - <string name="day_of_week_medium_monday">пн</string> - <string name="day_of_week_medium_tuesday">аў</string> - <string name="day_of_week_medium_wednesday">ср</string> - <string name="day_of_week_medium_thursday">чц</string> - <string name="day_of_week_medium_friday">пт</string> - <string name="day_of_week_medium_saturday">сб</string> - - <string name="day_of_week_short_sunday">нд</string> - <string name="day_of_week_short_monday">пн</string> - <string name="day_of_week_short_tuesday">аў</string> - <string name="day_of_week_short_wednesday">ср</string> - <string name="day_of_week_short_thursday">чц</string> - <string name="day_of_week_short_friday">пт</string> - <string name="day_of_week_short_saturday">сб</string> - - <string name="day_of_week_shortest_sunday">н</string> - <string name="day_of_week_shortest_monday">п</string> - <string name="day_of_week_shortest_tuesday">а</string> - <string name="day_of_week_shortest_wednesday">с</string> - <string name="day_of_week_shortest_thursday">ч</string> - <string name="day_of_week_shortest_friday">п</string> - <string name="day_of_week_shortest_saturday">с</string> - - <string name="am">да палудня</string> - <string name="pm">пасля палудня</string> - <string name="yesterday">учора</string> - <string name="today">сёння</string> - <string name="tomorrow">заўтра</string> - <string name="hour_minute_24">%-k.%M</string> <string name="hour_minute_ampm">%-l.%M %p</string> <string name="hour_minute_cap_ampm">%-l.%M %p</string> diff --git a/core/res/res/values-bg/donottranslate-cldr.xml b/core/res/res/values-bg/donottranslate-cldr.xml index 972d661af4f7..9c1ae2c095bc 100644 --- a/core/res/res/values-bg/donottranslate-cldr.xml +++ b/core/res/res/values-bg/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">януари</string> - <string name="month_long_standalone_february">февруари</string> - <string name="month_long_standalone_march">март</string> - <string name="month_long_standalone_april">април</string> - <string name="month_long_standalone_may">май</string> - <string name="month_long_standalone_june">юни</string> - <string name="month_long_standalone_july">юли</string> - <string name="month_long_standalone_august">август</string> - <string name="month_long_standalone_september">септември</string> - <string name="month_long_standalone_october">октомври</string> - <string name="month_long_standalone_november">ноември</string> - <string name="month_long_standalone_december">декември</string> - - <string name="month_long_january">януари</string> - <string name="month_long_february">февруари</string> - <string name="month_long_march">март</string> - <string name="month_long_april">април</string> - <string name="month_long_may">май</string> - <string name="month_long_june">юни</string> - <string name="month_long_july">юли</string> - <string name="month_long_august">август</string> - <string name="month_long_september">септември</string> - <string name="month_long_october">октомври</string> - <string name="month_long_november">ноември</string> - <string name="month_long_december">декември</string> - - <string name="month_medium_january">ян.</string> - <string name="month_medium_february">февр.</string> - <string name="month_medium_march">март</string> - <string name="month_medium_april">апр.</string> - <string name="month_medium_may">май</string> - <string name="month_medium_june">юни</string> - <string name="month_medium_july">юли</string> - <string name="month_medium_august">авг.</string> - <string name="month_medium_september">септ.</string> - <string name="month_medium_october">окт.</string> - <string name="month_medium_november">ноем.</string> - <string name="month_medium_december">дек.</string> - - <string name="month_shortest_january">я</string> - <string name="month_shortest_february">ф</string> - <string name="month_shortest_march">м</string> - <string name="month_shortest_april">а</string> - <string name="month_shortest_may">м</string> - <string name="month_shortest_june">ю</string> - <string name="month_shortest_july">ю</string> - <string name="month_shortest_august">а</string> - <string name="month_shortest_september">с</string> - <string name="month_shortest_october">о</string> - <string name="month_shortest_november">н</string> - <string name="month_shortest_december">д</string> - - <string name="day_of_week_long_sunday">неделя</string> - <string name="day_of_week_long_monday">понеделник</string> - <string name="day_of_week_long_tuesday">вторник</string> - <string name="day_of_week_long_wednesday">сряда</string> - <string name="day_of_week_long_thursday">четвъртък</string> - <string name="day_of_week_long_friday">петък</string> - <string name="day_of_week_long_saturday">събота</string> - - <string name="day_of_week_medium_sunday">нд</string> - <string name="day_of_week_medium_monday">пн</string> - <string name="day_of_week_medium_tuesday">вт</string> - <string name="day_of_week_medium_wednesday">ср</string> - <string name="day_of_week_medium_thursday">чт</string> - <string name="day_of_week_medium_friday">пт</string> - <string name="day_of_week_medium_saturday">сб</string> - - <string name="day_of_week_short_sunday">нд</string> - <string name="day_of_week_short_monday">пн</string> - <string name="day_of_week_short_tuesday">вт</string> - <string name="day_of_week_short_wednesday">ср</string> - <string name="day_of_week_short_thursday">чт</string> - <string name="day_of_week_short_friday">пт</string> - <string name="day_of_week_short_saturday">сб</string> - - <string name="day_of_week_shortest_sunday">н</string> - <string name="day_of_week_shortest_monday">п</string> - <string name="day_of_week_shortest_tuesday">в</string> - <string name="day_of_week_shortest_wednesday">с</string> - <string name="day_of_week_shortest_thursday">ч</string> - <string name="day_of_week_shortest_friday">п</string> - <string name="day_of_week_shortest_saturday">с</string> - - <string name="am">пр. об.</string> - <string name="pm">сл. об.</string> - <string name="yesterday">Вчера</string> - <string name="today">Днес</string> - <string name="tomorrow">Утре</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-ca-rES/donottranslate-cldr.xml b/core/res/res/values-ca-rES/donottranslate-cldr.xml index 113133dc71e4..8feeeeddc903 100644 --- a/core/res/res/values-ca-rES/donottranslate-cldr.xml +++ b/core/res/res/values-ca-rES/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">gener</string> - <string name="month_long_standalone_february">febrer</string> - <string name="month_long_standalone_march">març</string> - <string name="month_long_standalone_april">abril</string> - <string name="month_long_standalone_may">maig</string> - <string name="month_long_standalone_june">juny</string> - <string name="month_long_standalone_july">juliol</string> - <string name="month_long_standalone_august">agost</string> - <string name="month_long_standalone_september">setembre</string> - <string name="month_long_standalone_october">octubre</string> - <string name="month_long_standalone_november">novembre</string> - <string name="month_long_standalone_december">desembre</string> - - <string name="month_long_january">gener</string> - <string name="month_long_february">febrer</string> - <string name="month_long_march">març</string> - <string name="month_long_april">abril</string> - <string name="month_long_may">maig</string> - <string name="month_long_june">juny</string> - <string name="month_long_july">juliol</string> - <string name="month_long_august">agost</string> - <string name="month_long_september">setembre</string> - <string name="month_long_october">octubre</string> - <string name="month_long_november">novembre</string> - <string name="month_long_december">desembre</string> - - <string name="month_medium_january">gen.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">març</string> - <string name="month_medium_april">abr.</string> - <string name="month_medium_may">maig</string> - <string name="month_medium_june">juny</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">ag.</string> - <string name="month_medium_september">set.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">des.</string> - - <string name="month_shortest_january">g</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">diumenge</string> - <string name="day_of_week_long_monday">dilluns</string> - <string name="day_of_week_long_tuesday">dimarts</string> - <string name="day_of_week_long_wednesday">dimecres</string> - <string name="day_of_week_long_thursday">dijous</string> - <string name="day_of_week_long_friday">divendres</string> - <string name="day_of_week_long_saturday">dissabte</string> - - <string name="day_of_week_medium_sunday">dg.</string> - <string name="day_of_week_medium_monday">dl.</string> - <string name="day_of_week_medium_tuesday">dt.</string> - <string name="day_of_week_medium_wednesday">dc.</string> - <string name="day_of_week_medium_thursday">dj.</string> - <string name="day_of_week_medium_friday">dv.</string> - <string name="day_of_week_medium_saturday">ds.</string> - - <string name="day_of_week_short_sunday">dg.</string> - <string name="day_of_week_short_monday">dl.</string> - <string name="day_of_week_short_tuesday">dt.</string> - <string name="day_of_week_short_wednesday">dc.</string> - <string name="day_of_week_short_thursday">dj.</string> - <string name="day_of_week_short_friday">dv.</string> - <string name="day_of_week_short_saturday">ds.</string> - - <string name="day_of_week_shortest_sunday">g</string> - <string name="day_of_week_shortest_monday">l</string> - <string name="day_of_week_shortest_tuesday">t</string> - <string name="day_of_week_shortest_wednesday">c</string> - <string name="day_of_week_shortest_thursday">j</string> - <string name="day_of_week_shortest_friday">v</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">a.m.</string> - <string name="pm">p.m.</string> - <string name="yesterday">ahir</string> - <string name="today">avui</string> - <string name="tomorrow">demà</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-ca/donottranslate-cldr.xml b/core/res/res/values-ca/donottranslate-cldr.xml index 03cf69dcfd56..3fda852fc3d5 100644 --- a/core/res/res/values-ca/donottranslate-cldr.xml +++ b/core/res/res/values-ca/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">gener</string> - <string name="month_long_standalone_february">febrer</string> - <string name="month_long_standalone_march">març</string> - <string name="month_long_standalone_april">abril</string> - <string name="month_long_standalone_may">maig</string> - <string name="month_long_standalone_june">juny</string> - <string name="month_long_standalone_july">juliol</string> - <string name="month_long_standalone_august">agost</string> - <string name="month_long_standalone_september">setembre</string> - <string name="month_long_standalone_october">octubre</string> - <string name="month_long_standalone_november">novembre</string> - <string name="month_long_standalone_december">desembre</string> - - <string name="month_long_january">gener</string> - <string name="month_long_february">febrer</string> - <string name="month_long_march">març</string> - <string name="month_long_april">abril</string> - <string name="month_long_may">maig</string> - <string name="month_long_june">juny</string> - <string name="month_long_july">juliol</string> - <string name="month_long_august">agost</string> - <string name="month_long_september">setembre</string> - <string name="month_long_october">octubre</string> - <string name="month_long_november">novembre</string> - <string name="month_long_december">desembre</string> - - <string name="month_medium_january">gen.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">març</string> - <string name="month_medium_april">abr.</string> - <string name="month_medium_may">maig</string> - <string name="month_medium_june">juny</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">ag.</string> - <string name="month_medium_september">set.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">des.</string> - - <string name="month_shortest_january">g</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">diumenge</string> - <string name="day_of_week_long_monday">dilluns</string> - <string name="day_of_week_long_tuesday">dimarts</string> - <string name="day_of_week_long_wednesday">dimecres</string> - <string name="day_of_week_long_thursday">dijous</string> - <string name="day_of_week_long_friday">divendres</string> - <string name="day_of_week_long_saturday">dissabte</string> - - <string name="day_of_week_medium_sunday">dg.</string> - <string name="day_of_week_medium_monday">dl.</string> - <string name="day_of_week_medium_tuesday">dt.</string> - <string name="day_of_week_medium_wednesday">dc.</string> - <string name="day_of_week_medium_thursday">dj.</string> - <string name="day_of_week_medium_friday">dv.</string> - <string name="day_of_week_medium_saturday">ds.</string> - - <string name="day_of_week_short_sunday">dg.</string> - <string name="day_of_week_short_monday">dl.</string> - <string name="day_of_week_short_tuesday">dt.</string> - <string name="day_of_week_short_wednesday">dc.</string> - <string name="day_of_week_short_thursday">dj.</string> - <string name="day_of_week_short_friday">dv.</string> - <string name="day_of_week_short_saturday">ds.</string> - - <string name="day_of_week_shortest_sunday">g</string> - <string name="day_of_week_shortest_monday">l</string> - <string name="day_of_week_shortest_tuesday">t</string> - <string name="day_of_week_shortest_wednesday">c</string> - <string name="day_of_week_shortest_thursday">j</string> - <string name="day_of_week_shortest_friday">v</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">a.m.</string> - <string name="pm">p.m.</string> - <string name="yesterday">ahir</string> - <string name="today">avui</string> - <string name="tomorrow">demà</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-cs/donottranslate-cldr.xml b/core/res/res/values-cs/donottranslate-cldr.xml index 59b82d33be84..ff7902d58ba5 100644 --- a/core/res/res/values-cs/donottranslate-cldr.xml +++ b/core/res/res/values-cs/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">leden</string> - <string name="month_long_standalone_february">únor</string> - <string name="month_long_standalone_march">březen</string> - <string name="month_long_standalone_april">duben</string> - <string name="month_long_standalone_may">květen</string> - <string name="month_long_standalone_june">červen</string> - <string name="month_long_standalone_july">červenec</string> - <string name="month_long_standalone_august">srpen</string> - <string name="month_long_standalone_september">září</string> - <string name="month_long_standalone_october">říjen</string> - <string name="month_long_standalone_november">listopad</string> - <string name="month_long_standalone_december">prosinec</string> - - <string name="month_long_january">ledna</string> - <string name="month_long_february">února</string> - <string name="month_long_march">března</string> - <string name="month_long_april">dubna</string> - <string name="month_long_may">května</string> - <string name="month_long_june">června</string> - <string name="month_long_july">července</string> - <string name="month_long_august">srpna</string> - <string name="month_long_september">září</string> - <string name="month_long_october">října</string> - <string name="month_long_november">listopadu</string> - <string name="month_long_december">prosince</string> - - <string name="month_medium_january">1.</string> - <string name="month_medium_february">2.</string> - <string name="month_medium_march">3.</string> - <string name="month_medium_april">4.</string> - <string name="month_medium_may">5.</string> - <string name="month_medium_june">6.</string> - <string name="month_medium_july">7.</string> - <string name="month_medium_august">8.</string> - <string name="month_medium_september">9.</string> - <string name="month_medium_october">10.</string> - <string name="month_medium_november">11.</string> - <string name="month_medium_december">12.</string> - - <string name="month_shortest_january">l</string> - <string name="month_shortest_february">ú</string> - <string name="month_shortest_march">b</string> - <string name="month_shortest_april">d</string> - <string name="month_shortest_may">k</string> - <string name="month_shortest_june">č</string> - <string name="month_shortest_july">č</string> - <string name="month_shortest_august">s</string> - <string name="month_shortest_september">z</string> - <string name="month_shortest_october">ř</string> - <string name="month_shortest_november">l</string> - <string name="month_shortest_december">p</string> - - <string name="day_of_week_long_sunday">neděle</string> - <string name="day_of_week_long_monday">pondělí</string> - <string name="day_of_week_long_tuesday">úterý</string> - <string name="day_of_week_long_wednesday">středa</string> - <string name="day_of_week_long_thursday">čtvrtek</string> - <string name="day_of_week_long_friday">pátek</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">ne</string> - <string name="day_of_week_medium_monday">po</string> - <string name="day_of_week_medium_tuesday">út</string> - <string name="day_of_week_medium_wednesday">st</string> - <string name="day_of_week_medium_thursday">čt</string> - <string name="day_of_week_medium_friday">pá</string> - <string name="day_of_week_medium_saturday">so</string> - - <string name="day_of_week_short_sunday">ne</string> - <string name="day_of_week_short_monday">po</string> - <string name="day_of_week_short_tuesday">út</string> - <string name="day_of_week_short_wednesday">st</string> - <string name="day_of_week_short_thursday">čt</string> - <string name="day_of_week_short_friday">pá</string> - <string name="day_of_week_short_saturday">so</string> - - <string name="day_of_week_shortest_sunday">N</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">Ú</string> - <string name="day_of_week_shortest_wednesday">S</string> - <string name="day_of_week_shortest_thursday">Č</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">dop.</string> - <string name="pm">odp.</string> - <string name="yesterday">Včera</string> - <string name="today">Dnes</string> - <string name="tomorrow">Zítra</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-da/donottranslate-cldr.xml b/core/res/res/values-da/donottranslate-cldr.xml index 1dfc96cff71b..d5b98788897d 100644 --- a/core/res/res/values-da/donottranslate-cldr.xml +++ b/core/res/res/values-da/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januar</string> - <string name="month_long_standalone_february">februar</string> - <string name="month_long_standalone_march">marts</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">maj</string> - <string name="month_long_standalone_june">juni</string> - <string name="month_long_standalone_july">juli</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januar</string> - <string name="month_long_february">februar</string> - <string name="month_long_march">marts</string> - <string name="month_long_april">april</string> - <string name="month_long_may">maj</string> - <string name="month_long_june">juni</string> - <string name="month_long_july">juli</string> - <string name="month_long_august">august</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">maj</string> - <string name="month_medium_june">jun.</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">søndag</string> - <string name="day_of_week_long_monday">mandag</string> - <string name="day_of_week_long_tuesday">tirsdag</string> - <string name="day_of_week_long_wednesday">onsdag</string> - <string name="day_of_week_long_thursday">torsdag</string> - <string name="day_of_week_long_friday">fredag</string> - <string name="day_of_week_long_saturday">lørdag</string> - - <string name="day_of_week_medium_sunday">søn.</string> - <string name="day_of_week_medium_monday">man.</string> - <string name="day_of_week_medium_tuesday">tir.</string> - <string name="day_of_week_medium_wednesday">ons.</string> - <string name="day_of_week_medium_thursday">tor.</string> - <string name="day_of_week_medium_friday">fre.</string> - <string name="day_of_week_medium_saturday">lør.</string> - - <string name="day_of_week_short_sunday">søn.</string> - <string name="day_of_week_short_monday">man.</string> - <string name="day_of_week_short_tuesday">tir.</string> - <string name="day_of_week_short_wednesday">ons.</string> - <string name="day_of_week_short_thursday">tor.</string> - <string name="day_of_week_short_friday">fre.</string> - <string name="day_of_week_short_saturday">lør.</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">O</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">L</string> - - <string name="am">f.m.</string> - <string name="pm">e.m.</string> - <string name="yesterday">i går</string> - <string name="today">i dag</string> - <string name="tomorrow">i morgen</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l.%M %p</string> <string name="hour_minute_cap_ampm">%-l.%M %^p</string> diff --git a/core/res/res/values-de/donottranslate-cldr.xml b/core/res/res/values-de/donottranslate-cldr.xml index 8b834db65b2e..9bdd8a382fac 100644 --- a/core/res/res/values-de/donottranslate-cldr.xml +++ b/core/res/res/values-de/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januar</string> - <string name="month_long_standalone_february">Februar</string> - <string name="month_long_standalone_march">März</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">Mai</string> - <string name="month_long_standalone_june">Juni</string> - <string name="month_long_standalone_july">Juli</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">Oktober</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">Dezember</string> - - <string name="month_long_january">Januar</string> - <string name="month_long_february">Februar</string> - <string name="month_long_march">März</string> - <string name="month_long_april">April</string> - <string name="month_long_may">Mai</string> - <string name="month_long_june">Juni</string> - <string name="month_long_july">Juli</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">Oktober</string> - <string name="month_long_november">November</string> - <string name="month_long_december">Dezember</string> - - <string name="month_medium_january">Jan.</string> - <string name="month_medium_february">Feb.</string> - <string name="month_medium_march">Mär.</string> - <string name="month_medium_april">Apr.</string> - <string name="month_medium_may">Mai</string> - <string name="month_medium_june">Jun.</string> - <string name="month_medium_july">Jul.</string> - <string name="month_medium_august">Aug.</string> - <string name="month_medium_september">Sep.</string> - <string name="month_medium_october">Okt.</string> - <string name="month_medium_november">Nov.</string> - <string name="month_medium_december">Dez.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sonntag</string> - <string name="day_of_week_long_monday">Montag</string> - <string name="day_of_week_long_tuesday">Dienstag</string> - <string name="day_of_week_long_wednesday">Mittwoch</string> - <string name="day_of_week_long_thursday">Donnerstag</string> - <string name="day_of_week_long_friday">Freitag</string> - <string name="day_of_week_long_saturday">Samstag</string> - - <string name="day_of_week_medium_sunday">So.</string> - <string name="day_of_week_medium_monday">Mo.</string> - <string name="day_of_week_medium_tuesday">Di.</string> - <string name="day_of_week_medium_wednesday">Mi.</string> - <string name="day_of_week_medium_thursday">Do.</string> - <string name="day_of_week_medium_friday">Fr.</string> - <string name="day_of_week_medium_saturday">Sa.</string> - - <string name="day_of_week_short_sunday">So.</string> - <string name="day_of_week_short_monday">Mo.</string> - <string name="day_of_week_short_tuesday">Di.</string> - <string name="day_of_week_short_wednesday">Mi.</string> - <string name="day_of_week_short_thursday">Do.</string> - <string name="day_of_week_short_friday">Fr.</string> - <string name="day_of_week_short_saturday">Sa.</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">D</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">D</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">vorm.</string> - <string name="pm">nachm.</string> - <string name="yesterday">Gestern</string> - <string name="today">Heute</string> - <string name="tomorrow">Morgen</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-el/donottranslate-cldr.xml b/core/res/res/values-el/donottranslate-cldr.xml index 1e7caa4154c2..a0c69b53105f 100644 --- a/core/res/res/values-el/donottranslate-cldr.xml +++ b/core/res/res/values-el/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Ιανουάριος</string> - <string name="month_long_standalone_february">Φεβρουάριος</string> - <string name="month_long_standalone_march">Μάρτιος</string> - <string name="month_long_standalone_april">Απρίλιος</string> - <string name="month_long_standalone_may">Μάιος</string> - <string name="month_long_standalone_june">Ιούνιος</string> - <string name="month_long_standalone_july">Ιούλιος</string> - <string name="month_long_standalone_august">Αύγουστος</string> - <string name="month_long_standalone_september">Σεπτέμβριος</string> - <string name="month_long_standalone_october">Οκτώβριος</string> - <string name="month_long_standalone_november">Νοέμβριος</string> - <string name="month_long_standalone_december">Δεκέμβριος</string> - - <string name="month_long_january">Ιανουαρίου</string> - <string name="month_long_february">Φεβρουαρίου</string> - <string name="month_long_march">Μαρτίου</string> - <string name="month_long_april">Απριλίου</string> - <string name="month_long_may">Μαΐου</string> - <string name="month_long_june">Ιουνίου</string> - <string name="month_long_july">Ιουλίου</string> - <string name="month_long_august">Αυγούστου</string> - <string name="month_long_september">Σεπτεμβρίου</string> - <string name="month_long_october">Οκτωβρίου</string> - <string name="month_long_november">Νοεμβρίου</string> - <string name="month_long_december">Δεκεμβρίου</string> - - <string name="month_medium_january">Ιαν</string> - <string name="month_medium_february">Φεβ</string> - <string name="month_medium_march">Μαρ</string> - <string name="month_medium_april">Απρ</string> - <string name="month_medium_may">Μαϊ</string> - <string name="month_medium_june">Ιουν</string> - <string name="month_medium_july">Ιουλ</string> - <string name="month_medium_august">Αυγ</string> - <string name="month_medium_september">Σεπ</string> - <string name="month_medium_october">Οκτ</string> - <string name="month_medium_november">Νοε</string> - <string name="month_medium_december">Δεκ</string> - - <string name="month_shortest_january">Ι</string> - <string name="month_shortest_february">Φ</string> - <string name="month_shortest_march">Μ</string> - <string name="month_shortest_april">Α</string> - <string name="month_shortest_may">Μ</string> - <string name="month_shortest_june">Ι</string> - <string name="month_shortest_july">Ι</string> - <string name="month_shortest_august">Α</string> - <string name="month_shortest_september">Σ</string> - <string name="month_shortest_october">Ο</string> - <string name="month_shortest_november">Ν</string> - <string name="month_shortest_december">Δ</string> - - <string name="day_of_week_long_sunday">Κυριακή</string> - <string name="day_of_week_long_monday">Δευτέρα</string> - <string name="day_of_week_long_tuesday">Τρίτη</string> - <string name="day_of_week_long_wednesday">Τετάρτη</string> - <string name="day_of_week_long_thursday">Πέμπτη</string> - <string name="day_of_week_long_friday">Παρασκευή</string> - <string name="day_of_week_long_saturday">Σάββατο</string> - - <string name="day_of_week_medium_sunday">Κυρ</string> - <string name="day_of_week_medium_monday">Δευ</string> - <string name="day_of_week_medium_tuesday">Τρι</string> - <string name="day_of_week_medium_wednesday">Τετ</string> - <string name="day_of_week_medium_thursday">Πεμ</string> - <string name="day_of_week_medium_friday">Παρ</string> - <string name="day_of_week_medium_saturday">Σαβ</string> - - <string name="day_of_week_short_sunday">Κυρ</string> - <string name="day_of_week_short_monday">Δευ</string> - <string name="day_of_week_short_tuesday">Τρι</string> - <string name="day_of_week_short_wednesday">Τετ</string> - <string name="day_of_week_short_thursday">Πεμ</string> - <string name="day_of_week_short_friday">Παρ</string> - <string name="day_of_week_short_saturday">Σαβ</string> - - <string name="day_of_week_shortest_sunday">Κ</string> - <string name="day_of_week_shortest_monday">Δ</string> - <string name="day_of_week_shortest_tuesday">Τ</string> - <string name="day_of_week_shortest_wednesday">Τ</string> - <string name="day_of_week_shortest_thursday">Π</string> - <string name="day_of_week_shortest_friday">Π</string> - <string name="day_of_week_shortest_saturday">Σ</string> - - <string name="am">π.μ.</string> - <string name="pm">μ.μ.</string> - <string name="yesterday">Χτες</string> - <string name="today">Σήμερα</string> - <string name="tomorrow">Αύριο</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-en-rAU/donottranslate-cldr.xml b/core/res/res/values-en-rAU/donottranslate-cldr.xml index 557833ec496f..947fe9288664 100644 --- a/core/res/res/values-en-rAU/donottranslate-cldr.xml +++ b/core/res/res/values-en-rAU/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rCA/donottranslate-cldr.xml b/core/res/res/values-en-rCA/donottranslate-cldr.xml index 2aa7cbe58022..1845f28fa100 100644 --- a/core/res/res/values-en-rCA/donottranslate-cldr.xml +++ b/core/res/res/values-en-rCA/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rGB/donottranslate-cldr.xml b/core/res/res/values-en-rGB/donottranslate-cldr.xml index cce895ed8cd1..a10dfa50ef23 100644 --- a/core/res/res/values-en-rGB/donottranslate-cldr.xml +++ b/core/res/res/values-en-rGB/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rIE/donottranslate-cldr.xml b/core/res/res/values-en-rIE/donottranslate-cldr.xml index 46b13ec9470b..65cab99bc316 100644 --- a/core/res/res/values-en-rIE/donottranslate-cldr.xml +++ b/core/res/res/values-en-rIE/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">a.m.</string> - <string name="pm">p.m.</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rIN/donottranslate-cldr.xml b/core/res/res/values-en-rIN/donottranslate-cldr.xml index 177bd7ed0f9b..48942fe032dc 100644 --- a/core/res/res/values-en-rIN/donottranslate-cldr.xml +++ b/core/res/res/values-en-rIN/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rNZ/donottranslate-cldr.xml b/core/res/res/values-en-rNZ/donottranslate-cldr.xml index 41a00a5cd73d..117dda873db7 100644 --- a/core/res/res/values-en-rNZ/donottranslate-cldr.xml +++ b/core/res/res/values-en-rNZ/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rUS/donottranslate-cldr.xml b/core/res/res/values-en-rUS/donottranslate-cldr.xml index 15fcd8be989c..0587c165027e 100644 --- a/core/res/res/values-en-rUS/donottranslate-cldr.xml +++ b/core/res/res/values-en-rUS/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-en-rZA/donottranslate-cldr.xml b/core/res/res/values-en-rZA/donottranslate-cldr.xml index 7a5bdbd2a812..48ebc6ea721c 100644 --- a/core/res/res/values-en-rZA/donottranslate-cldr.xml +++ b/core/res/res/values-en-rZA/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-es-rUS/donottranslate-cldr.xml b/core/res/res/values-es-rUS/donottranslate-cldr.xml index e2c3254d90a2..92247864f5d8 100644 --- a/core/res/res/values-es-rUS/donottranslate-cldr.xml +++ b/core/res/res/values-es-rUS/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">enero</string> - <string name="month_long_standalone_february">febrero</string> - <string name="month_long_standalone_march">marzo</string> - <string name="month_long_standalone_april">abril</string> - <string name="month_long_standalone_may">mayo</string> - <string name="month_long_standalone_june">junio</string> - <string name="month_long_standalone_july">julio</string> - <string name="month_long_standalone_august">agosto</string> - <string name="month_long_standalone_september">septiembre</string> - <string name="month_long_standalone_october">octubre</string> - <string name="month_long_standalone_november">noviembre</string> - <string name="month_long_standalone_december">diciembre</string> - - <string name="month_long_january">enero</string> - <string name="month_long_february">febrero</string> - <string name="month_long_march">marzo</string> - <string name="month_long_april">abril</string> - <string name="month_long_may">mayo</string> - <string name="month_long_june">junio</string> - <string name="month_long_july">julio</string> - <string name="month_long_august">agosto</string> - <string name="month_long_september">septiembre</string> - <string name="month_long_october">octubre</string> - <string name="month_long_november">noviembre</string> - <string name="month_long_december">diciembre</string> - - <string name="month_medium_january">ene.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">abr.</string> - <string name="month_medium_may">may.</string> - <string name="month_medium_june">jun.</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">ago.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dic.</string> - - <string name="month_shortest_january">E</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">domingo</string> - <string name="day_of_week_long_monday">lunes</string> - <string name="day_of_week_long_tuesday">martes</string> - <string name="day_of_week_long_wednesday">miércoles</string> - <string name="day_of_week_long_thursday">jueves</string> - <string name="day_of_week_long_friday">viernes</string> - <string name="day_of_week_long_saturday">sábado</string> - - <string name="day_of_week_medium_sunday">dom.</string> - <string name="day_of_week_medium_monday">lun.</string> - <string name="day_of_week_medium_tuesday">mar.</string> - <string name="day_of_week_medium_wednesday">mié.</string> - <string name="day_of_week_medium_thursday">jue.</string> - <string name="day_of_week_medium_friday">vie.</string> - <string name="day_of_week_medium_saturday">sáb.</string> - - <string name="day_of_week_short_sunday">dom.</string> - <string name="day_of_week_short_monday">lun.</string> - <string name="day_of_week_short_tuesday">mar.</string> - <string name="day_of_week_short_wednesday">mié.</string> - <string name="day_of_week_short_thursday">jue.</string> - <string name="day_of_week_short_friday">vie.</string> - <string name="day_of_week_short_saturday">sáb.</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">J</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">a. m.</string> - <string name="pm">p. m.</string> - <string name="yesterday">ayer</string> - <string name="today">hoy</string> - <string name="tomorrow">mañana</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-es/donottranslate-cldr.xml b/core/res/res/values-es/donottranslate-cldr.xml index faf171ab3490..0a680b67da59 100644 --- a/core/res/res/values-es/donottranslate-cldr.xml +++ b/core/res/res/values-es/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">enero</string> - <string name="month_long_standalone_february">febrero</string> - <string name="month_long_standalone_march">marzo</string> - <string name="month_long_standalone_april">abril</string> - <string name="month_long_standalone_may">mayo</string> - <string name="month_long_standalone_june">junio</string> - <string name="month_long_standalone_july">julio</string> - <string name="month_long_standalone_august">agosto</string> - <string name="month_long_standalone_september">septiembre</string> - <string name="month_long_standalone_october">octubre</string> - <string name="month_long_standalone_november">noviembre</string> - <string name="month_long_standalone_december">diciembre</string> - - <string name="month_long_january">enero</string> - <string name="month_long_february">febrero</string> - <string name="month_long_march">marzo</string> - <string name="month_long_april">abril</string> - <string name="month_long_may">mayo</string> - <string name="month_long_june">junio</string> - <string name="month_long_july">julio</string> - <string name="month_long_august">agosto</string> - <string name="month_long_september">septiembre</string> - <string name="month_long_october">octubre</string> - <string name="month_long_november">noviembre</string> - <string name="month_long_december">diciembre</string> - - <string name="month_medium_january">ene.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">abr.</string> - <string name="month_medium_may">may.</string> - <string name="month_medium_june">jun.</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">ago.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dic.</string> - - <string name="month_shortest_january">E</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">domingo</string> - <string name="day_of_week_long_monday">lunes</string> - <string name="day_of_week_long_tuesday">martes</string> - <string name="day_of_week_long_wednesday">miércoles</string> - <string name="day_of_week_long_thursday">jueves</string> - <string name="day_of_week_long_friday">viernes</string> - <string name="day_of_week_long_saturday">sábado</string> - - <string name="day_of_week_medium_sunday">dom.</string> - <string name="day_of_week_medium_monday">lun.</string> - <string name="day_of_week_medium_tuesday">mar.</string> - <string name="day_of_week_medium_wednesday">mié.</string> - <string name="day_of_week_medium_thursday">jue.</string> - <string name="day_of_week_medium_friday">vie.</string> - <string name="day_of_week_medium_saturday">sáb.</string> - - <string name="day_of_week_short_sunday">dom.</string> - <string name="day_of_week_short_monday">lun.</string> - <string name="day_of_week_short_tuesday">mar.</string> - <string name="day_of_week_short_wednesday">mié.</string> - <string name="day_of_week_short_thursday">jue.</string> - <string name="day_of_week_short_friday">vie.</string> - <string name="day_of_week_short_saturday">sáb.</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">J</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">a.m.</string> - <string name="pm">p.m.</string> - <string name="yesterday">ayer</string> - <string name="today">hoy</string> - <string name="tomorrow">mañana</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-et/donottranslate-cldr.xml b/core/res/res/values-et/donottranslate-cldr.xml index d50d0415d8e5..bf269ddf99ef 100644 --- a/core/res/res/values-et/donottranslate-cldr.xml +++ b/core/res/res/values-et/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">jaanuar</string> - <string name="month_long_standalone_february">veebruar</string> - <string name="month_long_standalone_march">märts</string> - <string name="month_long_standalone_april">aprill</string> - <string name="month_long_standalone_may">mai</string> - <string name="month_long_standalone_june">juuni</string> - <string name="month_long_standalone_july">juuli</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktoober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">detsember</string> - - <string name="month_long_january">jaanuar</string> - <string name="month_long_february">veebruar</string> - <string name="month_long_march">märts</string> - <string name="month_long_april">aprill</string> - <string name="month_long_may">mai</string> - <string name="month_long_june">juuni</string> - <string name="month_long_july">juuli</string> - <string name="month_long_august">august</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktoober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">detsember</string> - - <string name="month_medium_january">jaan</string> - <string name="month_medium_february">veebr</string> - <string name="month_medium_march">märts</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">juuni</string> - <string name="month_medium_july">juuli</string> - <string name="month_medium_august">aug</string> - <string name="month_medium_september">sept</string> - <string name="month_medium_october">okt</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dets</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">pühapäev</string> - <string name="day_of_week_long_monday">esmaspäev</string> - <string name="day_of_week_long_tuesday">teisipäev</string> - <string name="day_of_week_long_wednesday">kolmapäev</string> - <string name="day_of_week_long_thursday">neljapäev</string> - <string name="day_of_week_long_friday">reede</string> - <string name="day_of_week_long_saturday">laupäev</string> - - <string name="day_of_week_medium_sunday">P</string> - <string name="day_of_week_medium_monday">E</string> - <string name="day_of_week_medium_tuesday">T</string> - <string name="day_of_week_medium_wednesday">K</string> - <string name="day_of_week_medium_thursday">N</string> - <string name="day_of_week_medium_friday">R</string> - <string name="day_of_week_medium_saturday">L</string> - - <string name="day_of_week_short_sunday">P</string> - <string name="day_of_week_short_monday">E</string> - <string name="day_of_week_short_tuesday">T</string> - <string name="day_of_week_short_wednesday">K</string> - <string name="day_of_week_short_thursday">N</string> - <string name="day_of_week_short_friday">R</string> - <string name="day_of_week_short_saturday">L</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-fa/donottranslate-cldr.xml b/core/res/res/values-fa/donottranslate-cldr.xml index 11473fe98c7e..b05268e804fb 100644 --- a/core/res/res/values-fa/donottranslate-cldr.xml +++ b/core/res/res/values-fa/donottranslate-cldr.xml @@ -1,82 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">ژانویه</string> - <string name="month_long_standalone_february">فوریه</string> - <string name="month_long_standalone_march">مارس</string> - <string name="month_long_standalone_april">آوریل</string> - <string name="month_long_standalone_may">مه</string> - <string name="month_long_standalone_june">ژوئن</string> - <string name="month_long_standalone_july">ژوئیه</string> - <string name="month_long_standalone_august">اوت</string> - <string name="month_long_standalone_september">سپتامبر</string> - <string name="month_long_standalone_october">اکتبر</string> - <string name="month_long_standalone_november">نوامبر</string> - <string name="month_long_standalone_december">دسامبر</string> - - <string name="month_long_january">ژانویهٔ</string> - <string name="month_long_february">فوریهٔ</string> - <string name="month_long_march">مارس</string> - <string name="month_long_april">آوریل</string> - <string name="month_long_may">مهٔ</string> - <string name="month_long_june">ژوئن</string> - <string name="month_long_july">ژوئیهٔ</string> - <string name="month_long_august">اوت</string> - <string name="month_long_september">سپتامبر</string> - <string name="month_long_october">اکتبر</string> - <string name="month_long_november">نوامبر</string> - <string name="month_long_december">دسامبر</string> - - <string name="month_medium_january">ژانویهٔ</string> - <string name="month_medium_february">فوریهٔ</string> - <string name="month_medium_march">مارس</string> - <string name="month_medium_april">آوریل</string> - <string name="month_medium_may">مهٔ</string> - <string name="month_medium_june">ژوئن</string> - <string name="month_medium_july">ژوئیهٔ</string> - <string name="month_medium_august">اوت</string> - <string name="month_medium_september">سپتامبر</string> - <string name="month_medium_october">اکتبر</string> - <string name="month_medium_november">نوامبر</string> - <string name="month_medium_december">دسامبر</string> - - <string name="month_shortest_january">ژ</string> - <string name="month_shortest_february">ف</string> - <string name="month_shortest_march">م</string> - <string name="month_shortest_april">آ</string> - <string name="month_shortest_may">م</string> - <string name="month_shortest_june">ژ</string> - <string name="month_shortest_july">ژ</string> - <string name="month_shortest_august">ا</string> - <string name="month_shortest_september">س</string> - <string name="month_shortest_october">ا</string> - <string name="month_shortest_november">ن</string> - <string name="month_shortest_december">د</string> - - <string name="day_of_week_long_sunday">یکشنبه</string> - <string name="day_of_week_long_monday">دوشنبه</string> - <string name="day_of_week_long_tuesday">سهشنبه</string> - <string name="day_of_week_long_wednesday">چهارشنبه</string> - <string name="day_of_week_long_thursday">پنجشنبه</string> - <string name="day_of_week_long_friday">جمعه</string> - <string name="day_of_week_long_saturday">شنبه</string> - - - - <string name="day_of_week_shortest_sunday">ی</string> - <string name="day_of_week_shortest_monday">د</string> - <string name="day_of_week_shortest_tuesday">س</string> - <string name="day_of_week_shortest_wednesday">چ</string> - <string name="day_of_week_shortest_thursday">پ</string> - <string name="day_of_week_shortest_friday">ج</string> - <string name="day_of_week_shortest_saturday">ش</string> - - <string name="am">قبل از ظهر</string> - <string name="pm">بعد از ظهر</string> - <string name="yesterday">دیروز</string> - <string name="today">امروز</string> - <string name="tomorrow">فردا</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-fi-rFI/donottranslate-cldr.xml b/core/res/res/values-fi-rFI/donottranslate-cldr.xml index e9e1a25d227f..04f0a77140bf 100644 --- a/core/res/res/values-fi-rFI/donottranslate-cldr.xml +++ b/core/res/res/values-fi-rFI/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">tammikuu</string> - <string name="month_long_standalone_february">helmikuu</string> - <string name="month_long_standalone_march">maaliskuu</string> - <string name="month_long_standalone_april">huhtikuu</string> - <string name="month_long_standalone_may">toukokuu</string> - <string name="month_long_standalone_june">kesäkuu</string> - <string name="month_long_standalone_july">heinäkuu</string> - <string name="month_long_standalone_august">elokuu</string> - <string name="month_long_standalone_september">syyskuu</string> - <string name="month_long_standalone_october">lokakuu</string> - <string name="month_long_standalone_november">marraskuu</string> - <string name="month_long_standalone_december">joulukuu</string> - - <string name="month_long_january">tammikuuta</string> - <string name="month_long_february">helmikuuta</string> - <string name="month_long_march">maaliskuuta</string> - <string name="month_long_april">huhtikuuta</string> - <string name="month_long_may">toukokuuta</string> - <string name="month_long_june">kesäkuuta</string> - <string name="month_long_july">heinäkuuta</string> - <string name="month_long_august">elokuuta</string> - <string name="month_long_september">syyskuuta</string> - <string name="month_long_october">lokakuuta</string> - <string name="month_long_november">marraskuuta</string> - <string name="month_long_december">joulukuuta</string> - - <string name="month_medium_january">tammikuuta</string> - <string name="month_medium_february">helmikuuta</string> - <string name="month_medium_march">maaliskuuta</string> - <string name="month_medium_april">huhtikuuta</string> - <string name="month_medium_may">toukokuuta</string> - <string name="month_medium_june">kesäkuuta</string> - <string name="month_medium_july">heinäkuuta</string> - <string name="month_medium_august">elokuuta</string> - <string name="month_medium_september">syyskuuta</string> - <string name="month_medium_october">lokakuuta</string> - <string name="month_medium_november">marraskuuta</string> - <string name="month_medium_december">joulukuuta</string> - - <string name="month_shortest_january">T</string> - <string name="month_shortest_february">H</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">H</string> - <string name="month_shortest_may">T</string> - <string name="month_shortest_june">K</string> - <string name="month_shortest_july">H</string> - <string name="month_shortest_august">E</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">L</string> - <string name="month_shortest_november">M</string> - <string name="month_shortest_december">J</string> - - <string name="day_of_week_long_sunday">sunnuntai</string> - <string name="day_of_week_long_monday">maanantai</string> - <string name="day_of_week_long_tuesday">tiistai</string> - <string name="day_of_week_long_wednesday">keskiviikko</string> - <string name="day_of_week_long_thursday">torstai</string> - <string name="day_of_week_long_friday">perjantai</string> - <string name="day_of_week_long_saturday">lauantai</string> - - <string name="day_of_week_medium_sunday">su</string> - <string name="day_of_week_medium_monday">ma</string> - <string name="day_of_week_medium_tuesday">ti</string> - <string name="day_of_week_medium_wednesday">ke</string> - <string name="day_of_week_medium_thursday">to</string> - <string name="day_of_week_medium_friday">pe</string> - <string name="day_of_week_medium_saturday">la</string> - - <string name="day_of_week_short_sunday">su</string> - <string name="day_of_week_short_monday">ma</string> - <string name="day_of_week_short_tuesday">ti</string> - <string name="day_of_week_short_wednesday">ke</string> - <string name="day_of_week_short_thursday">to</string> - <string name="day_of_week_short_friday">pe</string> - <string name="day_of_week_short_saturday">la</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">K</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">L</string> - - <string name="am">ap.</string> - <string name="pm">ip.</string> - <string name="yesterday">eilen</string> - <string name="today">tänään</string> - <string name="tomorrow">huomenna</string> - <string name="hour_minute_24">%-k.%M</string> <string name="hour_minute_ampm">%-l.%M %p</string> <string name="hour_minute_cap_ampm">%-l.%M %^p</string> diff --git a/core/res/res/values-fi/donottranslate-cldr.xml b/core/res/res/values-fi/donottranslate-cldr.xml index 71cccf39b732..543595fb646a 100644 --- a/core/res/res/values-fi/donottranslate-cldr.xml +++ b/core/res/res/values-fi/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">tammikuu</string> - <string name="month_long_standalone_february">helmikuu</string> - <string name="month_long_standalone_march">maaliskuu</string> - <string name="month_long_standalone_april">huhtikuu</string> - <string name="month_long_standalone_may">toukokuu</string> - <string name="month_long_standalone_june">kesäkuu</string> - <string name="month_long_standalone_july">heinäkuu</string> - <string name="month_long_standalone_august">elokuu</string> - <string name="month_long_standalone_september">syyskuu</string> - <string name="month_long_standalone_october">lokakuu</string> - <string name="month_long_standalone_november">marraskuu</string> - <string name="month_long_standalone_december">joulukuu</string> - - <string name="month_long_january">tammikuuta</string> - <string name="month_long_february">helmikuuta</string> - <string name="month_long_march">maaliskuuta</string> - <string name="month_long_april">huhtikuuta</string> - <string name="month_long_may">toukokuuta</string> - <string name="month_long_june">kesäkuuta</string> - <string name="month_long_july">heinäkuuta</string> - <string name="month_long_august">elokuuta</string> - <string name="month_long_september">syyskuuta</string> - <string name="month_long_october">lokakuuta</string> - <string name="month_long_november">marraskuuta</string> - <string name="month_long_december">joulukuuta</string> - - <string name="month_medium_january">tammikuuta</string> - <string name="month_medium_february">helmikuuta</string> - <string name="month_medium_march">maaliskuuta</string> - <string name="month_medium_april">huhtikuuta</string> - <string name="month_medium_may">toukokuuta</string> - <string name="month_medium_june">kesäkuuta</string> - <string name="month_medium_july">heinäkuuta</string> - <string name="month_medium_august">elokuuta</string> - <string name="month_medium_september">syyskuuta</string> - <string name="month_medium_october">lokakuuta</string> - <string name="month_medium_november">marraskuuta</string> - <string name="month_medium_december">joulukuuta</string> - - <string name="month_shortest_january">T</string> - <string name="month_shortest_february">H</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">H</string> - <string name="month_shortest_may">T</string> - <string name="month_shortest_june">K</string> - <string name="month_shortest_july">H</string> - <string name="month_shortest_august">E</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">L</string> - <string name="month_shortest_november">M</string> - <string name="month_shortest_december">J</string> - - <string name="day_of_week_long_sunday">sunnuntaina</string> - <string name="day_of_week_long_monday">maanantaina</string> - <string name="day_of_week_long_tuesday">tiistaina</string> - <string name="day_of_week_long_wednesday">keskiviikkona</string> - <string name="day_of_week_long_thursday">torstaina</string> - <string name="day_of_week_long_friday">perjantaina</string> - <string name="day_of_week_long_saturday">lauantaina</string> - - <string name="day_of_week_medium_sunday">su</string> - <string name="day_of_week_medium_monday">ma</string> - <string name="day_of_week_medium_tuesday">ti</string> - <string name="day_of_week_medium_wednesday">ke</string> - <string name="day_of_week_medium_thursday">to</string> - <string name="day_of_week_medium_friday">pe</string> - <string name="day_of_week_medium_saturday">la</string> - - <string name="day_of_week_short_sunday">su</string> - <string name="day_of_week_short_monday">ma</string> - <string name="day_of_week_short_tuesday">ti</string> - <string name="day_of_week_short_wednesday">ke</string> - <string name="day_of_week_short_thursday">to</string> - <string name="day_of_week_short_friday">pe</string> - <string name="day_of_week_short_saturday">la</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">K</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">L</string> - - <string name="am">ap.</string> - <string name="pm">ip.</string> - <string name="yesterday">eilen</string> - <string name="today">tänään</string> - <string name="tomorrow">huomenna</string> - <string name="hour_minute_24">%-k.%M</string> <string name="hour_minute_ampm">%-l.%M %p</string> <string name="hour_minute_cap_ampm">%-l.%M %^p</string> diff --git a/core/res/res/values-fr/donottranslate-cldr.xml b/core/res/res/values-fr/donottranslate-cldr.xml index 840f728aff81..ff10aec13cd3 100644 --- a/core/res/res/values-fr/donottranslate-cldr.xml +++ b/core/res/res/values-fr/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">janvier</string> - <string name="month_long_standalone_february">février</string> - <string name="month_long_standalone_march">mars</string> - <string name="month_long_standalone_april">avril</string> - <string name="month_long_standalone_may">mai</string> - <string name="month_long_standalone_june">juin</string> - <string name="month_long_standalone_july">juillet</string> - <string name="month_long_standalone_august">août</string> - <string name="month_long_standalone_september">septembre</string> - <string name="month_long_standalone_october">octobre</string> - <string name="month_long_standalone_november">novembre</string> - <string name="month_long_standalone_december">décembre</string> - - <string name="month_long_january">janvier</string> - <string name="month_long_february">février</string> - <string name="month_long_march">mars</string> - <string name="month_long_april">avril</string> - <string name="month_long_may">mai</string> - <string name="month_long_june">juin</string> - <string name="month_long_july">juillet</string> - <string name="month_long_august">août</string> - <string name="month_long_september">septembre</string> - <string name="month_long_october">octobre</string> - <string name="month_long_november">novembre</string> - <string name="month_long_december">décembre</string> - - <string name="month_medium_january">janv.</string> - <string name="month_medium_february">févr.</string> - <string name="month_medium_march">mars</string> - <string name="month_medium_april">avr.</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">juin</string> - <string name="month_medium_july">juil.</string> - <string name="month_medium_august">août</string> - <string name="month_medium_september">sept.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">déc.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">dimanche</string> - <string name="day_of_week_long_monday">lundi</string> - <string name="day_of_week_long_tuesday">mardi</string> - <string name="day_of_week_long_wednesday">mercredi</string> - <string name="day_of_week_long_thursday">jeudi</string> - <string name="day_of_week_long_friday">vendredi</string> - <string name="day_of_week_long_saturday">samedi</string> - - <string name="day_of_week_medium_sunday">dim.</string> - <string name="day_of_week_medium_monday">lun.</string> - <string name="day_of_week_medium_tuesday">mar.</string> - <string name="day_of_week_medium_wednesday">mer.</string> - <string name="day_of_week_medium_thursday">jeu.</string> - <string name="day_of_week_medium_friday">ven.</string> - <string name="day_of_week_medium_saturday">sam.</string> - - <string name="day_of_week_short_sunday">dim.</string> - <string name="day_of_week_short_monday">lun.</string> - <string name="day_of_week_short_tuesday">mar.</string> - <string name="day_of_week_short_wednesday">mer.</string> - <string name="day_of_week_short_thursday">jeu.</string> - <string name="day_of_week_short_friday">ven.</string> - <string name="day_of_week_short_saturday">sam.</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">J</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">matin</string> - <string name="pm">soir</string> - <string name="yesterday">hier</string> - <string name="today">aujourd’hui</string> - <string name="tomorrow">demain</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-hi-rIN/donottranslate-cldr.xml b/core/res/res/values-hi-rIN/donottranslate-cldr.xml index 6bfd3de2d704..5371e155cf1b 100644 --- a/core/res/res/values-hi-rIN/donottranslate-cldr.xml +++ b/core/res/res/values-hi-rIN/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">जनवरी</string> - <string name="month_long_standalone_february">फरवरी</string> - <string name="month_long_standalone_march">मार्च</string> - <string name="month_long_standalone_april">अप्रैल</string> - <string name="month_long_standalone_may">मई</string> - <string name="month_long_standalone_june">जून</string> - <string name="month_long_standalone_july">जुलाई</string> - <string name="month_long_standalone_august">अगस्त</string> - <string name="month_long_standalone_september">सितम्बर</string> - <string name="month_long_standalone_october">अक्तूबर</string> - <string name="month_long_standalone_november">नवम्बर</string> - <string name="month_long_standalone_december">दिसम्बर</string> - - <string name="month_long_january">जनवरी</string> - <string name="month_long_february">फरवरी</string> - <string name="month_long_march">मार्च</string> - <string name="month_long_april">अप्रैल</string> - <string name="month_long_may">मई</string> - <string name="month_long_june">जून</string> - <string name="month_long_july">जुलाई</string> - <string name="month_long_august">अगस्त</string> - <string name="month_long_september">सितम्बर</string> - <string name="month_long_october">अक्तूबर</string> - <string name="month_long_november">नवम्बर</string> - <string name="month_long_december">दिसम्बर</string> - - <string name="month_medium_january">जनवरी</string> - <string name="month_medium_february">फरवरी</string> - <string name="month_medium_march">मार्च</string> - <string name="month_medium_april">अप्रैल</string> - <string name="month_medium_may">मई</string> - <string name="month_medium_june">जून</string> - <string name="month_medium_july">जुलाई</string> - <string name="month_medium_august">अगस्त</string> - <string name="month_medium_september">सितम्बर</string> - <string name="month_medium_october">अक्तूबर</string> - <string name="month_medium_november">नवम्बर</string> - <string name="month_medium_december">दिसम्बर</string> - - <string name="month_shortest_january">ज</string> - <string name="month_shortest_february">फ़</string> - <string name="month_shortest_march">मा</string> - <string name="month_shortest_april">अ</string> - <string name="month_shortest_may">म</string> - <string name="month_shortest_june">जू</string> - <string name="month_shortest_july">जु</string> - <string name="month_shortest_august">अ</string> - <string name="month_shortest_september">सि</string> - <string name="month_shortest_october">अ</string> - <string name="month_shortest_november">न</string> - <string name="month_shortest_december">दि</string> - - <string name="day_of_week_long_sunday">रविवार</string> - <string name="day_of_week_long_monday">सोमवार</string> - <string name="day_of_week_long_tuesday">मंगलवार</string> - <string name="day_of_week_long_wednesday">बुधवार</string> - <string name="day_of_week_long_thursday">गुरुवार</string> - <string name="day_of_week_long_friday">शुक्रवार</string> - <string name="day_of_week_long_saturday">शनिवार</string> - - <string name="day_of_week_medium_sunday">रवि</string> - <string name="day_of_week_medium_monday">सोम</string> - <string name="day_of_week_medium_tuesday">मंगल</string> - <string name="day_of_week_medium_wednesday">बुध</string> - <string name="day_of_week_medium_thursday">गुरु</string> - <string name="day_of_week_medium_friday">शुक्र</string> - <string name="day_of_week_medium_saturday">शनि</string> - - <string name="day_of_week_short_sunday">रवि</string> - <string name="day_of_week_short_monday">सोम</string> - <string name="day_of_week_short_tuesday">मंगल</string> - <string name="day_of_week_short_wednesday">बुध</string> - <string name="day_of_week_short_thursday">गुरु</string> - <string name="day_of_week_short_friday">शुक्र</string> - <string name="day_of_week_short_saturday">शनि</string> - - <string name="day_of_week_shortest_sunday">र</string> - <string name="day_of_week_shortest_monday">सो</string> - <string name="day_of_week_shortest_tuesday">मं</string> - <string name="day_of_week_shortest_wednesday">बु</string> - <string name="day_of_week_shortest_thursday">गु</string> - <string name="day_of_week_shortest_friday">शु</string> - <string name="day_of_week_shortest_saturday">श</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-hi/donottranslate-cldr.xml b/core/res/res/values-hi/donottranslate-cldr.xml index d9405d83aa11..8043169f980f 100644 --- a/core/res/res/values-hi/donottranslate-cldr.xml +++ b/core/res/res/values-hi/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">जनवरी</string> - <string name="month_long_standalone_february">फरवरी</string> - <string name="month_long_standalone_march">मार्च</string> - <string name="month_long_standalone_april">अप्रैल</string> - <string name="month_long_standalone_may">मई</string> - <string name="month_long_standalone_june">जून</string> - <string name="month_long_standalone_july">जुलाई</string> - <string name="month_long_standalone_august">अगस्त</string> - <string name="month_long_standalone_september">सितम्बर</string> - <string name="month_long_standalone_october">अक्तूबर</string> - <string name="month_long_standalone_november">नवम्बर</string> - <string name="month_long_standalone_december">दिसम्बर</string> - - <string name="month_long_january">जनवरी</string> - <string name="month_long_february">फरवरी</string> - <string name="month_long_march">मार्च</string> - <string name="month_long_april">अप्रैल</string> - <string name="month_long_may">मई</string> - <string name="month_long_june">जून</string> - <string name="month_long_july">जुलाई</string> - <string name="month_long_august">अगस्त</string> - <string name="month_long_september">सितम्बर</string> - <string name="month_long_october">अक्तूबर</string> - <string name="month_long_november">नवम्बर</string> - <string name="month_long_december">दिसम्बर</string> - - <string name="month_medium_january">जनवरी</string> - <string name="month_medium_february">फरवरी</string> - <string name="month_medium_march">मार्च</string> - <string name="month_medium_april">अप्रैल</string> - <string name="month_medium_may">मई</string> - <string name="month_medium_june">जून</string> - <string name="month_medium_july">जुलाई</string> - <string name="month_medium_august">अगस्त</string> - <string name="month_medium_september">सितम्बर</string> - <string name="month_medium_october">अक्तूबर</string> - <string name="month_medium_november">नवम्बर</string> - <string name="month_medium_december">दिसम्बर</string> - - <string name="month_shortest_january">ज</string> - <string name="month_shortest_february">फ़</string> - <string name="month_shortest_march">मा</string> - <string name="month_shortest_april">अ</string> - <string name="month_shortest_may">म</string> - <string name="month_shortest_june">जू</string> - <string name="month_shortest_july">जु</string> - <string name="month_shortest_august">अ</string> - <string name="month_shortest_september">सि</string> - <string name="month_shortest_october">अ</string> - <string name="month_shortest_november">न</string> - <string name="month_shortest_december">दि</string> - - <string name="day_of_week_long_sunday">रविवार</string> - <string name="day_of_week_long_monday">सोमवार</string> - <string name="day_of_week_long_tuesday">मंगलवार</string> - <string name="day_of_week_long_wednesday">बुधवार</string> - <string name="day_of_week_long_thursday">गुरुवार</string> - <string name="day_of_week_long_friday">शुक्रवार</string> - <string name="day_of_week_long_saturday">शनिवार</string> - - <string name="day_of_week_medium_sunday">रवि</string> - <string name="day_of_week_medium_monday">सोम</string> - <string name="day_of_week_medium_tuesday">मंगल</string> - <string name="day_of_week_medium_wednesday">बुध</string> - <string name="day_of_week_medium_thursday">गुरु</string> - <string name="day_of_week_medium_friday">शुक्र</string> - <string name="day_of_week_medium_saturday">शनि</string> - - <string name="day_of_week_short_sunday">रवि</string> - <string name="day_of_week_short_monday">सोम</string> - <string name="day_of_week_short_tuesday">मंगल</string> - <string name="day_of_week_short_wednesday">बुध</string> - <string name="day_of_week_short_thursday">गुरु</string> - <string name="day_of_week_short_friday">शुक्र</string> - <string name="day_of_week_short_saturday">शनि</string> - - <string name="day_of_week_shortest_sunday">र</string> - <string name="day_of_week_shortest_monday">सो</string> - <string name="day_of_week_shortest_tuesday">मं</string> - <string name="day_of_week_shortest_wednesday">बु</string> - <string name="day_of_week_shortest_thursday">गु</string> - <string name="day_of_week_shortest_friday">शु</string> - <string name="day_of_week_shortest_saturday">श</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-hr-rHR/donottranslate-cldr.xml b/core/res/res/values-hr-rHR/donottranslate-cldr.xml index a601d938f69c..57e057243021 100644 --- a/core/res/res/values-hr-rHR/donottranslate-cldr.xml +++ b/core/res/res/values-hr-rHR/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">siječanj</string> - <string name="month_long_standalone_february">veljača</string> - <string name="month_long_standalone_march">ožujak</string> - <string name="month_long_standalone_april">travanj</string> - <string name="month_long_standalone_may">svibanj</string> - <string name="month_long_standalone_june">lipanj</string> - <string name="month_long_standalone_july">srpanj</string> - <string name="month_long_standalone_august">kolovoz</string> - <string name="month_long_standalone_september">rujan</string> - <string name="month_long_standalone_october">listopad</string> - <string name="month_long_standalone_november">studeni</string> - <string name="month_long_standalone_december">prosinac</string> - - <string name="month_long_january">siječnja</string> - <string name="month_long_february">veljače</string> - <string name="month_long_march">ožujka</string> - <string name="month_long_april">travnja</string> - <string name="month_long_may">svibnja</string> - <string name="month_long_june">lipnja</string> - <string name="month_long_july">srpnja</string> - <string name="month_long_august">kolovoza</string> - <string name="month_long_september">rujna</string> - <string name="month_long_october">listopada</string> - <string name="month_long_november">studenoga</string> - <string name="month_long_december">prosinca</string> - - <string name="month_medium_january">01.</string> - <string name="month_medium_february">02.</string> - <string name="month_medium_march">03.</string> - <string name="month_medium_april">04.</string> - <string name="month_medium_may">05.</string> - <string name="month_medium_june">06.</string> - <string name="month_medium_july">07.</string> - <string name="month_medium_august">08.</string> - <string name="month_medium_september">09.</string> - <string name="month_medium_october">10.</string> - <string name="month_medium_november">11.</string> - <string name="month_medium_december">12.</string> - - <string name="month_shortest_january">1.</string> - <string name="month_shortest_february">2.</string> - <string name="month_shortest_march">3.</string> - <string name="month_shortest_april">4.</string> - <string name="month_shortest_may">5.</string> - <string name="month_shortest_june">6.</string> - <string name="month_shortest_july">7.</string> - <string name="month_shortest_august">8.</string> - <string name="month_shortest_september">9.</string> - <string name="month_shortest_october">10.</string> - <string name="month_shortest_november">11.</string> - <string name="month_shortest_december">12.</string> - - <string name="day_of_week_long_sunday">nedjelja</string> - <string name="day_of_week_long_monday">ponedjeljak</string> - <string name="day_of_week_long_tuesday">utorak</string> - <string name="day_of_week_long_wednesday">srijeda</string> - <string name="day_of_week_long_thursday">četvrtak</string> - <string name="day_of_week_long_friday">petak</string> - <string name="day_of_week_long_saturday">subota</string> - - <string name="day_of_week_medium_sunday">ned</string> - <string name="day_of_week_medium_monday">pon</string> - <string name="day_of_week_medium_tuesday">uto</string> - <string name="day_of_week_medium_wednesday">sri</string> - <string name="day_of_week_medium_thursday">čet</string> - <string name="day_of_week_medium_friday">pet</string> - <string name="day_of_week_medium_saturday">sub</string> - - <string name="day_of_week_short_sunday">ned</string> - <string name="day_of_week_short_monday">pon</string> - <string name="day_of_week_short_tuesday">uto</string> - <string name="day_of_week_short_wednesday">sri</string> - <string name="day_of_week_short_thursday">čet</string> - <string name="day_of_week_short_friday">pet</string> - <string name="day_of_week_short_saturday">sub</string> - - <string name="day_of_week_shortest_sunday">n</string> - <string name="day_of_week_shortest_monday">p</string> - <string name="day_of_week_shortest_tuesday">u</string> - <string name="day_of_week_shortest_wednesday">s</string> - <string name="day_of_week_shortest_thursday">č</string> - <string name="day_of_week_shortest_friday">p</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">jučer</string> - <string name="today">danas</string> - <string name="tomorrow">sutra</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-hr/donottranslate-cldr.xml b/core/res/res/values-hr/donottranslate-cldr.xml index 9b5186284570..9e4b22523d3d 100644 --- a/core/res/res/values-hr/donottranslate-cldr.xml +++ b/core/res/res/values-hr/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">siječanj</string> - <string name="month_long_standalone_february">veljača</string> - <string name="month_long_standalone_march">ožujak</string> - <string name="month_long_standalone_april">travanj</string> - <string name="month_long_standalone_may">svibanj</string> - <string name="month_long_standalone_june">lipanj</string> - <string name="month_long_standalone_july">srpanj</string> - <string name="month_long_standalone_august">kolovoz</string> - <string name="month_long_standalone_september">rujan</string> - <string name="month_long_standalone_october">listopad</string> - <string name="month_long_standalone_november">studeni</string> - <string name="month_long_standalone_december">prosinac</string> - - <string name="month_long_january">siječnja</string> - <string name="month_long_february">veljače</string> - <string name="month_long_march">ožujka</string> - <string name="month_long_april">travnja</string> - <string name="month_long_may">svibnja</string> - <string name="month_long_june">lipnja</string> - <string name="month_long_july">srpnja</string> - <string name="month_long_august">kolovoza</string> - <string name="month_long_september">rujna</string> - <string name="month_long_october">listopada</string> - <string name="month_long_november">studenoga</string> - <string name="month_long_december">prosinca</string> - - <string name="month_medium_january">01.</string> - <string name="month_medium_february">02.</string> - <string name="month_medium_march">03.</string> - <string name="month_medium_april">04.</string> - <string name="month_medium_may">05.</string> - <string name="month_medium_june">06.</string> - <string name="month_medium_july">07.</string> - <string name="month_medium_august">08.</string> - <string name="month_medium_september">09.</string> - <string name="month_medium_october">10.</string> - <string name="month_medium_november">11.</string> - <string name="month_medium_december">12.</string> - - <string name="month_shortest_january">1.</string> - <string name="month_shortest_february">2.</string> - <string name="month_shortest_march">3.</string> - <string name="month_shortest_april">4.</string> - <string name="month_shortest_may">5.</string> - <string name="month_shortest_june">6.</string> - <string name="month_shortest_july">7.</string> - <string name="month_shortest_august">8.</string> - <string name="month_shortest_september">9.</string> - <string name="month_shortest_october">10.</string> - <string name="month_shortest_november">11.</string> - <string name="month_shortest_december">12.</string> - - <string name="day_of_week_long_sunday">nedjelja</string> - <string name="day_of_week_long_monday">ponedjeljak</string> - <string name="day_of_week_long_tuesday">utorak</string> - <string name="day_of_week_long_wednesday">srijeda</string> - <string name="day_of_week_long_thursday">četvrtak</string> - <string name="day_of_week_long_friday">petak</string> - <string name="day_of_week_long_saturday">subota</string> - - <string name="day_of_week_medium_sunday">ned</string> - <string name="day_of_week_medium_monday">pon</string> - <string name="day_of_week_medium_tuesday">uto</string> - <string name="day_of_week_medium_wednesday">sri</string> - <string name="day_of_week_medium_thursday">čet</string> - <string name="day_of_week_medium_friday">pet</string> - <string name="day_of_week_medium_saturday">sub</string> - - <string name="day_of_week_short_sunday">ned</string> - <string name="day_of_week_short_monday">pon</string> - <string name="day_of_week_short_tuesday">uto</string> - <string name="day_of_week_short_wednesday">sri</string> - <string name="day_of_week_short_thursday">čet</string> - <string name="day_of_week_short_friday">pet</string> - <string name="day_of_week_short_saturday">sub</string> - - <string name="day_of_week_shortest_sunday">n</string> - <string name="day_of_week_shortest_monday">p</string> - <string name="day_of_week_shortest_tuesday">u</string> - <string name="day_of_week_shortest_wednesday">s</string> - <string name="day_of_week_shortest_thursday">č</string> - <string name="day_of_week_shortest_friday">p</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">jučer</string> - <string name="today">danas</string> - <string name="tomorrow">sutra</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-hu-rHU/donottranslate-cldr.xml b/core/res/res/values-hu-rHU/donottranslate-cldr.xml index afb767625d93..5f4b8aaf3cc4 100644 --- a/core/res/res/values-hu-rHU/donottranslate-cldr.xml +++ b/core/res/res/values-hu-rHU/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">január</string> - <string name="month_long_standalone_february">február</string> - <string name="month_long_standalone_march">március</string> - <string name="month_long_standalone_april">április</string> - <string name="month_long_standalone_may">május</string> - <string name="month_long_standalone_june">június</string> - <string name="month_long_standalone_july">július</string> - <string name="month_long_standalone_august">augusztus</string> - <string name="month_long_standalone_september">szeptember</string> - <string name="month_long_standalone_october">október</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">január</string> - <string name="month_long_february">február</string> - <string name="month_long_march">március</string> - <string name="month_long_april">április</string> - <string name="month_long_may">május</string> - <string name="month_long_june">június</string> - <string name="month_long_july">július</string> - <string name="month_long_august">augusztus</string> - <string name="month_long_september">szeptember</string> - <string name="month_long_october">október</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">márc.</string> - <string name="month_medium_april">ápr.</string> - <string name="month_medium_may">máj.</string> - <string name="month_medium_june">jún.</string> - <string name="month_medium_july">júl.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">szept.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">Á</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">vasárnap</string> - <string name="day_of_week_long_monday">hétfő</string> - <string name="day_of_week_long_tuesday">kedd</string> - <string name="day_of_week_long_wednesday">szerda</string> - <string name="day_of_week_long_thursday">csütörtök</string> - <string name="day_of_week_long_friday">péntek</string> - <string name="day_of_week_long_saturday">szombat</string> - - <string name="day_of_week_medium_sunday">V</string> - <string name="day_of_week_medium_monday">H</string> - <string name="day_of_week_medium_tuesday">K</string> - <string name="day_of_week_medium_wednesday">Sze</string> - <string name="day_of_week_medium_thursday">Cs</string> - <string name="day_of_week_medium_friday">P</string> - <string name="day_of_week_medium_saturday">Szo</string> - - <string name="day_of_week_short_sunday">V</string> - <string name="day_of_week_short_monday">H</string> - <string name="day_of_week_short_tuesday">K</string> - <string name="day_of_week_short_wednesday">Sze</string> - <string name="day_of_week_short_thursday">Cs</string> - <string name="day_of_week_short_friday">P</string> - <string name="day_of_week_short_saturday">Szo</string> - - <string name="day_of_week_shortest_sunday">V</string> - <string name="day_of_week_shortest_monday">H</string> - <string name="day_of_week_shortest_tuesday">K</string> - <string name="day_of_week_shortest_wednesday">S</string> - <string name="day_of_week_shortest_thursday">C</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">de.</string> - <string name="pm">du.</string> - <string name="yesterday">tegnap</string> - <string name="today">ma</string> - <string name="tomorrow">holnap</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%p %-l:%M</string> <string name="hour_minute_cap_ampm">%^p %-l:%M</string> diff --git a/core/res/res/values-hu/donottranslate-cldr.xml b/core/res/res/values-hu/donottranslate-cldr.xml index 28b65bcf4dd1..c925b827a534 100644 --- a/core/res/res/values-hu/donottranslate-cldr.xml +++ b/core/res/res/values-hu/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">január</string> - <string name="month_long_standalone_february">február</string> - <string name="month_long_standalone_march">március</string> - <string name="month_long_standalone_april">április</string> - <string name="month_long_standalone_may">május</string> - <string name="month_long_standalone_june">június</string> - <string name="month_long_standalone_july">július</string> - <string name="month_long_standalone_august">augusztus</string> - <string name="month_long_standalone_september">szeptember</string> - <string name="month_long_standalone_october">október</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">január</string> - <string name="month_long_february">február</string> - <string name="month_long_march">március</string> - <string name="month_long_april">április</string> - <string name="month_long_may">május</string> - <string name="month_long_june">június</string> - <string name="month_long_july">július</string> - <string name="month_long_august">augusztus</string> - <string name="month_long_september">szeptember</string> - <string name="month_long_october">október</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">márc.</string> - <string name="month_medium_april">ápr.</string> - <string name="month_medium_may">máj.</string> - <string name="month_medium_june">jún.</string> - <string name="month_medium_july">júl.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">szept.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">Á</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">vasárnap</string> - <string name="day_of_week_long_monday">hétfő</string> - <string name="day_of_week_long_tuesday">kedd</string> - <string name="day_of_week_long_wednesday">szerda</string> - <string name="day_of_week_long_thursday">csütörtök</string> - <string name="day_of_week_long_friday">péntek</string> - <string name="day_of_week_long_saturday">szombat</string> - - <string name="day_of_week_medium_sunday">V</string> - <string name="day_of_week_medium_monday">H</string> - <string name="day_of_week_medium_tuesday">K</string> - <string name="day_of_week_medium_wednesday">Sze</string> - <string name="day_of_week_medium_thursday">Cs</string> - <string name="day_of_week_medium_friday">P</string> - <string name="day_of_week_medium_saturday">Szo</string> - - <string name="day_of_week_short_sunday">V</string> - <string name="day_of_week_short_monday">H</string> - <string name="day_of_week_short_tuesday">K</string> - <string name="day_of_week_short_wednesday">Sze</string> - <string name="day_of_week_short_thursday">Cs</string> - <string name="day_of_week_short_friday">P</string> - <string name="day_of_week_short_saturday">Szo</string> - - <string name="day_of_week_shortest_sunday">V</string> - <string name="day_of_week_shortest_monday">H</string> - <string name="day_of_week_shortest_tuesday">K</string> - <string name="day_of_week_shortest_wednesday">S</string> - <string name="day_of_week_shortest_thursday">C</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">de.</string> - <string name="pm">du.</string> - <string name="yesterday">tegnap</string> - <string name="today">ma</string> - <string name="tomorrow">holnap</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-in-rID/donottranslate-cldr.xml b/core/res/res/values-in-rID/donottranslate-cldr.xml index b79fe00bdcb3..8b13bcf0ded5 100644 --- a/core/res/res/values-in-rID/donottranslate-cldr.xml +++ b/core/res/res/values-in-rID/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januari</string> - <string name="month_long_standalone_february">Februari</string> - <string name="month_long_standalone_march">Maret</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">Mei</string> - <string name="month_long_standalone_june">Juni</string> - <string name="month_long_standalone_july">Juli</string> - <string name="month_long_standalone_august">Agustus</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">Oktober</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">Desember</string> - - <string name="month_long_january">Januari</string> - <string name="month_long_february">Februari</string> - <string name="month_long_march">Maret</string> - <string name="month_long_april">April</string> - <string name="month_long_may">Mei</string> - <string name="month_long_june">Juni</string> - <string name="month_long_july">Juli</string> - <string name="month_long_august">Agustus</string> - <string name="month_long_september">September</string> - <string name="month_long_october">Oktober</string> - <string name="month_long_november">November</string> - <string name="month_long_december">Desember</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mei</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Agu</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Des</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Minggu</string> - <string name="day_of_week_long_monday">Senin</string> - <string name="day_of_week_long_tuesday">Selasa</string> - <string name="day_of_week_long_wednesday">Rabu</string> - <string name="day_of_week_long_thursday">Kamis</string> - <string name="day_of_week_long_friday">Jumat</string> - <string name="day_of_week_long_saturday">Sabtu</string> - - <string name="day_of_week_medium_sunday">Min</string> - <string name="day_of_week_medium_monday">Sen</string> - <string name="day_of_week_medium_tuesday">Sel</string> - <string name="day_of_week_medium_wednesday">Rab</string> - <string name="day_of_week_medium_thursday">Kam</string> - <string name="day_of_week_medium_friday">Jum</string> - <string name="day_of_week_medium_saturday">Sab</string> - - <string name="day_of_week_short_sunday">Min</string> - <string name="day_of_week_short_monday">Sen</string> - <string name="day_of_week_short_tuesday">Sel</string> - <string name="day_of_week_short_wednesday">Rab</string> - <string name="day_of_week_short_thursday">Kam</string> - <string name="day_of_week_short_friday">Jum</string> - <string name="day_of_week_short_saturday">Sab</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-in/donottranslate-cldr.xml b/core/res/res/values-in/donottranslate-cldr.xml index 9a634cc72e64..6e9bba47c58d 100644 --- a/core/res/res/values-in/donottranslate-cldr.xml +++ b/core/res/res/values-in/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januari</string> - <string name="month_long_standalone_february">Februari</string> - <string name="month_long_standalone_march">Maret</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">Mei</string> - <string name="month_long_standalone_june">Juni</string> - <string name="month_long_standalone_july">Juli</string> - <string name="month_long_standalone_august">Agustus</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">Oktober</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">Desember</string> - - <string name="month_long_january">Januari</string> - <string name="month_long_february">Februari</string> - <string name="month_long_march">Maret</string> - <string name="month_long_april">April</string> - <string name="month_long_may">Mei</string> - <string name="month_long_june">Juni</string> - <string name="month_long_july">Juli</string> - <string name="month_long_august">Agustus</string> - <string name="month_long_september">September</string> - <string name="month_long_october">Oktober</string> - <string name="month_long_november">November</string> - <string name="month_long_december">Desember</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mei</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Agu</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Des</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Minggu</string> - <string name="day_of_week_long_monday">Senin</string> - <string name="day_of_week_long_tuesday">Selasa</string> - <string name="day_of_week_long_wednesday">Rabu</string> - <string name="day_of_week_long_thursday">Kamis</string> - <string name="day_of_week_long_friday">Jumat</string> - <string name="day_of_week_long_saturday">Sabtu</string> - - <string name="day_of_week_medium_sunday">Min</string> - <string name="day_of_week_medium_monday">Sen</string> - <string name="day_of_week_medium_tuesday">Sel</string> - <string name="day_of_week_medium_wednesday">Rab</string> - <string name="day_of_week_medium_thursday">Kam</string> - <string name="day_of_week_medium_friday">Jum</string> - <string name="day_of_week_medium_saturday">Sab</string> - - <string name="day_of_week_short_sunday">Min</string> - <string name="day_of_week_short_monday">Sen</string> - <string name="day_of_week_short_tuesday">Sel</string> - <string name="day_of_week_short_wednesday">Rab</string> - <string name="day_of_week_short_thursday">Kam</string> - <string name="day_of_week_short_friday">Jum</string> - <string name="day_of_week_short_saturday">Sab</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-it/donottranslate-cldr.xml b/core/res/res/values-it/donottranslate-cldr.xml index 8cee828f2faf..9ff27e825adf 100644 --- a/core/res/res/values-it/donottranslate-cldr.xml +++ b/core/res/res/values-it/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">gennaio</string> - <string name="month_long_standalone_february">febbraio</string> - <string name="month_long_standalone_march">marzo</string> - <string name="month_long_standalone_april">aprile</string> - <string name="month_long_standalone_may">maggio</string> - <string name="month_long_standalone_june">giugno</string> - <string name="month_long_standalone_july">luglio</string> - <string name="month_long_standalone_august">agosto</string> - <string name="month_long_standalone_september">settembre</string> - <string name="month_long_standalone_october">ottobre</string> - <string name="month_long_standalone_november">novembre</string> - <string name="month_long_standalone_december">dicembre</string> - - <string name="month_long_january">gennaio</string> - <string name="month_long_february">febbraio</string> - <string name="month_long_march">marzo</string> - <string name="month_long_april">aprile</string> - <string name="month_long_may">maggio</string> - <string name="month_long_june">giugno</string> - <string name="month_long_july">luglio</string> - <string name="month_long_august">agosto</string> - <string name="month_long_september">settembre</string> - <string name="month_long_october">ottobre</string> - <string name="month_long_november">novembre</string> - <string name="month_long_december">dicembre</string> - - <string name="month_medium_january">gen</string> - <string name="month_medium_february">feb</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">mag</string> - <string name="month_medium_june">giu</string> - <string name="month_medium_july">lug</string> - <string name="month_medium_august">ago</string> - <string name="month_medium_september">set</string> - <string name="month_medium_october">ott</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dic</string> - - <string name="month_shortest_january">G</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">G</string> - <string name="month_shortest_july">L</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">domenica</string> - <string name="day_of_week_long_monday">lunedì</string> - <string name="day_of_week_long_tuesday">martedì</string> - <string name="day_of_week_long_wednesday">mercoledì</string> - <string name="day_of_week_long_thursday">giovedì</string> - <string name="day_of_week_long_friday">venerdì</string> - <string name="day_of_week_long_saturday">sabato</string> - - <string name="day_of_week_medium_sunday">dom</string> - <string name="day_of_week_medium_monday">lun</string> - <string name="day_of_week_medium_tuesday">mar</string> - <string name="day_of_week_medium_wednesday">mer</string> - <string name="day_of_week_medium_thursday">gio</string> - <string name="day_of_week_medium_friday">ven</string> - <string name="day_of_week_medium_saturday">sab</string> - - <string name="day_of_week_short_sunday">dom</string> - <string name="day_of_week_short_monday">lun</string> - <string name="day_of_week_short_tuesday">mar</string> - <string name="day_of_week_short_wednesday">mer</string> - <string name="day_of_week_short_thursday">gio</string> - <string name="day_of_week_short_friday">ven</string> - <string name="day_of_week_short_saturday">sab</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">G</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">m.</string> - <string name="pm">p.</string> - <string name="yesterday">ieri</string> - <string name="today">oggi</string> - <string name="tomorrow">domani</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-iw/donottranslate-cldr.xml b/core/res/res/values-iw/donottranslate-cldr.xml index 02d1e9c2382e..631c0591484c 100644 --- a/core/res/res/values-iw/donottranslate-cldr.xml +++ b/core/res/res/values-iw/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">ינואר</string> - <string name="month_long_standalone_february">פברואר</string> - <string name="month_long_standalone_march">מרס</string> - <string name="month_long_standalone_april">אפריל</string> - <string name="month_long_standalone_may">מאי</string> - <string name="month_long_standalone_june">יוני</string> - <string name="month_long_standalone_july">יולי</string> - <string name="month_long_standalone_august">אוגוסט</string> - <string name="month_long_standalone_september">ספטמבר</string> - <string name="month_long_standalone_october">אוקטובר</string> - <string name="month_long_standalone_november">נובמבר</string> - <string name="month_long_standalone_december">דצמבר</string> - - <string name="month_long_january">ינואר</string> - <string name="month_long_february">פברואר</string> - <string name="month_long_march">מרס</string> - <string name="month_long_april">אפריל</string> - <string name="month_long_may">מאי</string> - <string name="month_long_june">יוני</string> - <string name="month_long_july">יולי</string> - <string name="month_long_august">אוגוסט</string> - <string name="month_long_september">ספטמבר</string> - <string name="month_long_october">אוקטובר</string> - <string name="month_long_november">נובמבר</string> - <string name="month_long_december">דצמבר</string> - - <string name="month_medium_january">ינו</string> - <string name="month_medium_february">פבר</string> - <string name="month_medium_march">מרס</string> - <string name="month_medium_april">אפר</string> - <string name="month_medium_may">מאי</string> - <string name="month_medium_june">יונ</string> - <string name="month_medium_july">יול</string> - <string name="month_medium_august">אוג</string> - <string name="month_medium_september">ספט</string> - <string name="month_medium_october">אוק</string> - <string name="month_medium_november">נוב</string> - <string name="month_medium_december">דצמ</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">יום ראשון</string> - <string name="day_of_week_long_monday">יום שני</string> - <string name="day_of_week_long_tuesday">יום שלישי</string> - <string name="day_of_week_long_wednesday">יום רביעי</string> - <string name="day_of_week_long_thursday">יום חמישי</string> - <string name="day_of_week_long_friday">יום שישי</string> - <string name="day_of_week_long_saturday">יום שבת</string> - - <string name="day_of_week_medium_sunday">יום א\'</string> - <string name="day_of_week_medium_monday">יום ב\'</string> - <string name="day_of_week_medium_tuesday">יום ג\'</string> - <string name="day_of_week_medium_wednesday">יום ד\'</string> - <string name="day_of_week_medium_thursday">יום ה\'</string> - <string name="day_of_week_medium_friday">יום ו\'</string> - <string name="day_of_week_medium_saturday">שבת</string> - - <string name="day_of_week_short_sunday">יום א\'</string> - <string name="day_of_week_short_monday">יום ב\'</string> - <string name="day_of_week_short_tuesday">יום ג\'</string> - <string name="day_of_week_short_wednesday">יום ד\'</string> - <string name="day_of_week_short_thursday">יום ה\'</string> - <string name="day_of_week_short_friday">יום ו\'</string> - <string name="day_of_week_short_saturday">שבת</string> - - <string name="day_of_week_shortest_sunday">א</string> - <string name="day_of_week_shortest_monday">ב</string> - <string name="day_of_week_shortest_tuesday">ג</string> - <string name="day_of_week_shortest_wednesday">ד</string> - <string name="day_of_week_shortest_thursday">ה</string> - <string name="day_of_week_shortest_friday">ו</string> - <string name="day_of_week_shortest_saturday">ש</string> - - <string name="am">לפנה"צ</string> - <string name="pm">אחה"צ</string> - <string name="yesterday">אתמול</string> - <string name="today">היום</string> - <string name="tomorrow">מחר</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-ja/donottranslate-cldr.xml b/core/res/res/values-ja/donottranslate-cldr.xml index 450adc3309c1..1c1d55fbd1f2 100644 --- a/core/res/res/values-ja/donottranslate-cldr.xml +++ b/core/res/res/values-ja/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">1月</string> - <string name="month_long_standalone_february">2月</string> - <string name="month_long_standalone_march">3月</string> - <string name="month_long_standalone_april">4月</string> - <string name="month_long_standalone_may">5月</string> - <string name="month_long_standalone_june">6月</string> - <string name="month_long_standalone_july">7月</string> - <string name="month_long_standalone_august">8月</string> - <string name="month_long_standalone_september">9月</string> - <string name="month_long_standalone_october">10月</string> - <string name="month_long_standalone_november">11月</string> - <string name="month_long_standalone_december">12月</string> - - <string name="month_long_january">1月</string> - <string name="month_long_february">2月</string> - <string name="month_long_march">3月</string> - <string name="month_long_april">4月</string> - <string name="month_long_may">5月</string> - <string name="month_long_june">6月</string> - <string name="month_long_july">7月</string> - <string name="month_long_august">8月</string> - <string name="month_long_september">9月</string> - <string name="month_long_october">10月</string> - <string name="month_long_november">11月</string> - <string name="month_long_december">12月</string> - - <string name="month_medium_january">1月</string> - <string name="month_medium_february">2月</string> - <string name="month_medium_march">3月</string> - <string name="month_medium_april">4月</string> - <string name="month_medium_may">5月</string> - <string name="month_medium_june">6月</string> - <string name="month_medium_july">7月</string> - <string name="month_medium_august">8月</string> - <string name="month_medium_september">9月</string> - <string name="month_medium_october">10月</string> - <string name="month_medium_november">11月</string> - <string name="month_medium_december">12月</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">日</string> - <string name="day_of_week_long_monday">月</string> - <string name="day_of_week_long_tuesday">火</string> - <string name="day_of_week_long_wednesday">水</string> - <string name="day_of_week_long_thursday">木</string> - <string name="day_of_week_long_friday">金</string> - <string name="day_of_week_long_saturday">土</string> - - <string name="day_of_week_medium_sunday">日</string> - <string name="day_of_week_medium_monday">月</string> - <string name="day_of_week_medium_tuesday">火</string> - <string name="day_of_week_medium_wednesday">水</string> - <string name="day_of_week_medium_thursday">木</string> - <string name="day_of_week_medium_friday">金</string> - <string name="day_of_week_medium_saturday">土</string> - - <string name="day_of_week_short_sunday">日</string> - <string name="day_of_week_short_monday">月</string> - <string name="day_of_week_short_tuesday">火</string> - <string name="day_of_week_short_wednesday">水</string> - <string name="day_of_week_short_thursday">木</string> - <string name="day_of_week_short_friday">金</string> - <string name="day_of_week_short_saturday">土</string> - - <string name="day_of_week_shortest_sunday">日</string> - <string name="day_of_week_shortest_monday">月</string> - <string name="day_of_week_shortest_tuesday">火</string> - <string name="day_of_week_shortest_wednesday">水</string> - <string name="day_of_week_shortest_thursday">木</string> - <string name="day_of_week_shortest_friday">金</string> - <string name="day_of_week_shortest_saturday">土</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">昨日</string> - <string name="today">今日</string> - <string name="tomorrow">明日</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values-ko/donottranslate-cldr.xml b/core/res/res/values-ko/donottranslate-cldr.xml index 5382871c1406..59b975f08b21 100644 --- a/core/res/res/values-ko/donottranslate-cldr.xml +++ b/core/res/res/values-ko/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">1월</string> - <string name="month_long_standalone_february">2월</string> - <string name="month_long_standalone_march">3월</string> - <string name="month_long_standalone_april">4월</string> - <string name="month_long_standalone_may">5월</string> - <string name="month_long_standalone_june">6월</string> - <string name="month_long_standalone_july">7월</string> - <string name="month_long_standalone_august">8월</string> - <string name="month_long_standalone_september">9월</string> - <string name="month_long_standalone_october">10월</string> - <string name="month_long_standalone_november">11월</string> - <string name="month_long_standalone_december">12월</string> - - <string name="month_long_january">1월</string> - <string name="month_long_february">2월</string> - <string name="month_long_march">3월</string> - <string name="month_long_april">4월</string> - <string name="month_long_may">5월</string> - <string name="month_long_june">6월</string> - <string name="month_long_july">7월</string> - <string name="month_long_august">8월</string> - <string name="month_long_september">9월</string> - <string name="month_long_october">10월</string> - <string name="month_long_november">11월</string> - <string name="month_long_december">12월</string> - - <string name="month_medium_january">1월</string> - <string name="month_medium_february">2월</string> - <string name="month_medium_march">3월</string> - <string name="month_medium_april">4월</string> - <string name="month_medium_may">5월</string> - <string name="month_medium_june">6월</string> - <string name="month_medium_july">7월</string> - <string name="month_medium_august">8월</string> - <string name="month_medium_september">9월</string> - <string name="month_medium_october">10월</string> - <string name="month_medium_november">11월</string> - <string name="month_medium_december">12월</string> - - <string name="month_shortest_january">1월</string> - <string name="month_shortest_february">2월</string> - <string name="month_shortest_march">3월</string> - <string name="month_shortest_april">4월</string> - <string name="month_shortest_may">5월</string> - <string name="month_shortest_june">6월</string> - <string name="month_shortest_july">7월</string> - <string name="month_shortest_august">8월</string> - <string name="month_shortest_september">9월</string> - <string name="month_shortest_october">10월</string> - <string name="month_shortest_november">11월</string> - <string name="month_shortest_december">12월</string> - - <string name="day_of_week_long_sunday">일요일</string> - <string name="day_of_week_long_monday">월요일</string> - <string name="day_of_week_long_tuesday">화요일</string> - <string name="day_of_week_long_wednesday">수요일</string> - <string name="day_of_week_long_thursday">목요일</string> - <string name="day_of_week_long_friday">금요일</string> - <string name="day_of_week_long_saturday">토요일</string> - - <string name="day_of_week_medium_sunday">일</string> - <string name="day_of_week_medium_monday">월</string> - <string name="day_of_week_medium_tuesday">화</string> - <string name="day_of_week_medium_wednesday">수</string> - <string name="day_of_week_medium_thursday">목</string> - <string name="day_of_week_medium_friday">금</string> - <string name="day_of_week_medium_saturday">토</string> - - <string name="day_of_week_short_sunday">일</string> - <string name="day_of_week_short_monday">월</string> - <string name="day_of_week_short_tuesday">화</string> - <string name="day_of_week_short_wednesday">수</string> - <string name="day_of_week_short_thursday">목</string> - <string name="day_of_week_short_friday">금</string> - <string name="day_of_week_short_saturday">토</string> - - <string name="day_of_week_shortest_sunday">일</string> - <string name="day_of_week_shortest_monday">월</string> - <string name="day_of_week_shortest_tuesday">화</string> - <string name="day_of_week_shortest_wednesday">수</string> - <string name="day_of_week_shortest_thursday">목</string> - <string name="day_of_week_shortest_friday">금</string> - <string name="day_of_week_shortest_saturday">토</string> - - <string name="am">오전</string> - <string name="pm">오후</string> - <string name="yesterday">어제</string> - <string name="today">오늘</string> - <string name="tomorrow">내일</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%p %-l:%M</string> <string name="hour_minute_cap_ampm">%p %-l:%M</string> diff --git a/core/res/res/values-lt-rLT/donottranslate-cldr.xml b/core/res/res/values-lt-rLT/donottranslate-cldr.xml index 0c1d0aa1a252..6cf6098ea43a 100644 --- a/core/res/res/values-lt-rLT/donottranslate-cldr.xml +++ b/core/res/res/values-lt-rLT/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Sausis</string> - <string name="month_long_standalone_february">Vasaris</string> - <string name="month_long_standalone_march">Kovas</string> - <string name="month_long_standalone_april">Balandis</string> - <string name="month_long_standalone_may">Gegužė</string> - <string name="month_long_standalone_june">Birželis</string> - <string name="month_long_standalone_july">Liepa</string> - <string name="month_long_standalone_august">Rugpjūtis</string> - <string name="month_long_standalone_september">Rugsėjis</string> - <string name="month_long_standalone_october">Spalis</string> - <string name="month_long_standalone_november">Lapkritis</string> - <string name="month_long_standalone_december">Gruodis</string> - - <string name="month_long_january">sausio</string> - <string name="month_long_february">vasario</string> - <string name="month_long_march">kovo</string> - <string name="month_long_april">balandžio</string> - <string name="month_long_may">gegužės</string> - <string name="month_long_june">birželio</string> - <string name="month_long_july">liepos</string> - <string name="month_long_august">rugpjūčio</string> - <string name="month_long_september">rugsėjo</string> - <string name="month_long_october">spalio</string> - <string name="month_long_november">lapkričio</string> - <string name="month_long_december">gruodžio</string> - - <string name="month_medium_january">sau.</string> - <string name="month_medium_february">vas.</string> - <string name="month_medium_march">kov.</string> - <string name="month_medium_april">bal.</string> - <string name="month_medium_may">geg.</string> - <string name="month_medium_june">bir.</string> - <string name="month_medium_july">lie.</string> - <string name="month_medium_august">rgp.</string> - <string name="month_medium_september">rgs.</string> - <string name="month_medium_october">spl.</string> - <string name="month_medium_november">lap.</string> - <string name="month_medium_december">grd.</string> - - <string name="month_shortest_january">S</string> - <string name="month_shortest_february">V</string> - <string name="month_shortest_march">K</string> - <string name="month_shortest_april">B</string> - <string name="month_shortest_may">G</string> - <string name="month_shortest_june">B</string> - <string name="month_shortest_july">L</string> - <string name="month_shortest_august">R</string> - <string name="month_shortest_september">R</string> - <string name="month_shortest_october">S</string> - <string name="month_shortest_november">L</string> - <string name="month_shortest_december">G</string> - - <string name="day_of_week_long_sunday">sekmadienis</string> - <string name="day_of_week_long_monday">pirmadienis</string> - <string name="day_of_week_long_tuesday">antradienis</string> - <string name="day_of_week_long_wednesday">trečiadienis</string> - <string name="day_of_week_long_thursday">ketvirtadienis</string> - <string name="day_of_week_long_friday">penktadienis</string> - <string name="day_of_week_long_saturday">šeštadienis</string> - - <string name="day_of_week_medium_sunday">Sk</string> - <string name="day_of_week_medium_monday">Pr</string> - <string name="day_of_week_medium_tuesday">An</string> - <string name="day_of_week_medium_wednesday">Tr</string> - <string name="day_of_week_medium_thursday">Kt</string> - <string name="day_of_week_medium_friday">Pn</string> - <string name="day_of_week_medium_saturday">Št</string> - - <string name="day_of_week_short_sunday">Sk</string> - <string name="day_of_week_short_monday">Pr</string> - <string name="day_of_week_short_tuesday">An</string> - <string name="day_of_week_short_wednesday">Tr</string> - <string name="day_of_week_short_thursday">Kt</string> - <string name="day_of_week_short_friday">Pn</string> - <string name="day_of_week_short_saturday">Št</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">A</string> - <string name="day_of_week_shortest_wednesday">T</string> - <string name="day_of_week_shortest_thursday">K</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">Š</string> - - <string name="am">priešpiet</string> - <string name="pm">popiet</string> - <string name="yesterday">vakar</string> - <string name="today">šiandien</string> - <string name="tomorrow">rytoj</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-lt/donottranslate-cldr.xml b/core/res/res/values-lt/donottranslate-cldr.xml index 8a2c0f4862eb..b1a94f3d8138 100644 --- a/core/res/res/values-lt/donottranslate-cldr.xml +++ b/core/res/res/values-lt/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Sausis</string> - <string name="month_long_standalone_february">Vasaris</string> - <string name="month_long_standalone_march">Kovas</string> - <string name="month_long_standalone_april">Balandis</string> - <string name="month_long_standalone_may">Gegužė</string> - <string name="month_long_standalone_june">Birželis</string> - <string name="month_long_standalone_july">Liepa</string> - <string name="month_long_standalone_august">Rugpjūtis</string> - <string name="month_long_standalone_september">Rugsėjis</string> - <string name="month_long_standalone_october">Spalis</string> - <string name="month_long_standalone_november">Lapkritis</string> - <string name="month_long_standalone_december">Gruodis</string> - - <string name="month_long_january">sausio</string> - <string name="month_long_february">vasario</string> - <string name="month_long_march">kovo</string> - <string name="month_long_april">balandžio</string> - <string name="month_long_may">gegužės</string> - <string name="month_long_june">birželio</string> - <string name="month_long_july">liepos</string> - <string name="month_long_august">rugpjūčio</string> - <string name="month_long_september">rugsėjo</string> - <string name="month_long_october">spalio</string> - <string name="month_long_november">lapkričio</string> - <string name="month_long_december">gruodžio</string> - - <string name="month_medium_january">Sau</string> - <string name="month_medium_february">Vas</string> - <string name="month_medium_march">Kov</string> - <string name="month_medium_april">Bal</string> - <string name="month_medium_may">Geg</string> - <string name="month_medium_june">Bir</string> - <string name="month_medium_july">Lie</string> - <string name="month_medium_august">Rgp</string> - <string name="month_medium_september">Rgs</string> - <string name="month_medium_october">Spl</string> - <string name="month_medium_november">Lap</string> - <string name="month_medium_december">Grd</string> - - <string name="month_shortest_january">S</string> - <string name="month_shortest_february">V</string> - <string name="month_shortest_march">K</string> - <string name="month_shortest_april">B</string> - <string name="month_shortest_may">G</string> - <string name="month_shortest_june">B</string> - <string name="month_shortest_july">L</string> - <string name="month_shortest_august">R</string> - <string name="month_shortest_september">R</string> - <string name="month_shortest_october">S</string> - <string name="month_shortest_november">L</string> - <string name="month_shortest_december">G</string> - - <string name="day_of_week_long_sunday">sekmadienis</string> - <string name="day_of_week_long_monday">pirmadienis</string> - <string name="day_of_week_long_tuesday">antradienis</string> - <string name="day_of_week_long_wednesday">trečiadienis</string> - <string name="day_of_week_long_thursday">ketvirtadienis</string> - <string name="day_of_week_long_friday">penktadienis</string> - <string name="day_of_week_long_saturday">šeštadienis</string> - - <string name="day_of_week_medium_sunday">Sk</string> - <string name="day_of_week_medium_monday">Pr</string> - <string name="day_of_week_medium_tuesday">An</string> - <string name="day_of_week_medium_wednesday">Tr</string> - <string name="day_of_week_medium_thursday">Kt</string> - <string name="day_of_week_medium_friday">Pn</string> - <string name="day_of_week_medium_saturday">Št</string> - - <string name="day_of_week_short_sunday">Sk</string> - <string name="day_of_week_short_monday">Pr</string> - <string name="day_of_week_short_tuesday">An</string> - <string name="day_of_week_short_wednesday">Tr</string> - <string name="day_of_week_short_thursday">Kt</string> - <string name="day_of_week_short_friday">Pn</string> - <string name="day_of_week_short_saturday">Št</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">A</string> - <string name="day_of_week_shortest_wednesday">T</string> - <string name="day_of_week_shortest_thursday">K</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">Š</string> - - <string name="am">priešpiet</string> - <string name="pm">popiet</string> - <string name="yesterday">vakar</string> - <string name="today">šiandien</string> - <string name="tomorrow">rytoj</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-lv-rLV/donottranslate-cldr.xml b/core/res/res/values-lv-rLV/donottranslate-cldr.xml index 9dbc5e052be0..3922f6b6bfc6 100644 --- a/core/res/res/values-lv-rLV/donottranslate-cldr.xml +++ b/core/res/res/values-lv-rLV/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">janvāris</string> - <string name="month_long_standalone_february">februāris</string> - <string name="month_long_standalone_march">marts</string> - <string name="month_long_standalone_april">aprīlis</string> - <string name="month_long_standalone_may">maijs</string> - <string name="month_long_standalone_june">jūnijs</string> - <string name="month_long_standalone_july">jūlijs</string> - <string name="month_long_standalone_august">augusts</string> - <string name="month_long_standalone_september">septembris</string> - <string name="month_long_standalone_october">oktobris</string> - <string name="month_long_standalone_november">novembris</string> - <string name="month_long_standalone_december">decembris</string> - - <string name="month_long_january">janvāris</string> - <string name="month_long_february">februāris</string> - <string name="month_long_march">marts</string> - <string name="month_long_april">aprīlis</string> - <string name="month_long_may">maijs</string> - <string name="month_long_june">jūnijs</string> - <string name="month_long_july">jūlijs</string> - <string name="month_long_august">augusts</string> - <string name="month_long_september">septembris</string> - <string name="month_long_october">oktobris</string> - <string name="month_long_november">novembris</string> - <string name="month_long_december">decembris</string> - - <string name="month_medium_january">janv.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">marts</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">maijs</string> - <string name="month_medium_june">jūn.</string> - <string name="month_medium_july">jūl.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sept.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">svētdiena</string> - <string name="day_of_week_long_monday">pirmdiena</string> - <string name="day_of_week_long_tuesday">otrdiena</string> - <string name="day_of_week_long_wednesday">trešdiena</string> - <string name="day_of_week_long_thursday">ceturtdiena</string> - <string name="day_of_week_long_friday">piektdiena</string> - <string name="day_of_week_long_saturday">sestdiena</string> - - <string name="day_of_week_medium_sunday">Sv</string> - <string name="day_of_week_medium_monday">Pr</string> - <string name="day_of_week_medium_tuesday">Ot</string> - <string name="day_of_week_medium_wednesday">Tr</string> - <string name="day_of_week_medium_thursday">Ce</string> - <string name="day_of_week_medium_friday">Pk</string> - <string name="day_of_week_medium_saturday">Se</string> - - <string name="day_of_week_short_sunday">Sv</string> - <string name="day_of_week_short_monday">Pr</string> - <string name="day_of_week_short_tuesday">Ot</string> - <string name="day_of_week_short_wednesday">Tr</string> - <string name="day_of_week_short_thursday">Ce</string> - <string name="day_of_week_short_friday">Pk</string> - <string name="day_of_week_short_saturday">Se</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">O</string> - <string name="day_of_week_shortest_wednesday">T</string> - <string name="day_of_week_shortest_thursday">C</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">vakar</string> - <string name="today">šodien</string> - <string name="tomorrow">rīt</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-lv/donottranslate-cldr.xml b/core/res/res/values-lv/donottranslate-cldr.xml index 10dcd35752ab..ec768bca6408 100644 --- a/core/res/res/values-lv/donottranslate-cldr.xml +++ b/core/res/res/values-lv/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">janvāris</string> - <string name="month_long_standalone_february">februāris</string> - <string name="month_long_standalone_march">marts</string> - <string name="month_long_standalone_april">aprīlis</string> - <string name="month_long_standalone_may">maijs</string> - <string name="month_long_standalone_june">jūnijs</string> - <string name="month_long_standalone_july">jūlijs</string> - <string name="month_long_standalone_august">augusts</string> - <string name="month_long_standalone_september">septembris</string> - <string name="month_long_standalone_october">oktobris</string> - <string name="month_long_standalone_november">novembris</string> - <string name="month_long_standalone_december">decembris</string> - - <string name="month_long_january">janvāris</string> - <string name="month_long_february">februāris</string> - <string name="month_long_march">marts</string> - <string name="month_long_april">aprīlis</string> - <string name="month_long_may">maijs</string> - <string name="month_long_june">jūnijs</string> - <string name="month_long_july">jūlijs</string> - <string name="month_long_august">augusts</string> - <string name="month_long_september">septembris</string> - <string name="month_long_october">oktobris</string> - <string name="month_long_november">novembris</string> - <string name="month_long_december">decembris</string> - - <string name="month_medium_january">janv.</string> - <string name="month_medium_february">febr.</string> - <string name="month_medium_march">marts</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">maijs</string> - <string name="month_medium_june">jūn.</string> - <string name="month_medium_july">jūl.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sept.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">svētdiena</string> - <string name="day_of_week_long_monday">pirmdiena</string> - <string name="day_of_week_long_tuesday">otrdiena</string> - <string name="day_of_week_long_wednesday">trešdiena</string> - <string name="day_of_week_long_thursday">ceturtdiena</string> - <string name="day_of_week_long_friday">piektdiena</string> - <string name="day_of_week_long_saturday">sestdiena</string> - - <string name="day_of_week_medium_sunday">Sv</string> - <string name="day_of_week_medium_monday">Pr</string> - <string name="day_of_week_medium_tuesday">Ot</string> - <string name="day_of_week_medium_wednesday">Tr</string> - <string name="day_of_week_medium_thursday">Ce</string> - <string name="day_of_week_medium_friday">Pk</string> - <string name="day_of_week_medium_saturday">Se</string> - - <string name="day_of_week_short_sunday">Sv</string> - <string name="day_of_week_short_monday">Pr</string> - <string name="day_of_week_short_tuesday">Ot</string> - <string name="day_of_week_short_wednesday">Tr</string> - <string name="day_of_week_short_thursday">Ce</string> - <string name="day_of_week_short_friday">Pk</string> - <string name="day_of_week_short_saturday">Se</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">O</string> - <string name="day_of_week_shortest_wednesday">T</string> - <string name="day_of_week_shortest_thursday">C</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">vakar</string> - <string name="today">šodien</string> - <string name="tomorrow">rīt</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-ms/donottranslate-cldr.xml b/core/res/res/values-ms/donottranslate-cldr.xml index 09d461cc8b84..a5843ff95fb0 100644 --- a/core/res/res/values-ms/donottranslate-cldr.xml +++ b/core/res/res/values-ms/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januari</string> - <string name="month_long_standalone_february">Februari</string> - <string name="month_long_standalone_march">Mac</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">Mei</string> - <string name="month_long_standalone_june">Jun</string> - <string name="month_long_standalone_july">Julai</string> - <string name="month_long_standalone_august">Ogos</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">Oktober</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">Disember</string> - - <string name="month_long_january">Januari</string> - <string name="month_long_february">Februari</string> - <string name="month_long_march">Mac</string> - <string name="month_long_april">April</string> - <string name="month_long_may">Mei</string> - <string name="month_long_june">Jun</string> - <string name="month_long_july">Julai</string> - <string name="month_long_august">Ogos</string> - <string name="month_long_september">September</string> - <string name="month_long_october">Oktober</string> - <string name="month_long_november">November</string> - <string name="month_long_december">Disember</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mac</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mei</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Ogos</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dis</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Ahad</string> - <string name="day_of_week_long_monday">Isnin</string> - <string name="day_of_week_long_tuesday">Selasa</string> - <string name="day_of_week_long_wednesday">Rabu</string> - <string name="day_of_week_long_thursday">Khamis</string> - <string name="day_of_week_long_friday">Jumaat</string> - <string name="day_of_week_long_saturday">Sabtu</string> - - <string name="day_of_week_medium_sunday">Ahd</string> - <string name="day_of_week_medium_monday">Isn</string> - <string name="day_of_week_medium_tuesday">Sel</string> - <string name="day_of_week_medium_wednesday">Rab</string> - <string name="day_of_week_medium_thursday">Kha</string> - <string name="day_of_week_medium_friday">Jum</string> - <string name="day_of_week_medium_saturday">Sab</string> - - <string name="day_of_week_short_sunday">Ahd</string> - <string name="day_of_week_short_monday">Isn</string> - <string name="day_of_week_short_tuesday">Sel</string> - <string name="day_of_week_short_wednesday">Rab</string> - <string name="day_of_week_short_thursday">Kha</string> - <string name="day_of_week_short_friday">Jum</string> - <string name="day_of_week_short_saturday">Sab</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-nb/donottranslate-cldr.xml b/core/res/res/values-nb/donottranslate-cldr.xml index 637dd5e78602..8eb1ff64fb6d 100644 --- a/core/res/res/values-nb/donottranslate-cldr.xml +++ b/core/res/res/values-nb/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januar</string> - <string name="month_long_standalone_february">februar</string> - <string name="month_long_standalone_march">mars</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">mai</string> - <string name="month_long_standalone_june">juni</string> - <string name="month_long_standalone_july">juli</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">desember</string> - - <string name="month_long_january">januar</string> - <string name="month_long_february">februar</string> - <string name="month_long_march">mars</string> - <string name="month_long_april">april</string> - <string name="month_long_may">mai</string> - <string name="month_long_june">juni</string> - <string name="month_long_july">juli</string> - <string name="month_long_august">august</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">desember</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mars</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">juni</string> - <string name="month_medium_july">juli</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">des.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">søndag</string> - <string name="day_of_week_long_monday">mandag</string> - <string name="day_of_week_long_tuesday">tirsdag</string> - <string name="day_of_week_long_wednesday">onsdag</string> - <string name="day_of_week_long_thursday">torsdag</string> - <string name="day_of_week_long_friday">fredag</string> - <string name="day_of_week_long_saturday">lørdag</string> - - <string name="day_of_week_medium_sunday">søn.</string> - <string name="day_of_week_medium_monday">man.</string> - <string name="day_of_week_medium_tuesday">tir.</string> - <string name="day_of_week_medium_wednesday">ons.</string> - <string name="day_of_week_medium_thursday">tor.</string> - <string name="day_of_week_medium_friday">fre.</string> - <string name="day_of_week_medium_saturday">lør.</string> - - <string name="day_of_week_short_sunday">søn.</string> - <string name="day_of_week_short_monday">man.</string> - <string name="day_of_week_short_tuesday">tir.</string> - <string name="day_of_week_short_wednesday">ons.</string> - <string name="day_of_week_short_thursday">tor.</string> - <string name="day_of_week_short_friday">fre.</string> - <string name="day_of_week_short_saturday">lør.</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">O</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">L</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">i går</string> - <string name="today">i dag</string> - <string name="tomorrow">i morgen</string> - <string name="hour_minute_24">%H.%M</string> <string name="hour_minute_ampm">%-l.%M %p</string> <string name="hour_minute_cap_ampm">%-l.%M %^p</string> diff --git a/core/res/res/values-nl/donottranslate-cldr.xml b/core/res/res/values-nl/donottranslate-cldr.xml index ca3813ffd91f..1495a489dcf7 100644 --- a/core/res/res/values-nl/donottranslate-cldr.xml +++ b/core/res/res/values-nl/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januari</string> - <string name="month_long_standalone_february">februari</string> - <string name="month_long_standalone_march">maart</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">mei</string> - <string name="month_long_standalone_june">juni</string> - <string name="month_long_standalone_july">juli</string> - <string name="month_long_standalone_august">augustus</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januari</string> - <string name="month_long_february">februari</string> - <string name="month_long_march">maart</string> - <string name="month_long_april">april</string> - <string name="month_long_may">mei</string> - <string name="month_long_june">juni</string> - <string name="month_long_july">juli</string> - <string name="month_long_august">augustus</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mrt.</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">mei</string> - <string name="month_medium_june">jun.</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">zondag</string> - <string name="day_of_week_long_monday">maandag</string> - <string name="day_of_week_long_tuesday">dinsdag</string> - <string name="day_of_week_long_wednesday">woensdag</string> - <string name="day_of_week_long_thursday">donderdag</string> - <string name="day_of_week_long_friday">vrijdag</string> - <string name="day_of_week_long_saturday">zaterdag</string> - - <string name="day_of_week_medium_sunday">zo</string> - <string name="day_of_week_medium_monday">ma</string> - <string name="day_of_week_medium_tuesday">di</string> - <string name="day_of_week_medium_wednesday">wo</string> - <string name="day_of_week_medium_thursday">do</string> - <string name="day_of_week_medium_friday">vr</string> - <string name="day_of_week_medium_saturday">za</string> - - <string name="day_of_week_short_sunday">zo</string> - <string name="day_of_week_short_monday">ma</string> - <string name="day_of_week_short_tuesday">di</string> - <string name="day_of_week_short_wednesday">wo</string> - <string name="day_of_week_short_thursday">do</string> - <string name="day_of_week_short_friday">vr</string> - <string name="day_of_week_short_saturday">za</string> - - <string name="day_of_week_shortest_sunday">Z</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">D</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">D</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">Z</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Gisteren</string> - <string name="today">Vandaag</string> - <string name="tomorrow">Morgen</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-pl/donottranslate-cldr.xml b/core/res/res/values-pl/donottranslate-cldr.xml index 2950e60b62f6..53f0c36e4ca4 100644 --- a/core/res/res/values-pl/donottranslate-cldr.xml +++ b/core/res/res/values-pl/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">styczeń</string> - <string name="month_long_standalone_february">luty</string> - <string name="month_long_standalone_march">marzec</string> - <string name="month_long_standalone_april">kwiecień</string> - <string name="month_long_standalone_may">maj</string> - <string name="month_long_standalone_june">czerwiec</string> - <string name="month_long_standalone_july">lipiec</string> - <string name="month_long_standalone_august">sierpień</string> - <string name="month_long_standalone_september">wrzesień</string> - <string name="month_long_standalone_october">październik</string> - <string name="month_long_standalone_november">listopad</string> - <string name="month_long_standalone_december">grudzień</string> - - <string name="month_long_january">stycznia</string> - <string name="month_long_february">lutego</string> - <string name="month_long_march">marca</string> - <string name="month_long_april">kwietnia</string> - <string name="month_long_may">maja</string> - <string name="month_long_june">czerwca</string> - <string name="month_long_july">lipca</string> - <string name="month_long_august">sierpnia</string> - <string name="month_long_september">września</string> - <string name="month_long_october">października</string> - <string name="month_long_november">listopada</string> - <string name="month_long_december">grudnia</string> - - <string name="month_medium_january">sty</string> - <string name="month_medium_february">lut</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">kwi</string> - <string name="month_medium_may">maj</string> - <string name="month_medium_june">cze</string> - <string name="month_medium_july">lip</string> - <string name="month_medium_august">sie</string> - <string name="month_medium_september">wrz</string> - <string name="month_medium_october">paź</string> - <string name="month_medium_november">lis</string> - <string name="month_medium_december">gru</string> - - <string name="month_shortest_january">s</string> - <string name="month_shortest_february">l</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">k</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">c</string> - <string name="month_shortest_july">l</string> - <string name="month_shortest_august">s</string> - <string name="month_shortest_september">w</string> - <string name="month_shortest_october">p</string> - <string name="month_shortest_november">l</string> - <string name="month_shortest_december">g</string> - - <string name="day_of_week_long_sunday">niedziela</string> - <string name="day_of_week_long_monday">poniedziałek</string> - <string name="day_of_week_long_tuesday">wtorek</string> - <string name="day_of_week_long_wednesday">środa</string> - <string name="day_of_week_long_thursday">czwartek</string> - <string name="day_of_week_long_friday">piątek</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">niedz.</string> - <string name="day_of_week_medium_monday">pon.</string> - <string name="day_of_week_medium_tuesday">wt.</string> - <string name="day_of_week_medium_wednesday">śr.</string> - <string name="day_of_week_medium_thursday">czw.</string> - <string name="day_of_week_medium_friday">pt.</string> - <string name="day_of_week_medium_saturday">sob.</string> - - <string name="day_of_week_short_sunday">niedz.</string> - <string name="day_of_week_short_monday">pon.</string> - <string name="day_of_week_short_tuesday">wt.</string> - <string name="day_of_week_short_wednesday">śr.</string> - <string name="day_of_week_short_thursday">czw.</string> - <string name="day_of_week_short_friday">pt.</string> - <string name="day_of_week_short_saturday">sob.</string> - - <string name="day_of_week_shortest_sunday">N</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">W</string> - <string name="day_of_week_shortest_wednesday">Ś</string> - <string name="day_of_week_shortest_thursday">C</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Wczoraj</string> - <string name="today">Dzisiaj</string> - <string name="tomorrow">Jutro</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-pt-rPT/donottranslate-cldr.xml b/core/res/res/values-pt-rPT/donottranslate-cldr.xml index 54417a4f0749..26d837147d94 100644 --- a/core/res/res/values-pt-rPT/donottranslate-cldr.xml +++ b/core/res/res/values-pt-rPT/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Janeiro</string> - <string name="month_long_standalone_february">Fevereiro</string> - <string name="month_long_standalone_march">Março</string> - <string name="month_long_standalone_april">Abril</string> - <string name="month_long_standalone_may">Maio</string> - <string name="month_long_standalone_june">Junho</string> - <string name="month_long_standalone_july">Julho</string> - <string name="month_long_standalone_august">Agosto</string> - <string name="month_long_standalone_september">Setembro</string> - <string name="month_long_standalone_october">Outubro</string> - <string name="month_long_standalone_november">Novembro</string> - <string name="month_long_standalone_december">Dezembro</string> - - <string name="month_long_january">Janeiro</string> - <string name="month_long_february">Fevereiro</string> - <string name="month_long_march">Março</string> - <string name="month_long_april">Abril</string> - <string name="month_long_may">Maio</string> - <string name="month_long_june">Junho</string> - <string name="month_long_july">Julho</string> - <string name="month_long_august">Agosto</string> - <string name="month_long_september">Setembro</string> - <string name="month_long_october">Outubro</string> - <string name="month_long_november">Novembro</string> - <string name="month_long_december">Dezembro</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Fev</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Abr</string> - <string name="month_medium_may">Mai</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Ago</string> - <string name="month_medium_september">Set</string> - <string name="month_medium_october">Out</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dez</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">domingo</string> - <string name="day_of_week_long_monday">segunda-feira</string> - <string name="day_of_week_long_tuesday">terça-feira</string> - <string name="day_of_week_long_wednesday">quarta-feira</string> - <string name="day_of_week_long_thursday">quinta-feira</string> - <string name="day_of_week_long_friday">sexta-feira</string> - <string name="day_of_week_long_saturday">sábado</string> - - <string name="day_of_week_medium_sunday">dom</string> - <string name="day_of_week_medium_monday">seg</string> - <string name="day_of_week_medium_tuesday">ter</string> - <string name="day_of_week_medium_wednesday">qua</string> - <string name="day_of_week_medium_thursday">qui</string> - <string name="day_of_week_medium_friday">sex</string> - <string name="day_of_week_medium_saturday">sáb</string> - - <string name="day_of_week_short_sunday">dom</string> - <string name="day_of_week_short_monday">seg</string> - <string name="day_of_week_short_tuesday">ter</string> - <string name="day_of_week_short_wednesday">qua</string> - <string name="day_of_week_short_thursday">qui</string> - <string name="day_of_week_short_friday">sex</string> - <string name="day_of_week_short_saturday">sáb</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">S</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">Q</string> - <string name="day_of_week_shortest_thursday">Q</string> - <string name="day_of_week_shortest_friday">S</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">Antes do meio-dia</string> - <string name="pm">Depois do meio-dia</string> - <string name="yesterday">Ontem</string> - <string name="today">Hoje</string> - <string name="tomorrow">Amanhã</string> - <string name="hour_minute_24">%-kh%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-pt/donottranslate-cldr.xml b/core/res/res/values-pt/donottranslate-cldr.xml index d999c06db1ee..c3e6c299d198 100644 --- a/core/res/res/values-pt/donottranslate-cldr.xml +++ b/core/res/res/values-pt/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">janeiro</string> - <string name="month_long_standalone_february">fevereiro</string> - <string name="month_long_standalone_march">março</string> - <string name="month_long_standalone_april">abril</string> - <string name="month_long_standalone_may">maio</string> - <string name="month_long_standalone_june">junho</string> - <string name="month_long_standalone_july">julho</string> - <string name="month_long_standalone_august">agosto</string> - <string name="month_long_standalone_september">setembro</string> - <string name="month_long_standalone_october">outubro</string> - <string name="month_long_standalone_november">novembro</string> - <string name="month_long_standalone_december">dezembro</string> - - <string name="month_long_january">janeiro</string> - <string name="month_long_february">fevereiro</string> - <string name="month_long_march">março</string> - <string name="month_long_april">abril</string> - <string name="month_long_may">maio</string> - <string name="month_long_june">junho</string> - <string name="month_long_july">julho</string> - <string name="month_long_august">agosto</string> - <string name="month_long_september">setembro</string> - <string name="month_long_october">outubro</string> - <string name="month_long_november">novembro</string> - <string name="month_long_december">dezembro</string> - - <string name="month_medium_january">jan</string> - <string name="month_medium_february">fev</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">abr</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">jun</string> - <string name="month_medium_july">jul</string> - <string name="month_medium_august">ago</string> - <string name="month_medium_september">set</string> - <string name="month_medium_october">out</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dez</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">domingo</string> - <string name="day_of_week_long_monday">segunda-feira</string> - <string name="day_of_week_long_tuesday">terça-feira</string> - <string name="day_of_week_long_wednesday">quarta-feira</string> - <string name="day_of_week_long_thursday">quinta-feira</string> - <string name="day_of_week_long_friday">sexta-feira</string> - <string name="day_of_week_long_saturday">sábado</string> - - <string name="day_of_week_medium_sunday">dom</string> - <string name="day_of_week_medium_monday">seg</string> - <string name="day_of_week_medium_tuesday">ter</string> - <string name="day_of_week_medium_wednesday">qua</string> - <string name="day_of_week_medium_thursday">qui</string> - <string name="day_of_week_medium_friday">sex</string> - <string name="day_of_week_medium_saturday">sáb</string> - - <string name="day_of_week_short_sunday">dom</string> - <string name="day_of_week_short_monday">seg</string> - <string name="day_of_week_short_tuesday">ter</string> - <string name="day_of_week_short_wednesday">qua</string> - <string name="day_of_week_short_thursday">qui</string> - <string name="day_of_week_short_friday">sex</string> - <string name="day_of_week_short_saturday">sáb</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">S</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">Q</string> - <string name="day_of_week_shortest_thursday">Q</string> - <string name="day_of_week_shortest_friday">S</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Ontem</string> - <string name="today">Hoje</string> - <string name="tomorrow">Amanhã</string> - <string name="hour_minute_24">%-kh%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-rm/donottranslate-cldr.xml b/core/res/res/values-rm/donottranslate-cldr.xml index ccdb17cd3d1a..e6f0df271259 100644 --- a/core/res/res/values-rm/donottranslate-cldr.xml +++ b/core/res/res/values-rm/donottranslate-cldr.xml @@ -1,94 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">schaner</string> - <string name="month_long_standalone_february">favrer</string> - <string name="month_long_standalone_march">mars</string> - <string name="month_long_standalone_april">avrigl</string> - <string name="month_long_standalone_may">matg</string> - <string name="month_long_standalone_june">zercladur</string> - <string name="month_long_standalone_july">fanadur</string> - <string name="month_long_standalone_august">avust</string> - <string name="month_long_standalone_september">settember</string> - <string name="month_long_standalone_october">october</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">schaner</string> - <string name="month_long_february">favrer</string> - <string name="month_long_march">mars</string> - <string name="month_long_april">avrigl</string> - <string name="month_long_may">matg</string> - <string name="month_long_june">zercladur</string> - <string name="month_long_july">fanadur</string> - <string name="month_long_august">avust</string> - <string name="month_long_september">settember</string> - <string name="month_long_october">october</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">schan.</string> - <string name="month_medium_february">favr.</string> - <string name="month_medium_march">mars</string> - <string name="month_medium_april">avr.</string> - <string name="month_medium_may">matg</string> - <string name="month_medium_june">zercl.</string> - <string name="month_medium_july">fan.</string> - <string name="month_medium_august">avust</string> - <string name="month_medium_september">sett.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">S</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">Z</string> - <string name="month_shortest_july">F</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">dumengia</string> - <string name="day_of_week_long_monday">glindesdi</string> - <string name="day_of_week_long_tuesday">mardi</string> - <string name="day_of_week_long_wednesday">mesemna</string> - <string name="day_of_week_long_thursday">gievgia</string> - <string name="day_of_week_long_friday">venderdi</string> - <string name="day_of_week_long_saturday">sonda</string> - - <string name="day_of_week_medium_sunday">du</string> - <string name="day_of_week_medium_monday">gli</string> - <string name="day_of_week_medium_tuesday">ma</string> - <string name="day_of_week_medium_wednesday">me</string> - <string name="day_of_week_medium_thursday">gie</string> - <string name="day_of_week_medium_friday">ve</string> - <string name="day_of_week_medium_saturday">so</string> - - <string name="day_of_week_short_sunday">du</string> - <string name="day_of_week_short_monday">gli</string> - <string name="day_of_week_short_tuesday">ma</string> - <string name="day_of_week_short_wednesday">me</string> - <string name="day_of_week_short_thursday">gie</string> - <string name="day_of_week_short_friday">ve</string> - <string name="day_of_week_short_saturday">so</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">G</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">G</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="yesterday">ier</string> - <string name="today">oz</string> - <string name="tomorrow">damaun</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-ro-rRO/donottranslate-cldr.xml b/core/res/res/values-ro-rRO/donottranslate-cldr.xml index 732ae24f88e3..7056803c670f 100644 --- a/core/res/res/values-ro-rRO/donottranslate-cldr.xml +++ b/core/res/res/values-ro-rRO/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">ianuarie</string> - <string name="month_long_standalone_february">februarie</string> - <string name="month_long_standalone_march">martie</string> - <string name="month_long_standalone_april">aprilie</string> - <string name="month_long_standalone_may">mai</string> - <string name="month_long_standalone_june">iunie</string> - <string name="month_long_standalone_july">iulie</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">septembrie</string> - <string name="month_long_standalone_october">octombrie</string> - <string name="month_long_standalone_november">noiembrie</string> - <string name="month_long_standalone_december">decembrie</string> - - <string name="month_long_january">ianuarie</string> - <string name="month_long_february">februarie</string> - <string name="month_long_march">martie</string> - <string name="month_long_april">aprilie</string> - <string name="month_long_may">mai</string> - <string name="month_long_june">iunie</string> - <string name="month_long_july">iulie</string> - <string name="month_long_august">august</string> - <string name="month_long_september">septembrie</string> - <string name="month_long_october">octombrie</string> - <string name="month_long_november">noiembrie</string> - <string name="month_long_december">decembrie</string> - - <string name="month_medium_january">ian.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">iun.</string> - <string name="month_medium_july">iul.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sept.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">I</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">I</string> - <string name="month_shortest_july">I</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">duminică</string> - <string name="day_of_week_long_monday">luni</string> - <string name="day_of_week_long_tuesday">marți</string> - <string name="day_of_week_long_wednesday">miercuri</string> - <string name="day_of_week_long_thursday">joi</string> - <string name="day_of_week_long_friday">vineri</string> - <string name="day_of_week_long_saturday">sâmbătă</string> - - <string name="day_of_week_medium_sunday">Du</string> - <string name="day_of_week_medium_monday">Lu</string> - <string name="day_of_week_medium_tuesday">Ma</string> - <string name="day_of_week_medium_wednesday">Mi</string> - <string name="day_of_week_medium_thursday">Jo</string> - <string name="day_of_week_medium_friday">Vi</string> - <string name="day_of_week_medium_saturday">Sâ</string> - - <string name="day_of_week_short_sunday">Du</string> - <string name="day_of_week_short_monday">Lu</string> - <string name="day_of_week_short_tuesday">Ma</string> - <string name="day_of_week_short_wednesday">Mi</string> - <string name="day_of_week_short_thursday">Jo</string> - <string name="day_of_week_short_friday">Vi</string> - <string name="day_of_week_short_saturday">Sâ</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">J</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">ieri</string> - <string name="today">azi</string> - <string name="tomorrow">mâine</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-ro/donottranslate-cldr.xml b/core/res/res/values-ro/donottranslate-cldr.xml index e9a70dc28459..935c6af4691e 100644 --- a/core/res/res/values-ro/donottranslate-cldr.xml +++ b/core/res/res/values-ro/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">ianuarie</string> - <string name="month_long_standalone_february">februarie</string> - <string name="month_long_standalone_march">martie</string> - <string name="month_long_standalone_april">aprilie</string> - <string name="month_long_standalone_may">mai</string> - <string name="month_long_standalone_june">iunie</string> - <string name="month_long_standalone_july">iulie</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">septembrie</string> - <string name="month_long_standalone_october">octombrie</string> - <string name="month_long_standalone_november">noiembrie</string> - <string name="month_long_standalone_december">decembrie</string> - - <string name="month_long_january">ianuarie</string> - <string name="month_long_february">februarie</string> - <string name="month_long_march">martie</string> - <string name="month_long_april">aprilie</string> - <string name="month_long_may">mai</string> - <string name="month_long_june">iunie</string> - <string name="month_long_july">iulie</string> - <string name="month_long_august">august</string> - <string name="month_long_september">septembrie</string> - <string name="month_long_october">octombrie</string> - <string name="month_long_november">noiembrie</string> - <string name="month_long_december">decembrie</string> - - <string name="month_medium_january">ian.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">mai</string> - <string name="month_medium_june">iun.</string> - <string name="month_medium_july">iul.</string> - <string name="month_medium_august">aug.</string> - <string name="month_medium_september">sept.</string> - <string name="month_medium_october">oct.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">I</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">I</string> - <string name="month_shortest_july">I</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">duminică</string> - <string name="day_of_week_long_monday">luni</string> - <string name="day_of_week_long_tuesday">marți</string> - <string name="day_of_week_long_wednesday">miercuri</string> - <string name="day_of_week_long_thursday">joi</string> - <string name="day_of_week_long_friday">vineri</string> - <string name="day_of_week_long_saturday">sâmbătă</string> - - <string name="day_of_week_medium_sunday">Du</string> - <string name="day_of_week_medium_monday">Lu</string> - <string name="day_of_week_medium_tuesday">Ma</string> - <string name="day_of_week_medium_wednesday">Mi</string> - <string name="day_of_week_medium_thursday">Jo</string> - <string name="day_of_week_medium_friday">Vi</string> - <string name="day_of_week_medium_saturday">Sâ</string> - - <string name="day_of_week_short_sunday">Du</string> - <string name="day_of_week_short_monday">Lu</string> - <string name="day_of_week_short_tuesday">Ma</string> - <string name="day_of_week_short_wednesday">Mi</string> - <string name="day_of_week_short_thursday">Jo</string> - <string name="day_of_week_short_friday">Vi</string> - <string name="day_of_week_short_saturday">Sâ</string> - - <string name="day_of_week_shortest_sunday">D</string> - <string name="day_of_week_shortest_monday">L</string> - <string name="day_of_week_shortest_tuesday">M</string> - <string name="day_of_week_shortest_wednesday">M</string> - <string name="day_of_week_shortest_thursday">J</string> - <string name="day_of_week_shortest_friday">V</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">ieri</string> - <string name="today">azi</string> - <string name="tomorrow">mâine</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-ru/donottranslate-cldr.xml b/core/res/res/values-ru/donottranslate-cldr.xml index 2fbcd4349e34..03c64ab5f6d3 100644 --- a/core/res/res/values-ru/donottranslate-cldr.xml +++ b/core/res/res/values-ru/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">январь</string> - <string name="month_long_standalone_february">февраль</string> - <string name="month_long_standalone_march">март</string> - <string name="month_long_standalone_april">апрель</string> - <string name="month_long_standalone_may">май</string> - <string name="month_long_standalone_june">июнь</string> - <string name="month_long_standalone_july">июль</string> - <string name="month_long_standalone_august">август</string> - <string name="month_long_standalone_september">сентябрь</string> - <string name="month_long_standalone_october">октябрь</string> - <string name="month_long_standalone_november">ноябрь</string> - <string name="month_long_standalone_december">декабрь</string> - - <string name="month_long_january">января</string> - <string name="month_long_february">февраля</string> - <string name="month_long_march">марта</string> - <string name="month_long_april">апреля</string> - <string name="month_long_may">мая</string> - <string name="month_long_june">июня</string> - <string name="month_long_july">июля</string> - <string name="month_long_august">августа</string> - <string name="month_long_september">сентября</string> - <string name="month_long_october">октября</string> - <string name="month_long_november">ноября</string> - <string name="month_long_december">декабря</string> - - <string name="month_medium_january">янв</string> - <string name="month_medium_february">фев</string> - <string name="month_medium_march">мар</string> - <string name="month_medium_april">апр</string> - <string name="month_medium_may">май</string> - <string name="month_medium_june">июн</string> - <string name="month_medium_july">июл</string> - <string name="month_medium_august">авг</string> - <string name="month_medium_september">сен</string> - <string name="month_medium_october">окт</string> - <string name="month_medium_november">ноя</string> - <string name="month_medium_december">дек</string> - - <string name="month_shortest_january">Я</string> - <string name="month_shortest_february">Ф</string> - <string name="month_shortest_march">М</string> - <string name="month_shortest_april">А</string> - <string name="month_shortest_may">М</string> - <string name="month_shortest_june">И</string> - <string name="month_shortest_july">И</string> - <string name="month_shortest_august">А</string> - <string name="month_shortest_september">С</string> - <string name="month_shortest_october">О</string> - <string name="month_shortest_november">Н</string> - <string name="month_shortest_december">Д</string> - - <string name="day_of_week_long_sunday">воскресенье</string> - <string name="day_of_week_long_monday">понедельник</string> - <string name="day_of_week_long_tuesday">вторник</string> - <string name="day_of_week_long_wednesday">среда</string> - <string name="day_of_week_long_thursday">четверг</string> - <string name="day_of_week_long_friday">пятница</string> - <string name="day_of_week_long_saturday">суббота</string> - - <string name="day_of_week_medium_sunday">вс</string> - <string name="day_of_week_medium_monday">пн</string> - <string name="day_of_week_medium_tuesday">вт</string> - <string name="day_of_week_medium_wednesday">ср</string> - <string name="day_of_week_medium_thursday">чт</string> - <string name="day_of_week_medium_friday">пт</string> - <string name="day_of_week_medium_saturday">сб</string> - - <string name="day_of_week_short_sunday">вс</string> - <string name="day_of_week_short_monday">пн</string> - <string name="day_of_week_short_tuesday">вт</string> - <string name="day_of_week_short_wednesday">ср</string> - <string name="day_of_week_short_thursday">чт</string> - <string name="day_of_week_short_friday">пт</string> - <string name="day_of_week_short_saturday">сб</string> - - <string name="day_of_week_shortest_sunday">В</string> - <string name="day_of_week_shortest_monday">П</string> - <string name="day_of_week_shortest_tuesday">В</string> - <string name="day_of_week_shortest_wednesday">С</string> - <string name="day_of_week_shortest_thursday">Ч</string> - <string name="day_of_week_shortest_friday">П</string> - <string name="day_of_week_shortest_saturday">С</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Вчера</string> - <string name="today">Сегодня</string> - <string name="tomorrow">Завтра</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-sk-rSK/donottranslate-cldr.xml b/core/res/res/values-sk-rSK/donottranslate-cldr.xml index 2843ae3334a3..651c58cadd60 100644 --- a/core/res/res/values-sk-rSK/donottranslate-cldr.xml +++ b/core/res/res/values-sk-rSK/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">január</string> - <string name="month_long_standalone_february">február</string> - <string name="month_long_standalone_march">marec</string> - <string name="month_long_standalone_april">apríl</string> - <string name="month_long_standalone_may">máj</string> - <string name="month_long_standalone_june">jún</string> - <string name="month_long_standalone_july">júl</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">október</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januára</string> - <string name="month_long_february">februára</string> - <string name="month_long_march">marca</string> - <string name="month_long_april">apríla</string> - <string name="month_long_may">mája</string> - <string name="month_long_june">júna</string> - <string name="month_long_july">júla</string> - <string name="month_long_august">augusta</string> - <string name="month_long_september">septembra</string> - <string name="month_long_october">októbra</string> - <string name="month_long_november">novembra</string> - <string name="month_long_december">decembra</string> - - <string name="month_medium_january">jan</string> - <string name="month_medium_february">feb</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">máj</string> - <string name="month_medium_june">jún</string> - <string name="month_medium_july">júl</string> - <string name="month_medium_august">aug</string> - <string name="month_medium_september">sep</string> - <string name="month_medium_october">okt</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dec</string> - - <string name="month_shortest_january">j</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">nedeľa</string> - <string name="day_of_week_long_monday">pondelok</string> - <string name="day_of_week_long_tuesday">utorok</string> - <string name="day_of_week_long_wednesday">streda</string> - <string name="day_of_week_long_thursday">štvrtok</string> - <string name="day_of_week_long_friday">piatok</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">ne</string> - <string name="day_of_week_medium_monday">po</string> - <string name="day_of_week_medium_tuesday">ut</string> - <string name="day_of_week_medium_wednesday">st</string> - <string name="day_of_week_medium_thursday">št</string> - <string name="day_of_week_medium_friday">pi</string> - <string name="day_of_week_medium_saturday">so</string> - - <string name="day_of_week_short_sunday">ne</string> - <string name="day_of_week_short_monday">po</string> - <string name="day_of_week_short_tuesday">ut</string> - <string name="day_of_week_short_wednesday">st</string> - <string name="day_of_week_short_thursday">št</string> - <string name="day_of_week_short_friday">pi</string> - <string name="day_of_week_short_saturday">so</string> - - <string name="day_of_week_shortest_sunday">N</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">U</string> - <string name="day_of_week_shortest_wednesday">S</string> - <string name="day_of_week_shortest_thursday">Š</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">dopoludnia</string> - <string name="pm">popoludní</string> - <string name="yesterday">Včera</string> - <string name="today">Dnes</string> - <string name="tomorrow">Zajtra</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-sk/donottranslate-cldr.xml b/core/res/res/values-sk/donottranslate-cldr.xml index dcdaad16a24f..48c644af3618 100644 --- a/core/res/res/values-sk/donottranslate-cldr.xml +++ b/core/res/res/values-sk/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">január</string> - <string name="month_long_standalone_february">február</string> - <string name="month_long_standalone_march">marec</string> - <string name="month_long_standalone_april">apríl</string> - <string name="month_long_standalone_may">máj</string> - <string name="month_long_standalone_june">jún</string> - <string name="month_long_standalone_july">júl</string> - <string name="month_long_standalone_august">august</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">október</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januára</string> - <string name="month_long_february">februára</string> - <string name="month_long_march">marca</string> - <string name="month_long_april">apríla</string> - <string name="month_long_may">mája</string> - <string name="month_long_june">júna</string> - <string name="month_long_july">júla</string> - <string name="month_long_august">augusta</string> - <string name="month_long_september">septembra</string> - <string name="month_long_october">októbra</string> - <string name="month_long_november">novembra</string> - <string name="month_long_december">decembra</string> - - <string name="month_medium_january">jan</string> - <string name="month_medium_february">feb</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">máj</string> - <string name="month_medium_june">jún</string> - <string name="month_medium_july">júl</string> - <string name="month_medium_august">aug</string> - <string name="month_medium_september">sep</string> - <string name="month_medium_october">okt</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dec</string> - - <string name="month_shortest_january">j</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">nedeľa</string> - <string name="day_of_week_long_monday">pondelok</string> - <string name="day_of_week_long_tuesday">utorok</string> - <string name="day_of_week_long_wednesday">streda</string> - <string name="day_of_week_long_thursday">štvrtok</string> - <string name="day_of_week_long_friday">piatok</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">ne</string> - <string name="day_of_week_medium_monday">po</string> - <string name="day_of_week_medium_tuesday">ut</string> - <string name="day_of_week_medium_wednesday">st</string> - <string name="day_of_week_medium_thursday">št</string> - <string name="day_of_week_medium_friday">pi</string> - <string name="day_of_week_medium_saturday">so</string> - - <string name="day_of_week_short_sunday">ne</string> - <string name="day_of_week_short_monday">po</string> - <string name="day_of_week_short_tuesday">ut</string> - <string name="day_of_week_short_wednesday">st</string> - <string name="day_of_week_short_thursday">št</string> - <string name="day_of_week_short_friday">pi</string> - <string name="day_of_week_short_saturday">so</string> - - <string name="day_of_week_shortest_sunday">N</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">U</string> - <string name="day_of_week_shortest_wednesday">S</string> - <string name="day_of_week_shortest_thursday">Š</string> - <string name="day_of_week_shortest_friday">P</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">dopoludnia</string> - <string name="pm">popoludní</string> - <string name="yesterday">Včera</string> - <string name="today">Dnes</string> - <string name="tomorrow">Zajtra</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-sl-rSI/donottranslate-cldr.xml b/core/res/res/values-sl-rSI/donottranslate-cldr.xml index cbabccd0f353..84fffbdbfe8d 100644 --- a/core/res/res/values-sl-rSI/donottranslate-cldr.xml +++ b/core/res/res/values-sl-rSI/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januar</string> - <string name="month_long_standalone_february">februar</string> - <string name="month_long_standalone_march">marec</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">maj</string> - <string name="month_long_standalone_june">junij</string> - <string name="month_long_standalone_july">julij</string> - <string name="month_long_standalone_august">avgust</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januar</string> - <string name="month_long_february">februar</string> - <string name="month_long_march">marec</string> - <string name="month_long_april">april</string> - <string name="month_long_may">maj</string> - <string name="month_long_june">junij</string> - <string name="month_long_july">julij</string> - <string name="month_long_august">avgust</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan.</string> - <string name="month_medium_february">feb.</string> - <string name="month_medium_march">mar.</string> - <string name="month_medium_april">apr.</string> - <string name="month_medium_may">maj.</string> - <string name="month_medium_june">jun.</string> - <string name="month_medium_july">jul.</string> - <string name="month_medium_august">avg.</string> - <string name="month_medium_september">sep.</string> - <string name="month_medium_october">okt.</string> - <string name="month_medium_november">nov.</string> - <string name="month_medium_december">dec.</string> - - <string name="month_shortest_january">j</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">nedelja</string> - <string name="day_of_week_long_monday">ponedeljek</string> - <string name="day_of_week_long_tuesday">torek</string> - <string name="day_of_week_long_wednesday">sreda</string> - <string name="day_of_week_long_thursday">četrtek</string> - <string name="day_of_week_long_friday">petek</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">ned.</string> - <string name="day_of_week_medium_monday">pon.</string> - <string name="day_of_week_medium_tuesday">tor.</string> - <string name="day_of_week_medium_wednesday">sre.</string> - <string name="day_of_week_medium_thursday">čet.</string> - <string name="day_of_week_medium_friday">pet.</string> - <string name="day_of_week_medium_saturday">sob.</string> - - <string name="day_of_week_short_sunday">ned.</string> - <string name="day_of_week_short_monday">pon.</string> - <string name="day_of_week_short_tuesday">tor.</string> - <string name="day_of_week_short_wednesday">sre.</string> - <string name="day_of_week_short_thursday">čet.</string> - <string name="day_of_week_short_friday">pet.</string> - <string name="day_of_week_short_saturday">sob.</string> - - <string name="day_of_week_shortest_sunday">n</string> - <string name="day_of_week_shortest_monday">p</string> - <string name="day_of_week_shortest_tuesday">t</string> - <string name="day_of_week_shortest_wednesday">s</string> - <string name="day_of_week_shortest_thursday">č</string> - <string name="day_of_week_shortest_friday">p</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">dop.</string> - <string name="pm">pop.</string> - <string name="yesterday">Včeraj</string> - <string name="today">Danes</string> - <string name="tomorrow">Jutri</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-sl/donottranslate-cldr.xml b/core/res/res/values-sl/donottranslate-cldr.xml index b804b3fd1fbd..137ed3f6fdc4 100644 --- a/core/res/res/values-sl/donottranslate-cldr.xml +++ b/core/res/res/values-sl/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januar</string> - <string name="month_long_standalone_february">februar</string> - <string name="month_long_standalone_march">marec</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">maj</string> - <string name="month_long_standalone_june">junij</string> - <string name="month_long_standalone_july">julij</string> - <string name="month_long_standalone_august">avgust</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januar</string> - <string name="month_long_february">februar</string> - <string name="month_long_march">marec</string> - <string name="month_long_april">april</string> - <string name="month_long_may">maj</string> - <string name="month_long_june">junij</string> - <string name="month_long_july">julij</string> - <string name="month_long_august">avgust</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan</string> - <string name="month_medium_february">feb</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">maj</string> - <string name="month_medium_june">jun</string> - <string name="month_medium_july">jul</string> - <string name="month_medium_august">avg</string> - <string name="month_medium_september">sep</string> - <string name="month_medium_october">okt</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dec</string> - - <string name="month_shortest_january">j</string> - <string name="month_shortest_february">f</string> - <string name="month_shortest_march">m</string> - <string name="month_shortest_april">a</string> - <string name="month_shortest_may">m</string> - <string name="month_shortest_june">j</string> - <string name="month_shortest_july">j</string> - <string name="month_shortest_august">a</string> - <string name="month_shortest_september">s</string> - <string name="month_shortest_october">o</string> - <string name="month_shortest_november">n</string> - <string name="month_shortest_december">d</string> - - <string name="day_of_week_long_sunday">nedelja</string> - <string name="day_of_week_long_monday">ponedeljek</string> - <string name="day_of_week_long_tuesday">torek</string> - <string name="day_of_week_long_wednesday">sreda</string> - <string name="day_of_week_long_thursday">četrtek</string> - <string name="day_of_week_long_friday">petek</string> - <string name="day_of_week_long_saturday">sobota</string> - - <string name="day_of_week_medium_sunday">ned</string> - <string name="day_of_week_medium_monday">pon</string> - <string name="day_of_week_medium_tuesday">tor</string> - <string name="day_of_week_medium_wednesday">sre</string> - <string name="day_of_week_medium_thursday">čet</string> - <string name="day_of_week_medium_friday">pet</string> - <string name="day_of_week_medium_saturday">sob</string> - - <string name="day_of_week_short_sunday">ned</string> - <string name="day_of_week_short_monday">pon</string> - <string name="day_of_week_short_tuesday">tor</string> - <string name="day_of_week_short_wednesday">sre</string> - <string name="day_of_week_short_thursday">čet</string> - <string name="day_of_week_short_friday">pet</string> - <string name="day_of_week_short_saturday">sob</string> - - <string name="day_of_week_shortest_sunday">n</string> - <string name="day_of_week_shortest_monday">p</string> - <string name="day_of_week_shortest_tuesday">t</string> - <string name="day_of_week_shortest_wednesday">s</string> - <string name="day_of_week_shortest_thursday">č</string> - <string name="day_of_week_shortest_friday">p</string> - <string name="day_of_week_shortest_saturday">s</string> - - <string name="am">dop.</string> - <string name="pm">pop.</string> - <string name="yesterday">Včeraj</string> - <string name="today">Danes</string> - <string name="tomorrow">Jutri</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-sr-rRS/donottranslate-cldr.xml b/core/res/res/values-sr-rRS/donottranslate-cldr.xml index 7168bccfabba..996c75ea3f06 100644 --- a/core/res/res/values-sr-rRS/donottranslate-cldr.xml +++ b/core/res/res/values-sr-rRS/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">јануар</string> - <string name="month_long_standalone_february">фебруар</string> - <string name="month_long_standalone_march">март</string> - <string name="month_long_standalone_april">април</string> - <string name="month_long_standalone_may">мај</string> - <string name="month_long_standalone_june">јун</string> - <string name="month_long_standalone_july">јул</string> - <string name="month_long_standalone_august">август</string> - <string name="month_long_standalone_september">септембар</string> - <string name="month_long_standalone_october">октобар</string> - <string name="month_long_standalone_november">новембар</string> - <string name="month_long_standalone_december">децембар</string> - - <string name="month_long_january">јануар</string> - <string name="month_long_february">фебруар</string> - <string name="month_long_march">март</string> - <string name="month_long_april">април</string> - <string name="month_long_may">мај</string> - <string name="month_long_june">јун</string> - <string name="month_long_july">јул</string> - <string name="month_long_august">август</string> - <string name="month_long_september">септембар</string> - <string name="month_long_october">октобар</string> - <string name="month_long_november">новембар</string> - <string name="month_long_december">децембар</string> - - <string name="month_medium_january">јан</string> - <string name="month_medium_february">феб</string> - <string name="month_medium_march">мар</string> - <string name="month_medium_april">апр</string> - <string name="month_medium_may">мај</string> - <string name="month_medium_june">јун</string> - <string name="month_medium_july">јул</string> - <string name="month_medium_august">авг</string> - <string name="month_medium_september">сеп</string> - <string name="month_medium_october">окт</string> - <string name="month_medium_november">нов</string> - <string name="month_medium_december">дец</string> - - <string name="month_shortest_january">ј</string> - <string name="month_shortest_february">ф</string> - <string name="month_shortest_march">м</string> - <string name="month_shortest_april">а</string> - <string name="month_shortest_may">м</string> - <string name="month_shortest_june">ј</string> - <string name="month_shortest_july">ј</string> - <string name="month_shortest_august">а</string> - <string name="month_shortest_september">с</string> - <string name="month_shortest_october">о</string> - <string name="month_shortest_november">н</string> - <string name="month_shortest_december">д</string> - - <string name="day_of_week_long_sunday">недеља</string> - <string name="day_of_week_long_monday">понедељак</string> - <string name="day_of_week_long_tuesday">уторак</string> - <string name="day_of_week_long_wednesday">среда</string> - <string name="day_of_week_long_thursday">четвртак</string> - <string name="day_of_week_long_friday">петак</string> - <string name="day_of_week_long_saturday">субота</string> - - <string name="day_of_week_medium_sunday">нед</string> - <string name="day_of_week_medium_monday">пон</string> - <string name="day_of_week_medium_tuesday">уто</string> - <string name="day_of_week_medium_wednesday">сре</string> - <string name="day_of_week_medium_thursday">чет</string> - <string name="day_of_week_medium_friday">пет</string> - <string name="day_of_week_medium_saturday">суб</string> - - <string name="day_of_week_short_sunday">нед</string> - <string name="day_of_week_short_monday">пон</string> - <string name="day_of_week_short_tuesday">уто</string> - <string name="day_of_week_short_wednesday">сре</string> - <string name="day_of_week_short_thursday">чет</string> - <string name="day_of_week_short_friday">пет</string> - <string name="day_of_week_short_saturday">суб</string> - - <string name="day_of_week_shortest_sunday">н</string> - <string name="day_of_week_shortest_monday">п</string> - <string name="day_of_week_shortest_tuesday">у</string> - <string name="day_of_week_shortest_wednesday">с</string> - <string name="day_of_week_shortest_thursday">ч</string> - <string name="day_of_week_shortest_friday">п</string> - <string name="day_of_week_shortest_saturday">с</string> - - <string name="am">пре подне</string> - <string name="pm">поподне</string> - <string name="yesterday">јуче</string> - <string name="today">данас</string> - <string name="tomorrow">сутра</string> - <string name="hour_minute_24">%H.%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-sr/donottranslate-cldr.xml b/core/res/res/values-sr/donottranslate-cldr.xml index 7426bdcf1e56..7fca1a2862ff 100644 --- a/core/res/res/values-sr/donottranslate-cldr.xml +++ b/core/res/res/values-sr/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">јануар</string> - <string name="month_long_standalone_february">фебруар</string> - <string name="month_long_standalone_march">март</string> - <string name="month_long_standalone_april">април</string> - <string name="month_long_standalone_may">мај</string> - <string name="month_long_standalone_june">јун</string> - <string name="month_long_standalone_july">јул</string> - <string name="month_long_standalone_august">август</string> - <string name="month_long_standalone_september">септембар</string> - <string name="month_long_standalone_october">октобар</string> - <string name="month_long_standalone_november">новембар</string> - <string name="month_long_standalone_december">децембар</string> - - <string name="month_long_january">јануар</string> - <string name="month_long_february">фебруар</string> - <string name="month_long_march">март</string> - <string name="month_long_april">април</string> - <string name="month_long_may">мај</string> - <string name="month_long_june">јун</string> - <string name="month_long_july">јул</string> - <string name="month_long_august">август</string> - <string name="month_long_september">септембар</string> - <string name="month_long_october">октобар</string> - <string name="month_long_november">новембар</string> - <string name="month_long_december">децембар</string> - - <string name="month_medium_january">јан</string> - <string name="month_medium_february">феб</string> - <string name="month_medium_march">мар</string> - <string name="month_medium_april">апр</string> - <string name="month_medium_may">мај</string> - <string name="month_medium_june">јун</string> - <string name="month_medium_july">јул</string> - <string name="month_medium_august">авг</string> - <string name="month_medium_september">сеп</string> - <string name="month_medium_october">окт</string> - <string name="month_medium_november">нов</string> - <string name="month_medium_december">дец</string> - - <string name="month_shortest_january">ј</string> - <string name="month_shortest_february">ф</string> - <string name="month_shortest_march">м</string> - <string name="month_shortest_april">а</string> - <string name="month_shortest_may">м</string> - <string name="month_shortest_june">ј</string> - <string name="month_shortest_july">ј</string> - <string name="month_shortest_august">а</string> - <string name="month_shortest_september">с</string> - <string name="month_shortest_october">о</string> - <string name="month_shortest_november">н</string> - <string name="month_shortest_december">д</string> - - <string name="day_of_week_long_sunday">недеља</string> - <string name="day_of_week_long_monday">понедељак</string> - <string name="day_of_week_long_tuesday">уторак</string> - <string name="day_of_week_long_wednesday">среда</string> - <string name="day_of_week_long_thursday">четвртак</string> - <string name="day_of_week_long_friday">петак</string> - <string name="day_of_week_long_saturday">субота</string> - - <string name="day_of_week_medium_sunday">нед</string> - <string name="day_of_week_medium_monday">пон</string> - <string name="day_of_week_medium_tuesday">уто</string> - <string name="day_of_week_medium_wednesday">сре</string> - <string name="day_of_week_medium_thursday">чет</string> - <string name="day_of_week_medium_friday">пет</string> - <string name="day_of_week_medium_saturday">суб</string> - - <string name="day_of_week_short_sunday">нед</string> - <string name="day_of_week_short_monday">пон</string> - <string name="day_of_week_short_tuesday">уто</string> - <string name="day_of_week_short_wednesday">сре</string> - <string name="day_of_week_short_thursday">чет</string> - <string name="day_of_week_short_friday">пет</string> - <string name="day_of_week_short_saturday">суб</string> - - <string name="day_of_week_shortest_sunday">н</string> - <string name="day_of_week_shortest_monday">п</string> - <string name="day_of_week_shortest_tuesday">у</string> - <string name="day_of_week_shortest_wednesday">с</string> - <string name="day_of_week_shortest_thursday">ч</string> - <string name="day_of_week_shortest_friday">п</string> - <string name="day_of_week_shortest_saturday">с</string> - - <string name="am">пре подне</string> - <string name="pm">поподне</string> - <string name="yesterday">јуче</string> - <string name="today">данас</string> - <string name="tomorrow">сутра</string> - <string name="hour_minute_24">%H.%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-sv/donottranslate-cldr.xml b/core/res/res/values-sv/donottranslate-cldr.xml index 8b7833fba022..64c83f2c426c 100644 --- a/core/res/res/values-sv/donottranslate-cldr.xml +++ b/core/res/res/values-sv/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">januari</string> - <string name="month_long_standalone_february">februari</string> - <string name="month_long_standalone_march">mars</string> - <string name="month_long_standalone_april">april</string> - <string name="month_long_standalone_may">maj</string> - <string name="month_long_standalone_june">juni</string> - <string name="month_long_standalone_july">juli</string> - <string name="month_long_standalone_august">augusti</string> - <string name="month_long_standalone_september">september</string> - <string name="month_long_standalone_october">oktober</string> - <string name="month_long_standalone_november">november</string> - <string name="month_long_standalone_december">december</string> - - <string name="month_long_january">januari</string> - <string name="month_long_february">februari</string> - <string name="month_long_march">mars</string> - <string name="month_long_april">april</string> - <string name="month_long_may">maj</string> - <string name="month_long_june">juni</string> - <string name="month_long_july">juli</string> - <string name="month_long_august">augusti</string> - <string name="month_long_september">september</string> - <string name="month_long_october">oktober</string> - <string name="month_long_november">november</string> - <string name="month_long_december">december</string> - - <string name="month_medium_january">jan</string> - <string name="month_medium_february">feb</string> - <string name="month_medium_march">mar</string> - <string name="month_medium_april">apr</string> - <string name="month_medium_may">maj</string> - <string name="month_medium_june">jun</string> - <string name="month_medium_july">jul</string> - <string name="month_medium_august">aug</string> - <string name="month_medium_september">sep</string> - <string name="month_medium_october">okt</string> - <string name="month_medium_november">nov</string> - <string name="month_medium_december">dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">söndag</string> - <string name="day_of_week_long_monday">måndag</string> - <string name="day_of_week_long_tuesday">tisdag</string> - <string name="day_of_week_long_wednesday">onsdag</string> - <string name="day_of_week_long_thursday">torsdag</string> - <string name="day_of_week_long_friday">fredag</string> - <string name="day_of_week_long_saturday">lördag</string> - - <string name="day_of_week_medium_sunday">sön</string> - <string name="day_of_week_medium_monday">mån</string> - <string name="day_of_week_medium_tuesday">tis</string> - <string name="day_of_week_medium_wednesday">ons</string> - <string name="day_of_week_medium_thursday">tors</string> - <string name="day_of_week_medium_friday">fre</string> - <string name="day_of_week_medium_saturday">lör</string> - - <string name="day_of_week_short_sunday">sön</string> - <string name="day_of_week_short_monday">mån</string> - <string name="day_of_week_short_tuesday">tis</string> - <string name="day_of_week_short_wednesday">ons</string> - <string name="day_of_week_short_thursday">tors</string> - <string name="day_of_week_short_friday">fre</string> - <string name="day_of_week_short_saturday">lör</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">O</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">L</string> - - <string name="am">f.m.</string> - <string name="pm">e.m.</string> - <string name="yesterday">igår</string> - <string name="today">idag</string> - <string name="tomorrow">imorgon</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-sw/donottranslate-cldr.xml b/core/res/res/values-sw/donottranslate-cldr.xml index 2bc07c14266a..a7a5150c6024 100644 --- a/core/res/res/values-sw/donottranslate-cldr.xml +++ b/core/res/res/values-sw/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Januari</string> - <string name="month_long_standalone_february">Februari</string> - <string name="month_long_standalone_march">Machi</string> - <string name="month_long_standalone_april">Aprili</string> - <string name="month_long_standalone_may">Mei</string> - <string name="month_long_standalone_june">Juni</string> - <string name="month_long_standalone_july">Julai</string> - <string name="month_long_standalone_august">Agosti</string> - <string name="month_long_standalone_september">Septemba</string> - <string name="month_long_standalone_october">Oktoba</string> - <string name="month_long_standalone_november">Novemba</string> - <string name="month_long_standalone_december">Desemba</string> - - <string name="month_long_january">Januari</string> - <string name="month_long_february">Februari</string> - <string name="month_long_march">Machi</string> - <string name="month_long_april">Aprili</string> - <string name="month_long_may">Mei</string> - <string name="month_long_june">Juni</string> - <string name="month_long_july">Julai</string> - <string name="month_long_august">Agosti</string> - <string name="month_long_september">Septemba</string> - <string name="month_long_october">Oktoba</string> - <string name="month_long_november">Novemba</string> - <string name="month_long_december">Desemba</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mac</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mei</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Ago</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Des</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Jumapili</string> - <string name="day_of_week_long_monday">Jumatatu</string> - <string name="day_of_week_long_tuesday">Jumanne</string> - <string name="day_of_week_long_wednesday">Jumatano</string> - <string name="day_of_week_long_thursday">Alhamisi</string> - <string name="day_of_week_long_friday">Ijumaa</string> - <string name="day_of_week_long_saturday">Jumamosi</string> - - <string name="day_of_week_medium_sunday">Jpi</string> - <string name="day_of_week_medium_monday">Jtt</string> - <string name="day_of_week_medium_tuesday">Jnn</string> - <string name="day_of_week_medium_wednesday">Jtn</string> - <string name="day_of_week_medium_thursday">Alh</string> - <string name="day_of_week_medium_friday">Iju</string> - <string name="day_of_week_medium_saturday">Jmo</string> - - <string name="day_of_week_short_sunday">Jpi</string> - <string name="day_of_week_short_monday">Jtt</string> - <string name="day_of_week_short_tuesday">Jnn</string> - <string name="day_of_week_short_wednesday">Jtn</string> - <string name="day_of_week_short_thursday">Alh</string> - <string name="day_of_week_short_friday">Iju</string> - <string name="day_of_week_short_saturday">Jmo</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-th-rTH/donottranslate-cldr.xml b/core/res/res/values-th-rTH/donottranslate-cldr.xml index 7049c5291670..2517143547e7 100644 --- a/core/res/res/values-th-rTH/donottranslate-cldr.xml +++ b/core/res/res/values-th-rTH/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">มกราคม</string> - <string name="month_long_standalone_february">กุมภาพันธ์</string> - <string name="month_long_standalone_march">มีนาคม</string> - <string name="month_long_standalone_april">เมษายน</string> - <string name="month_long_standalone_may">พฤษภาคม</string> - <string name="month_long_standalone_june">มิถุนายน</string> - <string name="month_long_standalone_july">กรกฎาคม</string> - <string name="month_long_standalone_august">สิงหาคม</string> - <string name="month_long_standalone_september">กันยายน</string> - <string name="month_long_standalone_october">ตุลาคม</string> - <string name="month_long_standalone_november">พฤศจิกายน</string> - <string name="month_long_standalone_december">ธันวาคม</string> - - <string name="month_long_january">มกราคม</string> - <string name="month_long_february">กุมภาพันธ์</string> - <string name="month_long_march">มีนาคม</string> - <string name="month_long_april">เมษายน</string> - <string name="month_long_may">พฤษภาคม</string> - <string name="month_long_june">มิถุนายน</string> - <string name="month_long_july">กรกฎาคม</string> - <string name="month_long_august">สิงหาคม</string> - <string name="month_long_september">กันยายน</string> - <string name="month_long_october">ตุลาคม</string> - <string name="month_long_november">พฤศจิกายน</string> - <string name="month_long_december">ธันวาคม</string> - - <string name="month_medium_january">ม.ค.</string> - <string name="month_medium_february">ก.พ.</string> - <string name="month_medium_march">มี.ค.</string> - <string name="month_medium_april">เม.ย.</string> - <string name="month_medium_may">พ.ค.</string> - <string name="month_medium_june">มิ.ย.</string> - <string name="month_medium_july">ก.ค.</string> - <string name="month_medium_august">ส.ค.</string> - <string name="month_medium_september">ก.ย.</string> - <string name="month_medium_october">ต.ค.</string> - <string name="month_medium_november">พ.ย.</string> - <string name="month_medium_december">ธ.ค.</string> - - <string name="month_shortest_january">ม.ค.</string> - <string name="month_shortest_february">ก.พ.</string> - <string name="month_shortest_march">มี.ค.</string> - <string name="month_shortest_april">เม.ย.</string> - <string name="month_shortest_may">พ.ค.</string> - <string name="month_shortest_june">มิ.ย.</string> - <string name="month_shortest_july">ก.ค.</string> - <string name="month_shortest_august">ส.ค.</string> - <string name="month_shortest_september">ก.ย.</string> - <string name="month_shortest_october">ต.ค.</string> - <string name="month_shortest_november">พ.ย.</string> - <string name="month_shortest_december">ธ.ค.</string> - - <string name="day_of_week_long_sunday">วันอาทิตย์</string> - <string name="day_of_week_long_monday">วันจันทร์</string> - <string name="day_of_week_long_tuesday">วันอังคาร</string> - <string name="day_of_week_long_wednesday">วันพุธ</string> - <string name="day_of_week_long_thursday">วันพฤหัสบดี</string> - <string name="day_of_week_long_friday">วันศุกร์</string> - <string name="day_of_week_long_saturday">วันเสาร์</string> - - <string name="day_of_week_medium_sunday">อา.</string> - <string name="day_of_week_medium_monday">จ.</string> - <string name="day_of_week_medium_tuesday">อ.</string> - <string name="day_of_week_medium_wednesday">พ.</string> - <string name="day_of_week_medium_thursday">พฤ.</string> - <string name="day_of_week_medium_friday">ศ.</string> - <string name="day_of_week_medium_saturday">ส.</string> - - <string name="day_of_week_short_sunday">อา.</string> - <string name="day_of_week_short_monday">จ.</string> - <string name="day_of_week_short_tuesday">อ.</string> - <string name="day_of_week_short_wednesday">พ.</string> - <string name="day_of_week_short_thursday">พฤ.</string> - <string name="day_of_week_short_friday">ศ.</string> - <string name="day_of_week_short_saturday">ส.</string> - - <string name="day_of_week_shortest_sunday">อ</string> - <string name="day_of_week_shortest_monday">จ</string> - <string name="day_of_week_shortest_tuesday">อ</string> - <string name="day_of_week_shortest_wednesday">พ</string> - <string name="day_of_week_shortest_thursday">พ</string> - <string name="day_of_week_shortest_friday">ศ</string> - <string name="day_of_week_shortest_saturday">ส</string> - - <string name="am">ก่อนเที่ยง</string> - <string name="pm">หลังเที่ยง</string> - <string name="yesterday">เมื่อวาน</string> - <string name="today">วันนี้</string> - <string name="tomorrow">พรุ่งนี้</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-th/donottranslate-cldr.xml b/core/res/res/values-th/donottranslate-cldr.xml index f3196d1277da..7ab41910db4c 100644 --- a/core/res/res/values-th/donottranslate-cldr.xml +++ b/core/res/res/values-th/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">มกราคม</string> - <string name="month_long_standalone_february">กุมภาพันธ์</string> - <string name="month_long_standalone_march">มีนาคม</string> - <string name="month_long_standalone_april">เมษายน</string> - <string name="month_long_standalone_may">พฤษภาคม</string> - <string name="month_long_standalone_june">มิถุนายน</string> - <string name="month_long_standalone_july">กรกฎาคม</string> - <string name="month_long_standalone_august">สิงหาคม</string> - <string name="month_long_standalone_september">กันยายน</string> - <string name="month_long_standalone_october">ตุลาคม</string> - <string name="month_long_standalone_november">พฤศจิกายน</string> - <string name="month_long_standalone_december">ธันวาคม</string> - - <string name="month_long_january">มกราคม</string> - <string name="month_long_february">กุมภาพันธ์</string> - <string name="month_long_march">มีนาคม</string> - <string name="month_long_april">เมษายน</string> - <string name="month_long_may">พฤษภาคม</string> - <string name="month_long_june">มิถุนายน</string> - <string name="month_long_july">กรกฎาคม</string> - <string name="month_long_august">สิงหาคม</string> - <string name="month_long_september">กันยายน</string> - <string name="month_long_october">ตุลาคม</string> - <string name="month_long_november">พฤศจิกายน</string> - <string name="month_long_december">ธันวาคม</string> - - <string name="month_medium_january">ม.ค.</string> - <string name="month_medium_february">ก.พ.</string> - <string name="month_medium_march">มี.ค.</string> - <string name="month_medium_april">เม.ย.</string> - <string name="month_medium_may">พ.ค.</string> - <string name="month_medium_june">มิ.ย.</string> - <string name="month_medium_july">ก.ค.</string> - <string name="month_medium_august">ส.ค.</string> - <string name="month_medium_september">ก.ย.</string> - <string name="month_medium_october">ต.ค.</string> - <string name="month_medium_november">พ.ย.</string> - <string name="month_medium_december">ธ.ค.</string> - - <string name="month_shortest_january">ม.ค.</string> - <string name="month_shortest_february">ก.พ.</string> - <string name="month_shortest_march">มี.ค.</string> - <string name="month_shortest_april">เม.ย.</string> - <string name="month_shortest_may">พ.ค.</string> - <string name="month_shortest_june">มิ.ย.</string> - <string name="month_shortest_july">ก.ค.</string> - <string name="month_shortest_august">ส.ค.</string> - <string name="month_shortest_september">ก.ย.</string> - <string name="month_shortest_october">ต.ค.</string> - <string name="month_shortest_november">พ.ย.</string> - <string name="month_shortest_december">ธ.ค.</string> - - <string name="day_of_week_long_sunday">วันอาทิตย์</string> - <string name="day_of_week_long_monday">วันจันทร์</string> - <string name="day_of_week_long_tuesday">วันอังคาร</string> - <string name="day_of_week_long_wednesday">วันพุธ</string> - <string name="day_of_week_long_thursday">วันพฤหัสบดี</string> - <string name="day_of_week_long_friday">วันศุกร์</string> - <string name="day_of_week_long_saturday">วันเสาร์</string> - - <string name="day_of_week_medium_sunday">อา.</string> - <string name="day_of_week_medium_monday">จ.</string> - <string name="day_of_week_medium_tuesday">อ.</string> - <string name="day_of_week_medium_wednesday">พ.</string> - <string name="day_of_week_medium_thursday">พฤ.</string> - <string name="day_of_week_medium_friday">ศ.</string> - <string name="day_of_week_medium_saturday">ส.</string> - - <string name="day_of_week_short_sunday">อา.</string> - <string name="day_of_week_short_monday">จ.</string> - <string name="day_of_week_short_tuesday">อ.</string> - <string name="day_of_week_short_wednesday">พ.</string> - <string name="day_of_week_short_thursday">พฤ.</string> - <string name="day_of_week_short_friday">ศ.</string> - <string name="day_of_week_short_saturday">ส.</string> - - <string name="day_of_week_shortest_sunday">อ</string> - <string name="day_of_week_shortest_monday">จ</string> - <string name="day_of_week_shortest_tuesday">อ</string> - <string name="day_of_week_shortest_wednesday">พ</string> - <string name="day_of_week_shortest_thursday">พ</string> - <string name="day_of_week_shortest_friday">ศ</string> - <string name="day_of_week_shortest_saturday">ส</string> - - <string name="am">ก่อนเที่ยง</string> - <string name="pm">หลังเที่ยง</string> - <string name="yesterday">เมื่อวาน</string> - <string name="today">วันนี้</string> - <string name="tomorrow">พรุ่งนี้</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-tl/donottranslate-cldr.xml b/core/res/res/values-tl/donottranslate-cldr.xml index 6ff92e3d9e9f..4545fb51ce29 100644 --- a/core/res/res/values-tl/donottranslate-cldr.xml +++ b/core/res/res/values-tl/donottranslate-cldr.xml @@ -1,70 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">1</string> - <string name="month_long_standalone_february">2</string> - <string name="month_long_standalone_march">3</string> - <string name="month_long_standalone_april">4</string> - <string name="month_long_standalone_may">5</string> - <string name="month_long_standalone_june">6</string> - <string name="month_long_standalone_july">7</string> - <string name="month_long_standalone_august">8</string> - <string name="month_long_standalone_september">9</string> - <string name="month_long_standalone_october">10</string> - <string name="month_long_standalone_november">11</string> - <string name="month_long_standalone_december">12</string> - - <string name="month_long_january">1</string> - <string name="month_long_february">2</string> - <string name="month_long_march">3</string> - <string name="month_long_april">4</string> - <string name="month_long_may">5</string> - <string name="month_long_june">6</string> - <string name="month_long_july">7</string> - <string name="month_long_august">8</string> - <string name="month_long_september">9</string> - <string name="month_long_october">10</string> - <string name="month_long_november">11</string> - <string name="month_long_december">12</string> - - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">1</string> - <string name="day_of_week_long_monday">2</string> - <string name="day_of_week_long_tuesday">3</string> - <string name="day_of_week_long_wednesday">4</string> - <string name="day_of_week_long_thursday">5</string> - <string name="day_of_week_long_friday">6</string> - <string name="day_of_week_long_saturday">7</string> - - - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-tr/donottranslate-cldr.xml b/core/res/res/values-tr/donottranslate-cldr.xml index 92b0c72753f5..1ab4ff77862a 100644 --- a/core/res/res/values-tr/donottranslate-cldr.xml +++ b/core/res/res/values-tr/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Ocak</string> - <string name="month_long_standalone_february">Şubat</string> - <string name="month_long_standalone_march">Mart</string> - <string name="month_long_standalone_april">Nisan</string> - <string name="month_long_standalone_may">Mayıs</string> - <string name="month_long_standalone_june">Haziran</string> - <string name="month_long_standalone_july">Temmuz</string> - <string name="month_long_standalone_august">Ağustos</string> - <string name="month_long_standalone_september">Eylül</string> - <string name="month_long_standalone_october">Ekim</string> - <string name="month_long_standalone_november">Kasım</string> - <string name="month_long_standalone_december">Aralık</string> - - <string name="month_long_january">Ocak</string> - <string name="month_long_february">Şubat</string> - <string name="month_long_march">Mart</string> - <string name="month_long_april">Nisan</string> - <string name="month_long_may">Mayıs</string> - <string name="month_long_june">Haziran</string> - <string name="month_long_july">Temmuz</string> - <string name="month_long_august">Ağustos</string> - <string name="month_long_september">Eylül</string> - <string name="month_long_october">Ekim</string> - <string name="month_long_november">Kasım</string> - <string name="month_long_december">Aralık</string> - - <string name="month_medium_january">Oca</string> - <string name="month_medium_february">Şub</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Nis</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Haz</string> - <string name="month_medium_july">Tem</string> - <string name="month_medium_august">Ağu</string> - <string name="month_medium_september">Eyl</string> - <string name="month_medium_october">Eki</string> - <string name="month_medium_november">Kas</string> - <string name="month_medium_december">Ara</string> - - <string name="month_shortest_january">O</string> - <string name="month_shortest_february">Ş</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">N</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">H</string> - <string name="month_shortest_july">T</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">E</string> - <string name="month_shortest_october">E</string> - <string name="month_shortest_november">K</string> - <string name="month_shortest_december">A</string> - - <string name="day_of_week_long_sunday">Pazar</string> - <string name="day_of_week_long_monday">Pazartesi</string> - <string name="day_of_week_long_tuesday">Salı</string> - <string name="day_of_week_long_wednesday">Çarşamba</string> - <string name="day_of_week_long_thursday">Perşembe</string> - <string name="day_of_week_long_friday">Cuma</string> - <string name="day_of_week_long_saturday">Cumartesi</string> - - <string name="day_of_week_medium_sunday">Paz</string> - <string name="day_of_week_medium_monday">Pzt</string> - <string name="day_of_week_medium_tuesday">Sal</string> - <string name="day_of_week_medium_wednesday">Çar</string> - <string name="day_of_week_medium_thursday">Per</string> - <string name="day_of_week_medium_friday">Cum</string> - <string name="day_of_week_medium_saturday">Cmt</string> - - <string name="day_of_week_short_sunday">Paz</string> - <string name="day_of_week_short_monday">Pzt</string> - <string name="day_of_week_short_tuesday">Sal</string> - <string name="day_of_week_short_wednesday">Çar</string> - <string name="day_of_week_short_thursday">Per</string> - <string name="day_of_week_short_friday">Cum</string> - <string name="day_of_week_short_saturday">Cmt</string> - - <string name="day_of_week_shortest_sunday">P</string> - <string name="day_of_week_shortest_monday">P</string> - <string name="day_of_week_shortest_tuesday">S</string> - <string name="day_of_week_shortest_wednesday">Ç</string> - <string name="day_of_week_shortest_thursday">P</string> - <string name="day_of_week_shortest_friday">C</string> - <string name="day_of_week_shortest_saturday">C</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Dün</string> - <string name="today">Bugün</string> - <string name="tomorrow">Yarın</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-uk-rUA/donottranslate-cldr.xml b/core/res/res/values-uk-rUA/donottranslate-cldr.xml index caf46a389bc8..f7ca4588d55f 100644 --- a/core/res/res/values-uk-rUA/donottranslate-cldr.xml +++ b/core/res/res/values-uk-rUA/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">січень</string> - <string name="month_long_standalone_february">лютий</string> - <string name="month_long_standalone_march">березень</string> - <string name="month_long_standalone_april">квітень</string> - <string name="month_long_standalone_may">травень</string> - <string name="month_long_standalone_june">червень</string> - <string name="month_long_standalone_july">липень</string> - <string name="month_long_standalone_august">серпень</string> - <string name="month_long_standalone_september">вересень</string> - <string name="month_long_standalone_october">жовтень</string> - <string name="month_long_standalone_november">листопад</string> - <string name="month_long_standalone_december">грудень</string> - - <string name="month_long_january">січня</string> - <string name="month_long_february">лютого</string> - <string name="month_long_march">березня</string> - <string name="month_long_april">квітня</string> - <string name="month_long_may">травня</string> - <string name="month_long_june">червня</string> - <string name="month_long_july">липня</string> - <string name="month_long_august">серпня</string> - <string name="month_long_september">вересня</string> - <string name="month_long_october">жовтня</string> - <string name="month_long_november">листопада</string> - <string name="month_long_december">грудня</string> - - <string name="month_medium_january">січ.</string> - <string name="month_medium_february">лют.</string> - <string name="month_medium_march">бер.</string> - <string name="month_medium_april">квіт.</string> - <string name="month_medium_may">трав.</string> - <string name="month_medium_june">черв.</string> - <string name="month_medium_july">лип.</string> - <string name="month_medium_august">серп.</string> - <string name="month_medium_september">вер.</string> - <string name="month_medium_october">жовт.</string> - <string name="month_medium_november">лист.</string> - <string name="month_medium_december">груд.</string> - - <string name="month_shortest_january">С</string> - <string name="month_shortest_february">Л</string> - <string name="month_shortest_march">Б</string> - <string name="month_shortest_april">К</string> - <string name="month_shortest_may">Т</string> - <string name="month_shortest_june">Ч</string> - <string name="month_shortest_july">Л</string> - <string name="month_shortest_august">С</string> - <string name="month_shortest_september">В</string> - <string name="month_shortest_october">Ж</string> - <string name="month_shortest_november">Л</string> - <string name="month_shortest_december">Г</string> - - <string name="day_of_week_long_sunday">неділя</string> - <string name="day_of_week_long_monday">понеділок</string> - <string name="day_of_week_long_tuesday">вівторок</string> - <string name="day_of_week_long_wednesday">середа</string> - <string name="day_of_week_long_thursday">четвер</string> - <string name="day_of_week_long_friday">пʼятниця</string> - <string name="day_of_week_long_saturday">субота</string> - - <string name="day_of_week_medium_sunday">нд.</string> - <string name="day_of_week_medium_monday">пн.</string> - <string name="day_of_week_medium_tuesday">вт.</string> - <string name="day_of_week_medium_wednesday">ср.</string> - <string name="day_of_week_medium_thursday">чт.</string> - <string name="day_of_week_medium_friday">пт.</string> - <string name="day_of_week_medium_saturday">сб.</string> - - <string name="day_of_week_short_sunday">нд.</string> - <string name="day_of_week_short_monday">пн.</string> - <string name="day_of_week_short_tuesday">вт.</string> - <string name="day_of_week_short_wednesday">ср.</string> - <string name="day_of_week_short_thursday">чт.</string> - <string name="day_of_week_short_friday">пт.</string> - <string name="day_of_week_short_saturday">сб.</string> - - <string name="day_of_week_shortest_sunday">Н</string> - <string name="day_of_week_shortest_monday">П</string> - <string name="day_of_week_shortest_tuesday">В</string> - <string name="day_of_week_shortest_wednesday">С</string> - <string name="day_of_week_shortest_thursday">Ч</string> - <string name="day_of_week_shortest_friday">П</string> - <string name="day_of_week_shortest_saturday">С</string> - - <string name="am">дп</string> - <string name="pm">пп</string> - <string name="yesterday">Вчора</string> - <string name="today">Сьогодні</string> - <string name="tomorrow">Завтра</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-uk/donottranslate-cldr.xml b/core/res/res/values-uk/donottranslate-cldr.xml index 46211ac2ea95..51c2cb558e60 100644 --- a/core/res/res/values-uk/donottranslate-cldr.xml +++ b/core/res/res/values-uk/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">Січень</string> - <string name="month_long_standalone_february">Лютий</string> - <string name="month_long_standalone_march">Березень</string> - <string name="month_long_standalone_april">Квітень</string> - <string name="month_long_standalone_may">Травень</string> - <string name="month_long_standalone_june">Червень</string> - <string name="month_long_standalone_july">Липень</string> - <string name="month_long_standalone_august">Серпень</string> - <string name="month_long_standalone_september">Вересень</string> - <string name="month_long_standalone_october">Жовтень</string> - <string name="month_long_standalone_november">Листопад</string> - <string name="month_long_standalone_december">Грудень</string> - - <string name="month_long_january">січня</string> - <string name="month_long_february">лютого</string> - <string name="month_long_march">березня</string> - <string name="month_long_april">квітня</string> - <string name="month_long_may">травня</string> - <string name="month_long_june">червня</string> - <string name="month_long_july">липня</string> - <string name="month_long_august">серпня</string> - <string name="month_long_september">вересня</string> - <string name="month_long_october">жовтня</string> - <string name="month_long_november">листопада</string> - <string name="month_long_december">грудня</string> - - <string name="month_medium_january">січ.</string> - <string name="month_medium_february">лют.</string> - <string name="month_medium_march">бер.</string> - <string name="month_medium_april">квіт.</string> - <string name="month_medium_may">трав.</string> - <string name="month_medium_june">черв.</string> - <string name="month_medium_july">лип.</string> - <string name="month_medium_august">серп.</string> - <string name="month_medium_september">вер.</string> - <string name="month_medium_october">жовт.</string> - <string name="month_medium_november">лист.</string> - <string name="month_medium_december">груд.</string> - - <string name="month_shortest_january">С</string> - <string name="month_shortest_february">Л</string> - <string name="month_shortest_march">Б</string> - <string name="month_shortest_april">К</string> - <string name="month_shortest_may">Т</string> - <string name="month_shortest_june">Ч</string> - <string name="month_shortest_july">Л</string> - <string name="month_shortest_august">С</string> - <string name="month_shortest_september">В</string> - <string name="month_shortest_october">Ж</string> - <string name="month_shortest_november">Л</string> - <string name="month_shortest_december">Г</string> - - <string name="day_of_week_long_sunday">Неділя</string> - <string name="day_of_week_long_monday">Понеділок</string> - <string name="day_of_week_long_tuesday">Вівторок</string> - <string name="day_of_week_long_wednesday">Середа</string> - <string name="day_of_week_long_thursday">Четвер</string> - <string name="day_of_week_long_friday">Пʼятниця</string> - <string name="day_of_week_long_saturday">Субота</string> - - <string name="day_of_week_medium_sunday">Нд</string> - <string name="day_of_week_medium_monday">Пн</string> - <string name="day_of_week_medium_tuesday">Вт</string> - <string name="day_of_week_medium_wednesday">Ср</string> - <string name="day_of_week_medium_thursday">Чт</string> - <string name="day_of_week_medium_friday">Пт</string> - <string name="day_of_week_medium_saturday">Сб</string> - - <string name="day_of_week_short_sunday">Нд</string> - <string name="day_of_week_short_monday">Пн</string> - <string name="day_of_week_short_tuesday">Вт</string> - <string name="day_of_week_short_wednesday">Ср</string> - <string name="day_of_week_short_thursday">Чт</string> - <string name="day_of_week_short_friday">Пт</string> - <string name="day_of_week_short_saturday">Сб</string> - - <string name="day_of_week_shortest_sunday">Н</string> - <string name="day_of_week_shortest_monday">П</string> - <string name="day_of_week_shortest_tuesday">В</string> - <string name="day_of_week_shortest_wednesday">С</string> - <string name="day_of_week_shortest_thursday">Ч</string> - <string name="day_of_week_shortest_friday">П</string> - <string name="day_of_week_shortest_saturday">С</string> - - <string name="am">дп</string> - <string name="pm">пп</string> - <string name="yesterday">Вчора</string> - <string name="today">Сьогодні</string> - <string name="tomorrow">Завтра</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %p</string> diff --git a/core/res/res/values-vi-rVN/donottranslate-cldr.xml b/core/res/res/values-vi-rVN/donottranslate-cldr.xml index 5d049a1b72fd..a3850152c26c 100644 --- a/core/res/res/values-vi-rVN/donottranslate-cldr.xml +++ b/core/res/res/values-vi-rVN/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">tháng một</string> - <string name="month_long_standalone_february">tháng hai</string> - <string name="month_long_standalone_march">tháng ba</string> - <string name="month_long_standalone_april">tháng tư</string> - <string name="month_long_standalone_may">tháng năm</string> - <string name="month_long_standalone_june">tháng sáu</string> - <string name="month_long_standalone_july">tháng bảy</string> - <string name="month_long_standalone_august">tháng tám</string> - <string name="month_long_standalone_september">tháng chín</string> - <string name="month_long_standalone_october">tháng mười</string> - <string name="month_long_standalone_november">tháng mười một</string> - <string name="month_long_standalone_december">tháng mười hai</string> - - <string name="month_long_january">tháng một</string> - <string name="month_long_february">tháng hai</string> - <string name="month_long_march">tháng ba</string> - <string name="month_long_april">tháng tư</string> - <string name="month_long_may">tháng năm</string> - <string name="month_long_june">tháng sáu</string> - <string name="month_long_july">tháng bảy</string> - <string name="month_long_august">tháng tám</string> - <string name="month_long_september">tháng chín</string> - <string name="month_long_october">tháng mười</string> - <string name="month_long_november">tháng mười một</string> - <string name="month_long_december">tháng mười hai</string> - - <string name="month_medium_january">thg 1</string> - <string name="month_medium_february">thg 2</string> - <string name="month_medium_march">thg 3</string> - <string name="month_medium_april">thg 4</string> - <string name="month_medium_may">thg 5</string> - <string name="month_medium_june">thg 6</string> - <string name="month_medium_july">thg 7</string> - <string name="month_medium_august">thg 8</string> - <string name="month_medium_september">thg 9</string> - <string name="month_medium_october">thg 10</string> - <string name="month_medium_november">thg 11</string> - <string name="month_medium_december">thg 12</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Chủ nhật</string> - <string name="day_of_week_long_monday">Thứ hai</string> - <string name="day_of_week_long_tuesday">Thứ ba</string> - <string name="day_of_week_long_wednesday">Thứ tư</string> - <string name="day_of_week_long_thursday">Thứ năm</string> - <string name="day_of_week_long_friday">Thứ sáu</string> - <string name="day_of_week_long_saturday">Thứ bảy</string> - - <string name="day_of_week_medium_sunday">CN</string> - <string name="day_of_week_medium_monday">Th 2</string> - <string name="day_of_week_medium_tuesday">Th 3</string> - <string name="day_of_week_medium_wednesday">Th 4</string> - <string name="day_of_week_medium_thursday">Th 5</string> - <string name="day_of_week_medium_friday">Th 6</string> - <string name="day_of_week_medium_saturday">Th 7</string> - - <string name="day_of_week_short_sunday">CN</string> - <string name="day_of_week_short_monday">Th 2</string> - <string name="day_of_week_short_tuesday">Th 3</string> - <string name="day_of_week_short_wednesday">Th 4</string> - <string name="day_of_week_short_thursday">Th 5</string> - <string name="day_of_week_short_friday">Th 6</string> - <string name="day_of_week_short_saturday">Th 7</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">SA</string> - <string name="pm">CH</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-vi/donottranslate-cldr.xml b/core/res/res/values-vi/donottranslate-cldr.xml index 9a757cd5d4dc..977e0211db61 100644 --- a/core/res/res/values-vi/donottranslate-cldr.xml +++ b/core/res/res/values-vi/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">tháng một</string> - <string name="month_long_standalone_february">tháng hai</string> - <string name="month_long_standalone_march">tháng ba</string> - <string name="month_long_standalone_april">tháng tư</string> - <string name="month_long_standalone_may">tháng năm</string> - <string name="month_long_standalone_june">tháng sáu</string> - <string name="month_long_standalone_july">tháng bảy</string> - <string name="month_long_standalone_august">tháng tám</string> - <string name="month_long_standalone_september">tháng chín</string> - <string name="month_long_standalone_october">tháng mười</string> - <string name="month_long_standalone_november">tháng mười một</string> - <string name="month_long_standalone_december">tháng mười hai</string> - - <string name="month_long_january">tháng một</string> - <string name="month_long_february">tháng hai</string> - <string name="month_long_march">tháng ba</string> - <string name="month_long_april">tháng tư</string> - <string name="month_long_may">tháng năm</string> - <string name="month_long_june">tháng sáu</string> - <string name="month_long_july">tháng bảy</string> - <string name="month_long_august">tháng tám</string> - <string name="month_long_september">tháng chín</string> - <string name="month_long_october">tháng mười</string> - <string name="month_long_november">tháng mười một</string> - <string name="month_long_december">tháng mười hai</string> - - <string name="month_medium_january">thg 1</string> - <string name="month_medium_february">thg 2</string> - <string name="month_medium_march">thg 3</string> - <string name="month_medium_april">thg 4</string> - <string name="month_medium_may">thg 5</string> - <string name="month_medium_june">thg 6</string> - <string name="month_medium_july">thg 7</string> - <string name="month_medium_august">thg 8</string> - <string name="month_medium_september">thg 9</string> - <string name="month_medium_october">thg 10</string> - <string name="month_medium_november">thg 11</string> - <string name="month_medium_december">thg 12</string> - - <string name="month_shortest_january">1</string> - <string name="month_shortest_february">2</string> - <string name="month_shortest_march">3</string> - <string name="month_shortest_april">4</string> - <string name="month_shortest_may">5</string> - <string name="month_shortest_june">6</string> - <string name="month_shortest_july">7</string> - <string name="month_shortest_august">8</string> - <string name="month_shortest_september">9</string> - <string name="month_shortest_october">10</string> - <string name="month_shortest_november">11</string> - <string name="month_shortest_december">12</string> - - <string name="day_of_week_long_sunday">Chủ nhật</string> - <string name="day_of_week_long_monday">Thứ hai</string> - <string name="day_of_week_long_tuesday">Thứ ba</string> - <string name="day_of_week_long_wednesday">Thứ tư</string> - <string name="day_of_week_long_thursday">Thứ năm</string> - <string name="day_of_week_long_friday">Thứ sáu</string> - <string name="day_of_week_long_saturday">Thứ bảy</string> - - <string name="day_of_week_medium_sunday">CN</string> - <string name="day_of_week_medium_monday">Th 2</string> - <string name="day_of_week_medium_tuesday">Th 3</string> - <string name="day_of_week_medium_wednesday">Th 4</string> - <string name="day_of_week_medium_thursday">Th 5</string> - <string name="day_of_week_medium_friday">Th 6</string> - <string name="day_of_week_medium_saturday">Th 7</string> - - <string name="day_of_week_short_sunday">CN</string> - <string name="day_of_week_short_monday">Th 2</string> - <string name="day_of_week_short_tuesday">Th 3</string> - <string name="day_of_week_short_wednesday">Th 4</string> - <string name="day_of_week_short_thursday">Th 5</string> - <string name="day_of_week_short_friday">Th 6</string> - <string name="day_of_week_short_saturday">Th 7</string> - - <string name="day_of_week_shortest_sunday">1</string> - <string name="day_of_week_shortest_monday">2</string> - <string name="day_of_week_shortest_tuesday">3</string> - <string name="day_of_week_shortest_wednesday">4</string> - <string name="day_of_week_shortest_thursday">5</string> - <string name="day_of_week_shortest_friday">6</string> - <string name="day_of_week_shortest_saturday">7</string> - - <string name="am">SA</string> - <string name="pm">CH</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values-zh-rCN/donottranslate-cldr.xml b/core/res/res/values-zh-rCN/donottranslate-cldr.xml index 9e6ef1c3fb39..b34b8b3087a9 100644 --- a/core/res/res/values-zh-rCN/donottranslate-cldr.xml +++ b/core/res/res/values-zh-rCN/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">1 月</string> - <string name="month_long_standalone_february">2 月</string> - <string name="month_long_standalone_march">3 月</string> - <string name="month_long_standalone_april">4 月</string> - <string name="month_long_standalone_may">5 月</string> - <string name="month_long_standalone_june">6 月</string> - <string name="month_long_standalone_july">7 月</string> - <string name="month_long_standalone_august">8 月</string> - <string name="month_long_standalone_september">9 月</string> - <string name="month_long_standalone_october">10 月</string> - <string name="month_long_standalone_november">11 月</string> - <string name="month_long_standalone_december">12 月</string> - - <string name="month_long_january">1 月</string> - <string name="month_long_february">2 月</string> - <string name="month_long_march">3 月</string> - <string name="month_long_april">4 月</string> - <string name="month_long_may">5 月</string> - <string name="month_long_june">6 月</string> - <string name="month_long_july">7 月</string> - <string name="month_long_august">8 月</string> - <string name="month_long_september">9 月</string> - <string name="month_long_october">10 月</string> - <string name="month_long_november">11 月</string> - <string name="month_long_december">12 月</string> - - <string name="month_medium_january">1 月</string> - <string name="month_medium_february">2 月</string> - <string name="month_medium_march">3 月</string> - <string name="month_medium_april">4 月</string> - <string name="month_medium_may">5 月</string> - <string name="month_medium_june">6 月</string> - <string name="month_medium_july">7 月</string> - <string name="month_medium_august">8 月</string> - <string name="month_medium_september">9 月</string> - <string name="month_medium_october">10 月</string> - <string name="month_medium_november">11 月</string> - <string name="month_medium_december">12 月</string> - - <string name="month_shortest_january">1 月</string> - <string name="month_shortest_february">2 月</string> - <string name="month_shortest_march">3 月</string> - <string name="month_shortest_april">4 月</string> - <string name="month_shortest_may">5 月</string> - <string name="month_shortest_june">6 月</string> - <string name="month_shortest_july">7 月</string> - <string name="month_shortest_august">8 月</string> - <string name="month_shortest_september">9 月</string> - <string name="month_shortest_october">10 月</string> - <string name="month_shortest_november">11 月</string> - <string name="month_shortest_december">12 月</string> - - <string name="day_of_week_long_sunday">星期日</string> - <string name="day_of_week_long_monday">星期一</string> - <string name="day_of_week_long_tuesday">星期二</string> - <string name="day_of_week_long_wednesday">星期三</string> - <string name="day_of_week_long_thursday">星期四</string> - <string name="day_of_week_long_friday">星期五</string> - <string name="day_of_week_long_saturday">星期六</string> - - <string name="day_of_week_medium_sunday">周日</string> - <string name="day_of_week_medium_monday">周一</string> - <string name="day_of_week_medium_tuesday">周二</string> - <string name="day_of_week_medium_wednesday">周三</string> - <string name="day_of_week_medium_thursday">周四</string> - <string name="day_of_week_medium_friday">周五</string> - <string name="day_of_week_medium_saturday">周六</string> - - <string name="day_of_week_short_sunday">周日</string> - <string name="day_of_week_short_monday">周一</string> - <string name="day_of_week_short_tuesday">周二</string> - <string name="day_of_week_short_wednesday">周三</string> - <string name="day_of_week_short_thursday">周四</string> - <string name="day_of_week_short_friday">周五</string> - <string name="day_of_week_short_saturday">周六</string> - - <string name="day_of_week_shortest_sunday">日</string> - <string name="day_of_week_shortest_monday">一</string> - <string name="day_of_week_shortest_tuesday">二</string> - <string name="day_of_week_shortest_wednesday">三</string> - <string name="day_of_week_shortest_thursday">四</string> - <string name="day_of_week_shortest_friday">五</string> - <string name="day_of_week_shortest_saturday">六</string> - - <string name="am">上午</string> - <string name="pm">下午</string> - <string name="yesterday">昨天</string> - <string name="today">今天</string> - <string name="tomorrow">明天</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%p %-l:%M</string> <string name="hour_minute_cap_ampm">%p %-l:%M</string> diff --git a/core/res/res/values-zh-rTW/donottranslate-cldr.xml b/core/res/res/values-zh-rTW/donottranslate-cldr.xml index 907d82e03a45..869705ecb6ab 100644 --- a/core/res/res/values-zh-rTW/donottranslate-cldr.xml +++ b/core/res/res/values-zh-rTW/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">1 月</string> - <string name="month_long_standalone_february">2 月</string> - <string name="month_long_standalone_march">3 月</string> - <string name="month_long_standalone_april">4 月</string> - <string name="month_long_standalone_may">5 月</string> - <string name="month_long_standalone_june">6 月</string> - <string name="month_long_standalone_july">7 月</string> - <string name="month_long_standalone_august">8 月</string> - <string name="month_long_standalone_september">9 月</string> - <string name="month_long_standalone_october">10 月</string> - <string name="month_long_standalone_november">11 月</string> - <string name="month_long_standalone_december">12 月</string> - - <string name="month_long_january">1 月</string> - <string name="month_long_february">2 月</string> - <string name="month_long_march">3 月</string> - <string name="month_long_april">4 月</string> - <string name="month_long_may">5 月</string> - <string name="month_long_june">6 月</string> - <string name="month_long_july">7 月</string> - <string name="month_long_august">8 月</string> - <string name="month_long_september">9 月</string> - <string name="month_long_october">10 月</string> - <string name="month_long_november">11 月</string> - <string name="month_long_december">12 月</string> - - <string name="month_medium_january">1 月</string> - <string name="month_medium_february">2 月</string> - <string name="month_medium_march">3 月</string> - <string name="month_medium_april">4 月</string> - <string name="month_medium_may">5 月</string> - <string name="month_medium_june">6 月</string> - <string name="month_medium_july">7 月</string> - <string name="month_medium_august">8 月</string> - <string name="month_medium_september">9 月</string> - <string name="month_medium_october">10 月</string> - <string name="month_medium_november">11 月</string> - <string name="month_medium_december">12 月</string> - - <string name="month_shortest_january">1 月</string> - <string name="month_shortest_february">2 月</string> - <string name="month_shortest_march">3 月</string> - <string name="month_shortest_april">4 月</string> - <string name="month_shortest_may">5 月</string> - <string name="month_shortest_june">6 月</string> - <string name="month_shortest_july">7 月</string> - <string name="month_shortest_august">8 月</string> - <string name="month_shortest_september">9 月</string> - <string name="month_shortest_october">10 月</string> - <string name="month_shortest_november">11 月</string> - <string name="month_shortest_december">12 月</string> - - <string name="day_of_week_long_sunday">星期日</string> - <string name="day_of_week_long_monday">星期一</string> - <string name="day_of_week_long_tuesday">星期二</string> - <string name="day_of_week_long_wednesday">星期三</string> - <string name="day_of_week_long_thursday">星期四</string> - <string name="day_of_week_long_friday">星期五</string> - <string name="day_of_week_long_saturday">星期六</string> - - <string name="day_of_week_medium_sunday">週日</string> - <string name="day_of_week_medium_monday">週一</string> - <string name="day_of_week_medium_tuesday">週二</string> - <string name="day_of_week_medium_wednesday">週三</string> - <string name="day_of_week_medium_thursday">週四</string> - <string name="day_of_week_medium_friday">週五</string> - <string name="day_of_week_medium_saturday">週六</string> - - <string name="day_of_week_short_sunday">週日</string> - <string name="day_of_week_short_monday">週一</string> - <string name="day_of_week_short_tuesday">週二</string> - <string name="day_of_week_short_wednesday">週三</string> - <string name="day_of_week_short_thursday">週四</string> - <string name="day_of_week_short_friday">週五</string> - <string name="day_of_week_short_saturday">週六</string> - - <string name="day_of_week_shortest_sunday">日</string> - <string name="day_of_week_shortest_monday">一</string> - <string name="day_of_week_shortest_tuesday">二</string> - <string name="day_of_week_shortest_wednesday">三</string> - <string name="day_of_week_shortest_thursday">四</string> - <string name="day_of_week_shortest_friday">五</string> - <string name="day_of_week_shortest_saturday">六</string> - - <string name="am">上午</string> - <string name="pm">下午</string> - <string name="yesterday">昨天</string> - <string name="today">今天</string> - <string name="tomorrow">明天</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%p %-l:%M</string> <string name="hour_minute_cap_ampm">%p %-l:%M</string> diff --git a/core/res/res/values-zu/donottranslate-cldr.xml b/core/res/res/values-zu/donottranslate-cldr.xml index df578edb8f0d..97b179b1c7ed 100644 --- a/core/res/res/values-zu/donottranslate-cldr.xml +++ b/core/res/res/values-zu/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">uJanuwari</string> - <string name="month_long_standalone_february">uFebruwari</string> - <string name="month_long_standalone_march">uMashi</string> - <string name="month_long_standalone_april">u-Apreli</string> - <string name="month_long_standalone_may">uMeyi</string> - <string name="month_long_standalone_june">uJuni</string> - <string name="month_long_standalone_july">uJulayi</string> - <string name="month_long_standalone_august">uAgasti</string> - <string name="month_long_standalone_september">uSepthemba</string> - <string name="month_long_standalone_october">u-Okthoba</string> - <string name="month_long_standalone_november">uNovemba</string> - <string name="month_long_standalone_december">uDisemba</string> - - <string name="month_long_january">Januwari</string> - <string name="month_long_february">Februwari</string> - <string name="month_long_march">Mashi</string> - <string name="month_long_april">Apreli</string> - <string name="month_long_may">Meyi</string> - <string name="month_long_june">Juni</string> - <string name="month_long_july">Julayi</string> - <string name="month_long_august">Agasti</string> - <string name="month_long_september">Septhemba</string> - <string name="month_long_october">Okthoba</string> - <string name="month_long_november">Novemba</string> - <string name="month_long_december">Disemba</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mas</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">Mey</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aga</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Okt</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dis</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sonto</string> - <string name="day_of_week_long_monday">Msombuluko</string> - <string name="day_of_week_long_tuesday">Lwesibili</string> - <string name="day_of_week_long_wednesday">Lwesithathu</string> - <string name="day_of_week_long_thursday">uLwesine</string> - <string name="day_of_week_long_friday">Lwesihlanu</string> - <string name="day_of_week_long_saturday">Mgqibelo</string> - - <string name="day_of_week_medium_sunday">Son</string> - <string name="day_of_week_medium_monday">Mso</string> - <string name="day_of_week_medium_tuesday">Bil</string> - <string name="day_of_week_medium_wednesday">Tha</string> - <string name="day_of_week_medium_thursday">Sin</string> - <string name="day_of_week_medium_friday">Hla</string> - <string name="day_of_week_medium_saturday">Mgq</string> - - <string name="day_of_week_short_sunday">Son</string> - <string name="day_of_week_short_monday">Mso</string> - <string name="day_of_week_short_tuesday">Bil</string> - <string name="day_of_week_short_wednesday">Tha</string> - <string name="day_of_week_short_thursday">Sin</string> - <string name="day_of_week_short_friday">Hla</string> - <string name="day_of_week_short_saturday">Mgq</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">B</string> - <string name="day_of_week_shortest_wednesday">T</string> - <string name="day_of_week_shortest_thursday">S</string> - <string name="day_of_week_shortest_friday">H</string> - <string name="day_of_week_shortest_saturday">M</string> - - <string name="am">AM</string> - <string name="pm">PM</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%-k:%M</string> <string name="hour_minute_ampm">%-l:%M %p</string> <string name="hour_minute_cap_ampm">%-l:%M %^p</string> diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 4fbe002b4084..3c0c0a7238cc 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -207,6 +207,14 @@ <flag name="personalInfo" value="0x0001" /> </attr> + <!-- Flags indicating more context for a permission. --> + <attr name="permissionFlags"> + <!-- Set to indicate that this permission allows an operation that + may cost the user money. Such permissions may be highlighted + when shown to the user with this additional information. --> + <flag name="costsMoney" value="0x0001" /> + </attr> + <!-- Specified the name of a group that this permission is associated with. The group must have been defined with the {@link android.R.styleable#AndroidManifestPermissionGroup permission-group} tag. --> @@ -894,6 +902,7 @@ <attr name="permissionGroup" /> <attr name="description" /> <attr name="protectionLevel" /> + <attr name="permissionFlags" /> </declare-styleable> <!-- The <code>permission-group</code> tag declares a logical grouping of diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml index 41f902fd5207..eba354b3e07a 100644 --- a/core/res/res/values/colors.xml +++ b/core/res/res/values/colors.xml @@ -18,8 +18,8 @@ */ --> <resources> - <drawable name="screen_background_light">#ffffffff</drawable> - <drawable name="screen_background_dark">#ff000000</drawable> + <drawable name="screen_background_light">#ffffffff</drawable> + <drawable name="screen_background_dark">#ff000000</drawable> <drawable name="status_bar_closed_default_background">#ff000000</drawable> <drawable name="status_bar_opened_default_background">#ff000000</drawable> <drawable name="notification_item_background_color">#ff111111</drawable> @@ -90,7 +90,8 @@ <color name="perms_dangerous_grp_color">#33b5e5</color> <color name="perms_dangerous_perm_color">#33b5e5</color> <color name="shadow">#cc222222</color> - + <color name="perms_costs_money">#ffffb060</color> + <!-- For search-related UIs --> <color name="search_url_text_normal">#7fa87f</color> <color name="search_url_text_selected">@android:color/black</color> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 789548925779..1a9a0a914bd2 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -925,4 +925,22 @@ <!-- Maximum number of supported users --> <integer name="config_multiuserMaximumUsers">1</integer> + + <!-- Minimum span needed to begin a touch scaling gesture. + If the span is equal to or greater than this size, a scaling gesture + will begin, where supported. (See android.view.ScaleGestureDetector) + + This also takes into account the size of any active touch points. + Devices with screens that deviate too far from their assigned density + bucket should consider tuning this value in a device-specific overlay. + For best results, care should be taken such that this value remains + larger than the minimum reported touchMajor/touchMinor values + reported by the hardware. --> + <dimen name="config_minScalingSpan">25mm</dimen> + + <!-- Safe headphone volume index. When music stream volume is below this index + the SPL on headphone output is compliant to EN 60950 requirements for portable music + players. --> + <integer name="config_safe_media_volume_index">10</integer> + </resources> diff --git a/core/res/res/values/donottranslate-cldr.xml b/core/res/res/values/donottranslate-cldr.xml index 15fcd8be989c..0587c165027e 100644 --- a/core/res/res/values/donottranslate-cldr.xml +++ b/core/res/res/values/donottranslate-cldr.xml @@ -1,96 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="month_long_standalone_january">January</string> - <string name="month_long_standalone_february">February</string> - <string name="month_long_standalone_march">March</string> - <string name="month_long_standalone_april">April</string> - <string name="month_long_standalone_may">May</string> - <string name="month_long_standalone_june">June</string> - <string name="month_long_standalone_july">July</string> - <string name="month_long_standalone_august">August</string> - <string name="month_long_standalone_september">September</string> - <string name="month_long_standalone_october">October</string> - <string name="month_long_standalone_november">November</string> - <string name="month_long_standalone_december">December</string> - - <string name="month_long_january">January</string> - <string name="month_long_february">February</string> - <string name="month_long_march">March</string> - <string name="month_long_april">April</string> - <string name="month_long_may">May</string> - <string name="month_long_june">June</string> - <string name="month_long_july">July</string> - <string name="month_long_august">August</string> - <string name="month_long_september">September</string> - <string name="month_long_october">October</string> - <string name="month_long_november">November</string> - <string name="month_long_december">December</string> - - <string name="month_medium_january">Jan</string> - <string name="month_medium_february">Feb</string> - <string name="month_medium_march">Mar</string> - <string name="month_medium_april">Apr</string> - <string name="month_medium_may">May</string> - <string name="month_medium_june">Jun</string> - <string name="month_medium_july">Jul</string> - <string name="month_medium_august">Aug</string> - <string name="month_medium_september">Sep</string> - <string name="month_medium_october">Oct</string> - <string name="month_medium_november">Nov</string> - <string name="month_medium_december">Dec</string> - - <string name="month_shortest_january">J</string> - <string name="month_shortest_february">F</string> - <string name="month_shortest_march">M</string> - <string name="month_shortest_april">A</string> - <string name="month_shortest_may">M</string> - <string name="month_shortest_june">J</string> - <string name="month_shortest_july">J</string> - <string name="month_shortest_august">A</string> - <string name="month_shortest_september">S</string> - <string name="month_shortest_october">O</string> - <string name="month_shortest_november">N</string> - <string name="month_shortest_december">D</string> - - <string name="day_of_week_long_sunday">Sunday</string> - <string name="day_of_week_long_monday">Monday</string> - <string name="day_of_week_long_tuesday">Tuesday</string> - <string name="day_of_week_long_wednesday">Wednesday</string> - <string name="day_of_week_long_thursday">Thursday</string> - <string name="day_of_week_long_friday">Friday</string> - <string name="day_of_week_long_saturday">Saturday</string> - - <string name="day_of_week_medium_sunday">Sun</string> - <string name="day_of_week_medium_monday">Mon</string> - <string name="day_of_week_medium_tuesday">Tue</string> - <string name="day_of_week_medium_wednesday">Wed</string> - <string name="day_of_week_medium_thursday">Thu</string> - <string name="day_of_week_medium_friday">Fri</string> - <string name="day_of_week_medium_saturday">Sat</string> - - <string name="day_of_week_short_sunday">Su</string> - <string name="day_of_week_short_monday">Mo</string> - <string name="day_of_week_short_tuesday">Tu</string> - <string name="day_of_week_short_wednesday">We</string> - <string name="day_of_week_short_thursday">Th</string> - <string name="day_of_week_short_friday">Fr</string> - <string name="day_of_week_short_saturday">Sa</string> - - <string name="day_of_week_shortest_sunday">S</string> - <string name="day_of_week_shortest_monday">M</string> - <string name="day_of_week_shortest_tuesday">T</string> - <string name="day_of_week_shortest_wednesday">W</string> - <string name="day_of_week_shortest_thursday">T</string> - <string name="day_of_week_shortest_friday">F</string> - <string name="day_of_week_shortest_saturday">S</string> - - <string name="am">am</string> - <string name="pm">pm</string> - <string name="yesterday">Yesterday</string> - <string name="today">Today</string> - <string name="tomorrow">Tomorrow</string> - <string name="hour_minute_24">%H:%M</string> <string name="hour_minute_ampm">%-l:%M%p</string> <string name="hour_minute_cap_ampm">%-l:%M%^p</string> diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 7dc19bf96a8e..f28fab1ae6de 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -2017,5 +2017,6 @@ <public type="attr" name="widgetCategory" /> <public type="attr" name="permissionGroupFlags" /> <public type="attr" name="labelFor" /> - + <public type="attr" name="permissionFlags" /> + </resources> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 1950d845d05e..56e5ce1aa804 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -424,11 +424,6 @@ <string name="permgroupdesc_bluetoothNetwork">Access devices and networks through Bluetooth.</string> <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgrouplab_shortrangeNetwork">Short-range Networks</string> - <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgroupdesc_shortrangeNetwork">Access devices through short-range networks such as NFC.</string> - - <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgrouplab_audioSettings">Audio Settings</string> <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgroupdesc_audioSettings">Change audio settings.</string> @@ -827,10 +822,17 @@ to control whether activities are always finished as soon as they go to the background. Never needed for normal apps.</string> - <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_batteryStats">modify battery statistics</string> - <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_batteryStats">Allows the app to modify + <!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> + <string name="permlab_batteryStats">read battery statistics</string> + <!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> + <string name="permdesc_batteryStats">Allows an application to read the current low-level + battery use data. May allow the application to find out detailed information about + which apps you use.</string> + + <!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> + <string name="permlab_updateBatteryStats">modify battery statistics</string> + <!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> + <string name="permdesc_updateBatteryStats">Allows the app to modify collected battery statistics. Not for use by normal apps.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> @@ -853,9 +855,10 @@ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_systemAlertWindow">draw over other apps</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_systemAlertWindow">Allows the app to show system - alert windows. Some alert windows may take over the entire screen. - </string> + <string name="permdesc_systemAlertWindow">Allows the app to draw on top of other + applications or parts of the user interface. They may interfere with your + use of the interface in any application, or change what you think you are + seeing in other applications.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_setAnimationScale">modify global animation speed</string> @@ -1000,12 +1003,12 @@ <string name="permlab_clearAppCache">delete all app cache data</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_clearAppCache" product="tablet">Allows the app to free tablet storage - by deleting files in app cache directory. Access is very - restricted usually to system process.</string> + by deleting files in the cache directories of other applications. This may cause other + applications to start up more slowly as they need to re-retrieve their data.</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_clearAppCache" product="default">Allows the app to free phone storage - by deleting files in app cache directory. Access is very - restricted usually to system process.</string> + by deleting files in the cache directories of other applications. This may cause other + applications to start up more slowly as they need to re-retrieve their data.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_movePackage">move app resources</string> @@ -1255,26 +1258,26 @@ such as GPS or location providers.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_accessFineLocation">precise (GPS) location</string> - <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_accessFineLocation" product="tablet">Access precise - location sources such as the Global Positioning System on the tablet. When - location services are available and turned on, this permission allows the - app to determine your precise location.</string> + <string name="permlab_accessFineLocation">precise location (GPS and + network-based)</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_accessFineLocation" product="default">Access precise - location sources such as the Global Positioning System on the phone. When - location services are available and turned on, this permission allows the - app to determine your precise location.</string> + <string name="permdesc_accessFineLocation">Allows the app to get your + precise location using the Global Positioning System (GPS) or network + location sources such as cell towers and Wi-Fi. These location services + must be turned on and available to your device for the app to use them. + Apps may use this to determine where you are, and may consume additional + battery power.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_accessCoarseLocation">approximate (network-based) location</string> + <string name="permlab_accessCoarseLocation">approximate location + (network-based)</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_accessCoarseLocation">Access - approximate location from location providers using network sources such as - cell tower and Wi-Fi. When these location services are available and turned - on, this permission allows the app to determine your approximate - location.</string> + <string name="permdesc_accessCoarseLocation">Allows the app to get your + approximate location. This location is derived by location services using + network location sources such as cell towers and Wi-Fi. These location + services must be turned on and available to your device for the app to + use them. Apps may use this to determine approximately where you + are.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_accessSurfaceFlinger">access SurfaceFlinger</string> @@ -1632,7 +1635,7 @@ <string name="permdesc_bluetoothAdmin" product="default">Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.</string> - <string name="permlab_accessWimaxState">View WiMAX connections</string> + <string name="permlab_accessWimaxState">connect and disconnect from WiMAX</string> <string name="permdesc_accessWimaxState">Allows the app to determine whether WiMAX is enabled and information about any WiMAX networks that are connected. </string> @@ -1701,7 +1704,7 @@ names and phrases that the user may have stored in the user dictionary.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_writeDictionary">write to user-defined dictionary</string> + <string name="permlab_writeDictionary">add words to user-defined dictionary</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_writeDictionary">Allows the app to write new words into the user dictionary.</string> @@ -3089,20 +3092,22 @@ <string name="sms_control_no">Deny</string> <!-- SMS short code verification dialog. --> <skip /> - <!-- The dialog title for the SMS short code confirmation dialog. [CHAR LIMIT=30] --> - <string name="sms_short_code_confirm_title">Send SMS to short code?</string> - <!-- The dialog title for the SMS premium short code confirmation dialog. [CHAR LIMIT=30] --> - <string name="sms_premium_short_code_confirm_title">Send premium SMS?</string> <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] --> - <string name="sms_short_code_confirm_message"><b><xliff:g id="app_name">%1$s</xliff:g></b> would like to send a text message to <b><xliff:g id="dest_address">%2$s</xliff:g></b>, which appears to be an SMS short code.<p>Sending text messages to some short codes may cause your mobile account to be billed for premium services.<p>Do you want to allow this app to send the message?</string> - <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] --> - <string name="sms_premium_short_code_confirm_message"><b><xliff:g id="app_name">%1$s</xliff:g></b> would like to send a text message to <b><xliff:g id="dest_address">%2$s</xliff:g></b>, which is a premium SMS short code.<p><b>Sending a message to this destination will cause your mobile account to be billed for premium services.</b><p>Do you want to allow this app to send the message?</string> - <!-- Text of the approval button for the SMS short code confirmation dialog. [CHAR LIMIT=50] --> - <string name="sms_short_code_confirm_allow">Send message</string> + <string name="sms_short_code_confirm_message"><b><xliff:g id="app_name">%1$s</xliff:g></b> would like to send a message to <b><xliff:g id="dest_address">%2$s</xliff:g></b>.</string> + <!-- Message details for the SMS short code confirmation dialog (possible premium short code). [CHAR LIMIT=NONE] --> + <string name="sms_short_code_details">This may cause charges on your mobile account.</string> + <!-- Message details for the SMS short code confirmation dialog (premium short code). [CHAR LIMIT=NONE] --> + <string name="sms_premium_short_code_details">This will cause charges on your mobile account.</string> + <!-- Text of the approval button for the SMS short code confirmation dialog. [CHAR LIMIT=30] --> + <string name="sms_short_code_confirm_allow">Send</string> <!-- Text of the cancel button for the SMS short code confirmation dialog. [CHAR LIMIT=30] --> - <string name="sms_short_code_confirm_deny">Don\'t send</string> - <!-- Text of the button for the SMS short code confirmation dialog to report a malicious app. [CHAR LIMIT=30] --> - <string name="sms_short_code_confirm_report">Report malicious app</string> + <string name="sms_short_code_confirm_deny">Cancel</string> + <!-- Text of the checkbox for the SMS short code confirmation dialog to remember the user's choice. [CHAR LIMIT=40] --> + <string name="sms_short_code_remember_choice">Remember my choice</string> + <!-- Text of the approval button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] --> + <string name="sms_short_code_confirm_always_allow">Always Allow</string> + <!-- Text of the cancel button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] --> + <string name="sms_short_code_confirm_never_allow">Never Allow</string> <!-- SIM swap and device reboot Dialog --> <skip /> <!-- See SIM_REMOVED_DIALOG. This is the title of that dialog. --> @@ -3136,6 +3141,8 @@ <string name="perms_description_app">Provided by <xliff:g id="app_name">%1$s</xliff:g>.</string> <!-- Shown for an application when it doesn't require any permission grants. --> <string name="no_permissions">No permissions required</string> + <!-- [CHAR LIMIT=NONE] Additional text in permission description for perms that can cost money. --> + <string name="perm_costs_money">this may cost you money</string> <!-- USB storage dialog strings --> <!-- This is the title for the activity's window. --> @@ -3880,6 +3887,12 @@ Try again in <xliff:g id="number">%d</xliff:g> seconds. </string> + <!-- Message shown in dialog when user is attempting to set the music volume above the + recommended maximum level for headphones --> + <string name="safe_media_volume_warning" product="default"> + "Raise volume above the recommended level?" + </string> + <string name="kg_temp_back_string"> < </string> <!-- TODO: remove this --> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 505f3a486a4a..eb56d08f7407 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -211,6 +211,10 @@ <java-symbol type="id" name="status_bar_latest_event_content" /> <java-symbol type="id" name="action_divider" /> <java-symbol type="id" name="overflow_divider" /> + <java-symbol type="id" name="sms_short_code_confirm_message" /> + <java-symbol type="id" name="sms_short_code_detail_layout" /> + <java-symbol type="id" name="sms_short_code_detail_message" /> + <java-symbol type="id" name="sms_short_code_remember_choice_checkbox" /> <java-symbol type="attr" name="actionModeShareDrawable" /> <java-symbol type="attr" name="alertDialogCenterButtons" /> @@ -279,6 +283,7 @@ <java-symbol type="integer" name="config_soundEffectVolumeDb" /> <java-symbol type="integer" name="config_lockSoundVolumeDb" /> <java-symbol type="integer" name="config_multiuserMaximumUsers" /> + <java-symbol type="integer" name="config_safe_media_volume_index" /> <java-symbol type="color" name="tab_indicator_text_v4" /> @@ -353,7 +358,6 @@ <java-symbol type="string" name="activitychooserview_choose_application" /> <java-symbol type="string" name="alternate_eri_file" /> <java-symbol type="string" name="alwaysUse" /> - <java-symbol type="string" name="am" /> <java-symbol type="string" name="autofill_address_line_1_label_re" /> <java-symbol type="string" name="autofill_address_line_1_re" /> <java-symbol type="string" name="autofill_address_line_2_re" /> @@ -443,34 +447,6 @@ <java-symbol type="string" name="date_time" /> <java-symbol type="string" name="date_time_set" /> <java-symbol type="string" name="date_time_done" /> - <java-symbol type="string" name="day_of_week_long_friday" /> - <java-symbol type="string" name="day_of_week_long_monday" /> - <java-symbol type="string" name="day_of_week_long_saturday" /> - <java-symbol type="string" name="day_of_week_long_sunday" /> - <java-symbol type="string" name="day_of_week_long_thursday" /> - <java-symbol type="string" name="day_of_week_long_tuesday" /> - <java-symbol type="string" name="day_of_week_long_wednesday" /> - <java-symbol type="string" name="day_of_week_medium_friday" /> - <java-symbol type="string" name="day_of_week_medium_monday" /> - <java-symbol type="string" name="day_of_week_medium_saturday" /> - <java-symbol type="string" name="day_of_week_medium_sunday" /> - <java-symbol type="string" name="day_of_week_medium_thursday" /> - <java-symbol type="string" name="day_of_week_medium_tuesday" /> - <java-symbol type="string" name="day_of_week_medium_wednesday" /> - <java-symbol type="string" name="day_of_week_short_friday" /> - <java-symbol type="string" name="day_of_week_short_monday" /> - <java-symbol type="string" name="day_of_week_short_saturday" /> - <java-symbol type="string" name="day_of_week_short_sunday" /> - <java-symbol type="string" name="day_of_week_short_thursday" /> - <java-symbol type="string" name="day_of_week_short_tuesday" /> - <java-symbol type="string" name="day_of_week_short_wednesday" /> - <java-symbol type="string" name="day_of_week_shortest_friday" /> - <java-symbol type="string" name="day_of_week_shortest_monday" /> - <java-symbol type="string" name="day_of_week_shortest_saturday" /> - <java-symbol type="string" name="day_of_week_shortest_sunday" /> - <java-symbol type="string" name="day_of_week_shortest_thursday" /> - <java-symbol type="string" name="day_of_week_shortest_tuesday" /> - <java-symbol type="string" name="day_of_week_shortest_wednesday" /> <java-symbol type="string" name="db_default_journal_mode" /> <java-symbol type="string" name="db_default_sync_mode" /> <java-symbol type="string" name="db_wal_sync_mode" /> @@ -589,54 +565,6 @@ <java-symbol type="string" name="month" /> <java-symbol type="string" name="month_day" /> <java-symbol type="string" name="month_day_year" /> - <java-symbol type="string" name="month_long_april" /> - <java-symbol type="string" name="month_long_august" /> - <java-symbol type="string" name="month_long_december" /> - <java-symbol type="string" name="month_long_february" /> - <java-symbol type="string" name="month_long_january" /> - <java-symbol type="string" name="month_long_july" /> - <java-symbol type="string" name="month_long_june" /> - <java-symbol type="string" name="month_long_march" /> - <java-symbol type="string" name="month_long_may" /> - <java-symbol type="string" name="month_long_november" /> - <java-symbol type="string" name="month_long_october" /> - <java-symbol type="string" name="month_long_september" /> - <java-symbol type="string" name="month_long_standalone_april" /> - <java-symbol type="string" name="month_long_standalone_august" /> - <java-symbol type="string" name="month_long_standalone_december" /> - <java-symbol type="string" name="month_long_standalone_february" /> - <java-symbol type="string" name="month_long_standalone_january" /> - <java-symbol type="string" name="month_long_standalone_july" /> - <java-symbol type="string" name="month_long_standalone_june" /> - <java-symbol type="string" name="month_long_standalone_march" /> - <java-symbol type="string" name="month_long_standalone_may" /> - <java-symbol type="string" name="month_long_standalone_november" /> - <java-symbol type="string" name="month_long_standalone_october" /> - <java-symbol type="string" name="month_long_standalone_september" /> - <java-symbol type="string" name="month_medium_april" /> - <java-symbol type="string" name="month_medium_august" /> - <java-symbol type="string" name="month_medium_december" /> - <java-symbol type="string" name="month_medium_february" /> - <java-symbol type="string" name="month_medium_january" /> - <java-symbol type="string" name="month_medium_july" /> - <java-symbol type="string" name="month_medium_june" /> - <java-symbol type="string" name="month_medium_march" /> - <java-symbol type="string" name="month_medium_may" /> - <java-symbol type="string" name="month_medium_november" /> - <java-symbol type="string" name="month_medium_october" /> - <java-symbol type="string" name="month_medium_september" /> - <java-symbol type="string" name="month_shortest_april" /> - <java-symbol type="string" name="month_shortest_august" /> - <java-symbol type="string" name="month_shortest_december" /> - <java-symbol type="string" name="month_shortest_february" /> - <java-symbol type="string" name="month_shortest_january" /> - <java-symbol type="string" name="month_shortest_july" /> - <java-symbol type="string" name="month_shortest_june" /> - <java-symbol type="string" name="month_shortest_march" /> - <java-symbol type="string" name="month_shortest_may" /> - <java-symbol type="string" name="month_shortest_november" /> - <java-symbol type="string" name="month_shortest_october" /> - <java-symbol type="string" name="month_shortest_september" /> <java-symbol type="string" name="month_year" /> <java-symbol type="string" name="more_item_label" /> <java-symbol type="string" name="needPuk" /> @@ -692,7 +620,6 @@ <java-symbol type="string" name="phoneTypeWork" /> <java-symbol type="string" name="phoneTypeWorkMobile" /> <java-symbol type="string" name="phoneTypeWorkPager" /> - <java-symbol type="string" name="pm" /> <java-symbol type="string" name="policydesc_disableCamera" /> <java-symbol type="string" name="policydesc_encryptedStorage" /> <java-symbol type="string" name="policydesc_expirePassword" /> @@ -817,13 +744,13 @@ <java-symbol type="string" name="sms_control_title" /> <java-symbol type="string" name="sms_control_no" /> <java-symbol type="string" name="sms_control_yes" /> - <java-symbol type="string" name="sms_premium_short_code_confirm_message" /> - <java-symbol type="string" name="sms_premium_short_code_confirm_title" /> <java-symbol type="string" name="sms_short_code_confirm_allow" /> <java-symbol type="string" name="sms_short_code_confirm_deny" /> + <java-symbol type="string" name="sms_short_code_confirm_always_allow" /> + <java-symbol type="string" name="sms_short_code_confirm_never_allow" /> <java-symbol type="string" name="sms_short_code_confirm_message" /> - <java-symbol type="string" name="sms_short_code_confirm_report" /> - <java-symbol type="string" name="sms_short_code_confirm_title" /> + <java-symbol type="string" name="sms_short_code_details" /> + <java-symbol type="string" name="sms_premium_short_code_details" /> <java-symbol type="string" name="submit" /> <java-symbol type="string" name="sync_binding_label" /> <java-symbol type="string" name="sync_do_nothing" /> @@ -845,8 +772,6 @@ <java-symbol type="string" name="time_picker_separator" /> <java-symbol type="string" name="time_wday" /> <java-symbol type="string" name="time_wday_date" /> - <java-symbol type="string" name="today" /> - <java-symbol type="string" name="tomorrow" /> <java-symbol type="string" name="twelve_hour_time_format" /> <java-symbol type="string" name="twenty_four_hour_time_format" /> <java-symbol type="string" name="upload_file" /> @@ -879,7 +804,6 @@ <java-symbol type="string" name="wifi_tether_configure_ssid_default" /> <java-symbol type="string" name="wifi_watchdog_network_disabled" /> <java-symbol type="string" name="wifi_watchdog_network_disabled_detailed" /> - <java-symbol type="string" name="yesterday" /> <java-symbol type="string" name="imei" /> <java-symbol type="string" name="meid" /> <java-symbol type="string" name="granularity_label_character" /> @@ -891,6 +815,7 @@ <java-symbol type="string" name="default_audio_route_name_dock_speakers" /> <java-symbol type="string" name="default_audio_route_name_hdmi" /> <java-symbol type="string" name="default_audio_route_category_name" /> + <java-symbol type="string" name="safe_media_volume_warning" /> <java-symbol type="plurals" name="abbrev_in_num_days" /> <java-symbol type="plurals" name="abbrev_in_num_hours" /> @@ -1068,6 +993,7 @@ <java-symbol type="layout" name="alert_dialog_progress" /> <java-symbol type="layout" name="always_use_checkbox" /> <java-symbol type="layout" name="app_permission_item" /> + <java-symbol type="layout" name="app_permission_item_money" /> <java-symbol type="layout" name="app_permission_item_old" /> <java-symbol type="layout" name="app_perms_summary" /> <java-symbol type="layout" name="calendar_view" /> @@ -1132,6 +1058,7 @@ <java-symbol type="layout" name="notification_template_inbox" /> <java-symbol type="layout" name="keyguard_multi_user_avatar" /> <java-symbol type="layout" name="keyguard_multi_user_selector_widget" /> + <java-symbol type="layout" name="sms_short_code_confirmation_dialog" /> <java-symbol type="anim" name="slide_in_child_bottom" /> <java-symbol type="anim" name="slide_in_right" /> @@ -1193,6 +1120,8 @@ <java-symbol type="layout" name="media_route_list_item_collapse_group" /> <java-symbol type="string" name="bluetooth_a2dp_audio_route_name" /> + <java-symbol type="dimen" name="config_minScalingSpan" /> + <!-- From android.policy --> <java-symbol type="anim" name="app_starting_exit" /> <java-symbol type="anim" name="lock_screen_behind_enter" /> @@ -1334,10 +1263,9 @@ <java-symbol type="id" name="pin_delete_button" /> <java-symbol type="id" name="keyguard_user_avatar" /> <java-symbol type="id" name="keyguard_user_name" /> - <java-symbol type="id" name="keyguard_active_user" /> - <java-symbol type="id" name="keyguard_inactive_users" /> <java-symbol type="id" name="keyguard_transport_control" /> <java-symbol type="id" name="keyguard_status_view" /> + <java-symbol type="id" name="keyguard_users_grid" /> <java-symbol type="integer" name="config_carDockRotation" /> <java-symbol type="integer" name="config_defaultUiModeType" /> <java-symbol type="integer" name="config_deskDockRotation" /> diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml index dcd1bab37c05..41f8536d5244 100644 --- a/core/tests/coretests/AndroidManifest.xml +++ b/core/tests/coretests/AndroidManifest.xml @@ -69,6 +69,10 @@ <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" /> <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.ALL_SERVICES" /> + <uses-permission android:name="android.permission.MANAGE_USERS" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> + <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> diff --git a/core/tests/coretests/apks/install_bad_dex/Android.mk b/core/tests/coretests/apks/install_bad_dex/Android.mk new file mode 100644 index 000000000000..769a1b0a7cab --- /dev/null +++ b/core/tests/coretests/apks/install_bad_dex/Android.mk @@ -0,0 +1,10 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_PACKAGE_NAME := install_bad_dex + +LOCAL_JAVA_RESOURCE_FILES := $(LOCAL_PATH)/classes.dex + +include $(FrameworkCoreTests_BUILD_PACKAGE) diff --git a/core/tests/coretests/apks/install_bad_dex/AndroidManifest.xml b/core/tests/coretests/apks/install_bad_dex/AndroidManifest.xml new file mode 100644 index 000000000000..fe4dd8e803bf --- /dev/null +++ b/core/tests/coretests/apks/install_bad_dex/AndroidManifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.frameworks.coretests.install_loc"> + + <application android:hasCode="true"> + <activity + android:name="com.android.frameworks.coretests.TestActivity"> + </activity> + </application> +</manifest> diff --git a/core/tests/coretests/apks/install_bad_dex/classes.dex b/core/tests/coretests/apks/install_bad_dex/classes.dex new file mode 100644 index 000000000000..284b6d400e15 --- /dev/null +++ b/core/tests/coretests/apks/install_bad_dex/classes.dex @@ -0,0 +1 @@ +This is a bad dex diff --git a/core/tests/coretests/apks/install_bad_dex/res/values/strings.xml b/core/tests/coretests/apks/install_bad_dex/res/values/strings.xml new file mode 100644 index 000000000000..3b8b3b1af9b5 --- /dev/null +++ b/core/tests/coretests/apks/install_bad_dex/res/values/strings.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- Just need this dummy file to have something to build. --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="dummy">dummy</string> +</resources> diff --git a/core/tests/coretests/apks/install_bad_dex/src/com/android/frameworks/coretests/TestActivity.java b/core/tests/coretests/apks/install_bad_dex/src/com/android/frameworks/coretests/TestActivity.java new file mode 100644 index 000000000000..10d0551a3a6f --- /dev/null +++ b/core/tests/coretests/apks/install_bad_dex/src/com/android/frameworks/coretests/TestActivity.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2011 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.frameworks.coretests; + +import android.app.Activity; + +public class TestActivity extends Activity { + +} diff --git a/core/tests/coretests/apks/install_jni_lib/Android.mk b/core/tests/coretests/apks/install_jni_lib/Android.mk index de2993a788da..b61ea8edda71 100644 --- a/core/tests/coretests/apks/install_jni_lib/Android.mk +++ b/core/tests/coretests/apks/install_jni_lib/Android.mk @@ -23,6 +23,6 @@ LOCAL_SHARED_LIBRARIES := \ libnativehelper LOCAL_MODULE := libframeworks_coretests_jni -LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_TAGS := tests include $(BUILD_SHARED_LIBRARY) diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index 785842f583da..5881aa1f1bc8 100755 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java @@ -39,6 +39,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.StatFs; import android.os.SystemClock; +import android.os.UserManager; import android.os.storage.IMountService; import android.os.storage.StorageListener; import android.os.storage.StorageManager; @@ -562,6 +563,14 @@ public class PackageManagerTests extends AndroidTestCase { fail(pkgName + " shouldnt be installed"); } catch (NameNotFoundException e) { } + + UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + List<UserInfo> users = um.getUsers(); + for (UserInfo user : users) { + String dataDir = PackageManager.getDataDirForUser(user.id, pkgName); + assertFalse("Application data directory should not exist: " + dataDir, + new File(dataDir).exists()); + } } class InstallParams { @@ -707,9 +716,7 @@ public class PackageManagerTests extends AndroidTestCase { PackageManager.GET_UNINSTALLED_PACKAGES); GenericReceiver receiver = new DeleteReceiver(pkg.packageName); invokeDeletePackage(pkg.packageName, 0, receiver); - } catch (NameNotFoundException e1) { - } catch (Exception e) { - failStr(e); + } catch (NameNotFoundException e) { } } try { @@ -3476,6 +3483,12 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull("signatures should not be null", packageInfo.signatures); } + public void testInstall_BadDex_CleanUp() throws Exception { + int retCode = PackageManager.INSTALL_FAILED_DEXOPT; + installFromRawResource("install.apk", R.raw.install_bad_dex, 0, true, true, retCode, + PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + /*---------- Recommended install location tests ----*/ /* * TODO's diff --git a/core/tests/coretests/src/android/content/pm/VerificationParamsTest.java b/core/tests/coretests/src/android/content/pm/VerificationParamsTest.java index b814e2d3b6e8..105bcba08237 100644 --- a/core/tests/coretests/src/android/content/pm/VerificationParamsTest.java +++ b/core/tests/coretests/src/android/content/pm/VerificationParamsTest.java @@ -34,6 +34,7 @@ public class VerificationParamsTest extends AndroidTestCase { private final static String ORIGINATING_URI_STRING = "http://originating.uri/path"; private final static String REFERRER_STRING = "http://referrer.uri/path"; private final static byte[] DIGEST_BYTES = "fake digest".getBytes(); + private final static int INSTALLER_UID = 42; private final static Uri VERIFICATION_URI = Uri.parse(VERIFICATION_URI_STRING); private final static Uri ORIGINATING_URI = Uri.parse(ORIGINATING_URI_STRING); @@ -115,6 +116,18 @@ public class VerificationParamsTest extends AndroidTestCase { assertFalse(params1.equals(params2)); } + public void testEquals_InstallerUid_Failure() throws Exception { + VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, + REFERRER, MANIFEST_DIGEST); + + VerificationParams params2 = new VerificationParams( + Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), + Uri.parse(REFERRER_STRING), new ManifestDigest(DIGEST_BYTES)); + params2.setInstallerUid(INSTALLER_UID); + + assertFalse(params1.equals(params2)); + } + public void testHashCode_Success() throws Exception { VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, REFERRER, MANIFEST_DIGEST); @@ -168,4 +181,16 @@ public class VerificationParamsTest extends AndroidTestCase { assertFalse(params1.hashCode() == params2.hashCode()); } + + public void testHashCode_InstallerUid_Failure() throws Exception { + VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, + REFERRER, MANIFEST_DIGEST); + + VerificationParams params2 = new VerificationParams( + Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), + Uri.parse(REFERRER_STRING), new ManifestDigest("a different digest".getBytes())); + params2.setInstallerUid(INSTALLER_UID); + + assertFalse(params1.hashCode() == params2.hashCode()); + } } diff --git a/core/tests/coretests/src/android/provider/SettingsProviderTest.java b/core/tests/coretests/src/android/provider/SettingsProviderTest.java index 3e96dc45e9c1..6edd2dc361cd 100644 --- a/core/tests/coretests/src/android/provider/SettingsProviderTest.java +++ b/core/tests/coretests/src/android/provider/SettingsProviderTest.java @@ -19,11 +19,15 @@ package android.provider; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.content.pm.UserInfo; import android.database.Cursor; import android.net.Uri; +import android.os.UserHandle; +import android.os.UserManager; import android.provider.Settings; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.MediumTest; @@ -197,6 +201,53 @@ public class SettingsProviderTest extends AndroidTestCase { Settings.Secure.getString(r, Settings.Secure.LOCATION_PROVIDERS_ALLOWED)); } + private boolean findUser(UserManager um, int userHandle) { + for (UserInfo user : um.getUsers()) { + if (user.id == userHandle) { + return true; + } + } + return false; + } + + @MediumTest + public void testPerUserSettings() { + UserManager um = (UserManager) getContext().getSystemService(Context.USER_SERVICE); + ContentResolver r = getContext().getContentResolver(); + + // Make sure there's an owner + assertTrue(findUser(um, UserHandle.USER_OWNER)); + + // create a new user to use for testing + UserInfo user = um.createUser("TestUser1", UserInfo.FLAG_GUEST); + assertTrue(user != null); + + try { + // Write some settings for that user as well as the current user + final String TEST_KEY = "test_setting"; + final int SELF_VALUE = 40; + final int OTHER_VALUE = 27; + + Settings.System.putInt(r, TEST_KEY, SELF_VALUE); + Settings.System.putIntForUser(r, TEST_KEY, OTHER_VALUE, user.id); + + // Verify that they read back as intended + int myValue = Settings.System.getInt(r, TEST_KEY, 0); + int otherValue = Settings.System.getIntForUser(r, TEST_KEY, 0, user.id); + assertTrue("Running as user " + UserHandle.myUserId() + + " and reading/writing as user " + user.id + + ", expected to read " + SELF_VALUE + " but got " + myValue, + myValue == SELF_VALUE); + assertTrue("Running as user " + UserHandle.myUserId() + + " and reading/writing as user " + user.id + + ", expected to read " + OTHER_VALUE + " but got " + otherValue, + otherValue == OTHER_VALUE); + } finally { + // Tidy up + um.removeUser(user.id); + } + } + @SmallTest public void testSettings() { assertCanBeHandled(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)); diff --git a/graphics/jni/Android.mk b/graphics/jni/Android.mk index e85a23cb9503..80d77281df32 100644 --- a/graphics/jni/Android.mk +++ b/graphics/jni/Android.mk @@ -32,6 +32,6 @@ LOCAL_ADDITIONAL_DEPENDENCIES := $(addprefix $(rs_generated_include_dir)/,rsgApi LOCAL_MODULE:= librs_jni LOCAL_ADDITIONAL_DEPENDENCIES += $(rs_generated_source) LOCAL_MODULE_TAGS := optional -LOCAL_REQUIRED_MODULES := libRS +LOCAL_REQUIRED_MODULES := libRS libRSDriver include $(BUILD_SHARED_LIBRARY) diff --git a/keystore/java/android/security/AndroidKeyPairGeneratorSpec.java b/keystore/java/android/security/AndroidKeyPairGeneratorSpec.java index 311359ca4368..79a763024c93 100644 --- a/keystore/java/android/security/AndroidKeyPairGeneratorSpec.java +++ b/keystore/java/android/security/AndroidKeyPairGeneratorSpec.java @@ -32,6 +32,7 @@ import javax.security.auth.x500.X500Principal; * generator that works with * <a href="{@docRoot}guide/topics/security/keystore.html">Android KeyStore * facility</a>. + * @hide */ public class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec { private final String mKeystoreAlias; diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp index 0ed8008ca64a..be8f80af55c3 100644 --- a/libs/hwui/ProgramCache.cpp +++ b/libs/hwui/ProgramCache.cpp @@ -671,11 +671,6 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti shader.append(gFS_Main_FetchColor); } } - if (description.isAARect) { - shader.append(gFS_Main_AccountForAARect); - } else if (description.isAA) { - shader.append(gFS_Main_AccountForAA); - } if (description.hasGradient) { shader.append(gFS_Main_FetchGradient[gradientIndex(description)]); shader.append(gFS_Main_AddDitherToGradient); @@ -721,6 +716,13 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti } // Apply the color op if needed shader.append(gFS_Main_ApplyColorOp[description.colorOp]); + + if (description.isAARect) { + shader.append(gFS_Main_AccountForAARect); + } else if (description.isAA) { + shader.append(gFS_Main_AccountForAA); + } + // Output the fragment if (!blendFramebuffer) { shader.append(gFS_Main_FragColor); diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index e5c2a4debb7d..4459d031e739 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -153,6 +153,7 @@ public class AudioService extends IAudioService.Stub implements OnFinished { // end of messages handled under wakelock private static final int MSG_SET_RSX_CONNECTION_STATE = 23; // change remote submix connection private static final int MSG_SET_FORCE_RSX_USE = 24; // force remote submix audio routing + private static final int MSG_CHECK_MUSIC_ACTIVE = 25; // flags for MSG_PERSIST_VOLUME indicating if current and/or last audible volume should be // persisted @@ -430,6 +431,8 @@ public class AudioService extends IAudioService.Stub implements OnFinished { mContentResolver = context.getContentResolver(); mVoiceCapable = mContext.getResources().getBoolean( com.android.internal.R.bool.config_voice_capable); + mSafeMediaVolumeIndex = mContext.getResources().getInteger( + com.android.internal.R.integer.config_safe_media_volume_index) * 10; PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mMediaEventWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "handleMediaEvent"); @@ -454,6 +457,10 @@ public class AudioService extends IAudioService.Stub implements OnFinished { updateStreamVolumeAlias(false /*updateVolumes*/); createStreamStates(); + synchronized (mSafeMediaVolumeEnabled) { + enforceSafeMediaVolume(); + } + mMediaServerOk = true; // Call setRingerModeInt() to apply correct mute @@ -738,6 +745,11 @@ public class AudioService extends IAudioService.Stub implements OnFinished { // convert one UI step (+/-1) into a number of internal units on the stream alias int step = rescaleIndex(10, streamType, streamTypeAlias); + if ((direction == AudioManager.ADJUST_RAISE) && + !checkSafeMediaVolume(streamTypeAlias, aliasIndex + step, device)) { + return; + } + // If either the client forces allowing ringer modes for this adjustment, // or the stream type is one that is affected by ringer modes if (((flags & AudioManager.FLAG_ALLOW_RINGER_MODES) != 0) || @@ -815,12 +827,17 @@ public class AudioService extends IAudioService.Stub implements OnFinished { VolumeStreamState streamState = mStreamStates[mStreamVolumeAlias[streamType]]; final int device = getDeviceForStream(streamType); + // get last audible index if stream is muted, current index otherwise final int oldIndex = streamState.getIndex(device, (streamState.muteCount() != 0) /* lastAudible */); index = rescaleIndex(index * 10, streamType, mStreamVolumeAlias[streamType]); + if (!checkSafeMediaVolume(mStreamVolumeAlias[streamType], index, device)) { + return; + } + // setting volume on master stream type also controls silent mode if (((flags & AudioManager.FLAG_ALLOW_RINGER_MODES) != 0) || (mStreamVolumeAlias[streamType] == getMasterStreamType())) { @@ -1681,6 +1698,10 @@ public class AudioService extends IAudioService.Stub implements OnFinished { checkAllAliasStreamVolumes(); + synchronized (mSafeMediaVolumeEnabled) { + enforceSafeMediaVolume(); + } + // apply new ringer mode setRingerModeInt(getRingerMode(), false); } @@ -2138,6 +2159,33 @@ public class AudioService extends IAudioService.Stub implements OnFinished { String.valueOf(address) /*device_address*/); } + private void onCheckMusicActive() { + synchronized (mSafeMediaVolumeEnabled) { + if (!mSafeMediaVolumeEnabled) { + int device = getDeviceForStream(AudioSystem.STREAM_MUSIC); + + if ((device & mSafeMediaVolumeDevices) != 0) { + sendMsg(mAudioHandler, + MSG_CHECK_MUSIC_ACTIVE, + SENDMSG_REPLACE, + device, + 0, + null, + MUSIC_ACTIVE_POLL_PERIOD_MS); + if (AudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0)) { + // Approximate cumulative active music time + mMusicActiveMs += MUSIC_ACTIVE_POLL_PERIOD_MS; + if (mMusicActiveMs > UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX) { + setSafeMediaVolumeEnabled(true); + mMusicActiveMs = 0; + mVolumePanel.postDisplaySafeVolumeWarning(); + } + } + } + } + } + } + /////////////////////////////////////////////////////////////////////////// // Internal methods /////////////////////////////////////////////////////////////////////////// @@ -2397,6 +2445,14 @@ public class AudioService extends IAudioService.Stub implements OnFinished { public void setWiredDeviceConnectionState(int device, int state, String name) { synchronized (mConnectedDevices) { int delay = checkSendBecomingNoisyIntent(device, state); + if ((device & mSafeMediaVolumeDevices) != 0) { + setSafeMediaVolumeEnabled(state != 0); + // insert delay to allow new volume to apply before switching to headphones + if ((delay < SAFE_VOLUME_DELAY_MS) && (state != 0)) { + delay = SAFE_VOLUME_DELAY_MS; + } + } + queueMsgUnderWakeLock(mAudioHandler, MSG_SET_WIRED_DEVICE_CONNECTION_STATE, device, @@ -3168,6 +3224,10 @@ public class AudioService extends IAudioService.Stub implements OnFinished { case MSG_SET_RSX_CONNECTION_STATE: onSetRsxConnectionState(msg.arg1/*available*/, msg.arg2/*address*/); break; + + case MSG_CHECK_MUSIC_ACTIVE: + onCheckMusicActive(); + break; } } } @@ -4426,7 +4486,7 @@ public class AudioService extends IAudioService.Stub implements OnFinished { " -- vol: " + rcse.mPlaybackVolume + " -- volMax: " + rcse.mPlaybackVolumeMax + " -- volObs: " + rcse.mRemoteVolumeObs); - + } } synchronized (mMainRemote) { @@ -5415,6 +5475,109 @@ public class AudioService extends IAudioService.Stub implements OnFinished { } } + + //========================================================================================== + // Safe media volume management. + // MUSIC stream volume level is limited when headphones are connected according to safety + // regulation. When the user attempts to raise the volume above the limit, a warning is + // displayed and the user has to acknowlegde before the volume is actually changed. + // The volume index corresponding to the limit is stored in config_safe_media_volume_index + // property. Platforms with a different limit must set this property accordingly in their + // overlay. + //========================================================================================== + + // mSafeMediaVolumeEnabled indicates whether the media volume is limited over headphones. + // It is true by default when headphones or a headset are inserted and can be overriden by + // calling AudioService.disableSafeMediaVolume() (when user opts out). + private Boolean mSafeMediaVolumeEnabled = new Boolean(false); + // mSafeMediaVolumeIndex is the cached value of config_safe_media_volume_index property + private final int mSafeMediaVolumeIndex; + // mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced, + private final int mSafeMediaVolumeDevices = AudioSystem.DEVICE_OUT_WIRED_HEADSET | + AudioSystem.DEVICE_OUT_WIRED_HEADPHONE; + // mMusicActiveMs is the cumulative time of music activity since safe volume was disabled. + // When this time reaches UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX, the safe media volume is re-enabled + // automatically. mMusicActiveMs is rounded to a multiple of MUSIC_ACTIVE_POLL_PERIOD_MS. + private int mMusicActiveMs; + private static final int UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours + private static final int MUSIC_ACTIVE_POLL_PERIOD_MS = 60000; // 1 minute polling interval + private static final int SAFE_VOLUME_DELAY_MS = 500; // 500ms before switching to headphones + + private void setSafeMediaVolumeEnabled(boolean on) { + synchronized (mSafeMediaVolumeEnabled) { + if (on && !mSafeMediaVolumeEnabled) { + enforceSafeMediaVolume(); + } else if (!on && mSafeMediaVolumeEnabled) { + mMusicActiveMs = 0; + sendMsg(mAudioHandler, + MSG_CHECK_MUSIC_ACTIVE, + SENDMSG_REPLACE, + 0, + 0, + null, + MUSIC_ACTIVE_POLL_PERIOD_MS); + } + mSafeMediaVolumeEnabled = on; + } + } + + private void enforceSafeMediaVolume() { + VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC]; + boolean lastAudible = (streamState.muteCount() != 0); + int devices = mSafeMediaVolumeDevices; + int i = 0; + + while (devices != 0) { + int device = 1 << i++; + if ((device & devices) == 0) { + continue; + } + int index = streamState.getIndex(device, lastAudible); + if (index > mSafeMediaVolumeIndex) { + if (lastAudible) { + streamState.setLastAudibleIndex(mSafeMediaVolumeIndex, device); + sendMsg(mAudioHandler, + MSG_PERSIST_VOLUME, + SENDMSG_QUEUE, + PERSIST_LAST_AUDIBLE, + device, + streamState, + PERSIST_DELAY); + } else { + streamState.setIndex(mSafeMediaVolumeIndex, device, true); + sendMsg(mAudioHandler, + MSG_SET_DEVICE_VOLUME, + SENDMSG_QUEUE, + device, + 0, + streamState, + 0); + } + } + devices &= ~device; + } + } + + private boolean checkSafeMediaVolume(int streamType, int index, int device) { + synchronized (mSafeMediaVolumeEnabled) { + if (mSafeMediaVolumeEnabled && + (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) && + ((device & mSafeMediaVolumeDevices) != 0) && + (index > mSafeMediaVolumeIndex)) { + mVolumePanel.postDisplaySafeVolumeWarning(); + return false; + } + return true; + } + } + + public void disableSafeMediaVolume() { + synchronized (mSafeMediaVolumeEnabled) { + setSafeMediaVolumeEnabled(false); + } + } + + @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 4ddebac8c485..8a847e19c3ac 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -1803,17 +1803,9 @@ public class DatabaseHelper extends SQLiteOpenHelper { stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" + " VALUES(?,?);"); - loadBooleanSetting(stmt, Settings.Secure.PACKAGE_VERIFIER_ENABLE, - R.bool.def_package_verifier_enable); - loadStringSetting(stmt, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, R.string.def_location_providers_allowed); - loadBooleanSetting(stmt, Settings.Secure.WIFI_ON, - R.bool.def_wifi_on); - loadBooleanSetting(stmt, Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, - R.bool.def_networks_available_notification_on); - String wifiWatchList = SystemProperties.get("ro.com.android.wifi-watchlist"); if (!TextUtils.isEmpty(wifiWatchList)) { loadSetting(stmt, Settings.Secure.WIFI_WATCHDOG_WATCH_LIST, wifiWatchList); @@ -1943,6 +1935,15 @@ public class DatabaseHelper extends SQLiteOpenHelper { R.integer.def_wifi_sleep_policy); // --- Previously in 'secure' + loadBooleanSetting(stmt, Settings.Global.PACKAGE_VERIFIER_ENABLE, + R.bool.def_package_verifier_enable); + + loadBooleanSetting(stmt, Settings.Global.WIFI_ON, + R.bool.def_wifi_on); + + loadBooleanSetting(stmt, Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, + R.bool.def_networks_available_notification_on); + loadBooleanSetting(stmt, Settings.Global.BLUETOOTH_ON, R.bool.def_bluetooth_on); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index e1a5b52510f7..7cc5decdd7ae 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -87,6 +87,9 @@ public class SettingsProvider extends ContentProvider { private static final SparseArray<AtomicInteger> sKnownMutationsInFlight = new SparseArray<AtomicInteger>(); + // Each defined user has their own settings + protected final SparseArray<DatabaseHelper> mOpenHelpers = new SparseArray<DatabaseHelper>(); + // Over this size we don't reject loading or saving settings but // we do consider them broken/malicious and don't keep them in // memory at least: @@ -98,9 +101,6 @@ public class SettingsProvider extends ContentProvider { // want to cache the existence of a key, but not store its value. private static final Bundle TOO_LARGE_TO_CACHE_MARKER = Bundle.forPair("_dummy", null); - // Each defined user has their own settings - protected final SparseArray<DatabaseHelper> mOpenHelpers = new SparseArray<DatabaseHelper>(); - //protected DatabaseHelper mOpenHelper; private UserManager mUserManager; private BackupManager mBackupManager; @@ -411,32 +411,29 @@ public class SettingsProvider extends ContentProvider { mBackupManager = new BackupManager(getContext()); mUserManager = (UserManager) getContext().getSystemService(Context.USER_SERVICE); - synchronized (this) { - establishDbTrackingLocked(UserHandle.USER_OWNER); - - IntentFilter userFilter = new IntentFilter(); - userFilter.addAction(Intent.ACTION_USER_REMOVED); - getContext().registerReceiver(new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(Intent.ACTION_USER_REMOVED)) { - final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, - UserHandle.USER_OWNER); - if (userHandle != UserHandle.USER_OWNER) { - onUserRemoved(userHandle); - } + establishDbTracking(UserHandle.USER_OWNER); + + IntentFilter userFilter = new IntentFilter(); + userFilter.addAction(Intent.ACTION_USER_REMOVED); + getContext().registerReceiver(new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (intent.getAction().equals(Intent.ACTION_USER_REMOVED)) { + final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, + UserHandle.USER_OWNER); + if (userHandle != UserHandle.USER_OWNER) { + onUserRemoved(userHandle); } } - }, userFilter); - } + } + }, userFilter); return true; } void onUserRemoved(int userHandle) { - // the db file itself will be deleted automatically, but we need to tear down - // our caches and other internal bookkeeping. Creation/deletion of a user's - // settings db infrastructure is synchronized on 'this' synchronized (this) { + // the db file itself will be deleted automatically, but we need to tear down + // our caches and other internal bookkeeping. FileObserver observer = sObserverInstances.get(userHandle); if (observer != null) { observer.stopWatching(); @@ -455,25 +452,43 @@ public class SettingsProvider extends ContentProvider { } } - private void establishDbTrackingLocked(int userHandle) { + private void establishDbTracking(int userHandle) { if (LOCAL_LOGV) { Slog.i(TAG, "Installing settings db helper and caches for user " + userHandle); } - DatabaseHelper dbhelper = new DatabaseHelper(getContext(), userHandle); - mOpenHelpers.append(userHandle, dbhelper); + DatabaseHelper dbhelper; - // Watch for external modifications to the database files, - // keeping our caches in sync. - sSystemCaches.append(userHandle, new SettingsCache(TABLE_SYSTEM)); - sSecureCaches.append(userHandle, new SettingsCache(TABLE_SECURE)); - sKnownMutationsInFlight.append(userHandle, new AtomicInteger(0)); + synchronized (this) { + dbhelper = mOpenHelpers.get(userHandle); + if (dbhelper == null) { + dbhelper = new DatabaseHelper(getContext(), userHandle); + mOpenHelpers.append(userHandle, dbhelper); + + sSystemCaches.append(userHandle, new SettingsCache(TABLE_SYSTEM)); + sSecureCaches.append(userHandle, new SettingsCache(TABLE_SECURE)); + sKnownMutationsInFlight.append(userHandle, new AtomicInteger(0)); + } + } + + // Initialization of the db *outside* the locks. It's possible that racing + // threads might wind up here, the second having read the cache entries + // written by the first, but that's benign: the SQLite helper implementation + // manages concurrency itself, and it's important that we not run the db + // initialization with any of our own locks held, so we're fine. SQLiteDatabase db = dbhelper.getWritableDatabase(); - // Now we can start observing it for changes - SettingsFileObserver observer = new SettingsFileObserver(userHandle, db.getPath()); - sObserverInstances.append(userHandle, observer); - observer.startWatching(); + // Watch for external modifications to the database files, + // keeping our caches in sync. We synchronize the observer set + // separately, and of course it has to run after the db file + // itself was set up by the DatabaseHelper. + synchronized (sObserverInstances) { + if (sObserverInstances.get(userHandle) == null) { + SettingsFileObserver observer = new SettingsFileObserver(userHandle, db.getPath()); + sObserverInstances.append(userHandle, observer); + observer.startWatching(); + } + } ensureAndroidIdIsSet(userHandle); @@ -571,19 +586,17 @@ public class SettingsProvider extends ContentProvider { // Lazy-initialize the settings caches for non-primary users private SettingsCache getOrConstructCache(int callingUser, SparseArray<SettingsCache> which) { - synchronized (this) { - getOrEstablishDatabaseLocked(callingUser); // ignore return value; we don't need it - return which.get(callingUser); - } + getOrEstablishDatabase(callingUser); // ignore return value; we don't need it + return which.get(callingUser); } // Lazy initialize the database helper and caches for this user, if necessary - private DatabaseHelper getOrEstablishDatabaseLocked(int callingUser) { + private DatabaseHelper getOrEstablishDatabase(int callingUser) { long oldId = Binder.clearCallingIdentity(); try { DatabaseHelper dbHelper = mOpenHelpers.get(callingUser); if (null == dbHelper) { - establishDbTrackingLocked(callingUser); + establishDbTracking(callingUser); dbHelper = mOpenHelpers.get(callingUser); } return dbHelper; @@ -646,25 +659,21 @@ public class SettingsProvider extends ContentProvider { // Get methods if (Settings.CALL_METHOD_GET_SYSTEM.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call(system:" + request + ") for " + callingUser); - synchronized (this) { - dbHelper = getOrEstablishDatabaseLocked(callingUser); - cache = sSystemCaches.get(callingUser); - } + dbHelper = getOrEstablishDatabase(callingUser); + cache = sSystemCaches.get(callingUser); return lookupValue(dbHelper, TABLE_SYSTEM, cache, request); } if (Settings.CALL_METHOD_GET_SECURE.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call(secure:" + request + ") for " + callingUser); - synchronized (this) { - dbHelper = getOrEstablishDatabaseLocked(callingUser); - cache = sSecureCaches.get(callingUser); - } + dbHelper = getOrEstablishDatabase(callingUser); + cache = sSecureCaches.get(callingUser); return lookupValue(dbHelper, TABLE_SECURE, cache, request); } if (Settings.CALL_METHOD_GET_GLOBAL.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call(global:" + request + ") for " + callingUser); // fast path: owner db & cache are immutable after onCreate() so we need not // guard on the attempt to look them up - return lookupValue(getOrEstablishDatabaseLocked(UserHandle.USER_OWNER), TABLE_GLOBAL, + return lookupValue(getOrEstablishDatabase(UserHandle.USER_OWNER), TABLE_GLOBAL, sGlobalCache, request); } @@ -678,13 +687,13 @@ public class SettingsProvider extends ContentProvider { values.put(Settings.NameValueTable.VALUE, newValue); if (Settings.CALL_METHOD_PUT_SYSTEM.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call_put(system:" + request + "=" + newValue + ") for " + callingUser); - insert(Settings.System.CONTENT_URI, values); + insertForUser(Settings.System.CONTENT_URI, values, callingUser); } else if (Settings.CALL_METHOD_PUT_SECURE.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call_put(secure:" + request + "=" + newValue + ") for " + callingUser); - insert(Settings.Secure.CONTENT_URI, values); + insertForUser(Settings.Secure.CONTENT_URI, values, callingUser); } else if (Settings.CALL_METHOD_PUT_GLOBAL.equals(method)) { if (LOCAL_LOGV) Slog.v(TAG, "call_put(global:" + request + "=" + newValue + ") for " + callingUser); - insert(Settings.Global.CONTENT_URI, values); + insertForUser(Settings.Global.CONTENT_URI, values, callingUser); } else { Slog.w(TAG, "call() with invalid method: " + method); } @@ -747,10 +756,8 @@ public class SettingsProvider extends ContentProvider { if (LOCAL_LOGV) Slog.v(TAG, "query(" + url + ") for user " + forUser); SqlArguments args = new SqlArguments(url, where, whereArgs); DatabaseHelper dbH; - synchronized (this) { - dbH = getOrEstablishDatabaseLocked( - TABLE_GLOBAL.equals(args.table) ? UserHandle.USER_OWNER : forUser); - } + dbH = getOrEstablishDatabase( + TABLE_GLOBAL.equals(args.table) ? UserHandle.USER_OWNER : forUser); SQLiteDatabase db = dbH.getReadableDatabase(); // The favorites table was moved from this provider to a provider inside Home @@ -805,11 +812,8 @@ public class SettingsProvider extends ContentProvider { final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser); mutationCount.incrementAndGet(); - DatabaseHelper dbH; - synchronized (this) { - dbH = getOrEstablishDatabaseLocked( - TABLE_GLOBAL.equals(args.table) ? UserHandle.USER_OWNER : callingUser); - } + DatabaseHelper dbH = getOrEstablishDatabase( + TABLE_GLOBAL.equals(args.table) ? UserHandle.USER_OWNER : callingUser); SQLiteDatabase db = dbH.getWritableDatabase(); db.beginTransaction(); try { @@ -945,10 +949,7 @@ public class SettingsProvider extends ContentProvider { final AtomicInteger mutationCount = sKnownMutationsInFlight.get(desiredUserHandle); mutationCount.incrementAndGet(); - DatabaseHelper dbH; - synchronized (this) { - dbH = getOrEstablishDatabaseLocked(desiredUserHandle); - } + DatabaseHelper dbH = getOrEstablishDatabase(desiredUserHandle); SQLiteDatabase db = dbH.getWritableDatabase(); final long rowId = db.insert(args.table, null, initialValues); mutationCount.decrementAndGet(); @@ -956,7 +957,8 @@ public class SettingsProvider extends ContentProvider { SettingsCache.populate(cache, initialValues); // before we notify - if (LOCAL_LOGV) Log.v(TAG, args.table + " <- " + initialValues); + if (LOCAL_LOGV) Log.v(TAG, args.table + " <- " + initialValues + + " for user " + desiredUserHandle); // Note that we use the original url here, not the potentially-rewritten table name url = getUriFor(url, initialValues, rowId); sendNotify(url, desiredUserHandle); @@ -979,10 +981,7 @@ public class SettingsProvider extends ContentProvider { final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser); mutationCount.incrementAndGet(); - DatabaseHelper dbH; - synchronized (this) { - dbH = getOrEstablishDatabaseLocked(callingUser); - } + DatabaseHelper dbH = getOrEstablishDatabase(callingUser); SQLiteDatabase db = dbH.getWritableDatabase(); int count = db.delete(args.table, args.where, args.args); mutationCount.decrementAndGet(); @@ -1014,10 +1013,7 @@ public class SettingsProvider extends ContentProvider { final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser); mutationCount.incrementAndGet(); - DatabaseHelper dbH; - synchronized (this) { - dbH = getOrEstablishDatabaseLocked(callingUser); - } + DatabaseHelper dbH = getOrEstablishDatabase(callingUser); SQLiteDatabase db = dbH.getWritableDatabase(); int count = db.update(args.table, initialValues, args.where, args.args); mutationCount.decrementAndGet(); diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml new file mode 100644 index 000000000000..4dbf6a016356 --- /dev/null +++ b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> +<TextView + xmlns:android="http://schemas.android.com/apk/res/android" + style="@style/TextAppearance.QuickSettings.TileView" + android:id="@+id/rotation_lock_textview" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:text="@string/quick_settings_rotation_unlocked_label" + />
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml index 3cbefa52c01e..febd8a8efeaa 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml @@ -13,13 +13,38 @@ See the License for the specific language governing permissions and limitations under the License. --> -<TextView +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - style="@style/TextAppearance.QuickSettings.TileView" - android:id="@+id/rssi_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:gravity="center" - android:text="@string/quick_settings_rssi_label" - />
\ No newline at end of file + android:orientation="vertical"> + <FrameLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center"> + <ImageView + android:id="@+id/rssi_image" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:paddingBottom="10dp" + /> + <ImageView + android:id="@+id/rssi_overlay_image" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:paddingBottom="10dp" + /> + </FrameLayout> + <TextView + style="@style/TextAppearance.QuickSettings.TileView" + android:id="@+id/rssi_textview" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:text="@string/quick_settings_rssi_label" + /> +</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 051b6b095264..c085bc211a81 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 2056ddee67cf..c36ac1cc3c02 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index e25ae176d6ed..7292f6f59456 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"عرض"</string> <string name="always_use_device" msgid="1450287437017315906">"الاستخدام بشكل افتراضي لجهاز USB هذا"</string> <string name="always_use_accessory" msgid="1210954576979621596">"الاستخدام بشكل افتراضي لملحق USB هذا"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"هل تريد السماح بتصحيح أخطاء USB؟"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"الملف المرجعي الرئيسي لـ RSA في هذا الكمبيوتر هو:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"السماح دائمًا من هذا الكمبيوتر"</string> <string name="compat_mode_on" msgid="6623839244840638213">"تكبير/تصغير لملء الشاشة"</string> <string name="compat_mode_off" msgid="4434467572461327898">"توسيع بملء الشاشة"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"تكبير/تصغير التوافق"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"سيتم تدوير الشاشة تلقائيًا."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"تم تأمين الشاشة في الاتجاه الأفقي."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"تم تأمين الشاشة في الاتجاه العمودي."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"بدء Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"وضع الطائرة"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"السطوع"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"أسلوب الإدخال"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"الموقع المستخدم"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"جهاز الوسائط"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"مكالمات الطوارئ فقط"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"الإعدادات"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"الوقت"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"أنا"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"لا تتوفر شبكة"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"شاشة Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"لا يتوفر اتصال بشاشة Wifi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"السطوع"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"تلقائي"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"فحص"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"قطع الاتصال"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"شاشة Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"متوفرة"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"جارٍ الاتصال"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"متصلة"</string> </resources> diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml index 43097755a915..8eb0479d648f 100644 --- a/packages/SystemUI/res/values-be/strings.xml +++ b/packages/SystemUI/res/values-be/strings.xml @@ -153,56 +153,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Экран паварочваецца аўтаматычна."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Экран заблакiраваны ў альбомнай арыентацыі."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Экран заблакiраваны ў партрэтнай арыентацыі."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Пачаць мары"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Рэжым палёту"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Яркасць"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Месцазнаходжанне выкарыстоўваецца"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Мультымедыйная прылада"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Толькі экстраныя выклікі"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Налады"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма сеткi"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Дысплей Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Няма падключэння да дысплея Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркасць"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АЎТА"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Сканiраваць"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Адключыцца"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Дысплей Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Даступна"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Падключэнне"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Падключана"</string> </resources> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index c0c7ac32da7a..68ca04486424 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 3c5b12569453..038a9d159294 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Mostra"</string> <string name="always_use_device" msgid="1450287437017315906">"Utilitza de manera predet. per al dispositiu USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Utilitza de manera predet. per a l\'accessori USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Vols permetre la depuració USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"L\'empremta digital de la clau de l\'RSA de l\'equip és:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Dóna sempre permís des d\'aquest equip"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom per omplir pantalla"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estira per omplir pant."</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Zoom de compatibilitat"</string> @@ -153,56 +150,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"La pantalla girarà automàticament."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla està bloquejada en orientació horitzontal."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla està bloquejada en orientació vertical."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Comença els somnis"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode d\'avió"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brillantor"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Mètode d\'entrada"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Ubicació en ús"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositiu multimèdia"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Només trucades d\'emergència"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Configuració"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Jo"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hi ha cap xarxa"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"No hi ha cap connexió de pantalla Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillantor"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÀTICA"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Explora"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Desconnecta"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Pantalla Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Disponible"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"S\'està connectant"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Connectada"</string> </resources> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 1357e790a580..69a8ca9ac75a 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index efff944cad50..68ae9d6a3310 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Vis"</string> <string name="always_use_device" msgid="1450287437017315906">"Brug som standard til denne USB-enhed"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Brug som standard til dette USB-tilbehør"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Vil du tillade USB-fejlretning?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Fingeraftrykket for computerens RSA-nøgle er:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Tillad altid fra denne computer"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom til fuld skærm"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stræk til fuld skærm"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Kompatibilitetszoom"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skærmen roterer automatisk."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skærmen er nu låst i liggende retning."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skærmen er nu låst i stående retning."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Start Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flytilstand"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Lysstyrke"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Inputmetode"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Placering i brug"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medieenhed"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Kun nødopkald"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Indstillinger"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Mig"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Intet netværk"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skærm"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen forbindelse til Wi-Fi-skærm"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Scan"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Afbryd forbindelsen"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi-skærm"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Tilgængelig"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Tilslutter"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Tilsluttet"</string> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index a25beb50fb3e..3c710095d389 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -153,56 +153,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Bildschirm wird automatisch gedreht."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildschirm bleibt im Querformat."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildschirm bleibt im Hochformat."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Träume starten"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugmodus"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Helligkeit"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Verwendeter Standort"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Mediengerät"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Nur Notrufe"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Einstellungen"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Uhrzeit"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ich"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WLAN"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netzwerk"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WLAN-Anzeige"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Keine Verbindung zur WLAN-Anzeige"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helligkeit"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Scannen"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Trennen"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"WLAN-Anzeige"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Verfügbar"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Verbinden"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Verbunden"</string> </resources> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index f74e892c46ef..02a52fa6f599 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Προβολή"</string> <string name="always_use_device" msgid="1450287437017315906">"Χρήση από προεπιλογή για αυτή τη συσκευή USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Χρήση από προεπιλογή για αυτό το εξάρτημα USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Να επιτρέπεται ο εντοπισμός σφαλμάτων USB;"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Το μοναδικό χαρακτηριστικό του κλειδιού RSA είναι:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Να επιτρέπεται πάντα από αυτόν τον υπολογιστή"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Ζουμ σε πλήρη οθόνη"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Προβoλή σε πλήρη οθ."</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Ζουμ για συμβατότητα"</string> @@ -153,56 +150,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Θα γίνεται αυτόματη περιστροφή της οθόνης."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Η οθόνη έχει κλειδωθεί σε οριζόντιο προσανατολισμό."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Η οθόνη έχει κλειδωθεί σε κατακόρυφο προσανατολισμό."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Ενεργ. λειτ. dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Λειτουργία πτήσης"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Φωτεινότητα"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Μέθοδος εισαγωγής"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Τοποθεσία σε χρήση"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Συσκευή μέσων"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Μόνο κλήσεις έκτακτης ανάγκης"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ρυθμίσεις"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Ώρα"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Εγώ"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Κανένα δίκτυο"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Οθόνη Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Δεν υπάρχει σύνδεση οθόνης Wifi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Φωτεινότητα"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ΑΥΤΟΜΑΤΗ"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Σάρωση"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Αποσύνδεση"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Οθόνη Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Διαθέσιμη"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Σύνδεση"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Έχει συνδεθεί"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 87cce43485fd..0a8226e5e59e 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"View"</string> <string name="always_use_device" msgid="1450287437017315906">"Use by default for this USB device"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Use by default for this USB accessory"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Allow USB debugging?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"The computer\'s RSA key fingerprint is:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Always allow from this computer"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom to fill screen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stretch to fill screen"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Compatibility zoom"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Screen will rotate automatically."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Screen is locked in landscape orientation."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Screen is locked in portrait orientation."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Start dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Aeroplane mode"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brightness"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Input Method"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Location in use"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Media device"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Emergency Calls Only"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Settings"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Time"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Me"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi Display"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"No Wifi Display Connection"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Scan"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Disconnect"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wifi Display"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Available"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Connecting"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Connected"</string> </resources> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 13d5f0d52627..af5a514e0323 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 1a52c048d80a..d5f5d40fefe3 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Ver"</string> <string name="always_use_device" msgid="1450287437017315906">"Usar de forma predeterminada para este dispositivo USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Usar de forma predeterminada para este accesorio USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"¿Permitir depuración USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"La huella digital de tu clave RSA es:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Permitir siempre desde este ordenador"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom para ajustar"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Expandir para ajustar"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Zoom de compatibilidad"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"La pantalla girará automáticamente."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla está bloqueada en modo horizontal."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla está bloqueada en modo vertical."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Iniciar Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avión"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brillo"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Método de entrada"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Ubicación en uso"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo multimedia"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Solo llamadas de emergencia"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ajustes"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Yo"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hay red."</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sin conexión a pantalla Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillo"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Escanear"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Desconectar"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Pantalla Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Disponible"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Conectando..."</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Conectada"</string> </resources> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index ee8361890c37..e9632ec9fe71 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekraani pööramine toimub automaatselt."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekraan on lukustatud horisontaalsuunas."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekraan on lukustatud vertikaalsuunas."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Käivita unerežiim"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lennurežiim"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Heledus"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Kasutatav asukoht"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Meediumiseade"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Ainult hädaabikõned"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Seaded"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Aeg"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Võrku pole"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi-kuva"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"WiFi-kuva ühendus puudub"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Heledus"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAATNE"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skannimine"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Katkesta ühendus"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"WiFi-kuva"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Saadaval"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Ühendamine"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Ühendatud"</string> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index e235bc64bcda..1251c8fb6a6e 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"صفحه به صورت خودکار میچرخد."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"صفحه اکنون در جهت افقی قفل است."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"صفحه اکنون در جهت عمودی قفل است."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"شروع رؤیاها"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"حالت هواپیما"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"روشنایی"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"موقعیت مکانی در حال استفاده"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"دستگاه رسانه"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"فقط تماسهای اضطراری"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"تنظیمات"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"زمان"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"من"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"شبکهای موجود نیست"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"صفحه نمایش Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"اتصال صفحه نمایش Wifi وجود ندارد"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"روشنایی"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"خودکار"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"اسکن"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"قطع اتصال"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"صفحه نمایش Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"در دسترس"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"در حال اتصال"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"متصل"</string> </resources> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 74aa34713c3f..09a6eaf46079 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ruutu kääntyy automaattisesti."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ruutu on lukittu vaakasuuntaan."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ruutu on lukittu pystysuuntaan."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Aloita unelmointi"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lentokonetila"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Kirkkaus"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Sijainti käytössä"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medialaite"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Vain hätäpuhelut"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Asetukset"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Aika"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Minä"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ei verkkoa"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-näyttö"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ei yhteyttä wifi-näyttöön"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kirkkaus"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Etsi"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Katkaise yhteys"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wifi-näyttö"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Käytettävissä"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Yhdistetään"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Yhdistetty"</string> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index a65623c3fcef..e699c640d55f 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -153,56 +153,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"L\'écran pivote automatiquement."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"L\'écran est verrouillé en mode paysage."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"L\'écran est verrouillé en mode portrait."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Lancer Rêves"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode avion"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Luminosité"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Utilisation des données de localisation"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Appareil multimédia"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Appels d\'urgence uniquement"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Paramètres"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Heure"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Moi"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Écran Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Aucune connexion à un écran Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosité"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATIQUE"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Rechercher"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Déconnecter"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Écran Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Disponible"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Connexion en cours…"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Connecté"</string> </resources> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index deba379b56e9..f49eaf1b46b5 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"स्क्रीन स्वचालित रूप से घूमेगी."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"स्क्रीन लैंडस्केप अभिविन्यास में लॉक है."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"स्क्रीन पोर्ट्रेट अभिविन्यास में लॉक है."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"dreams प्रारंभ करें"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"हवाई जहाज़ मोड"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"चमक"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"उपयोग हो रहा स्थान"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"मीडिया उपकरण"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"केवल आपातकालीन कॉल"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"सेटिंग"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"समय"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"मुझे"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"कोई नेटवर्क नहीं"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi डिस्प्ले"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"कोई Wifi डिस्प्ले कनेक्शन नहीं"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"चमक"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वत:"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"स्कैन करें"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"डिस्कनेक्ट करें"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wifi डिस्प्ले"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"उपलब्ध"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"कनेक्ट हो रहा है"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"कनेक्ट किया गया"</string> </resources> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index a50a7ce57782..405fe2ce18a5 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Zaslon će se automatski zakrenuti."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaključan u pejzažnoj orijentaciji."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaključan u portretnoj orijentaciji."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Počni sanjati"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način rada u zrakoplovu"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Svjetlina"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Lokacija u uporabi"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medijski uređaj"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Samo hitni pozivi"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Postavke"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Vrijeme"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nema mreže"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi zaslon"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nema veze s Wifi zaslonom"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svjetlina"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATSKI"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skeniraj"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Isključi"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"WiFi zaslon"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Dostupan"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Povezivanje"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Povezan"</string> </resources> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 2be3caf8396e..c77a0d87a6d4 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"A képernyő automatikusan forogni fog."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A képernyő zárolva van fekvő tájolásban."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A képernyő zárolva van álló tájolásban."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Álmok indítása"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Repülőgép üzemmód"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Fényerő"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Használatban lévő hely"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Médiaeszköz"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Csak segélyhívások"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Beállítások"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Idő"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Én"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nincs hálózat"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi kijelző"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nincs kapcsolat Wi-Fi kijelzővel"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Fényerő"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"automatikus"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Keresés"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Szétkapcsol"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi kijelző"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Rendelkezésre álló"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Kapcsolódás"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Kapcsolatban"</string> </resources> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 243018b1101c..f425b88dd7a4 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Layar akan diputar secara otomatis."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Layar dikunci dalam orientasi lanskap."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Layar dikunci dalam orientasi potret."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Mulai mimpi"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode pesawat"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Kecerahan"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Lokasi penggunaan"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Perangkat media"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Panggilan Darurat Saja"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Setelan"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Waktu"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Saya"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tidak Ada Jaringan"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Tampilan Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Tidak Ada Koneksi Tampilan Wifi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kecerahan"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATIS"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Pindai"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Putuskan"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Tampilan Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Tersedia"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Menghubungkan"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Terhubung"</string> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index 807eed13db13..3a421a8d3247 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Visualizza"</string> <string name="always_use_device" msgid="1450287437017315906">"Usa per impostazione predef. per dispositivo USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Usa per impostazione predef. per accessorio USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Consentire debug USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Fingerprint della chiave RSA del computer: "\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Consenti sempre da questo computer"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom per riempire schermo"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estendi per riemp. schermo"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Zoom compatibilità"</string> @@ -153,56 +150,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Lo schermo ruoterà automaticamente."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Lo schermo è bloccato in orientamento orizzontale."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Lo schermo è bloccato in orientamento verticale."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Avvia Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modalità aereo"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Luminosità"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Metodo di immissione"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Posizione in uso"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo multimediale"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Solo chiamate di emergenza"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Impostazioni"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Ora"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Io"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nessuna rete"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Schermo Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nessun collegamento a schermi Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosità"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Scansione"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Disconnetti"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Schermo Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Disponibile"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Collegamento"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Collegato"</string> </resources> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 6fd8af07ea36..7c904471b1cc 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"הצג"</string> <string name="always_use_device" msgid="1450287437017315906">"השתמש כברירת מחדל עבור מכשיר USB זה"</string> <string name="always_use_accessory" msgid="1210954576979621596">"השתמש כברירת מחדל עבור אביזר USB זה"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"האם לאפשר ניקוי באגים ב-USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"טביעת אצבע מפתח ה-RSA של המחשב היא:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"אפשר תמיד ממחשב זה"</string> <string name="compat_mode_on" msgid="6623839244840638213">"הגדל תצוגה כדי למלא את המסך"</string> <string name="compat_mode_off" msgid="4434467572461327898">"מתח כדי למלא את המסך"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"שינוי מרחק מתצוגה לצורך תאימות"</string> @@ -154,11 +151,13 @@ <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> <string name="start_dreams" msgid="870400522982252717">"הפעל את Dreams"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"מצב טיסה"</string> - <string name="quick_settings_battery_label" msgid="2764511189368020794">"סוללה"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"בהירות"</string> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"שיטת קלט"</string> <string name="quick_settings_location_label" msgid="3292451598267467545">"מיקום בשימוש"</string> <string name="quick_settings_media_device_label" msgid="1302906836372603762">"מכשיר מדיה"</string> <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 6e7a0110b6fe..3226f94ec011 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index bdd058784e6e..35adf627fc79 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"화면이 자동으로 회전됩니다."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"화면이 가로 방향으로 잠겨 있습니다."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"화면이 세로 방향으로 잠겨 있습니다."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"화면보호기 시작"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"비행기 모드"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"블루투스"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"밝기"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"위치 사용 중"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"미디어 기기"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"긴급 통화만 허용"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"설정"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"시간"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"나"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"네트워크가 연결되지 않음"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi 디스플레이"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Wi-Fi 디스플레이가 연결되지 않음"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"밝기"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"자동"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"검색"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"연결 해제"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi 디스플레이"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"사용 가능"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"연결 중"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"연결됨"</string> </resources> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 19fda83c3d8b..b0a00086cd5b 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekranas bus sukamas automatiškai."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Užrakintas ekranas yra horizontalios orientacijos."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Užrakintas ekranas yra vertikalios orientacijos."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Paleisti vizijas"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lėktuvo režimas"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Skaistis"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Naudojama vieta"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medijos įrenginys"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Tik skambučiai pagalbos numeriu"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nustatymai"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Laikas"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Aš"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tinklo nėra"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"„Wi-Fi“ pateiktis"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nėra „Wi-Fi“ pateikties ryšio"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Skaistis"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATINIS"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Nuskaityti"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Atjungti"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"„Wi-Fi“ pateiktis"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Pasiekiama"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Jungiama"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Prijungta"</string> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 2f276ac8e5a0..75783851beec 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekrāns tiks pagriezts automātiski."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekrāns tagad ir bloķēts ainavas orientācijā."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekrāns tagad ir bloķēts portreta orientācijā."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Palaist Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lidojuma režīms"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Spilgtums"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Izmantotā atrašanās vieta"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Multivides ierīce"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Tikai ārkārtas izsaukumi"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Iestatījumi"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Laiks"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Es"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nav tīkla"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi displejs"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nav Wi-Fi displeja savienojuma"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Spilgtums"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMĀTISKI"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Meklēt"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Atvienot"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi displejs"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Pieejams"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Notiek savienojuma izveide"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Savienots"</string> </resources> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index 34471f5b1d5b..2a6d4edfaf99 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index b4691aae1c12..be6daa0ca491 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Vis"</string> <string name="always_use_device" msgid="1450287437017315906">"Bruk som standard for denne USB-enheten"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Bruk som standard for dette USB-tilbehøret"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Vil du tillate USB-feilsøking?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Datamaskinens nøkkelfingeravtrykk for RSA er:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Tillat alltid fra denne datamaskinen"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom for å fylle skjermen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Strekk for å fylle skjerm"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Kompatibilitets-zooming"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skjermen roterer automatisk."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skjermen er låst i liggende retning."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skjermen er låst i stående retning."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Start drømmemodus"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flymodus"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Lysstyrke"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Inndatametode"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Posisjon i bruk"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medieenhet"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Bare nødanrop"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Innstillinger"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Tidspunkt"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Meg"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ingen nettverk"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skjermer"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen tilkobling for Wi-Fi-skjermer"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skann"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Koble fra"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi-skjerm"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Tilgjengelig"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Kobler til"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Tilkoblet"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index 36d23edff111..d605c4c9bdbb 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Weergeven"</string> <string name="always_use_device" msgid="1450287437017315906">"Standaard gebruiken voor dit USB-apparaat"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Standaard gebruiken voor dit USB-accessoire"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"USB-foutopsporing toestaan?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"De vingerafdruk voor de RSA-sleutel van de computer is:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Altijd toestaan vanaf deze computer"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom om scherm te vullen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Rek uit v. schermvulling"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Compatibiliteitszoom"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Scherm wordt automatisch geroteerd."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Het scherm is nu vergrendeld in liggende stand."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Het scherm is nu vergrendeld in staande stand."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Dromen starten"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Vliegmodus"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Helderheid"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Invoermethode"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Locatie in gebruik"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Media-apparaat"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Alleen noodoproepen"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Instellingen"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Tijd"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ik"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-display"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Geen wifi-displayverbinding"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helderheid"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATISCH"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Scannen"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Verbinding verbreken"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wifi-display"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Beschikbaar"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Verbinding maken"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Verbonden"</string> </resources> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index f58512cf43db..d3a5fec835f0 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekran zostanie obrócony automatycznie."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran jest zablokowany w orientacji poziomej."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran jest zablokowany w orientacji pionowej."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Zacznij śnić"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Tryb samolotowy"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Jasność"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Lokalizacja w użyciu"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Urządzenie multimedialne"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Tylko połączenia alarmowe"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Ustawienia"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Godzina"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Brak sieci"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wyświetlacz Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Brak połączenia z wyświetlaczem Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jasność"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATYCZNA"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skanuj"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Rozłącz"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wyświetlacz Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Dostępny"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Łączenie"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Połączony"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index c3a54c05fcf5..ebd673d47930 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Ver"</string> <string name="always_use_device" msgid="1450287437017315906">"Utilizar por predefinição para este aparelho USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Utilizar por predefinição para este acessório USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Permitir depuração USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"A impressão digital da chave RSA do computador é:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Permitir sempre a partir deste computador"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom para preencher o ecrã"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Esticar p. caber em ec. int."</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Zoom de compatibilidade"</string> @@ -157,14 +154,15 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Método de Introdução"</string> <!-- no translation found for quick_settings_location_label (3292451598267467545) --> <skip /> <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index b2ac19bf349a..889c96c267c5 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml index 751c150c50c3..2e3570f3caa0 100644 --- a/packages/SystemUI/res/values-rm/strings.xml +++ b/packages/SystemUI/res/values-rm/strings.xml @@ -272,7 +272,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 2678ef22dc4a..73e41d232b60 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 27c0e623fbc8..4841a31fe654 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -153,56 +153,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Экран будет поворачиваться автоматически."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Выбрана только альбомная ориентация экрана."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Выбрана только книжная ориентация экрана."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Включить заставку"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим полета"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Яркость"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Текущее местоположение"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Медиаустройство"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Только экстренные вызовы"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Настройки"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Время"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Пользователь"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нет сети"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Экраны, подключенные через Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Экран не подключен"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркость"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОНАСТРОЙКА"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Искать"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Отключить"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Подключенный экран"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Доступен"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Подключение…"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Подключен"</string> </resources> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index d382f8333019..4d8a5275f88e 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 20b47f329674..b0e4ae4225f7 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Zaslon se bo samodejno zasukal."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaklenjen v ležeči usmerjenosti."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaklenjen v pokončni usmerjenosti."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Začni sanje"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način za letalo"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Svetlost"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Mesto uporabe"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Predstavnostna naprava"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Le klici v sili"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavitve"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Čas"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Jaz"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ni omrežja"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Zaslon Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ni povezav z zaslonom Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svetlost"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"SAMODEJNO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Išči"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Prek. povezavo"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Zaslon Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Na voljo"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Vzpostavljanje povezave"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Povezava vzpostavljena"</string> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 4748465fb91a..9eb07edb3d41 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Екран ће се аутоматски ротирати."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Екран је закључан у хоризонталном положају."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Екран је закључан у вертикалном положају."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Покрени Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим рада у авиону"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Осветљеност"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Локација која се користи"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Медијски уређај"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Само хитни позиви"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Подешавања"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Време"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ја"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мреже"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi екран"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Нема везе са Wi-Fi екраном"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Осветљеност"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АУТОМАТСКА"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Скенирај"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Прекини везу"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi екран"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Доступан"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Повезивање"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Повезан"</string> </resources> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 5f9363cb722b..67d37440a374 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Visa"</string> <string name="always_use_device" msgid="1450287437017315906">"Använd som standard för den här USB-enheten"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Använd som standard för det här USB-tillbehöret"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Ska USB-felsökning tillåtas?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Fingeravtrycket för datorns RSA-nyckel är:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Tillåt alltid på den här datorn"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zooma för att fylla skärm"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Dra för att fylla skärmen"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Zoom i kompatibilitetsläge"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skärmen roteras automatiskt."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildskärmens riktning är nu låst i liggande format."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildskärmens riktning är nu låst i stående format."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Starta drömmar"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flygplansläge"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Ljusstyrka"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Inmatningsmetod"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Plats som används"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medieenhet"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Endast nödsamtal"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Inställningar"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Jag"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Inget nätverk"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skärm"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen anslutning till Wi-Fi-skärm"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ljusstyrka"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skanna"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Koppla från"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wi-Fi-skärm"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Tillgänglig"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Ansluter"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Ansluten"</string> </resources> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index b733b3753819..b666b1222b74 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -56,12 +56,9 @@ <string name="label_view" msgid="6304565553218192990">"Ona"</string> <string name="always_use_device" msgid="1450287437017315906">"Kwa kifaa hiki cha USB tumia chaguo-msingi"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Tumia kama chaguo-msingi ya kifuasi hiki cha USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Ruhusu utatuaji wa USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Alama ya kidole ya kitufe cha RSA ya kompyuta ni:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Kila wakati ruhusu kutoka kwenye kompyuta hii"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Kuza ili kujaza skrini"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Tanua ili kujaza skrini"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Kukuza kwa Utangamanifu"</string> @@ -149,56 +146,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skrini itazunguka kiotomatiki."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skrini imefungwa sasa katika uelekezo wa mandhari."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skrini imefungwa katika uelekeo wa picha."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Anza ndoto"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modi ya ndege"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Ung\'avu"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Mbinu Ingizo"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Eneo linalotumika"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Kifaa cha midia"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Simu za Dharura Pekee"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Mipangilio"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Muda"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Mimi"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Hakuna Mtandao"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Onyesho la Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Hakuna Muunganisho wa Onyesho la Wifi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ung\'avu"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"KIOTOMATIKI"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Changanua"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Kata muunganisho"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Onyesho la Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Inapatikana"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Inaunganisha"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Umeunganishwa"</string> </resources> diff --git a/packages/SystemUI/res/values-sw600dp/config.xml b/packages/SystemUI/res/values-sw600dp/config.xml index c52b6ca07df7..209ad11e14d5 100644 --- a/packages/SystemUI/res/values-sw600dp/config.xml +++ b/packages/SystemUI/res/values-sw600dp/config.xml @@ -25,4 +25,7 @@ <!-- The number of columns that the top level tiles span in the QuickSettings --> <integer name="quick_settings_user_time_settings_tile_span">1</integer> + + <!-- Whether rotation lock shows up in quick settings or not --> + <bool name="quick_settings_show_rotation_lock">true</bool> </resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 8ce42ddee4ac..37be5c974f90 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"หน้าจอจะหมุนโดยอัตโนมัติ"</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"ขณะนี้หน้าจอถูกล็อกให้วางในแนวนอน"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"ขณะนี้หน้าจอถูกล็อกให้วางในแนวตั้ง"</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"เริ่ม Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"โหมดใช้งานบนเครื่องบิน"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"บลูทูธ"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"ความสว่าง"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"สถานที่ที่ใช้งาน"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"อุปกรณ์สื่อ"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"โทรฉุกเฉินเท่านั้น"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"การตั้งค่า"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"เวลา"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"ฉัน"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ไม่มีเครือข่าย"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"การแสดงผลด้วย WiFi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"ไม่มีการเชื่อมต่อการแสดงผลด้วย WiFi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ความสว่าง"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"อัตโนมัติ"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"สแกน"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"เลิกต่อ"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"การแสดงผลด้วย WiFi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"มีอยู่"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"กำลังเชื่อมต่อ"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"เชื่อมต่อแล้ว"</string> </resources> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 0c57270a10b0..30b214a3012a 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Awtomatikong iikot ang screen."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Naka-lock ang screen sa pahigang oryentasyon."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Naka-lock ang screen sa patayong oryentasyon."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Simulan panaginip"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Airplane mode"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brightness"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Lokasyong ginagamit"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Device ng media"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Mga Pang-emergency na Tawag Lamang"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Mga Setting"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Oras"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Ako"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Walang Network"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi Display"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Walang Koneksyon sa Wifi Display"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"I-scan"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Idiskonekta"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Wifi Display"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Available"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Kumukonekta"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Nakakonekta"</string> </resources> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index c44f735b4ead..cd390d309f40 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 23d715fa9432..0e708c8eb775 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -58,12 +58,9 @@ <string name="label_view" msgid="6304565553218192990">"Переглянути"</string> <string name="always_use_device" msgid="1450287437017315906">"Використовувати за умовчанням для пристрою USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Використовувати за умовчанням для аксесуара USB"</string> - <!-- no translation found for usb_debugging_title (4513918393387141949) --> - <skip /> - <!-- no translation found for usb_debugging_message (2220143855912376496) --> - <skip /> - <!-- no translation found for usb_debugging_always (303335496705863070) --> - <skip /> + <string name="usb_debugging_title" msgid="4513918393387141949">"Дозволити налагодження USB?"</string> + <string name="usb_debugging_message" msgid="2220143855912376496">"Цифровий відбиток ключа RSA комп’ютера:"\n"<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Завжди дозволяти з цього комп’ютера"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Масштабув. на весь екран"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Розтягнути на весь екран"</string> <string name="compat_mode_help_header" msgid="7969493989397529910">"Масштабування для сумісності"</string> @@ -151,56 +148,33 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Екран обертатиметься автоматично."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Екран заблоковано в альбомній орієнтації."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Екран заблоковано в книжковій орієнтації."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> - <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> - <skip /> - <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> - <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Увімкнути Dreams"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим польоту"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> + <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Яскравість"</string> + <string name="quick_settings_ime_label" msgid="7073463064369468429">"Метод введення"</string> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Поточне місцезнаходження"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Носій"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Лише екстрені виклики"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Налаштування"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Немає мережі"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Екран Wi-Fi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Немає з’єднання з екраном Wi-Fi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яскравість"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТО"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Сканувати"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Від’єднати"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Екран Wi-Fi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Доступний"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Під’єднання"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Під’єднаний"</string> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 33d9ac67c500..267dcb643964 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -157,7 +157,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index 9ec52a76facd..c8e860a655c8 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -159,7 +159,9 @@ <skip /> <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> + <skip /> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> <skip /> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 3ddf14803118..5f9877e96c57 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -153,56 +153,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"螢幕會自動旋轉。"</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"螢幕已鎖定為橫向模式。"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"螢幕已鎖定為垂直模式。"</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"啟動 Dream"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飛航模式"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"藍牙"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"亮度"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"使用位置"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"媒體裝置"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"僅可撥打緊急電話"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"設定"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"時間"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"我"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網路"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi Display"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"未連接 WiFi Display"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"亮度"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"掃描"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"中斷連線"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"WiFi Display"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"可以使用"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"連線中"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"已連線"</string> </resources> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index d4c99fe8484d..f1c5770f3070 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -151,56 +151,34 @@ <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Isikrini sizophenduka ngokuzenzakalela."</string> <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Isikrini sikhiyelwe ngomumo we-landscape."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Isikrini sikhiyelwe ngomumo we-portrait."</string> - <!-- no translation found for jelly_bean_dream_name (5992026543636816792) --> + <string name="jelly_bean_dream_name" msgid="5992026543636816792">"I-BeanFlinger"</string> + <string name="start_dreams" msgid="870400522982252717">"Qala amaphupho"</string> + <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Isimo sendiza"</string> + <!-- no translation found for quick_settings_battery_charging_label (490074774465309209) --> <skip /> - <!-- no translation found for start_dreams (870400522982252717) --> - <skip /> - <!-- no translation found for quick_settings_airplane_mode_label (5510520633448831350) --> - <skip /> - <!-- no translation found for quick_settings_battery_label (2764511189368020794) --> - <skip /> - <!-- no translation found for quick_settings_bluetooth_label (6304190285170721401) --> - <skip /> - <!-- no translation found for quick_settings_brightness_label (6968372297018755815) --> + <!-- no translation found for quick_settings_battery_charged_label (8865413079414246081) --> <skip /> + <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"I-Bluetooth"</string> + <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Ukugqama"</string> <!-- no translation found for quick_settings_ime_label (7073463064369468429) --> <skip /> - <!-- no translation found for quick_settings_location_label (3292451598267467545) --> - <skip /> - <!-- no translation found for quick_settings_media_device_label (1302906836372603762) --> - <skip /> - <!-- no translation found for quick_settings_rssi_label (7725671335550695589) --> - <skip /> - <!-- no translation found for quick_settings_rssi_emergency_only (2713774041672886750) --> - <skip /> - <!-- no translation found for quick_settings_settings_label (5326556592578065401) --> - <skip /> - <!-- no translation found for quick_settings_time_label (4635969182239736408) --> - <skip /> - <!-- no translation found for quick_settings_user_label (5238995632130897840) --> - <skip /> - <!-- no translation found for quick_settings_wifi_label (4393429107095001520) --> - <skip /> - <!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) --> - <skip /> - <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) --> - <skip /> - <!-- no translation found for quick_settings_brightness_dialog_auto_brightness_label (5064982743784071218) --> - <skip /> - <!-- no translation found for wifi_display_scan (8453135922233546097) --> - <skip /> - <!-- no translation found for wifi_display_disconnect (5450214362789378584) --> - <skip /> - <!-- no translation found for wifi_display_dialog_title (2817993038700218900) --> - <skip /> - <!-- no translation found for wifi_display_state_available (980373281442607096) --> - <skip /> - <!-- no translation found for wifi_display_state_connecting (1677010908036241940) --> - <skip /> - <!-- no translation found for wifi_display_state_connected (9154375061719151149) --> - <skip /> + <string name="quick_settings_location_label" msgid="3292451598267467545">"Indawo iyasetshenziswa"</string> + <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Idivayisi yemidiya"</string> + <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> + <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Amakholi aphuthumayo kuphela"</string> + <string name="quick_settings_settings_label" msgid="5326556592578065401">"Izilungiselelo"</string> + <string name="quick_settings_time_label" msgid="4635969182239736408">"Isikhathi"</string> + <string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string> + <string name="quick_settings_wifi_label" msgid="4393429107095001520">"I-WiFi"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ayikho inethiwekhi"</string> + <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Ukubuka kwe-Wifi"</string> + <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Alukho uxhumo lokubonisa le-Wifi"</string> + <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ukugqama"</string> + <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OKUZENZAKALELAYO"</string> + <string name="wifi_display_scan" msgid="8453135922233546097">"Skena"</string> + <string name="wifi_display_disconnect" msgid="5450214362789378584">"Nqamula"</string> + <string name="wifi_display_dialog_title" msgid="2817993038700218900">"Ukubuka kwe-Wifi"</string> + <string name="wifi_display_state_available" msgid="980373281442607096">"Kuyatholakala"</string> + <string name="wifi_display_state_connecting" msgid="1677010908036241940">"Iyaxhuma"</string> + <string name="wifi_display_state_connected" msgid="9154375061719151149">"Ixhunyiwe"</string> </resources> diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 734e68cdf5a6..1edc3fce1db7 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -87,5 +87,8 @@ <!-- The number of columns that the top level tiles span in the QuickSettings --> <integer name="quick_settings_user_time_settings_tile_span">1</integer> + + <!-- Whether rotation lock shows up in quick settings or not --> + <bool name="quick_settings_show_rotation_lock">false</bool> </resources> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index fd1c472f34d4..b65b013a474a 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -411,6 +411,10 @@ <string name="quick_settings_bluetooth_label">Bluetooth</string> <!-- QuickSettings: Brightness [CHAR LIMIT=NONE] --> <string name="quick_settings_brightness_label">Brightness</string> + <!-- QuickSettings: Rotation Unlocked [CHAR LIMIT=NONE] --> + <string name="quick_settings_rotation_unlocked_label">Auto Rotate</string> + <!-- QuickSettings: Rotation Locked [CHAR LIMIT=NONE] --> + <string name="quick_settings_rotation_locked_label">Rotation Locked</string> <!-- QuickSettings: IME [CHAR LIMIT=NONE] --> <string name="quick_settings_ime_label">Input Method</string> <!-- QuickSettings: Location [CHAR LIMIT=NONE] --> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 91f29a2b47eb..1c244d4e8c9f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -356,6 +356,14 @@ public class PanelView extends FrameLayout { return mExpandedFraction; } + public boolean isFullyExpanded() { + return mExpandedHeight == getFullHeight(); + } + + public boolean isFullyCollapsed() { + return mExpandedHeight == 0; + } + public void setBar(PanelBar panelBar) { mBar = panelBar; } @@ -371,13 +379,13 @@ public class PanelView extends FrameLayout { public void collapse() { // TODO: abort animation or ongoing touch - if (mExpandedHeight > 0) { + if (!isFullyCollapsed()) { fling(-mSelfCollapseVelocityPx, /*always=*/ true); } } public void expand() { - if (mExpandedHeight < getFullHeight()) { + if (!isFullyExpanded()) { fling (mSelfExpandVelocityPx, /*always=*/ true); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index b335b5ff6b34..ca1f82a067e5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -318,8 +318,6 @@ public class PhoneStatusBar extends BaseStatusBar { mStatusBarWindow.setBackground(null); mNotificationPanel.setBackground(new FastColorDrawable(context.getResources().getColor( R.color.notification_panel_solid_background))); - mSettingsPanel.setBackground(new FastColorDrawable(context.getResources().getColor( - R.color.notification_panel_solid_background))); } if (ENABLE_INTRUDERS) { mIntruderAlertView = (IntruderAlertView) View.inflate(context, R.layout.intruder_alert, null); @@ -436,6 +434,11 @@ public class PhoneStatusBar extends BaseStatusBar { mSettingsPanel.setup(mNetworkController, mBluetoothController, mBatteryController, mLocationController); + if (!ActivityManager.isHighEndGfx()) { + mSettingsPanel.setBackground(new FastColorDrawable(context.getResources().getColor( + R.color.notification_panel_solid_background))); + } + // final ImageView wimaxRSSI = // (ImageView)sb.findViewById(R.id.wimax_signal); // if (wimaxRSSI != null) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 38fd7909a8f8..3a101557e8a0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -29,6 +29,7 @@ import android.content.Loader; import android.content.res.Resources; import android.database.Cursor; import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.LevelListDrawable; import android.hardware.display.DisplayManager; import android.hardware.display.WifiDisplay; @@ -48,7 +49,9 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; +import com.android.internal.view.RotationPolicy; import com.android.systemui.R; +import com.android.systemui.statusbar.phone.QuickSettingsModel.RSSIState; import com.android.systemui.statusbar.phone.QuickSettingsModel.State; import com.android.systemui.statusbar.phone.QuickSettingsModel.UserState; import com.android.systemui.statusbar.policy.BatteryController; @@ -89,6 +92,14 @@ class QuickSettings { private final ArrayList<QuickSettingsTileView> mDynamicSpannedTiles = new ArrayList<QuickSettingsTileView>(); + private final RotationPolicy.RotationPolicyListener mRotationPolicyListener = + new RotationPolicy.RotationPolicyListener() { + @Override + public void onChange() { + mModel.onRotationLockChanged(); + } + }; + public QuickSettings(Context context, QuickSettingsContainerView container) { mDisplayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); mContext = context; @@ -125,6 +136,7 @@ class QuickSettings { bluetoothController.addStateChangedCallback(mModel); batteryController.addStateChangedCallback(mModel); locationController.addStateChangedCallback(mModel); + RotationPolicy.registerRotationPolicyListener(mContext, mRotationPolicyListener); } private void queryForUserInformation() { @@ -285,14 +297,45 @@ class QuickSettings { mModel.addRSSITile(rssiTile, new QuickSettingsModel.RefreshCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { + RSSIState rssiState = (RSSIState) state; + ImageView iv = (ImageView) view.findViewById(R.id.rssi_image); + ImageView iov = (ImageView) view.findViewById(R.id.rssi_overlay_image); TextView tv = (TextView) view.findViewById(R.id.rssi_textview); - tv.setCompoundDrawablesRelativeWithIntrinsicBounds(0, state.iconId, 0, 0); + iv.setImageResource(rssiState.signalIconId); + if (rssiState.dataTypeIconId > 0) { + iov.setImageResource(rssiState.dataTypeIconId); + } else { + iov.setImageDrawable(null); + } tv.setText(state.label); } }); parent.addView(rssiTile); } + // Rotation Lock + if (mContext.getResources().getBoolean(R.bool.quick_settings_show_rotation_lock)) { + QuickSettingsTileView rotationLockTile = (QuickSettingsTileView) + inflater.inflate(R.layout.quick_settings_tile, parent, false); + rotationLockTile.setContent(R.layout.quick_settings_tile_rotation_lock, inflater); + rotationLockTile.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + boolean locked = RotationPolicy.isRotationLocked(mContext); + RotationPolicy.setRotationLock(mContext, !locked); + } + }); + mModel.addRotationLockTile(rotationLockTile, new QuickSettingsModel.RefreshCallback() { + @Override + public void refreshView(QuickSettingsTileView view, State state) { + TextView tv = (TextView) view.findViewById(R.id.rotation_lock_textview); + tv.setCompoundDrawablesRelativeWithIntrinsicBounds(0, state.iconId, 0, 0); + tv.setText(state.label); + } + }); + parent.addView(rotationLockTile); + } + // Battery QuickSettingsTileView batteryTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index a6117be0dfe1..f2391102e44d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -36,6 +36,7 @@ import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; +import com.android.internal.view.RotationPolicy; import com.android.systemui.R; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; import com.android.systemui.statusbar.policy.LocationController.LocationGpsStateChangeCallback; @@ -59,6 +60,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, int batteryLevel; boolean pluggedIn; } + static class RSSIState extends State { + int signalIconId; + int dataTypeIconId; + } static class UserState extends State { Drawable avatar; } @@ -123,7 +128,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private QuickSettingsTileView mRSSITile; private RefreshCallback mRSSICallback; - private State mRSSIState = new State(); + private RSSIState mRSSIState = new RSSIState(); private QuickSettingsTileView mBluetoothTile; private RefreshCallback mBluetoothCallback; @@ -141,6 +146,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private RefreshCallback mImeCallback; private State mImeState = new State(); + private QuickSettingsTileView mRotationLockTile; + private RefreshCallback mRotationLockCallback; + private State mRotationLockState = new State(); + public QuickSettingsModel(Context context) { mContext = context; mHandler = new Handler(); @@ -253,13 +262,16 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // NetworkSignalChanged callback @Override public void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId, - String enabledDesc) { + int dataTypeIconId, String enabledDesc) { if (deviceSupportsTelephony()) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); - mRSSIState.iconId = enabled && (mobileSignalIconId > 0) + mRSSIState.signalIconId = enabled && (mobileSignalIconId > 0) ? mobileSignalIconId : R.drawable.ic_qs_signal_no_signal; + mRSSIState.dataTypeIconId = enabled && (dataTypeIconId > 0) + ? dataTypeIconId + : 0; mRSSIState.label = enabled ? enabledDesc : r.getString(R.string.quick_settings_rssi_emergency_only); @@ -372,4 +384,26 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, return null; } + // Rotation lock + void addRotationLockTile(QuickSettingsTileView view, RefreshCallback cb) { + mRotationLockTile = view; + mRotationLockCallback = cb; + onRotationLockChanged(); + } + void onRotationLockChanged() { + boolean locked = RotationPolicy.isRotationLocked(mContext); + mRotationLockState.enabled = locked; + mRotationLockState.iconId = locked + ? R.drawable.ic_qs_rotation_locked + : R.drawable.ic_qs_auto_rotate; + mRotationLockState.label = locked + ? mContext.getString(R.string.quick_settings_rotation_locked_label) + : mContext.getString(R.string.quick_settings_rotation_unlocked_label); + + // may be called before addRotationLockTile due to RotationPolicyListener in QuickSettings + if (mRotationLockTile != null && mRotationLockCallback != null) { + mRotationLockCallback.refreshView(mRotationLockTile, mRotationLockState); + } + } + }
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java index 2d4c9ee44b88..e0b7fe6f9c28 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java @@ -21,6 +21,7 @@ import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.View; import android.widget.FrameLayout; import android.widget.ScrollView; import android.widget.TextSwitcher; @@ -36,6 +37,7 @@ public class StatusBarWindowView extends FrameLayout private ExpandHelper mExpandHelper; private NotificationRowLayout latestItems; + private NotificationPanelView mNotificationPanel; PhoneStatusBar mService; @@ -49,6 +51,7 @@ public class StatusBarWindowView extends FrameLayout super.onAttachedToWindow(); latestItems = (NotificationRowLayout) findViewById(R.id.latestItems); ScrollView scroller = (ScrollView) findViewById(R.id.scroll); + mNotificationPanel = (NotificationPanelView) findViewById(R.id.notification_panel); int minHeight = getResources().getDimensionPixelSize(R.dimen.notification_row_min_height); int maxHeight = getResources().getDimensionPixelSize(R.dimen.notification_row_max_height); mExpandHelper = new ExpandHelper(mContext, latestItems, minHeight, maxHeight); @@ -71,8 +74,13 @@ public class StatusBarWindowView extends FrameLayout @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - boolean intercept = mExpandHelper.onInterceptTouchEvent(ev) || - super.onInterceptTouchEvent(ev); + boolean intercept = false; + if (mNotificationPanel.isFullyExpanded()) { + intercept = mExpandHelper.onInterceptTouchEvent(ev); + } + if (!intercept) { + super.onInterceptTouchEvent(ev); + } if (intercept) { MotionEvent cancellation = MotionEvent.obtain(ev); cancellation.setAction(MotionEvent.ACTION_CANCEL); @@ -84,8 +92,13 @@ public class StatusBarWindowView extends FrameLayout @Override public boolean onTouchEvent(MotionEvent ev) { - boolean handled = mExpandHelper.onTouchEvent(ev) || - super.onTouchEvent(ev); + boolean handled = false; + if (mNotificationPanel.isFullyExpanded()) { + handled = mExpandHelper.onTouchEvent(ev); + } + if (!handled) { + handled = super.onTouchEvent(ev); + } return handled; } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index 0bdc59b35a6e..556ae594ea03 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -16,11 +16,6 @@ package com.android.systemui.statusbar.policy; -import java.io.FileDescriptor; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; - import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -37,9 +32,7 @@ import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; -import android.os.SystemProperties; import android.provider.Settings; -import android.provider.Telephony; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SignalStrength; @@ -50,15 +43,18 @@ import android.widget.ImageView; import android.widget.TextView; import com.android.internal.app.IBatteryStats; -import com.android.internal.telephony.IccCard; import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.cdma.EriInfo; -import com.android.server.am.BatteryStatsService; import com.android.internal.util.AsyncChannel; - +import com.android.server.am.BatteryStatsService; import com.android.systemui.R; +import java.io.FileDescriptor; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + public class NetworkController extends BroadcastReceiver { // debug static final String TAG = "StatusBar.NetworkController"; @@ -85,6 +81,7 @@ public class NetworkController extends BroadcastReceiver { int mDataDirectionIconId; // data + data direction on phones int mDataSignalIconId; int mDataTypeIconId; + int mQSDataTypeIconId; int mAirplaneIconId; boolean mDataActive; int mMobileActivityIconId; // overlay arrows for data direction @@ -178,7 +175,8 @@ public class NetworkController extends BroadcastReceiver { public interface NetworkSignalChangedCallback { void onWifiSignalChanged(boolean enabled, int wifiSignalIconId, String description); - void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId, String description); + void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId, int dataTypeIconId, + String description); void onAirplaneModeChanged(boolean enabled); } @@ -352,15 +350,16 @@ public class NetworkController extends BroadcastReceiver { cb.onWifiSignalChanged(wifiEnabled, mQSWifiIconId, wifiDesc); if (isEmergencyOnly()) { - cb.onMobileDataSignalChanged(false, mQSPhoneSignalIconId, null); + cb.onMobileDataSignalChanged(false, mQSPhoneSignalIconId, mQSDataTypeIconId, null); } else { if (mIsWimaxEnabled && mWimaxConnected) { - // wimax is special - cb.onMobileDataSignalChanged(true, mQSPhoneSignalIconId, mNetworkName); + // Wimax is special + cb.onMobileDataSignalChanged(true, mQSPhoneSignalIconId, mQSDataTypeIconId, + mNetworkName); } else { - // normal mobile data + // Normal mobile data cb.onMobileDataSignalChanged(mHasMobileDataFeature, mQSPhoneSignalIconId, - mNetworkName); + mQSDataTypeIconId, mNetworkName); } } cb.onAirplaneModeChanged(mAirplaneMode); @@ -570,6 +569,7 @@ public class NetworkController extends BroadcastReceiver { // wimax is a special 4g network not handled by telephony mDataIconList = TelephonyIcons.DATA_4G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_4g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_4g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_4g); } else { @@ -578,6 +578,7 @@ public class NetworkController extends BroadcastReceiver { if (!mShowAtLeastThreeGees) { mDataIconList = TelephonyIcons.DATA_G[mInetCondition]; mDataTypeIconId = 0; + mQSDataTypeIconId = 0; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_gprs); break; @@ -588,6 +589,7 @@ public class NetworkController extends BroadcastReceiver { if (!mShowAtLeastThreeGees) { mDataIconList = TelephonyIcons.DATA_E[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_e; + mQSDataTypeIconId = R.drawable.ic_qs_signal_e; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_edge); break; @@ -597,6 +599,7 @@ public class NetworkController extends BroadcastReceiver { case TelephonyManager.NETWORK_TYPE_UMTS: mDataIconList = TelephonyIcons.DATA_3G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_3g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_3g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_3g); break; @@ -607,11 +610,13 @@ public class NetworkController extends BroadcastReceiver { if (mHspaDataDistinguishable) { mDataIconList = TelephonyIcons.DATA_H[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_h; + mQSDataTypeIconId = R.drawable.ic_qs_signal_h; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_3_5g); } else { mDataIconList = TelephonyIcons.DATA_3G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_3g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_3g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_3g); } @@ -621,6 +626,7 @@ public class NetworkController extends BroadcastReceiver { // display 1xRTT for IS95A/B mDataIconList = TelephonyIcons.DATA_1X[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_1x; + mQSDataTypeIconId = R.drawable.ic_qs_signal_1x; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_cdma); break; @@ -631,6 +637,7 @@ public class NetworkController extends BroadcastReceiver { if (!mShowAtLeastThreeGees) { mDataIconList = TelephonyIcons.DATA_1X[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_1x; + mQSDataTypeIconId = R.drawable.ic_qs_signal_1x; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_cdma); break; @@ -643,12 +650,14 @@ public class NetworkController extends BroadcastReceiver { case TelephonyManager.NETWORK_TYPE_EHRPD: mDataIconList = TelephonyIcons.DATA_3G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_3g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_3g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_3g); break; case TelephonyManager.NETWORK_TYPE_LTE: mDataIconList = TelephonyIcons.DATA_4G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_4g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_4g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_4g); break; @@ -656,11 +665,13 @@ public class NetworkController extends BroadcastReceiver { if (!mShowAtLeastThreeGees) { mDataIconList = TelephonyIcons.DATA_G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_gprs); } else { mDataIconList = TelephonyIcons.DATA_3G[mInetCondition]; mDataTypeIconId = R.drawable.stat_sys_data_connected_3g; + mQSDataTypeIconId = R.drawable.ic_qs_signal_3g; mContentDescriptionDataType = mContext.getString( R.string.accessibility_data_connection_3g); } @@ -671,9 +682,11 @@ public class NetworkController extends BroadcastReceiver { if (isCdma()) { if (isCdmaEri()) { mDataTypeIconId = R.drawable.stat_sys_data_connected_roam; + mQSDataTypeIconId = R.drawable.ic_qs_signal_r; } } else if (mPhone.isNetworkRoaming()) { mDataTypeIconId = R.drawable.stat_sys_data_connected_roam; + mQSDataTypeIconId = R.drawable.ic_qs_signal_r; } } @@ -1095,7 +1108,7 @@ public class NetworkController extends BroadcastReceiver { mContentDescriptionPhoneSignal = mContext.getString( R.string.accessibility_airplane_mode); mAirplaneIconId = R.drawable.stat_sys_signal_flightmode; - mPhoneSignalIconId = mDataSignalIconId = mDataTypeIconId = 0; + mPhoneSignalIconId = mDataSignalIconId = mDataTypeIconId = mQSDataTypeIconId = 0; mQSPhoneSignalIconId = 0; // combined values from connected wifi take precedence over airplane mode @@ -1125,12 +1138,15 @@ public class NetworkController extends BroadcastReceiver { ? mContentDescriptionDataType : mContentDescriptionWifi; mDataTypeIconId = 0; + mQSDataTypeIconId = 0; if (isCdma()) { if (isCdmaEri()) { mDataTypeIconId = R.drawable.stat_sys_data_connected_roam; + mQSDataTypeIconId = R.drawable.ic_qs_signal_r; } } else if (mPhone.isNetworkRoaming()) { mDataTypeIconId = R.drawable.stat_sys_data_connected_roam; + mQSDataTypeIconId = R.drawable.ic_qs_signal_r; } } @@ -1155,6 +1171,7 @@ public class NetworkController extends BroadcastReceiver { + " mDataDirectionIconId=0x" + Integer.toHexString(mDataDirectionIconId) + " mDataSignalIconId=0x" + Integer.toHexString(mDataSignalIconId) + " mDataTypeIconId=0x" + Integer.toHexString(mDataTypeIconId) + + " mQSDataTypeIconId=0x" + Integer.toHexString(mQSDataTypeIconId) + " mWifiIconId=0x" + Integer.toHexString(mWifiIconId) + " mQSWifiIconId=0x" + Integer.toHexString(mQSWifiIconId) + " mBluetoothTetherIconId=0x" + Integer.toHexString(mBluetoothTetherIconId)); @@ -1386,6 +1403,10 @@ public class NetworkController extends BroadcastReceiver { pw.print(Integer.toHexString(mDataTypeIconId)); pw.print("/"); pw.println(getResourceName(mDataTypeIconId)); + pw.print(" mQSDataTypeIconId="); + pw.print(Integer.toHexString(mQSDataTypeIconId)); + pw.print("/"); + pw.println(getResourceName(mQSDataTypeIconId)); pw.println(" - wifi ------"); pw.print(" mWifiEnabled="); diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java index 753b864f85b6..d8e361fbcc50 100644 --- a/policy/src/com/android/internal/policy/impl/GlobalActions.java +++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java @@ -300,7 +300,6 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac public void onPress() { try { ActivityManagerNative.getDefault().switchUser(user.id); - WindowManagerGlobal.getWindowManagerService().lockNow(); } catch (RemoteException re) { Log.e(TAG, "Couldn't switch user " + re); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java index 5a0a2287cec3..a4159d0e69cf 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java @@ -153,7 +153,8 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback { // This must show before bind to guarantee that Face Unlock has a place to display show(SERVICE_STARTUP_VIEW_TIMEOUT); if (!mBoundToService) { - Log.d(TAG, "Binding to Face Unlock service"); + Log.d(TAG, "Binding to Face Unlock service for user=" + + mLockPatternUtils.getCurrentUser()); mContext.bindService(new Intent(IFaceLockInterface.class.getName()), mConnection, Context.BIND_AUTO_CREATE, diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index 140526037ec2..8fe28a335de2 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -28,11 +28,11 @@ import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.content.Intent; import android.content.IntentSender; -import android.content.SharedPreferences; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Rect; +import android.os.Looper; import android.os.UserManager; import android.util.AttributeSet; import android.util.Log; @@ -41,8 +41,6 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.widget.RemoteViews.OnClickHandler; @@ -61,6 +59,7 @@ public class KeyguardHostView extends KeyguardViewBase { // Use this to debug all of keyguard public static boolean DEBUG; + // also referenced in SecuritySettings.java static final int APPWIDGET_HOST_ID = 0x4B455947; private static final String KEYGUARD_WIDGET_PREFS = "keyguard_widget_prefs"; @@ -87,6 +86,11 @@ public class KeyguardHostView extends KeyguardViewBase { void show(); } + /*package*/ interface UserSwitcherCallback { + void hideSecurityView(int duration); + void showSecurityView(); + } + public KeyguardHostView(Context context) { this(context, null); } @@ -94,8 +98,9 @@ public class KeyguardHostView extends KeyguardViewBase { public KeyguardHostView(Context context, AttributeSet attrs) { super(context, attrs); mLockPatternUtils = new LockPatternUtils(context); - mAppWidgetHost = new AppWidgetHost(mContext, APPWIDGET_HOST_ID, mOnClickHandler); - mSecurityModel = new KeyguardSecurityModel(mContext); + mAppWidgetHost = new AppWidgetHost( + context, APPWIDGET_HOST_ID, mOnClickHandler, Looper.myLooper()); + mSecurityModel = new KeyguardSecurityModel(context); // The following enables the MENU key to work for testing automation mEnableMenuKey = shouldEnableMenuKey(); @@ -212,7 +217,7 @@ public class KeyguardHostView extends KeyguardViewBase { mAppWidgetHost.stopListening(); } - AppWidgetHost getAppWidgetHost() { + private AppWidgetHost getAppWidgetHost() { return mAppWidgetHost; } @@ -348,6 +353,7 @@ public class KeyguardHostView extends KeyguardViewBase { (failedAttemptsBeforeWipe - failedAttempts) : Integer.MAX_VALUE; // because DPM returns 0 if no restriction + boolean showTimeout = false; if (remainingBeforeWipe < LockPatternUtils.FAILED_ATTEMPTS_BEFORE_WIPE_GRACE) { // If we reach this code, it means the user has installed a DevicePolicyManager // that requests device wipe after N attempts. Once we get below the grace @@ -361,7 +367,7 @@ public class KeyguardHostView extends KeyguardViewBase { showWipeDialog(failedAttempts); } } else { - boolean showTimeout = + showTimeout = (failedAttempts % LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) == 0; if (usingPattern && mEnableFallback) { if (failedAttempts == failedAttemptWarning) { @@ -374,12 +380,12 @@ public class KeyguardHostView extends KeyguardViewBase { showTimeout = false; } } - if (showTimeout) { - showTimeoutDialog(); - } } monitor.reportFailedUnlockAttempt(); mLockPatternUtils.reportFailedPasswordAttempt(); + if (showTimeout) { + showTimeoutDialog(); + } } /** @@ -674,15 +680,11 @@ public class KeyguardHostView extends KeyguardViewBase { return; } inflateAndAddUserSelectorWidgetIfNecessary(); - SharedPreferences prefs = mContext.getSharedPreferences( - KEYGUARD_WIDGET_PREFS, Context.MODE_PRIVATE); - for (String key : prefs.getAll().keySet()) { - int appId = prefs.getInt(key, -1); - if (appId != -1) { - Log.w(TAG, "populate: adding " + key); - addWidget(appId); - } else { - Log.w(TAG, "populate: can't find " + key); + + final int[] widgets = mLockPatternUtils.getUserDefinedWidgets(); + for (int i = 0; i < widgets.length; i++) { + if (widgets[i] != -1) { + addWidget(widgets[i]); } } } @@ -694,11 +696,27 @@ public class KeyguardHostView extends KeyguardViewBase { List<UserInfo> users = mUm.getUsers(); if (users.size() > 1) { - KeyguardWidgetFrame userswitcher = (KeyguardWidgetFrame) + KeyguardWidgetFrame userSwitcher = (KeyguardWidgetFrame) LayoutInflater.from(mContext).inflate(R.layout.keyguard_multi_user_selector_widget, mAppWidgetContainer, false); - // add the switcher to the left of status view - mAppWidgetContainer.addView(userswitcher, getWidgetPosition(R.id.keyguard_status_view)); + + // add the switcher in the first position + mAppWidgetContainer.addView(userSwitcher, getWidgetPosition(R.id.keyguard_status_view)); + KeyguardMultiUserSelectorView multiUser = (KeyguardMultiUserSelectorView) + userSwitcher.getChildAt(0); + + UserSwitcherCallback callback = new UserSwitcherCallback() { + @Override + public void hideSecurityView(int duration) { + mSecurityViewContainer.animate().alpha(0).setDuration(duration); + } + + @Override + public void showSecurityView() { + mSecurityViewContainer.setAlpha(1.0f); + } + }; + multiUser.setCallback(callback); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java index 8aef68f1e26c..759068ddbec7 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java @@ -16,16 +16,17 @@ package com.android.internal.policy.impl.keyguard; -import android.app.ActivityManagerNative; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; +import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.Context; import android.content.pm.UserInfo; +import android.graphics.Color; import android.graphics.drawable.Drawable; -import android.os.RemoteException; import android.util.AttributeSet; -import android.util.Log; import android.view.LayoutInflater; -import android.view.View; -import android.view.WindowManagerGlobal; +import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -33,11 +34,15 @@ import android.widget.TextView; import com.android.internal.R; class KeyguardMultiUserAvatar extends FrameLayout { - private static final String TAG = "KeyguardViewHost"; private ImageView mUserImage; private TextView mUserName; private UserInfo mUserInfo; + private static final int INACTIVE_COLOR = 85; + private static final int INACTIVE_ALPHA = 195; + private static final float ACTIVE_SCALE = 1.1f; + private boolean mActive; + private boolean mInit = true; private KeyguardMultiUserSelectorView mUserSelector; public static KeyguardMultiUserAvatar fromXml(int resId, Context context, @@ -73,17 +78,86 @@ class KeyguardMultiUserAvatar extends FrameLayout { mUserImage.setImageDrawable(Drawable.createFromPath(mUserInfo.iconPath)); mUserName.setText(mUserInfo.name); - setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - try { - ActivityManagerNative.getDefault().switchUser(mUserInfo.id); - WindowManagerGlobal.getWindowManagerService().lockNow(); - mUserSelector.init(); - } catch (RemoteException re) { - Log.e(TAG, "Couldn't switch user " + re); + setOnClickListener(mUserSelector); + setActive(false, false, 0, null); + mInit = false; + } + + public void setActive(boolean active, boolean animate, int duration, final Runnable onComplete) { + if (mActive != active || mInit) { + mActive = active; + final int finalFilterAlpha = mActive ? 0 : INACTIVE_ALPHA; + final int initFilterAlpha = mActive ? INACTIVE_ALPHA : 0; + + final float finalScale = mActive ? ACTIVE_SCALE : 1.0f; + final float initScale = mActive ? 1.0f : ACTIVE_SCALE; + + if (active) { + KeyguardSubdivisionLayout parent = (KeyguardSubdivisionLayout) getParent(); + parent.setTopChild(parent.indexOfChild(this)); + } + + if (animate) { + ValueAnimator va = ValueAnimator.ofFloat(0f, 1f); + va.addUpdateListener(new AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float r = animation.getAnimatedFraction(); + float scale = (1 - r) * initScale + r * finalScale; + int filterAlpha = (int) ((1 - r) * initFilterAlpha + r * finalFilterAlpha); + setScaleX(scale); + setScaleY(scale); + mUserImage.setColorFilter(Color.argb(filterAlpha, INACTIVE_COLOR, + INACTIVE_COLOR, INACTIVE_COLOR)); + mUserSelector.invalidate(); + + } + }); + va.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + if (onComplete != null) { + onComplete.run(); + } + } + }); + va.setDuration(duration); + va.start(); + } else { + setScaleX(finalScale); + setScaleY(finalScale); + mUserImage.setColorFilter(Color.argb(finalFilterAlpha, INACTIVE_COLOR, + INACTIVE_COLOR, INACTIVE_COLOR)); + if (onComplete != null) { + post(onComplete); } } + } + } + + boolean mLockDrawableState = false; + + public void lockDrawableState() { + mLockDrawableState = true; + } + + public void resetDrawableState() { + mLockDrawableState = false; + post(new Runnable() { + @Override + public void run() { + refreshDrawableState(); + } }); } + + protected void drawableStateChanged() { + if (!mLockDrawableState) { + super.drawableStateChanged(); + } + } + + public UserInfo getUserInfo() { + return mUserInfo; + } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java index ba99a559b7c3..01d5d8c0389d 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java @@ -22,15 +22,26 @@ import android.content.pm.UserInfo; import android.os.RemoteException; import android.os.UserManager; import android.util.AttributeSet; -import android.widget.LinearLayout; +import android.util.Log; +import android.view.View; +import android.view.WindowManagerGlobal; +import android.widget.FrameLayout; import com.android.internal.R; +import com.android.internal.policy.impl.keyguard.KeyguardHostView.UserSwitcherCallback; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; -public class KeyguardMultiUserSelectorView extends LinearLayout{ - private KeyguardMultiUserAvatar mActiveUser; - private LinearLayout mInactiveUsers; +public class KeyguardMultiUserSelectorView extends FrameLayout implements View.OnClickListener { + private static final String TAG = "KeyguardMultiUserSelectorView"; + + private KeyguardSubdivisionLayout mUsersGrid; + private KeyguardMultiUserAvatar mActiveUserAvatar; + private UserSwitcherCallback mCallback; + private static final int SWITCH_ANIMATION_DURATION = 150; + private static final int FADE_OUT_ANIMATION_DURATION = 100; public KeyguardMultiUserSelectorView(Context context) { this(context, null, 0); @@ -48,37 +59,77 @@ public class KeyguardMultiUserSelectorView extends LinearLayout{ init(); } - public void init() { - mActiveUser = (KeyguardMultiUserAvatar) findViewById(R.id.keyguard_active_user); - mInactiveUsers = (LinearLayout) findViewById(R.id.keyguard_inactive_users); + public void setCallback(UserSwitcherCallback callback) { + mCallback = callback; + } - mInactiveUsers.removeAllViews(); + public void init() { + mUsersGrid = (KeyguardSubdivisionLayout) findViewById(R.id.keyguard_users_grid); + mUsersGrid.removeAllViews(); + setClipChildren(false); + setClipToPadding(false); - UserInfo currentUser; + UserInfo activeUser; try { - currentUser = ActivityManagerNative.getDefault().getCurrentUser(); + activeUser = ActivityManagerNative.getDefault().getCurrentUser(); } catch (RemoteException re) { - currentUser = null; + activeUser = null; } UserManager mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE); ArrayList<UserInfo> users = new ArrayList<UserInfo>(mUm.getUsers()); + Collections.sort(users, mOrderAddedComparator); + for (UserInfo user: users) { - if (user.id == currentUser.id) { - setActiveUser(user); - } else { - createAndAddInactiveUser(user); + KeyguardMultiUserAvatar uv = createAndAddUser(user); + if (user.id == activeUser.id) { + mActiveUserAvatar = uv; } } + mActiveUserAvatar.setActive(true, false, 0, null); } - private void setActiveUser(UserInfo user) { - mActiveUser.setup(user, this); - } + Comparator<UserInfo> mOrderAddedComparator = new Comparator<UserInfo>() { + @Override + public int compare(UserInfo lhs, UserInfo rhs) { + return (lhs.serialNumber - rhs.serialNumber); + } + }; - private void createAndAddInactiveUser(UserInfo user) { + private KeyguardMultiUserAvatar createAndAddUser(UserInfo user) { KeyguardMultiUserAvatar uv = KeyguardMultiUserAvatar.fromXml( R.layout.keyguard_multi_user_avatar, mContext, this, user); - mInactiveUsers.addView(uv); + mUsersGrid.addView(uv); + return uv; + } + + @Override + public void onClick(View v) { + if (!(v instanceof KeyguardMultiUserAvatar)) return; + final KeyguardMultiUserAvatar avatar = (KeyguardMultiUserAvatar) v; + if (mActiveUserAvatar == avatar) { + // They clicked the active user, no need to do anything + return; + } else { + // Reset the previously active user to appear inactive + avatar.lockDrawableState(); + mCallback.hideSecurityView(FADE_OUT_ANIMATION_DURATION); + mActiveUserAvatar.setActive(false, true, SWITCH_ANIMATION_DURATION, new Runnable() { + @Override + public void run() { + try { + ActivityManagerNative.getDefault().switchUser(avatar.getUserInfo().id); + WindowManagerGlobal.getWindowManagerService().lockNow(); + // Set the new active user, and make it appear active + avatar.resetDrawableState(); + mCallback.showSecurityView(); + mActiveUserAvatar = avatar; + mActiveUserAvatar.setActive(true, false, 0, null); + } catch (RemoteException re) { + Log.e(TAG, "Couldn't switch user " + re); + } + } + }); + } } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java index 7e9aa4370d0e..01f7af373027 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java @@ -97,11 +97,17 @@ public class KeyguardPasswordView extends LinearLayout if (deadline != 0) { handleAttemptLockout(deadline); } else { - mNavigationManager.setMessage( - mIsAlpha ? R.string.kg_password_instructions : R.string.kg_pin_instructions); + resetState(); } } + private void resetState() { + mNavigationManager.setMessage( + mIsAlpha ? R.string.kg_password_instructions : R.string.kg_pin_instructions); + mPasswordEntry.setEnabled(true); + mKeyboardView.setEnabled(true); + } + @Override protected void onFinishInflate() { mLockPatternUtils = new LockPatternUtils(mContext); // TODO: use common one @@ -297,8 +303,7 @@ public class KeyguardPasswordView extends LinearLayout @Override public void onFinish() { - mPasswordEntry.setEnabled(true); - mKeyboardView.setEnabled(true); + resetState(); } }.start(); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java index e325f948ae59..8d83484f89b4 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java @@ -54,7 +54,7 @@ class KeyguardStatusViewManager { private static final int BATTERY_INFO = 15; private StatusMode mStatus; - private String mDateFormatString; + private CharSequence mDateFormatString; // Views that this class controls. // NOTE: These may be null in some LockScreen screens and should protect from NPE @@ -101,7 +101,8 @@ class KeyguardStatusViewManager { public KeyguardStatusViewManager(View view) { if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()"); mContainer = view; - mDateFormatString = getContext().getString(R.string.abbrev_wday_month_day_no_year); + mDateFormatString = getContext().getResources() + .getText(R.string.abbrev_wday_month_day_no_year); mLockPatternUtils = new LockPatternUtils(view.getContext()); mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext()); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java new file mode 100644 index 000000000000..b7d94a9146dc --- /dev/null +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java @@ -0,0 +1,212 @@ +/* + * Copyright (C) 2012 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.policy.impl.keyguard; + +import android.content.Context; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; + +/** + * A layout that arranges its children into a special type of grid. + */ +public class KeyguardSubdivisionLayout extends ViewGroup { + ArrayList<BiTree> mCells = new ArrayList<BiTree>(); + int mNumChildren = -1; + int mWidth = -1; + int mHeight = -1; + int mTopChild = 0; + + public KeyguardSubdivisionLayout(Context context) { + this(context, null, 0); + } + + public KeyguardSubdivisionLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public KeyguardSubdivisionLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + setClipChildren(false); + setClipToPadding(false); + setChildrenDrawingOrderEnabled(true); + } + + private class BiTree { + Rect rect; + BiTree left; + BiTree right; + int nodeDepth; + ArrayList<BiTree> leafs; + + public BiTree(Rect r) { + rect = r; + } + + public BiTree() { + } + + boolean isLeaf() { + return (left == null) && (right == null); + } + + int depth() { + if (left != null && right != null) { + return Math.max(left.depth(), right.depth()) + 1; + } else if (left != null) { + return left.depth() + 1; + } else if (right != null) { + return right.depth() + 1; + } else { + return 1; + } + } + + int numLeafs() { + if (left != null && right != null) { + return left.numLeafs() + right.numLeafs(); + } else if (left != null) { + return left.numLeafs(); + } else if (right != null) { + return right.numLeafs(); + } else { + return 1; + } + } + + BiTree getNextNodeToBranch() { + if (leafs == null) { + leafs = new ArrayList<BiTree>(); + } + leafs.clear(); + getLeafs(leafs, 1); + + // We find the first leaf who's depth is not + double r = log2(leafs.size()); + if (Math.ceil(r) == Math.floor(r)) { + return leafs.get(leafs.size() - 1); + } + + int treeDepth = depth(); + for (int i = leafs.size() - 1; i >= 0; i--) { + BiTree n = leafs.get(i); + if (n.nodeDepth < treeDepth) { + return n; + } + } + return null; + } + + // Gets leafs in left to right order + void getLeafs(ArrayList<BiTree> leafs, int depth) { + if (isLeaf()) { + this.nodeDepth = depth; + leafs.add(this); + } else { + if (left != null) { + left.getLeafs(leafs, depth + 1); + } + if (right != null) { + right.getLeafs(leafs, depth + 1); + } + } + } + } + + double log2(double d) { + return Math.log(d) / Math.log(2); + } + + private void addCell(BiTree tree) { + BiTree branch = tree.getNextNodeToBranch(); + Rect r = branch.rect; + branch.left = new BiTree(); + branch.right = new BiTree(); + int newDepth = tree.depth(); + + // For each level of the tree, we alternate between horizontal and vertical division + if (newDepth % 2 == 0) { + // Divide the cell vertically + branch.left.rect = new Rect(r.left, r.top, r.right, r.top + r.height() / 2); + branch.right.rect = new Rect(r.left, r.top + r.height() / 2, r.right, r.bottom); + } else { + // Divide the cell horizontally + branch.left.rect = new Rect(r.left, r.top, r.left + r.width() / 2, r.bottom); + branch.right.rect = new Rect(r.left + r.width() / 2, r.top, r.right, r.bottom); + } + } + + private void constructGrid(int width, int height, int numChildren) { + mCells.clear(); + BiTree root = new BiTree(new Rect(0, 0, width, height)); + + // We add nodes systematically until the number of leafs matches the number of children + while (root.numLeafs() < numChildren) { + addCell(root); + } + + // Spit out the final list of cells + root.getLeafs(mCells, 1); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + int childCount = getChildCount(); + + if (mNumChildren != childCount || width != getMeasuredWidth() || + height != getMeasuredHeight()) { + constructGrid(width, height, childCount); + } + + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + Rect rect = mCells.get(i).rect; + child.measure(MeasureSpec.makeMeasureSpec(rect.width(), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(rect.height(), MeasureSpec.EXACTLY)); + } + setMeasuredDimension(width, height); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + Rect rect = mCells.get(i).rect; + child.layout(rect.left, rect.top, rect.right, rect.bottom); + } + } + + public void setTopChild(int top) { + mTopChild = top; + invalidate(); + } + + protected int getChildDrawingOrder(int childCount, int i) { + int ret = i; + if (i == childCount - 1) { + ret = mTopChild; + } else if (i >= mTopChild){ + ret = i + 1; + } + return ret; + } +}
\ No newline at end of file diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java index c48e2d722616..4524c941bad2 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java @@ -16,6 +16,8 @@ package com.android.internal.policy.impl.keyguard; +import android.app.ActivityManagerNative; +import android.app.IUserSwitchObserver; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; import android.content.Context; @@ -32,7 +34,9 @@ import static android.os.BatteryManager.EXTRA_HEALTH; import android.media.AudioManager; import android.os.BatteryManager; import android.os.Handler; +import android.os.IRemoteCallback; import android.os.Message; +import android.os.RemoteException; import android.provider.Settings; import com.android.internal.telephony.IccCardConstants; @@ -136,7 +140,7 @@ public class KeyguardUpdateMonitor { handleDevicePolicyManagerStateChanged(); break; case MSG_USER_SWITCHED: - handleUserSwitched(msg.arg1); + handleUserSwitched(msg.arg1, (IRemoteCallback)msg.obj); break; case MSG_USER_REMOVED: handleUserRemoved(msg.arg1); @@ -183,9 +187,6 @@ public class KeyguardUpdateMonitor { } else if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED .equals(action)) { mHandler.sendMessage(mHandler.obtainMessage(MSG_DPM_STATE_CHANGED)); - } else if (Intent.ACTION_USER_SWITCHED.equals(action)) { - mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHED, - intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0), 0)); } else if (Intent.ACTION_USER_REMOVED.equals(action)) { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_REMOVED, intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0), 0)); @@ -325,9 +326,25 @@ public class KeyguardUpdateMonitor { filter.addAction(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION); filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); - filter.addAction(Intent.ACTION_USER_SWITCHED); filter.addAction(Intent.ACTION_USER_REMOVED); context.registerReceiver(mBroadcastReceiver, filter); + + try { + ActivityManagerNative.getDefault().registerUserSwitchObserver( + new IUserSwitchObserver.Stub() { + @Override + public void onUserSwitching(int newUserId, IRemoteCallback reply) { + mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHED, + newUserId, 0, reply)); + } + @Override + public void onUserSwitchComplete(int newUserId) throws RemoteException { + } + }); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } private void watchForDeviceProvisioning() { @@ -375,13 +392,17 @@ public class KeyguardUpdateMonitor { /** * Handle {@link #MSG_USER_SWITCHED} */ - protected void handleUserSwitched(int userId) { + protected void handleUserSwitched(int userId, IRemoteCallback reply) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onUserSwitched(userId); } } + try { + reply.sendResult(null); + } catch (RemoteException e) { + } } /** diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java index 1f0f5ef2e63b..372b0fc802c1 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java @@ -48,6 +48,7 @@ import android.util.EventLog; import android.util.Log; import android.view.KeyEvent; import android.view.WindowManager; +import android.view.WindowManagerGlobal; import android.view.WindowManagerPolicy; @@ -300,6 +301,12 @@ public class KeyguardViewMediator { synchronized (KeyguardViewMediator.this) { resetStateLocked(); } + // We should always go back to the locked state when a user + // switch happens. Is there a more direct way to do this? + try { + WindowManagerGlobal.getWindowManagerService().lockNow(); + } catch (RemoteException e) { + } } @Override diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java index 95d7623696ad..499c15e2f1da 100644 --- a/services/java/com/android/server/AppWidgetServiceImpl.java +++ b/services/java/com/android/server/AppWidgetServiceImpl.java @@ -42,6 +42,7 @@ import android.os.Binder; import android.os.Bundle; import android.os.Environment; import android.os.IBinder; +import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; @@ -409,7 +410,7 @@ class AppWidgetServiceImpl { } public int allocateAppWidgetId(String packageName, int hostId) { - int callingUid = enforceCallingUid(packageName); + int callingUid = enforceSystemOrCallingUid(packageName); synchronized (mAppWidgetIds) { ensureStateLoadedLocked(); int appWidgetId = mNextAppWidgetId++; @@ -1358,10 +1359,10 @@ class AppWidgetServiceImpl { com.android.internal.R.styleable.AppWidgetProviderInfo_resizeMode, AppWidgetProviderInfo.RESIZE_NONE); info.widgetCategory = sa.getInt( - com.android.internal.R.styleable.AppWidgetProviderInfo_resizeMode, + com.android.internal.R.styleable.AppWidgetProviderInfo_widgetCategory, AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN); info.widgetFeatures = sa.getInt( - com.android.internal.R.styleable.AppWidgetProviderInfo_resizeMode, + com.android.internal.R.styleable.AppWidgetProviderInfo_widgetFeatures, AppWidgetProviderInfo.WIDGET_FEATURES_NONE); sa.recycle(); @@ -1391,6 +1392,15 @@ class AppWidgetServiceImpl { return pkgInfo.applicationInfo.uid; } + int enforceSystemOrCallingUid(String packageName) throws IllegalArgumentException { + int callingUid = Binder.getCallingUid(); + int uid = Process.myUid(); + if (UserHandle.getAppId(uid) == Process.SYSTEM_UID || uid == 0) { + return callingUid; + } + return enforceCallingUid(packageName); + } + int enforceCallingUid(String packageName) throws IllegalArgumentException { int callingUid = Binder.getCallingUid(); int packageUid; diff --git a/services/java/com/android/server/ClipboardService.java b/services/java/com/android/server/ClipboardService.java index 0bf7aad47b60..74ec6e2f84b1 100644 --- a/services/java/com/android/server/ClipboardService.java +++ b/services/java/com/android/server/ClipboardService.java @@ -17,6 +17,7 @@ package com.android.server; import android.app.ActivityManagerNative; +import android.app.AppGlobals; import android.app.IActivityManager; import android.content.BroadcastReceiver; import android.content.ClipData; @@ -26,6 +27,7 @@ import android.content.IOnPrimaryClipChangedListener; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.IPackageManager; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -120,7 +122,6 @@ public class ClipboardService extends IClipboard.Stub { private PerUserClipboard getClipboard(int userId) { synchronized (mClipboards) { - Slog.i(TAG, "Got clipboard for user=" + userId); PerUserClipboard puc = mClipboards.get(userId); if (puc == null) { puc = new PerUserClipboard(userId); @@ -255,15 +256,22 @@ public class ClipboardService extends IClipboard.Stub { } private final void addActiveOwnerLocked(int uid, String pkg) { - PackageInfo pi; + final IPackageManager pm = AppGlobals.getPackageManager(); + final int targetUserHandle = UserHandle.getCallingUserId(); + final long oldIdentity = Binder.clearCallingIdentity(); try { - pi = mPm.getPackageInfo(pkg, 0); + PackageInfo pi = pm.getPackageInfo(pkg, 0, targetUserHandle); + if (pi == null) { + throw new IllegalArgumentException("Unknown package " + pkg); + } if (!UserHandle.isSameApp(pi.applicationInfo.uid, uid)) { throw new SecurityException("Calling uid " + uid + " does not own package " + pkg); } - } catch (NameNotFoundException e) { - throw new IllegalArgumentException("Unknown package " + pkg, e); + } catch (RemoteException e) { + // Can't happen; the package manager is in the same process + } finally { + Binder.restoreCallingIdentity(oldIdentity); } PerUserClipboard clipboard = getClipboard(); if (clipboard.primaryClip != null && !clipboard.activePermissionOwners.contains(pkg)) { diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 3a338a984792..5c7a3edf3732 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -96,6 +96,7 @@ import com.android.internal.net.VpnConfig; import com.android.internal.net.VpnProfile; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; +import com.android.internal.util.IndentingPrintWriter; import com.android.server.am.BatteryStatsService; import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; @@ -2593,7 +2594,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { } @Override - protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) { + final IndentingPrintWriter pw = new IndentingPrintWriter(writer, " "); if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) { @@ -2602,20 +2604,28 @@ public class ConnectivityService extends IConnectivityManager.Stub { Binder.getCallingUid()); return; } + + // TODO: add locking to get atomic snapshot pw.println(); - for (NetworkStateTracker nst : mNetTrackers) { + for (int i = 0; i < mNetTrackers.length; i++) { + final NetworkStateTracker nst = mNetTrackers[i]; if (nst != null) { + pw.println("NetworkStateTracker for " + getNetworkTypeName(i) + ":"); + pw.increaseIndent(); if (nst.getNetworkInfo().isConnected()) { pw.println("Active network: " + nst.getNetworkInfo(). getTypeName()); } pw.println(nst.getNetworkInfo()); + pw.println(nst.getLinkProperties()); pw.println(nst); pw.println(); + pw.decreaseIndent(); } } pw.println("Network Requester Pids:"); + pw.increaseIndent(); for (int net : mPriorityList) { String pidString = net + ": "; for (Object pid : mNetRequestersPids[net]) { @@ -2624,12 +2634,15 @@ public class ConnectivityService extends IConnectivityManager.Stub { pw.println(pidString); } pw.println(); + pw.decreaseIndent(); pw.println("FeatureUsers:"); + pw.increaseIndent(); for (Object requester : mFeatureUsers) { pw.println(requester.toString()); } pw.println(); + pw.decreaseIndent(); synchronized (this) { pw.println("NetworkTranstionWakeLock is currently " + @@ -2643,9 +2656,11 @@ public class ConnectivityService extends IConnectivityManager.Stub { if (mInetLog != null) { pw.println(); pw.println("Inet condition reports:"); + pw.increaseIndent(); for(int i = 0; i < mInetLog.size(); i++) { pw.println(mInetLog.get(i)); } + pw.decreaseIndent(); } } diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java index a807f4c8228e..b027c1f76a76 100644 --- a/services/java/com/android/server/WallpaperManagerService.java +++ b/services/java/com/android/server/WallpaperManagerService.java @@ -16,10 +16,11 @@ package com.android.server; -import static android.os.FileObserver.*; import static android.os.ParcelFileDescriptor.*; +import android.app.ActivityManagerNative; import android.app.AppGlobals; +import android.app.IUserSwitchObserver; import android.app.IWallpaperManager; import android.app.IWallpaperManagerCallback; import android.app.PendingIntent; @@ -43,6 +44,7 @@ import android.os.Bundle; import android.os.Environment; import android.os.FileUtils; import android.os.IBinder; +import android.os.IRemoteCallback; import android.os.RemoteException; import android.os.FileObserver; import android.os.ParcelFileDescriptor; @@ -79,7 +81,6 @@ import org.xmlpull.v1.XmlSerializer; import com.android.internal.content.PackageMonitor; import com.android.internal.util.FastXmlSerializer; import com.android.internal.util.JournaledFile; -import com.android.server.am.ActivityManagerService; class WallpaperManagerService extends IWallpaperManager.Stub { static final String TAG = "WallpaperService"; @@ -136,7 +137,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { mWallpaper.imageWallpaperPending = false; } bindWallpaperComponentLocked(mWallpaper.imageWallpaperComponent, true, - false, mWallpaper); + false, mWallpaper, null); saveSettingsLocked(mWallpaper); } } @@ -214,12 +215,14 @@ class WallpaperManagerService extends IWallpaperManager.Stub { IWallpaperService mService; IWallpaperEngine mEngine; WallpaperData mWallpaper; + IRemoteCallback mReply; public WallpaperConnection(WallpaperInfo info, WallpaperData wallpaper) { mInfo = info; mWallpaper = wallpaper; } - + + @Override public void onServiceConnected(ComponentName name, IBinder service) { synchronized (mLock) { if (mWallpaper.connection == this) { @@ -235,6 +238,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } } + @Override public void onServiceDisconnected(ComponentName name) { synchronized (mLock) { mService = null; @@ -246,16 +250,35 @@ class WallpaperManagerService extends IWallpaperManager.Stub { > SystemClock.uptimeMillis() && mWallpaper.userId == mCurrentUserId) { Slog.w(TAG, "Reverting to built-in wallpaper!"); - clearWallpaperLocked(true, mWallpaper.userId); + clearWallpaperLocked(true, mWallpaper.userId, null); } } } } + @Override public void attachEngine(IWallpaperEngine engine) { - mEngine = engine; + synchronized (mLock) { + mEngine = engine; + } + } + + @Override + public void engineShown(IWallpaperEngine engine) { + synchronized (mLock) { + if (mReply != null) { + long ident = Binder.clearCallingIdentity(); + try { + mReply.sendResult(null); + } catch (RemoteException e) { + Binder.restoreCallingIdentity(ident); + } + mReply = null; + } + } } + @Override public ParcelFileDescriptor setWallpaper(String name) { synchronized (mLock) { if (mWallpaper.connection == this) { @@ -279,9 +302,10 @@ class WallpaperManagerService extends IWallpaperManager.Stub { clearWallpaperComponentLocked(wallpaper); // Do this only for the current user's wallpaper if (wallpaper.userId == mCurrentUserId - && !bindWallpaperComponentLocked(comp, false, false, wallpaper)) { + && !bindWallpaperComponentLocked(comp, false, false, + wallpaper, null)) { Slog.w(TAG, "Wallpaper no longer available; reverting to default"); - clearWallpaperLocked(false, wallpaper.userId); + clearWallpaperLocked(false, wallpaper.userId, null); } } } @@ -349,7 +373,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { if (doit) { Slog.w(TAG, "Wallpaper uninstalled, removing: " + wallpaper.wallpaperComponent); - clearWallpaperLocked(false, wallpaper.userId); + clearWallpaperLocked(false, wallpaper.userId, null); } } } @@ -369,7 +393,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } catch (NameNotFoundException e) { Slog.w(TAG, "Wallpaper component gone, removing: " + wallpaper.wallpaperComponent); - clearWallpaperLocked(false, wallpaper.userId); + clearWallpaperLocked(false, wallpaper.userId, null); } } if (wallpaper.nextWallpaperComponent != null @@ -413,28 +437,43 @@ class WallpaperManagerService extends IWallpaperManager.Stub { public void systemReady() { if (DEBUG) Slog.v(TAG, "systemReady"); WallpaperData wallpaper = mWallpaperMap.get(UserHandle.USER_OWNER); - switchWallpaper(wallpaper); + switchWallpaper(wallpaper, null); wallpaper.wallpaperObserver = new WallpaperObserver(wallpaper); wallpaper.wallpaperObserver.startWatching(); IntentFilter userFilter = new IntentFilter(); - userFilter.addAction(Intent.ACTION_USER_SWITCHED); userFilter.addAction(Intent.ACTION_USER_REMOVED); mContext.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if (Intent.ACTION_USER_SWITCHED.equals(action)) { - switchUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0)); - } else if (Intent.ACTION_USER_REMOVED.equals(action)) { + if (Intent.ACTION_USER_REMOVED.equals(action)) { removeUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0)); } } }, userFilter); + try { + ActivityManagerNative.getDefault().registerUserSwitchObserver( + new IUserSwitchObserver.Stub() { + @Override + public void onUserSwitching(int newUserId, IRemoteCallback reply) { + switchUser(newUserId, reply); + } + + @Override + public void onUserSwitchComplete(int newUserId) throws RemoteException { + } + }); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } String getName() { - return mWallpaperMap.get(0).name; + synchronized (mLock) { + return mWallpaperMap.get(0).name; + } } void removeUser(int userId) { @@ -451,7 +490,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } } - void switchUser(int userId) { + void switchUser(int userId, IRemoteCallback reply) { synchronized (mLock) { mCurrentUserId = userId; WallpaperData wallpaper = mWallpaperMap.get(userId); @@ -462,35 +501,35 @@ class WallpaperManagerService extends IWallpaperManager.Stub { wallpaper.wallpaperObserver = new WallpaperObserver(wallpaper); wallpaper.wallpaperObserver.startWatching(); } - switchWallpaper(wallpaper); + switchWallpaper(wallpaper, reply); } } - void switchWallpaper(WallpaperData wallpaper) { + void switchWallpaper(WallpaperData wallpaper, IRemoteCallback reply) { synchronized (mLock) { RuntimeException e = null; try { ComponentName cname = wallpaper.wallpaperComponent != null ? wallpaper.wallpaperComponent : wallpaper.nextWallpaperComponent; - if (bindWallpaperComponentLocked(cname, true, false, wallpaper)) { + if (bindWallpaperComponentLocked(cname, true, false, wallpaper, reply)) { return; } } catch (RuntimeException e1) { e = e1; } Slog.w(TAG, "Failure starting previous wallpaper", e); - clearWallpaperLocked(false, wallpaper.userId); + clearWallpaperLocked(false, wallpaper.userId, reply); } } public void clearWallpaper() { if (DEBUG) Slog.v(TAG, "clearWallpaper"); synchronized (mLock) { - clearWallpaperLocked(false, UserHandle.getCallingUserId()); + clearWallpaperLocked(false, UserHandle.getCallingUserId(), null); } } - void clearWallpaperLocked(boolean defaultFailed, int userId) { + void clearWallpaperLocked(boolean defaultFailed, int userId, IRemoteCallback reply) { WallpaperData wallpaper = mWallpaperMap.get(userId); File f = new File(getWallpaperDir(userId), WALLPAPER); if (f.exists()) { @@ -503,7 +542,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { if (userId != mCurrentUserId) return; if (bindWallpaperComponentLocked(defaultFailed ? wallpaper.imageWallpaperComponent - : null, true, false, wallpaper)) { + : null, true, false, wallpaper, reply)) { return; } } catch (IllegalArgumentException e1) { @@ -518,21 +557,38 @@ class WallpaperManagerService extends IWallpaperManager.Stub { // wallpaper. Slog.e(TAG, "Default wallpaper component not found!", e); clearWallpaperComponentLocked(wallpaper); + if (reply != null) { + try { + reply.sendResult(null); + } catch (RemoteException e1) { + } + } } - public void setDimensionHints(int width, int height) throws RemoteException { - checkPermission(android.Manifest.permission.SET_WALLPAPER_HINTS); - - int userId = UserHandle.getCallingUserId(); - WallpaperData wallpaper = mWallpaperMap.get(userId); - if (wallpaper == null) { - throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); - } - if (width <= 0 || height <= 0) { - throw new IllegalArgumentException("width and height must be > 0"); + public boolean hasNamedWallpaper(String name) { + synchronized (mLock) { + for (int i=0; i<mWallpaperMap.size(); i++) { + WallpaperData wd = mWallpaperMap.valueAt(i); + if (name.equals(wd.name)) { + return true; + } + } } + return false; + } + public void setDimensionHints(int width, int height) throws RemoteException { + checkPermission(android.Manifest.permission.SET_WALLPAPER_HINTS); synchronized (mLock) { + int userId = UserHandle.getCallingUserId(); + WallpaperData wallpaper = mWallpaperMap.get(userId); + if (wallpaper == null) { + throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); + } + if (width <= 0 || height <= 0) { + throw new IllegalArgumentException("width and height must be > 0"); + } + if (width != wallpaper.width || height != wallpaper.height) { wallpaper.width = width; wallpaper.height = height; @@ -610,14 +666,14 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } public ParcelFileDescriptor setWallpaper(String name) { - if (DEBUG) Slog.v(TAG, "setWallpaper"); - int userId = UserHandle.getCallingUserId(); - WallpaperData wallpaper = mWallpaperMap.get(userId); - if (wallpaper == null) { - throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); - } checkPermission(android.Manifest.permission.SET_WALLPAPER); synchronized (mLock) { + if (DEBUG) Slog.v(TAG, "setWallpaper"); + int userId = UserHandle.getCallingUserId(); + WallpaperData wallpaper = mWallpaperMap.get(userId); + if (wallpaper == null) { + throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); + } final long ident = Binder.clearCallingIdentity(); try { ParcelFileDescriptor pfd = updateWallpaperBitmapLocked(name, wallpaper); @@ -657,18 +713,18 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } public void setWallpaperComponent(ComponentName name) { - if (DEBUG) Slog.v(TAG, "setWallpaperComponent name=" + name); - int userId = UserHandle.getCallingUserId(); - WallpaperData wallpaper = mWallpaperMap.get(userId); - if (wallpaper == null) { - throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); - } checkPermission(android.Manifest.permission.SET_WALLPAPER_COMPONENT); synchronized (mLock) { + if (DEBUG) Slog.v(TAG, "setWallpaperComponent name=" + name); + int userId = UserHandle.getCallingUserId(); + WallpaperData wallpaper = mWallpaperMap.get(userId); + if (wallpaper == null) { + throw new IllegalStateException("Wallpaper not yet initialized for user " + userId); + } final long ident = Binder.clearCallingIdentity(); try { wallpaper.imageWallpaperPending = false; - bindWallpaperComponentLocked(name, false, true, wallpaper); + bindWallpaperComponentLocked(name, false, true, wallpaper, null); } finally { Binder.restoreCallingIdentity(ident); } @@ -676,7 +732,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } boolean bindWallpaperComponentLocked(ComponentName componentName, boolean force, - boolean fromUser, WallpaperData wallpaper) { + boolean fromUser, WallpaperData wallpaper, IRemoteCallback reply) { if (DEBUG) Slog.v(TAG, "bindWallpaperComponentLocked: componentName=" + componentName); // Has the component changed? if (!force) { @@ -794,6 +850,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { wallpaper.wallpaperComponent = componentName; wallpaper.connection = newConn; wallpaper.lastDiedTime = SystemClock.uptimeMillis(); + newConn.mReply = reply; try { if (wallpaper.userId == mCurrentUserId) { if (DEBUG) @@ -817,6 +874,13 @@ class WallpaperManagerService extends IWallpaperManager.Stub { void detachWallpaperLocked(WallpaperData wallpaper) { if (wallpaper.connection != null) { + if (wallpaper.connection.mReply != null) { + try { + wallpaper.connection.mReply.sendResult(null); + } catch (RemoteException e) { + } + wallpaper.connection.mReply = null; + } if (wallpaper.connection.mEngine != null) { try { wallpaper.connection.mEngine.destroy(); @@ -849,7 +913,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } catch (RemoteException e) { Slog.w(TAG, "Failed attaching wallpaper; clearing", e); if (!wallpaper.wallpaperUpdating) { - bindWallpaperComponentLocked(null, false, false, wallpaper); + bindWallpaperComponentLocked(null, false, false, wallpaper, null); } } } @@ -1032,11 +1096,11 @@ class WallpaperManagerService extends IWallpaperManager.Stub { if (wallpaper.nextWallpaperComponent != null && !wallpaper.nextWallpaperComponent.equals(wallpaper.imageWallpaperComponent)) { if (!bindWallpaperComponentLocked(wallpaper.nextWallpaperComponent, false, false, - wallpaper)) { + wallpaper, null)) { // No such live wallpaper or other failure; fall back to the default // live wallpaper (since the profile being restored indicated that the // user had selected a live rather than static one). - bindWallpaperComponentLocked(null, false, false, wallpaper); + bindWallpaperComponentLocked(null, false, false, wallpaper, null); } success = true; } else { @@ -1052,7 +1116,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { if (DEBUG) Slog.v(TAG, "settingsRestored: success=" + success); if (success) { bindWallpaperComponentLocked(wallpaper.nextWallpaperComponent, false, false, - wallpaper); + wallpaper, null); } } } diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 7ed4f8a39b21..5c38e632cc3f 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -16,6 +16,7 @@ package com.android.server; +import android.app.ActivityManager; import android.app.AlarmManager; import android.app.Notification; import android.app.NotificationManager; @@ -55,6 +56,7 @@ import android.os.Message; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; +import android.os.UserHandle; import android.os.WorkSource; import android.provider.Settings; import android.text.TextUtils; @@ -133,8 +135,8 @@ public class WifiService extends IWifiManager.Stub { private static final int POLL_TRAFFIC_STATS_INTERVAL_MSECS = 1000; /** - * See {@link Settings.Secure#WIFI_IDLE_MS}. This is the default value if a - * Settings.Secure value is not present. This timeout value is chosen as + * See {@link Settings.Global#WIFI_IDLE_MS}. This is the default value if a + * Settings.Global value is not present. This timeout value is chosen as * the approximate point at which the battery drain caused by Wi-Fi * being enabled but not active exceeds the battery drain caused by * re-establishing a connection to the mobile data network. @@ -431,8 +433,8 @@ public class WifiService extends IWifiManager.Stub { mWifiStateMachineHandler = new WifiStateMachineHandler(wifiThread.getLooper()); // Setting is in seconds - NOTIFICATION_REPEAT_DELAY_MS = Settings.Secure.getInt(context.getContentResolver(), - Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY, 900) * 1000l; + NOTIFICATION_REPEAT_DELAY_MS = Settings.Global.getInt(context.getContentResolver(), + Settings.Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY, 900) * 1000l; mNotificationEnabledSettingObserver = new NotificationEnabledSettingObserver(new Handler()); mNotificationEnabledSettingObserver.register(); } @@ -502,9 +504,9 @@ public class WifiService extends IWifiManager.Stub { final ContentResolver cr = mContext.getContentResolver(); int wifiSavedState = 0; try { - wifiSavedState = Settings.Secure.getInt(cr, Settings.Secure.WIFI_SAVED_STATE); + wifiSavedState = Settings.Global.getInt(cr, Settings.Global.WIFI_SAVED_STATE); if(wifiSavedState == 1) - Settings.Secure.putInt(cr, Settings.Secure.WIFI_SAVED_STATE, 0); + Settings.Global.putInt(cr, Settings.Global.WIFI_SAVED_STATE, 0); } catch (Settings.SettingNotFoundException e) { ; } @@ -514,9 +516,9 @@ public class WifiService extends IWifiManager.Stub { private int getPersistedWifiState() { final ContentResolver cr = mContext.getContentResolver(); try { - return Settings.Secure.getInt(cr, Settings.Secure.WIFI_ON); + return Settings.Global.getInt(cr, Settings.Global.WIFI_ON); } catch (Settings.SettingNotFoundException e) { - Settings.Secure.putInt(cr, Settings.Secure.WIFI_ON, WIFI_DISABLED); + Settings.Global.putInt(cr, Settings.Global.WIFI_ON, WIFI_DISABLED); return WIFI_DISABLED; } } @@ -564,7 +566,7 @@ public class WifiService extends IWifiManager.Stub { private void persistWifiState(int state) { final ContentResolver cr = mContext.getContentResolver(); mPersistWifiState.set(state); - Settings.Secure.putInt(cr, Settings.Secure.WIFI_ON, state); + Settings.Global.putInt(cr, Settings.Global.WIFI_ON, state); } /** @@ -638,8 +640,11 @@ public class WifiService extends IWifiManager.Stub { */ long ident = Binder.clearCallingIdentity(); - handleWifiToggled(enable); - Binder.restoreCallingIdentity(ident); + try { + handleWifiToggled(enable); + } finally { + Binder.restoreCallingIdentity(ident); + } if (enable) { if (!mIsReceiverRegistered) { @@ -834,7 +839,18 @@ public class WifiService extends IWifiManager.Stub { */ public List<ScanResult> getScanResults() { enforceAccessPermission(); - return mWifiStateMachine.syncGetScanResultsList(); + int userId = UserHandle.getCallingUserId(); + long ident = Binder.clearCallingIdentity(); + try { + int currentUser = ActivityManager.getCurrentUser(); + if (userId != currentUser) { + return new ArrayList<ScanResult>(); + } else { + return mWifiStateMachine.syncGetScanResultsList(); + } + } finally { + Binder.restoreCallingIdentity(ident); + } } /** @@ -996,11 +1012,11 @@ public class WifiService extends IWifiManager.Stub { String action = intent.getAction(); long idleMillis = - Settings.Secure.getLong(mContext.getContentResolver(), - Settings.Secure.WIFI_IDLE_MS, DEFAULT_IDLE_MS); + Settings.Global.getLong(mContext.getContentResolver(), + Settings.Global.WIFI_IDLE_MS, DEFAULT_IDLE_MS); int stayAwakeConditions = - Settings.System.getInt(mContext.getContentResolver(), - Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0); + Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0); if (action.equals(Intent.ACTION_SCREEN_ON)) { if (DBG) { Slog.d(TAG, "ACTION_SCREEN_ON"); @@ -1779,8 +1795,8 @@ public class WifiService extends IWifiManager.Stub { public void register() { ContentResolver cr = mContext.getContentResolver(); - cr.registerContentObserver(Settings.Secure.getUriFor( - Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON), true, this); + cr.registerContentObserver(Settings.Global.getUriFor( + Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON), true, this); mNotificationEnabled = getValue(); } @@ -1793,8 +1809,8 @@ public class WifiService extends IWifiManager.Stub { } private boolean getValue() { - return Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1) == 1; + return Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1) == 1; } } diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 99ec1d2f3060..e7f3599a56ca 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -173,10 +173,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { private Service mQueryBridge; - private boolean mTouchExplorationGestureEnded; - - private boolean mTouchExplorationGestureStarted; - private AlertDialog mEnableTouchExplorationDialog; /** @@ -400,18 +396,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { } public boolean sendAccessibilityEvent(AccessibilityEvent event) { - final int eventType = event.getEventType(); - - // The event for gesture start should be strictly before the - // first hover enter event for the gesture. - if (eventType == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER - && mTouchExplorationGestureStarted) { - mTouchExplorationGestureStarted = false; - AccessibilityEvent gestureStartEvent = AccessibilityEvent.obtain( - AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START); - sendAccessibilityEvent(gestureStartEvent); - } - synchronized (mLock) { if (mSecurityPolicy.canDispatchAccessibilityEvent(event)) { mSecurityPolicy.updateActiveWindowAndEventSourceLocked(event); @@ -421,22 +405,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { if (mHasInputFilter && mInputFilter != null) { mMainHandler.obtainMessage(MSG_SEND_ACCESSIBILITY_EVENT_TO_INPUT_FILTER, AccessibilityEvent.obtain(event)).sendToTarget(); - } event.recycle(); mHandledFeedbackTypes = 0; } - - // The event for gesture end should be strictly after the - // last hover exit event for the gesture. - if (eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT - && mTouchExplorationGestureEnded) { - mTouchExplorationGestureEnded = false; - AccessibilityEvent gestureEndEvent = AccessibilityEvent.obtain( - AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END); - sendAccessibilityEvent(gestureEndEvent); - } - return (OWN_PROCESS_ID != Binder.getCallingPid()); } @@ -628,14 +600,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { return mQueryBridge; } - public void touchExplorationGestureEnded() { - mTouchExplorationGestureEnded = true; - } - - public void touchExplorationGestureStarted() { - mTouchExplorationGestureStarted = true; - } - private boolean notifyGestureLocked(int gestureId, boolean isDefault) { // TODO: Now we are giving the gestures to the last enabled // service that can handle them which is the last one diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/java/com/android/server/accessibility/TouchExplorer.java index 9e4f33ea81b4..cb6b31a5bedc 100644 --- a/services/java/com/android/server/accessibility/TouchExplorer.java +++ b/services/java/com/android/server/accessibility/TouchExplorer.java @@ -25,6 +25,7 @@ import android.gesture.GestureStore; import android.gesture.GestureStroke; import android.gesture.Prediction; import android.graphics.Rect; +import android.os.Build; import android.os.Handler; import android.os.SystemClock; import android.util.Slog; @@ -35,6 +36,7 @@ import android.view.VelocityTracker; import android.view.ViewConfiguration; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; import com.android.internal.R; @@ -168,6 +170,9 @@ class TouchExplorer implements EventStreamTransformation { // Temporary rectangle to avoid instantiation. private final Rect mTempRect = new Rect(); + // Context in which this explorer operates. + private final Context mContext; + // The X of the previous event. private float mPreviousX; @@ -198,6 +203,12 @@ class TouchExplorer implements EventStreamTransformation { // The id of the last touch explored window. private int mLastTouchedWindowId; + // Whether touch exploration gesture has ended. + private boolean mTouchExplorationGestureEnded; + + // Whether touch interaction has ended. + private boolean mTouchInteractionEnded; + /** * Creates a new instance. * @@ -205,11 +216,12 @@ class TouchExplorer implements EventStreamTransformation { * @param context A context handle for accessing resources. */ public TouchExplorer(Context context, AccessibilityManagerService service) { + mContext = context; mAms = service; mReceivedPointerTracker = new ReceivedPointerTracker(context); mInjectedPointerTracker = new InjectedPointerTracker(); mTapTimeout = ViewConfiguration.getTapTimeout(); - mDetermineUserIntentTimeout = (int) (mTapTimeout * 1.5f); + mDetermineUserIntentTimeout = ViewConfiguration.getDoubleTapTimeout(); mDoubleTapTimeout = ViewConfiguration.getDoubleTapTimeout(); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mDoubleTapSlop = ViewConfiguration.get(context).getScaledDoubleTapSlop(); @@ -317,9 +329,26 @@ class TouchExplorer implements EventStreamTransformation { } public void onAccessibilityEvent(AccessibilityEvent event) { + final int eventType = event.getEventType(); + + // The event for gesture end should be strictly after the + // last hover exit event. + if (mTouchExplorationGestureEnded + && eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) { + mTouchExplorationGestureEnded = false; + sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END); + } + + // The event for touch interaction end should be strictly after the + // last hover exit and the touch exploration gesture end events. + if (mTouchInteractionEnded + && eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) { + mTouchInteractionEnded = false; + sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); + } + // If a new window opens or the accessibility focus moves we no longer // want to click/long press on the last touch explored location. - final int eventType = event.getEventType(); switch (eventType) { case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED: case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED: { @@ -358,6 +387,15 @@ class TouchExplorer implements EventStreamTransformation { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: + // The delayed enter not delivered implies that we have delivered + // TYPE_TOUCH_INTERACTION_START and not TYPE_TOUCH_INTERACTION_END, + // therefore we need to deliver the interaction end event here. + if (mSendHoverEnterDelayed.isPending()) { + sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); + } + // Announce the start of a new touch interaction. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_TOUCH_INTERACTION_START); // Pre-feed the motion events to the gesture detector since we // have a distance slop before getting into gesture detection // mode and not using the points within this slop significantly @@ -396,7 +434,7 @@ class TouchExplorer implements EventStreamTransformation { // to detect what the user is trying to do. final int pointerId = receivedTracker.getPrimaryActivePointerId(); final int pointerIdBits = (1 << pointerId); - mSendHoverEnterDelayed.post(event, pointerIdBits, policyFlags); + mSendHoverEnterDelayed.post(event, true, pointerIdBits, policyFlags); } break; default: { /* do nothing - let the code for ACTION_MOVE decide what to do */ @@ -443,6 +481,10 @@ class TouchExplorer implements EventStreamTransformation { mSendHoverExitDelayed.remove(); mPerformLongPressDelayed.remove(); mExitGestureDetectionModeDelayed.post(); + // Send accessibility event to announce the start + // of gesture recognition. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_GESTURE_DETECTION_START); } else { // We have just decided that the user is touch, // exploring so start sending events. @@ -551,7 +593,8 @@ class TouchExplorer implements EventStreamTransformation { // If we have not delivered the enter schedule exit. if (mSendHoverEnterDelayed.isPending()) { - mSendHoverExitDelayed.post(event, pointerIdBits, policyFlags); + mSendHoverEnterDelayed.mTouchExplorationInProgress = false; + mSendHoverExitDelayed.post(event, false, pointerIdBits, policyFlags); } else { // The user is touch exploring so we send events for end. sendExitEventsIfNeeded(policyFlags); @@ -656,6 +699,9 @@ class TouchExplorer implements EventStreamTransformation { } } break; case MotionEvent.ACTION_UP: { + // Announce the end of a new touch interaction. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); mCurrentState = STATE_TOUCH_EXPLORING; } break; case MotionEvent.ACTION_CANCEL: { @@ -687,6 +733,10 @@ class TouchExplorer implements EventStreamTransformation { } } break; case MotionEvent.ACTION_UP: + // Announce the end of a new touch interaction. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); + //$FALL-THROUGH$ case MotionEvent.ACTION_POINTER_UP: { mLongPressingPointerId = -1; mLongPressingPointerDeltaX = 0; @@ -725,6 +775,13 @@ class TouchExplorer implements EventStreamTransformation { } } break; case MotionEvent.ACTION_UP: { + // Announce the end of gesture recognition. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_GESTURE_DETECTION_END); + // Announce the end of a new touch interaction. + sendAccessibilityEvent( + AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); + float x = event.getX(); float y = event.getY(); mStrokeBuffer.add(new GesturePoint(x, y, event.getEventTime())); @@ -760,6 +817,19 @@ class TouchExplorer implements EventStreamTransformation { } /** + * Sends an accessibility event of the given type. + * + * @param type The event type. + */ + private void sendAccessibilityEvent(int type) { + AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(mContext); + if (accessibilityManager.isEnabled()) { + AccessibilityEvent event = AccessibilityEvent.obtain(type); + accessibilityManager.sendAccessibilityEvent(event); + } + } + + /** * Sends down events to the view hierarchy for all active pointers which are * not already being delivered i.e. pointers that are not yet injected. * @@ -807,7 +877,8 @@ class TouchExplorer implements EventStreamTransformation { MotionEvent event = mInjectedPointerTracker.getLastInjectedHoverEvent(); if (event != null && event.getActionMasked() != MotionEvent.ACTION_HOVER_EXIT) { final int pointerIdBits = event.getPointerIdBits(); - mAms.touchExplorationGestureEnded(); + mTouchExplorationGestureEnded = true; + mTouchInteractionEnded = true; sendMotionEvent(event, MotionEvent.ACTION_HOVER_EXIT, pointerIdBits, policyFlags); } } @@ -822,7 +893,6 @@ class TouchExplorer implements EventStreamTransformation { MotionEvent event = mInjectedPointerTracker.getLastInjectedHoverEvent(); if (event != null && event.getActionMasked() == MotionEvent.ACTION_HOVER_EXIT) { final int pointerIdBits = event.getPointerIdBits(); - mAms.touchExplorationGestureStarted(); sendMotionEvent(event, MotionEvent.ACTION_HOVER_ENTER, pointerIdBits, policyFlags); } } @@ -1080,16 +1150,24 @@ class TouchExplorer implements EventStreamTransformation { return; } + if (Build.IS_DEBUGGABLE) { + if (mSendHoverEnterDelayed.isPending()) { + throw new IllegalStateException("mSendHoverEnterDelayed must not be pending."); + } + if (mSendHoverExitDelayed.isPending()) { + throw new IllegalStateException("mSendHoverExitDelayed must not be pending."); + } + if (!mPerformLongPressDelayed.isPending()) { + throw new IllegalStateException( + "mPerformLongPressDelayed must not be pending."); + } + } + // Remove pending event deliveries. - mSendHoverEnterDelayed.remove(); - mSendHoverExitDelayed.remove(); mPerformLongPressDelayed.remove(); - // This is a tap so do not send hover events since - // this events will result in firing the corresponding - // accessibility events confusing the user about what - // is actually clicked. - sendExitEventsIfNeeded(policyFlags); + // The touch interaction has ended since we will send a click. + sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END); int clickLocationX; int clickLocationY; @@ -1257,13 +1335,13 @@ class TouchExplorer implements EventStreamTransformation { } public void remove() { - if (isPenidng()) { + if (isPending()) { mHandler.removeCallbacks(this); clear(); } } - private boolean isPenidng() { + public boolean isPending() { return (mEvent != null); } @@ -1326,7 +1404,7 @@ class TouchExplorer implements EventStreamTransformation { } private void clear() { - if (!isPenidng()) { + if (!isPending()) { return; } mEvent.recycle(); @@ -1347,15 +1425,18 @@ class TouchExplorer implements EventStreamTransformation { private MotionEvent mPrototype; private int mPointerIdBits; private int mPolicyFlags; + private boolean mTouchExplorationInProgress; public SendHoverDelayed(int hoverAction, boolean gestureStarted) { mHoverAction = hoverAction; mGestureStarted = gestureStarted; } - public void post(MotionEvent prototype, int pointerIdBits, int policyFlags) { + public void post(MotionEvent prototype, boolean touchExplorationInProgress, + int pointerIdBits, int policyFlags) { remove(); mPrototype = MotionEvent.obtain(prototype); + mTouchExplorationInProgress = touchExplorationInProgress; mPointerIdBits = pointerIdBits; mPolicyFlags = policyFlags; mHandler.postDelayed(this, mDetermineUserIntentTimeout); @@ -1392,6 +1473,7 @@ class TouchExplorer implements EventStreamTransformation { mPrototype = null; mPointerIdBits = -1; mPolicyFlags = 0; + mTouchExplorationInProgress = false; } public void forceSendAndRemove() { @@ -1408,10 +1490,17 @@ class TouchExplorer implements EventStreamTransformation { Slog.d(LOG_TAG_SEND_HOVER_DELAYED, mGestureStarted ? "touchExplorationGestureStarted" : "touchExplorationGestureEnded"); } - if (mGestureStarted) { - mAms.touchExplorationGestureStarted(); + if (mTouchExplorationInProgress) { + if (mGestureStarted) { + sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START); + } else { + mTouchExplorationGestureEnded = true; + mTouchInteractionEnded = true; + } } else { - mAms.touchExplorationGestureEnded(); + if (!mGestureStarted) { + mTouchInteractionEnded = true; + } } sendMotionEvent(mPrototype, mHoverAction, mPointerIdBits, mPolicyFlags); clear(); diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 1c5a8a5d9859..989477f54420 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -49,6 +49,7 @@ import android.app.IProcessObserver; import android.app.IServiceConnection; import android.app.IStopUserCallback; import android.app.IThumbnailReceiver; +import android.app.IUserSwitchObserver; import android.app.Instrumentation; import android.app.Notification; import android.app.NotificationManager; @@ -100,6 +101,7 @@ import android.os.FileUtils; import android.os.Handler; import android.os.IBinder; import android.os.IPermissionController; +import android.os.IRemoteCallback; import android.os.IUserManager; import android.os.Looper; import android.os.Message; @@ -247,6 +249,10 @@ public final class ActivityManagerService extends ActivityManagerNative // How long we wait until we timeout on key dispatching during instrumentation. static final int INSTRUMENTATION_KEY_DISPATCHING_TIMEOUT = 60*1000; + // Amount of time we wait for observers to handle a user switch before + // giving up on them and unfreezing the screen. + static final int USER_SWITCH_TIMEOUT = 2*1000; + static final int MY_PID = Process.myPid(); static final String[] EMPTY_STRING_ARRAY = new String[0]; @@ -438,6 +444,17 @@ public final class ActivityManagerService extends ActivityManagerNative final ArrayList<Integer> mUserLru = new ArrayList<Integer>(); /** + * Registered observers of the user switching mechanics. + */ + final RemoteCallbackList<IUserSwitchObserver> mUserSwitchObservers + = new RemoteCallbackList<IUserSwitchObserver>(); + + /** + * Currently active user switch. + */ + Object mCurUserSwitchCallback; + + /** * Packages that the user has asked to have run in screen size * compatibility mode instead of filling the screen. */ @@ -863,6 +880,9 @@ public final class ActivityManagerService extends ActivityManagerNative static final int DISPATCH_PROCESSES_CHANGED = 31; static final int DISPATCH_PROCESS_DIED = 32; static final int REPORT_MEM_USAGE = 33; + static final int REPORT_USER_SWITCH_MSG = 34; + static final int CONTINUE_USER_SWITCH_MSG = 35; + static final int USER_SWITCH_TIMEOUT_MSG = 36; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_BROADCAST_QUEUE_MSG = 200; @@ -1293,6 +1313,18 @@ public final class ActivityManagerService extends ActivityManagerNative thread.start(); break; } + case REPORT_USER_SWITCH_MSG: { + dispatchUserSwitch((UserStartedState)msg.obj, msg.arg1, msg.arg2); + break; + } + case CONTINUE_USER_SWITCH_MSG: { + continueUserSwitch((UserStartedState)msg.obj, msg.arg1, msg.arg2); + break; + } + case USER_SWITCH_TIMEOUT_MSG: { + timeoutUserSwitch((UserStartedState)msg.obj, msg.arg1, msg.arg2); + break; + } } } }; @@ -2142,7 +2174,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } - boolean startHomeActivityLocked(int userId, UserStartedState startingUser) { + boolean startHomeActivityLocked(int userId) { if (mHeadless) { // Added because none of the other calls to ensureBootCompleted seem to fire // when running headless. @@ -2181,9 +2213,6 @@ public final class ActivityManagerService extends ActivityManagerNative null, null, 0, 0, 0, 0, null, false, null); } } - if (startingUser != null) { - mMainStack.addStartingUserLocked(startingUser); - } return true; } @@ -3731,7 +3760,7 @@ public final class ActivityManagerService extends ActivityManagerNative broadcastIntentLocked(null, null, intent, null, null, 0, null, null, null, false, false, - MY_PID, Process.SYSTEM_UID, userId); + MY_PID, Process.SYSTEM_UID, UserHandle.USER_ALL); } private final boolean killPackageProcessesLocked(String packageName, int appId, @@ -5007,7 +5036,6 @@ public final class ActivityManagerService extends ActivityManagerNative pid = tlsIdentity.pid; } - uid = UserHandle.getAppId(uid); // Our own process gets to do everything. if (pid == MY_PID) { return PackageManager.PERMISSION_GRANTED; @@ -5059,7 +5087,8 @@ public final class ActivityManagerService extends ActivityManagerNative } else { try { pi = pm.resolveContentProvider(name, - PackageManager.GET_URI_PERMISSION_PATTERNS, UserHandle.getUserId(callingUid)); + PackageManager.GET_URI_PERMISSION_PATTERNS, + UserHandle.getUserId(callingUid)); } catch (RemoteException ex) { } } @@ -7660,42 +7689,45 @@ public final class ActivityManagerService extends ActivityManagerNative } } + final int[] users = getUsersLocked(); for (int i=0; i<ris.size(); i++) { ActivityInfo ai = ris.get(i).activityInfo; ComponentName comp = new ComponentName(ai.packageName, ai.name); doneReceivers.add(comp); intent.setComponent(comp); - IIntentReceiver finisher = null; - if (i == ris.size()-1) { - finisher = new IIntentReceiver.Stub() { - public void performReceive(Intent intent, int resultCode, - String data, Bundle extras, boolean ordered, - boolean sticky, int sendingUser) { - // The raw IIntentReceiver interface is called - // with the AM lock held, so redispatch to - // execute our code without the lock. - mHandler.post(new Runnable() { - public void run() { - synchronized (ActivityManagerService.this) { - mDidUpdate = true; + for (int j=0; j<users.length; j++) { + IIntentReceiver finisher = null; + if (i == ris.size()-1 && j == users.length-1) { + finisher = new IIntentReceiver.Stub() { + public void performReceive(Intent intent, int resultCode, + String data, Bundle extras, boolean ordered, + boolean sticky, int sendingUser) { + // The raw IIntentReceiver interface is called + // with the AM lock held, so redispatch to + // execute our code without the lock. + mHandler.post(new Runnable() { + public void run() { + synchronized (ActivityManagerService.this) { + mDidUpdate = true; + } + writeLastDonePreBootReceivers(doneReceivers); + showBootMessage(mContext.getText( + R.string.android_upgrading_complete), + false); + systemReady(goingCallback); } - writeLastDonePreBootReceivers(doneReceivers); - showBootMessage(mContext.getText( - R.string.android_upgrading_complete), - false); - systemReady(goingCallback); - } - }); - } - }; - } - Slog.i(TAG, "Sending system update to: " + intent.getComponent()); - // XXX also need to send this to stopped users(!!!) - broadcastIntentLocked(null, null, intent, null, finisher, - 0, null, null, null, true, false, MY_PID, Process.SYSTEM_UID, - UserHandle.USER_ALL); - if (finisher != null) { - mWaitingUpdate = true; + }); + } + }; + } + Slog.i(TAG, "Sending system update to " + intent.getComponent() + + " for user " + users[j]); + broadcastIntentLocked(null, null, intent, null, finisher, + 0, null, null, null, true, false, MY_PID, Process.SYSTEM_UID, + users[j]); + if (finisher != null) { + mWaitingUpdate = true; + } } } } @@ -7817,7 +7849,19 @@ public final class ActivityManagerService extends ActivityManagerNative } catch (RemoteException e) { } + long ident = Binder.clearCallingIdentity(); + try { + Intent intent = new Intent(Intent.ACTION_USER_STARTED); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + intent.putExtra(Intent.EXTRA_USER_HANDLE, mCurrentUserId); + broadcastIntentLocked(null, null, intent, + null, null, 0, null, null, null, + false, false, MY_PID, Process.SYSTEM_UID, mCurrentUserId); + } finally { + Binder.restoreCallingIdentity(ident); + } mMainStack.resumeTopActivityLocked(null); + sendUserSwitchBroadcastsLocked(-1, mCurrentUserId); } } @@ -11435,9 +11479,12 @@ public final class ActivityManagerService extends ActivityManagerNative // Make sure that the user who is receiving this broadcast is started // If not, we will just skip it. if (userId != UserHandle.USER_ALL && mStartedUsers.get(userId) == null) { - Slog.w(TAG, "Skipping broadcast of " + intent - + ": user " + userId + " is stopped"); - return ActivityManager.BROADCAST_SUCCESS; + if (callingUid != Process.SYSTEM_UID || (intent.getFlags() + & Intent.FLAG_RECEIVER_BOOT_UPGRADE) == 0) { + Slog.w(TAG, "Skipping broadcast of " + intent + + ": user " + userId + " is stopped"); + return ActivityManager.BROADCAST_SUCCESS; + } } /* @@ -13884,44 +13931,177 @@ public final class ActivityManagerService extends ActivityManagerNative Slog.w(TAG, msg); throw new SecurityException(msg); } - synchronized (this) { - if (mCurrentUserId == userId) { - return true; - } - mWindowManager.startFreezingScreen(R.anim.screen_user_exit, - R.anim.screen_user_enter); + final long ident = Binder.clearCallingIdentity(); + try { + synchronized (this) { + final int oldUserId = mCurrentUserId; + if (oldUserId == userId) { + return true; + } - // If the user we are switching to is not currently started, then - // we need to start it now. - if (mStartedUsers.get(userId) == null) { - mStartedUsers.put(userId, new UserStartedState(new UserHandle(userId), false)); - } + final UserInfo userInfo = getUserManagerLocked().getUserInfo(userId); + if (userInfo == null) { + Slog.w(TAG, "No user info for user #" + userId); + return false; + } - mCurrentUserId = userId; - Integer userIdInt = Integer.valueOf(userId); - mUserLru.remove(userIdInt); - mUserLru.add(userIdInt); - boolean haveActivities = mMainStack.switchUser(userId); - if (!haveActivities) { - startHomeActivityLocked(userId, mStartedUsers.get(userId)); - } else { - mMainStack.addStartingUserLocked(mStartedUsers.get(userId)); + mWindowManager.startFreezingScreen(R.anim.screen_user_exit, + R.anim.screen_user_enter); + + // If the user we are switching to is not currently started, then + // we need to start it now. + if (mStartedUsers.get(userId) == null) { + mStartedUsers.put(userId, new UserStartedState(new UserHandle(userId), false)); + } + + mCurrentUserId = userId; + final Integer userIdInt = Integer.valueOf(userId); + mUserLru.remove(userIdInt); + mUserLru.add(userIdInt); + + final UserStartedState uss = mStartedUsers.get(userId); + + mHandler.removeMessages(REPORT_USER_SWITCH_MSG); + mHandler.removeMessages(USER_SWITCH_TIMEOUT_MSG); + mHandler.sendMessage(mHandler.obtainMessage(REPORT_USER_SWITCH_MSG, + oldUserId, userId, uss)); + mHandler.sendMessageDelayed(mHandler.obtainMessage(USER_SWITCH_TIMEOUT_MSG, + oldUserId, userId, uss), USER_SWITCH_TIMEOUT); + Intent intent = new Intent(Intent.ACTION_USER_STARTED); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); + broadcastIntentLocked(null, null, intent, + null, null, 0, null, null, null, + false, false, MY_PID, Process.SYSTEM_UID, userId); + + if ((userInfo.flags&UserInfo.FLAG_INITIALIZED) == 0) { + if (userId != 0) { + intent = new Intent(Intent.ACTION_USER_INITIALIZE); + broadcastIntentLocked(null, null, intent, null, + new IIntentReceiver.Stub() { + public void performReceive(Intent intent, int resultCode, + String data, Bundle extras, boolean ordered, + boolean sticky, int sendingUser) { + synchronized (ActivityManagerService.this) { + getUserManagerLocked().makeInitialized(userInfo.id); + } + } + }, 0, null, null, null, true, false, MY_PID, Process.SYSTEM_UID, + userId); + } else { + getUserManagerLocked().makeInitialized(userInfo.id); + } + } + + boolean haveActivities = mMainStack.switchUserLocked(userId, uss); + if (!haveActivities) { + startHomeActivityLocked(userId); + } + + sendUserSwitchBroadcastsLocked(oldUserId, userId); } + } finally { + Binder.restoreCallingIdentity(ident); } + return true; + } + + void sendUserSwitchBroadcastsLocked(int oldUserId, int newUserId) { long ident = Binder.clearCallingIdentity(); try { - // Inform of user switch - Intent addedIntent = new Intent(Intent.ACTION_USER_SWITCHED); - addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userId); - mContext.sendBroadcastAsUser(addedIntent, UserHandle.ALL, - android.Manifest.permission.MANAGE_USERS); + Intent intent; + if (oldUserId >= 0) { + intent = new Intent(Intent.ACTION_USER_BACKGROUND); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + intent.putExtra(Intent.EXTRA_USER_HANDLE, oldUserId); + broadcastIntentLocked(null, null, intent, + null, null, 0, null, null, null, + false, false, MY_PID, Process.SYSTEM_UID, oldUserId); + } + if (newUserId >= 0) { + intent = new Intent(Intent.ACTION_USER_FOREGROUND); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + intent.putExtra(Intent.EXTRA_USER_HANDLE, newUserId); + broadcastIntentLocked(null, null, intent, + null, null, 0, null, null, null, + false, false, MY_PID, Process.SYSTEM_UID, newUserId); + intent = new Intent(Intent.ACTION_USER_SWITCHED); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + intent.putExtra(Intent.EXTRA_USER_HANDLE, newUserId); + broadcastIntentLocked(null, null, intent, + null, null, 0, null, null, + android.Manifest.permission.MANAGE_USERS, + false, false, MY_PID, Process.SYSTEM_UID, UserHandle.USER_ALL); + } } finally { Binder.restoreCallingIdentity(ident); } + } - return true; + void dispatchUserSwitch(final UserStartedState uss, final int oldUserId, + final int newUserId) { + final int N = mUserSwitchObservers.beginBroadcast(); + if (N > 0) { + final IRemoteCallback callback = new IRemoteCallback.Stub() { + int mCount = 0; + @Override + public void sendResult(Bundle data) throws RemoteException { + synchronized (ActivityManagerService.this) { + if (mCurUserSwitchCallback == this) { + mCount++; + if (mCount == N) { + sendContinueUserSwitchLocked(uss, oldUserId, newUserId); + } + } + } + } + }; + synchronized (this) { + mCurUserSwitchCallback = callback; + } + for (int i=0; i<N; i++) { + try { + mUserSwitchObservers.getBroadcastItem(i).onUserSwitching( + newUserId, callback); + } catch (RemoteException e) { + } + } + } else { + synchronized (this) { + sendContinueUserSwitchLocked(uss, oldUserId, newUserId); + } + } + mUserSwitchObservers.finishBroadcast(); + } + + void timeoutUserSwitch(UserStartedState uss, int oldUserId, int newUserId) { + synchronized (this) { + Slog.w(TAG, "User switch timeout: from " + oldUserId + " to " + newUserId); + sendContinueUserSwitchLocked(uss, oldUserId, newUserId); + } + } + + void sendContinueUserSwitchLocked(UserStartedState uss, int oldUserId, int newUserId) { + mCurUserSwitchCallback = null; + mHandler.removeMessages(USER_SWITCH_TIMEOUT_MSG); + mHandler.sendMessage(mHandler.obtainMessage(CONTINUE_USER_SWITCH_MSG, + oldUserId, newUserId, uss)); + } + + void continueUserSwitch(UserStartedState uss, int oldUserId, int newUserId) { + final int N = mUserSwitchObservers.beginBroadcast(); + for (int i=0; i<N; i++) { + try { + mUserSwitchObservers.getBroadcastItem(i).onUserSwitchComplete(newUserId); + } catch (RemoteException e) { + } + } + mUserSwitchObservers.finishBroadcast(); + synchronized (this) { + mWindowManager.stopFreezingScreen(); + } } void finishUserSwitch(UserStartedState uss) { @@ -13937,7 +14117,6 @@ public final class ActivityManagerService extends ActivityManagerNative android.Manifest.permission.RECEIVE_BOOT_COMPLETED, false, false, MY_PID, Process.SYSTEM_UID, userId); } - mWindowManager.stopFreezingScreen(); } } @@ -14074,6 +14253,26 @@ public final class ActivityManagerService extends ActivityManagerNative return state != null && state.mState != UserStartedState.STATE_STOPPING; } + @Override + public void registerUserSwitchObserver(IUserSwitchObserver observer) { + if (checkCallingPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) + != PackageManager.PERMISSION_GRANTED) { + String msg = "Permission Denial: registerUserSwitchObserver() from pid=" + + Binder.getCallingPid() + + ", uid=" + Binder.getCallingUid() + + " requires " + android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; + Slog.w(TAG, msg); + throw new SecurityException(msg); + } + + mUserSwitchObservers.register(observer); + } + + @Override + public void unregisterUserSwitchObserver(IUserSwitchObserver observer) { + mUserSwitchObservers.unregister(observer); + } + private boolean userExists(int userId) { if (userId == 0) { return true; diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index bc835b68be29..f72d31806bf3 100755 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -575,37 +575,36 @@ final class ActivityStack { * Move the activities around in the stack to bring a user to the foreground. * @return whether there are any activities for the specified user. */ - final boolean switchUser(int userId) { - synchronized (mService) { - mCurrentUser = userId; + final boolean switchUserLocked(int userId, UserStartedState uss) { + mCurrentUser = userId; + mStartingUsers.add(uss); - // Only one activity? Nothing to do... - if (mHistory.size() < 2) - return false; + // Only one activity? Nothing to do... + if (mHistory.size() < 2) + return false; - boolean haveActivities = false; - // Check if the top activity is from the new user. - ActivityRecord top = mHistory.get(mHistory.size() - 1); - if (top.userId == userId) return true; - // Otherwise, move the user's activities to the top. - int N = mHistory.size(); - int i = 0; - while (i < N) { - ActivityRecord r = mHistory.get(i); - if (r.userId == userId) { - ActivityRecord moveToTop = mHistory.remove(i); - mHistory.add(moveToTop); - // No need to check the top one now - N--; - haveActivities = true; - } else { - i++; - } + boolean haveActivities = false; + // Check if the top activity is from the new user. + ActivityRecord top = mHistory.get(mHistory.size() - 1); + if (top.userId == userId) return true; + // Otherwise, move the user's activities to the top. + int N = mHistory.size(); + int i = 0; + while (i < N) { + ActivityRecord r = mHistory.get(i); + if (r.userId == userId) { + ActivityRecord moveToTop = mHistory.remove(i); + mHistory.add(moveToTop); + // No need to check the top one now + N--; + haveActivities = true; + } else { + i++; } - // Transition from the old top to the new top - resumeTopActivityLocked(top); - return haveActivities; } + // Transition from the old top to the new top + resumeTopActivityLocked(top); + return haveActivities; } final boolean realStartActivityLocked(ActivityRecord r, @@ -1398,7 +1397,7 @@ final class ActivityStack { // Launcher... if (mMainStack) { ActivityOptions.abort(options); - return mService.startHomeActivityLocked(mCurrentUser, null); + return mService.startHomeActivityLocked(mCurrentUser); } } @@ -3577,10 +3576,6 @@ final class ActivityStack { return res; } - final void addStartingUserLocked(UserStartedState uss) { - mStartingUsers.add(uss); - } - /** * @return Returns true if the activity is being finished, false if for * some reason it is being left as-is. diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java index 46bddc4030fa..43ddf8d88a7b 100644 --- a/services/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java @@ -24,6 +24,8 @@ import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY; import static android.Manifest.permission.READ_PHONE_STATE; import static android.content.Intent.ACTION_PACKAGE_ADDED; import static android.content.Intent.ACTION_UID_REMOVED; +import static android.content.Intent.ACTION_USER_ADDED; +import static android.content.Intent.ACTION_USER_REMOVED; import static android.content.Intent.EXTRA_UID; import static android.net.ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE; import static android.net.ConnectivityManager.TYPE_ETHERNET; @@ -179,7 +181,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final int VERSION_ADDED_INFERRED = 7; private static final int VERSION_SWITCH_APP_ID = 8; private static final int VERSION_ADDED_NETWORK_ID = 9; - private static final int VERSION_LATEST = VERSION_ADDED_NETWORK_ID; + private static final int VERSION_SWITCH_UID = 10; + private static final int VERSION_LATEST = VERSION_SWITCH_UID; // @VisibleForTesting public static final int TYPE_WARNING = 0x1; @@ -250,8 +253,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { /** Currently active network rules for ifaces. */ private HashMap<NetworkPolicy, String[]> mNetworkRules = Maps.newHashMap(); - /** Defined app policies. */ - private SparseIntArray mAppPolicy = new SparseIntArray(); + /** Defined UID policies. */ + private SparseIntArray mUidPolicy = new SparseIntArray(); /** Currently derived rules for each UID. */ private SparseIntArray mUidRules = new SparseIntArray(); @@ -357,12 +360,22 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final IntentFilter connFilter = new IntentFilter(CONNECTIVITY_ACTION_IMMEDIATE); mContext.registerReceiver(mConnReceiver, connFilter, CONNECTIVITY_INTERNAL, mHandler); - // listen for package/uid changes to update policy + // listen for package changes to update policy final IntentFilter packageFilter = new IntentFilter(); packageFilter.addAction(ACTION_PACKAGE_ADDED); - packageFilter.addAction(ACTION_UID_REMOVED); + packageFilter.addDataScheme("package"); mContext.registerReceiver(mPackageReceiver, packageFilter, null, mHandler); + // listen for UID changes to update policy + mContext.registerReceiver( + mUidRemovedReceiver, new IntentFilter(ACTION_UID_REMOVED), null, mHandler); + + // listen for user changes to update policy + final IntentFilter userFilter = new IntentFilter(); + userFilter.addAction(ACTION_USER_ADDED); + userFilter.addAction(ACTION_USER_REMOVED); + mContext.registerReceiver(mUserReceiver, userFilter, null, mHandler); + // listen for stats update events final IntentFilter statsFilter = new IntentFilter(ACTION_NETWORK_STATS_UPDATED); mContext.registerReceiver( @@ -421,33 +434,58 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private BroadcastReceiver mPackageReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - // on background handler thread, and PACKAGE_ADDED and UID_REMOVED - // are protected broadcasts. + // on background handler thread, and PACKAGE_ADDED is protected final String action = intent.getAction(); - final int uid = intent.getIntExtra(EXTRA_UID, 0); - final int appId = UserHandle.getAppId(uid); + final int uid = intent.getIntExtra(EXTRA_UID, -1); + if (uid == -1) return; + + if (ACTION_PACKAGE_ADDED.equals(action)) { + // update rules for UID, since it might be subject to + // global background data policy + if (LOGV) Slog.v(TAG, "ACTION_PACKAGE_ADDED for uid=" + uid); + synchronized (mRulesLock) { + updateRulesForUidLocked(uid); + } + } + } + }; + + private BroadcastReceiver mUidRemovedReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // on background handler thread, and UID_REMOVED is protected + + final int uid = intent.getIntExtra(EXTRA_UID, -1); + if (uid == -1) return; + + // remove any policy and update rules to clean up + if (LOGV) Slog.v(TAG, "ACTION_UID_REMOVED for uid=" + uid); synchronized (mRulesLock) { - if (ACTION_PACKAGE_ADDED.equals(action)) { - // NOTE: PACKAGE_ADDED is currently only sent once, and is - // not broadcast when users are added. + mUidPolicy.delete(uid); + updateRulesForUidLocked(uid); + writePolicyLocked(); + } + } + }; - // update rules for UID, since it might be subject to - // global background data policy. - if (LOGV) Slog.v(TAG, "ACTION_PACKAGE_ADDED for uid=" + uid); - updateRulesForAppLocked(appId); + private BroadcastReceiver mUserReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // on background handler thread, and USER_ADDED and USER_REMOVED + // broadcasts are protected - } else if (ACTION_UID_REMOVED.equals(action)) { - // NOTE: UID_REMOVED is currently only sent once, and is not - // broadcast when users are removed. + final String action = intent.getAction(); + final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1); + if (userId == -1) return; - // remove any policy and update rules to clean up. - if (LOGV) Slog.v(TAG, "ACTION_UID_REMOVED for uid=" + uid); + // Remove any policies for given user; both cleaning up after a + // USER_REMOVED, and one last sanity check during USER_ADDED + removePoliciesForUserLocked(userId); - mAppPolicy.delete(appId); - updateRulesForAppLocked(appId); - writePolicyLocked(); - } + // Update global restrict for new user + synchronized (mRulesLock) { + updateRulesForRestrictBackgroundLocked(); } } }; @@ -1107,7 +1145,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // clear any existing policy and read from disk mNetworkPolicy.clear(); - mAppPolicy.clear(); + mUidPolicy.clear(); FileInputStream fis = null; try { @@ -1188,24 +1226,25 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred)); - } else if (TAG_UID_POLICY.equals(tag) && version < VERSION_SWITCH_APP_ID) { + } else if (TAG_UID_POLICY.equals(tag)) { final int uid = readIntAttribute(in, ATTR_UID); final int policy = readIntAttribute(in, ATTR_POLICY); - final int appId = UserHandle.getAppId(uid); - if (UserHandle.isApp(appId)) { - setAppPolicyUnchecked(appId, policy, false); + if (UserHandle.isApp(uid)) { + setUidPolicyUnchecked(uid, policy, false); } else { Slog.w(TAG, "unable to apply policy to UID " + uid + "; ignoring"); } - } else if (TAG_APP_POLICY.equals(tag) && version >= VERSION_SWITCH_APP_ID) { + } else if (TAG_APP_POLICY.equals(tag)) { final int appId = readIntAttribute(in, ATTR_APP_ID); final int policy = readIntAttribute(in, ATTR_POLICY); - if (UserHandle.isApp(appId)) { - setAppPolicyUnchecked(appId, policy, false); + // TODO: set for other users during upgrade + final int uid = UserHandle.getUid(UserHandle.USER_OWNER, appId); + if (UserHandle.isApp(uid)) { + setUidPolicyUnchecked(uid, policy, false); } else { - Slog.w(TAG, "unable to apply policy to appId " + appId + "; ignoring"); + Slog.w(TAG, "unable to apply policy to UID " + uid + "; ignoring"); } } } @@ -1280,17 +1319,17 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } // write all known uid policies - for (int i = 0; i < mAppPolicy.size(); i++) { - final int appId = mAppPolicy.keyAt(i); - final int policy = mAppPolicy.valueAt(i); + for (int i = 0; i < mUidPolicy.size(); i++) { + final int uid = mUidPolicy.keyAt(i); + final int policy = mUidPolicy.valueAt(i); // skip writing empty policies if (policy == POLICY_NONE) continue; - out.startTag(null, TAG_APP_POLICY); - writeIntAttribute(out, ATTR_APP_ID, appId); + out.startTag(null, TAG_UID_POLICY); + writeIntAttribute(out, ATTR_UID, uid); writeIntAttribute(out, ATTR_POLICY, policy); - out.endTag(null, TAG_APP_POLICY); + out.endTag(null, TAG_UID_POLICY); } out.endTag(null, TAG_POLICY_LIST); @@ -1305,24 +1344,24 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } @Override - public void setAppPolicy(int appId, int policy) { + public void setUidPolicy(int uid, int policy) { mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG); - if (!UserHandle.isApp(appId)) { - throw new IllegalArgumentException("cannot apply policy to appId " + appId); + if (!UserHandle.isApp(uid)) { + throw new IllegalArgumentException("cannot apply policy to UID " + uid); } - setAppPolicyUnchecked(appId, policy, true); + setUidPolicyUnchecked(uid, policy, true); } - private void setAppPolicyUnchecked(int appId, int policy, boolean persist) { + private void setUidPolicyUnchecked(int uid, int policy, boolean persist) { final int oldPolicy; synchronized (mRulesLock) { - oldPolicy = getAppPolicy(appId); - mAppPolicy.put(appId, policy); + oldPolicy = getUidPolicy(uid); + mUidPolicy.put(uid, policy); // uid policy changed, recompute rules and persist policy. - updateRulesForAppLocked(appId); + updateRulesForUidLocked(uid); if (persist) { writePolicyLocked(); } @@ -1330,29 +1369,53 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } @Override - public int getAppPolicy(int appId) { + public int getUidPolicy(int uid) { mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG); synchronized (mRulesLock) { - return mAppPolicy.get(appId, POLICY_NONE); + return mUidPolicy.get(uid, POLICY_NONE); } } @Override - public int[] getAppsWithPolicy(int policy) { + public int[] getUidsWithPolicy(int policy) { mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG); - int[] appIds = new int[0]; + int[] uids = new int[0]; synchronized (mRulesLock) { - for (int i = 0; i < mAppPolicy.size(); i++) { - final int appId = mAppPolicy.keyAt(i); - final int appPolicy = mAppPolicy.valueAt(i); - if (appPolicy == policy) { - appIds = appendInt(appIds, appId); + for (int i = 0; i < mUidPolicy.size(); i++) { + final int uid = mUidPolicy.keyAt(i); + final int uidPolicy = mUidPolicy.valueAt(i); + if (uidPolicy == policy) { + uids = appendInt(uids, uid); } } } - return appIds; + return uids; + } + + /** + * Remove any policies associated with given {@link UserHandle}, persisting + * if any changes are made. + */ + private void removePoliciesForUserLocked(int userId) { + if (LOGV) Slog.v(TAG, "removePoliciesForUserLocked()"); + + int[] uids = new int[0]; + for (int i = 0; i < mUidPolicy.size(); i++) { + final int uid = mUidPolicy.keyAt(i); + if (UserHandle.getUserId(uid) == userId) { + uids = appendInt(uids, uid); + } + } + + if (uids.length > 0) { + for (int uid : uids) { + mUidPolicy.delete(uid); + updateRulesForUidLocked(uid); + } + writePolicyLocked(); + } } @Override @@ -1586,14 +1649,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } fout.decreaseIndent(); - fout.println("Policy for apps:"); + fout.println("Policy for UIDs:"); fout.increaseIndent(); - int size = mAppPolicy.size(); + int size = mUidPolicy.size(); for (int i = 0; i < size; i++) { - final int appId = mAppPolicy.keyAt(i); - final int policy = mAppPolicy.valueAt(i); - fout.print("appId="); - fout.print(appId); + final int uid = mUidPolicy.keyAt(i); + final int policy = mUidPolicy.valueAt(i); + fout.print("UID="); + fout.print(uid); fout.print(" policy="); dumpPolicy(fout, policy); fout.println(); @@ -1698,12 +1761,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * Update rules that might be changed by {@link #mRestrictBackground} value. */ private void updateRulesForRestrictBackgroundLocked() { - // update rules for all installed applications final PackageManager pm = mContext.getPackageManager(); - final List<ApplicationInfo> apps = pm.getInstalledApplications(0); - for (ApplicationInfo app : apps) { - final int appId = UserHandle.getAppId(app.uid); - updateRulesForAppLocked(appId); + final UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + + // update rules for all installed applications + final List<UserInfo> users = um.getUsers(); + final List<ApplicationInfo> apps = pm.getInstalledApplications( + PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS); + + for (UserInfo user : users) { + for (ApplicationInfo app : apps) { + final int uid = UserHandle.getUid(user.id, app.uid); + updateRulesForUidLocked(uid); + } } // limit data usage for some internal system services @@ -1711,14 +1781,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { updateRulesForUidLocked(android.os.Process.DRM_UID); } - private void updateRulesForAppLocked(int appId) { - UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE); - for (UserInfo user : um.getUsers()) { - final int uid = UserHandle.getUid(user.id, appId); - updateRulesForUidLocked(uid); - } - } - private static boolean isUidValidForRules(int uid) { // allow rules on specific system services, and any apps if (uid == android.os.Process.MEDIA_UID || uid == android.os.Process.DRM_UID @@ -1732,13 +1794,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private void updateRulesForUidLocked(int uid) { if (!isUidValidForRules(uid)) return; - final int appId = UserHandle.getAppId(uid); - final int appPolicy = getAppPolicy(appId); + final int uidPolicy = getUidPolicy(uid); final boolean uidForeground = isUidForeground(uid); // derive active rules based on policy and active state int uidRules = RULE_ALLOW_ALL; - if (!uidForeground && (appPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0) { + if (!uidForeground && (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0) { // uid in background, and policy says to block metered data uidRules = RULE_REJECT_METERED; } diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java index f2d2fb7fb5c1..3a593e455838 100644 --- a/services/java/com/android/server/net/NetworkStatsService.java +++ b/services/java/com/android/server/net/NetworkStatsService.java @@ -38,23 +38,23 @@ import static android.net.NetworkTemplate.buildTemplateMobileWildcard; import static android.net.NetworkTemplate.buildTemplateWifiWildcard; import static android.net.TrafficStats.KB_IN_BYTES; import static android.net.TrafficStats.MB_IN_BYTES; -import static android.provider.Settings.Secure.NETSTATS_DEV_BUCKET_DURATION; -import static android.provider.Settings.Secure.NETSTATS_DEV_DELETE_AGE; -import static android.provider.Settings.Secure.NETSTATS_DEV_PERSIST_BYTES; -import static android.provider.Settings.Secure.NETSTATS_DEV_ROTATE_AGE; -import static android.provider.Settings.Secure.NETSTATS_GLOBAL_ALERT_BYTES; -import static android.provider.Settings.Secure.NETSTATS_POLL_INTERVAL; -import static android.provider.Settings.Secure.NETSTATS_REPORT_XT_OVER_DEV; -import static android.provider.Settings.Secure.NETSTATS_SAMPLE_ENABLED; -import static android.provider.Settings.Secure.NETSTATS_TIME_CACHE_MAX_AGE; -import static android.provider.Settings.Secure.NETSTATS_UID_BUCKET_DURATION; -import static android.provider.Settings.Secure.NETSTATS_UID_DELETE_AGE; -import static android.provider.Settings.Secure.NETSTATS_UID_PERSIST_BYTES; -import static android.provider.Settings.Secure.NETSTATS_UID_ROTATE_AGE; -import static android.provider.Settings.Secure.NETSTATS_UID_TAG_BUCKET_DURATION; -import static android.provider.Settings.Secure.NETSTATS_UID_TAG_DELETE_AGE; -import static android.provider.Settings.Secure.NETSTATS_UID_TAG_PERSIST_BYTES; -import static android.provider.Settings.Secure.NETSTATS_UID_TAG_ROTATE_AGE; +import static android.provider.Settings.Global.NETSTATS_DEV_BUCKET_DURATION; +import static android.provider.Settings.Global.NETSTATS_DEV_DELETE_AGE; +import static android.provider.Settings.Global.NETSTATS_DEV_PERSIST_BYTES; +import static android.provider.Settings.Global.NETSTATS_DEV_ROTATE_AGE; +import static android.provider.Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES; +import static android.provider.Settings.Global.NETSTATS_POLL_INTERVAL; +import static android.provider.Settings.Global.NETSTATS_REPORT_XT_OVER_DEV; +import static android.provider.Settings.Global.NETSTATS_SAMPLE_ENABLED; +import static android.provider.Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE; +import static android.provider.Settings.Global.NETSTATS_UID_BUCKET_DURATION; +import static android.provider.Settings.Global.NETSTATS_UID_DELETE_AGE; +import static android.provider.Settings.Global.NETSTATS_UID_PERSIST_BYTES; +import static android.provider.Settings.Global.NETSTATS_UID_ROTATE_AGE; +import static android.provider.Settings.Global.NETSTATS_UID_TAG_BUCKET_DURATION; +import static android.provider.Settings.Global.NETSTATS_UID_TAG_DELETE_AGE; +import static android.provider.Settings.Global.NETSTATS_UID_TAG_PERSIST_BYTES; +import static android.provider.Settings.Global.NETSTATS_UID_TAG_ROTATE_AGE; import static android.telephony.PhoneStateListener.LISTEN_DATA_CONNECTION_STATE; import static android.telephony.PhoneStateListener.LISTEN_NONE; import static android.text.format.DateUtils.DAY_IN_MILLIS; @@ -1218,39 +1218,39 @@ public class NetworkStatsService extends INetworkStatsService.Stub { // TODO: adjust these timings for production builds } - private long getSecureLong(String name, long def) { - return Settings.Secure.getLong(mResolver, name, def); + private long getGlobalLong(String name, long def) { + return Settings.Global.getLong(mResolver, name, def); } - private boolean getSecureBoolean(String name, boolean def) { + private boolean getGlobalBoolean(String name, boolean def) { final int defInt = def ? 1 : 0; - return Settings.Secure.getInt(mResolver, name, defInt) != 0; + return Settings.Global.getInt(mResolver, name, defInt) != 0; } @Override public long getPollInterval() { - return getSecureLong(NETSTATS_POLL_INTERVAL, 30 * MINUTE_IN_MILLIS); + return getGlobalLong(NETSTATS_POLL_INTERVAL, 30 * MINUTE_IN_MILLIS); } @Override public long getTimeCacheMaxAge() { - return getSecureLong(NETSTATS_TIME_CACHE_MAX_AGE, DAY_IN_MILLIS); + return getGlobalLong(NETSTATS_TIME_CACHE_MAX_AGE, DAY_IN_MILLIS); } @Override public long getGlobalAlertBytes(long def) { - return getSecureLong(NETSTATS_GLOBAL_ALERT_BYTES, def); + return getGlobalLong(NETSTATS_GLOBAL_ALERT_BYTES, def); } @Override public boolean getSampleEnabled() { - return getSecureBoolean(NETSTATS_SAMPLE_ENABLED, true); + return getGlobalBoolean(NETSTATS_SAMPLE_ENABLED, true); } @Override public boolean getReportXtOverDev() { - return getSecureBoolean(NETSTATS_REPORT_XT_OVER_DEV, true); + return getGlobalBoolean(NETSTATS_REPORT_XT_OVER_DEV, true); } @Override public Config getDevConfig() { - return new Config(getSecureLong(NETSTATS_DEV_BUCKET_DURATION, HOUR_IN_MILLIS), - getSecureLong(NETSTATS_DEV_ROTATE_AGE, 15 * DAY_IN_MILLIS), - getSecureLong(NETSTATS_DEV_DELETE_AGE, 90 * DAY_IN_MILLIS)); + return new Config(getGlobalLong(NETSTATS_DEV_BUCKET_DURATION, HOUR_IN_MILLIS), + getGlobalLong(NETSTATS_DEV_ROTATE_AGE, 15 * DAY_IN_MILLIS), + getGlobalLong(NETSTATS_DEV_DELETE_AGE, 90 * DAY_IN_MILLIS)); } @Override public Config getXtConfig() { @@ -1258,19 +1258,19 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } @Override public Config getUidConfig() { - return new Config(getSecureLong(NETSTATS_UID_BUCKET_DURATION, 2 * HOUR_IN_MILLIS), - getSecureLong(NETSTATS_UID_ROTATE_AGE, 15 * DAY_IN_MILLIS), - getSecureLong(NETSTATS_UID_DELETE_AGE, 90 * DAY_IN_MILLIS)); + return new Config(getGlobalLong(NETSTATS_UID_BUCKET_DURATION, 2 * HOUR_IN_MILLIS), + getGlobalLong(NETSTATS_UID_ROTATE_AGE, 15 * DAY_IN_MILLIS), + getGlobalLong(NETSTATS_UID_DELETE_AGE, 90 * DAY_IN_MILLIS)); } @Override public Config getUidTagConfig() { - return new Config(getSecureLong(NETSTATS_UID_TAG_BUCKET_DURATION, 2 * HOUR_IN_MILLIS), - getSecureLong(NETSTATS_UID_TAG_ROTATE_AGE, 5 * DAY_IN_MILLIS), - getSecureLong(NETSTATS_UID_TAG_DELETE_AGE, 15 * DAY_IN_MILLIS)); + return new Config(getGlobalLong(NETSTATS_UID_TAG_BUCKET_DURATION, 2 * HOUR_IN_MILLIS), + getGlobalLong(NETSTATS_UID_TAG_ROTATE_AGE, 5 * DAY_IN_MILLIS), + getGlobalLong(NETSTATS_UID_TAG_DELETE_AGE, 15 * DAY_IN_MILLIS)); } @Override public long getDevPersistBytes(long def) { - return getSecureLong(NETSTATS_DEV_PERSIST_BYTES, def); + return getGlobalLong(NETSTATS_DEV_PERSIST_BYTES, def); } @Override public long getXtPersistBytes(long def) { @@ -1278,11 +1278,11 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } @Override public long getUidPersistBytes(long def) { - return getSecureLong(NETSTATS_UID_PERSIST_BYTES, def); + return getGlobalLong(NETSTATS_UID_PERSIST_BYTES, def); } @Override public long getUidTagPersistBytes(long def) { - return getSecureLong(NETSTATS_UID_TAG_PERSIST_BYTES, def); + return getGlobalLong(NETSTATS_UID_TAG_PERSIST_BYTES, def); } } } diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index fe5889ded097..ce52d2bbc7a2 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -215,7 +215,7 @@ public class PackageManagerService extends IPackageManager.Stub { /** * Whether verification is enabled by default. */ - private static final boolean DEFAULT_VERIFY_ENABLE = false; + private static final boolean DEFAULT_VERIFY_ENABLE = true; /** * The default maximum time to wait for the verification agent to return in @@ -5664,6 +5664,8 @@ public class PackageManagerService extends IPackageManager.Stub { filteredFlags = flags & ~PackageManager.INSTALL_FROM_ADB; } + verificationParams.setInstallerUid(uid); + final Message msg = mHandler.obtainMessage(INIT_COPY); msg.obj = new InstallParams(packageURI, observer, filteredFlags, installerPackageName, verificationParams, encryptionParams, user); @@ -5902,9 +5904,12 @@ public class PackageManagerService extends IPackageManager.Stub { * @return true if verification should be performed */ private boolean isVerificationEnabled() { + if (!DEFAULT_VERIFY_ENABLE) { + return false; + } + return android.provider.Settings.Global.getInt(mContext.getContentResolver(), - android.provider.Settings.Global.PACKAGE_VERIFIER_ENABLE, - DEFAULT_VERIFY_ENABLE ? 1 : 0) == 1 ? true : false; + android.provider.Settings.Global.PACKAGE_VERIFIER_ENABLE, 1) == 1; } /** @@ -6334,7 +6339,8 @@ public class PackageManagerService extends IPackageManager.Stub { packageFile = mTempPackage; FileUtils.setPermissions(packageFile.getAbsolutePath(), - FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IROTH, + FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP + | FileUtils.S_IROTH, -1, -1); } else { packageFile = null; @@ -6424,6 +6430,12 @@ public class PackageManagerService extends IPackageManager.Stub { verification.putExtra(PackageManager.EXTRA_VERIFICATION_INSTALL_FLAGS, flags); + verification.putExtra(PackageManager.EXTRA_VERIFICATION_PACKAGE_NAME, + pkgLite.packageName); + + verification.putExtra(PackageManager.EXTRA_VERIFICATION_VERSION_CODE, + pkgLite.versionCode); + if (verificationParams != null) { if (verificationParams.getVerificationURI() != null) { verification.putExtra(PackageManager.EXTRA_VERIFICATION_URI, @@ -6437,6 +6449,10 @@ public class PackageManagerService extends IPackageManager.Stub { verification.putExtra(Intent.EXTRA_REFERRER, verificationParams.getReferrer()); } + if (verificationParams.getInstallerUid() >= 0) { + verification.putExtra(PackageManager.EXTRA_VERIFICATION_INSTALLER_UID, + verificationParams.getInstallerUid()); + } } final PackageVerificationState verificationState = new PackageVerificationState( @@ -6515,12 +6531,12 @@ public class PackageManagerService extends IPackageManager.Stub { // will succeed. if (mArgs != null) { processPendingInstall(mArgs, mRet); - } - if (mTempPackage != null) { - if (!mTempPackage.delete()) { - Slog.w(TAG, "Couldn't delete temporary file: " - + mTempPackage.getAbsolutePath()); + if (mTempPackage != null) { + if (!mTempPackage.delete()) { + Slog.w(TAG, "Couldn't delete temporary file: " + + mTempPackage.getAbsolutePath()); + } } } } @@ -7942,17 +7958,23 @@ public class PackageManagerService extends IPackageManager.Stub { } private void deleteTempPackageFiles() { - FilenameFilter filter = new FilenameFilter() { + final FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.startsWith("vmdl") && name.endsWith(".tmp"); } }; - String tmpFilesList[] = mAppInstallDir.list(filter); - if(tmpFilesList == null) { + deleteTempPackageFilesInDirectory(mAppInstallDir, filter); + deleteTempPackageFilesInDirectory(mDrmAppPrivateInstallDir, filter); + } + + private static final void deleteTempPackageFilesInDirectory(File directory, + FilenameFilter filter) { + final String[] tmpFilesList = directory.list(filter); + if (tmpFilesList == null) { return; } - for(int i = 0; i < tmpFilesList.length; i++) { - File tmpFile = new File(mAppInstallDir, tmpFilesList[i]); + for (int i = 0; i < tmpFilesList.length; i++) { + final File tmpFile = new File(directory, tmpFilesList[i]); tmpFile.delete(); } } diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index fc01f60d45bd..a58c4ea6fba6 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -83,6 +83,8 @@ public class UserManagerService extends IUserManager.Stub { private SparseArray<UserInfo> mUsers = new SparseArray<UserInfo>(); + private final int mUserLimit; + private int[] mUserIds; private boolean mGuestEnabled; private int mNextSerialNumber; @@ -125,6 +127,8 @@ public class UserManagerService extends IUserManager.Stub { mPm = pm; mInstallLock = installLock; mPackagesLock = packagesLock; + mUserLimit = mContext.getResources().getInteger( + com.android.internal.R.integer.config_multiuserMaximumUsers); mUsersDir = new File(dataDir, USER_INFO_DIR); mUsersDir.mkdirs(); // Make zeroth user directory, for services to migrate their files to that location @@ -237,16 +241,23 @@ public class UserManagerService extends IUserManager.Stub { // TODO: } + public void makeInitialized(int userId) { + checkManageUsersPermission("makeInitialized"); + synchronized (mPackagesLock) { + UserInfo info = mUsers.get(userId); + if (info != null && (info.flags&UserInfo.FLAG_INITIALIZED) == 0) { + info.flags |= UserInfo.FLAG_INITIALIZED; + writeUserLocked(info); + } + } + } + /** * Check if we've hit the limit of how many users can be created. */ - private boolean isUserLimitReached() { - synchronized (mInstallLock) { - int nUsers = mUsers.size(); - int userLimit = mContext.getResources().getInteger( - com.android.internal.R.integer.config_multiuserMaximumUsers); - return nUsers >= userLimit; - } + private boolean isUserLimitReachedLocked() { + int nUsers = mUsers.size(); + return nUsers >= mUserLimit; } /** @@ -535,28 +546,31 @@ public class UserManagerService extends IUserManager.Stub { public UserInfo createUser(String name, int flags) { checkManageUsersPermission("Only the system can create users"); - if (isUserLimitReached()) return null; - - int userId = getNextAvailableId(); - UserInfo userInfo = new UserInfo(userId, name, null, flags); - File userPath = new File(mBaseUserPath, Integer.toString(userId)); - synchronized (mInstallLock) { - synchronized (mPackagesLock) { - userInfo.serialNumber = mNextSerialNumber++; - mUsers.put(userId, userInfo); - writeUserListLocked(); - writeUserLocked(userInfo); - updateUserIdsLocked(); - mPm.createNewUserLILPw(userId, userPath); + final long ident = Binder.clearCallingIdentity(); + final UserInfo userInfo; + try { + synchronized (mInstallLock) { + synchronized (mPackagesLock) { + if (isUserLimitReachedLocked()) return null; + int userId = getNextAvailableIdLocked(); + userInfo = new UserInfo(userId, name, null, flags); + File userPath = new File(mBaseUserPath, Integer.toString(userId)); + userInfo.serialNumber = mNextSerialNumber++; + mUsers.put(userId, userInfo); + writeUserListLocked(); + writeUserLocked(userInfo); + updateUserIdsLocked(); + mPm.createNewUserLILPw(userId, userPath); + } } - } - if (userInfo != null) { - Intent addedIntent = new Intent(Intent.ACTION_USER_ADDED); - addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userInfo.id); - mContext.sendBroadcastAsUser(new Intent(Intent.ACTION_BOOT_COMPLETED), - new UserHandle(userInfo.id)); - mContext.sendBroadcastAsUser(addedIntent, UserHandle.ALL, - android.Manifest.permission.MANAGE_USERS); + if (userInfo != null) { + Intent addedIntent = new Intent(Intent.ACTION_USER_ADDED); + addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userInfo.id); + mContext.sendBroadcastAsUser(addedIntent, UserHandle.ALL, + android.Manifest.permission.MANAGE_USERS); + } + } finally { + Binder.restoreCallingIdentity(ident); } return userInfo; } @@ -614,9 +628,15 @@ public class UserManagerService extends IUserManager.Stub { } // Let other services shutdown any activity - Intent addedIntent = new Intent(Intent.ACTION_USER_REMOVED); - addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userHandle); - mContext.sendBroadcast(addedIntent, android.Manifest.permission.MANAGE_USERS); + long ident = Binder.clearCallingIdentity(); + try { + Intent addedIntent = new Intent(Intent.ACTION_USER_REMOVED); + addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userHandle); + mContext.sendBroadcastAsUser(addedIntent, UserHandle.ALL, + android.Manifest.permission.MANAGE_USERS); + } finally { + Binder.restoreCallingIdentity(ident); + } } private void removeDirectoryRecursive(File parent) { @@ -666,7 +686,7 @@ public class UserManagerService extends IUserManager.Stub { * for data and battery stats collection, or unexpected cross-talk. * @return */ - private int getNextAvailableId() { + private int getNextAvailableIdLocked() { synchronized (mPackagesLock) { int i = 0; while (i < Integer.MAX_VALUE) { diff --git a/services/java/com/android/server/power/DisplayPowerState.java b/services/java/com/android/server/power/DisplayPowerState.java index 3524a08efd6a..1bd781144189 100644 --- a/services/java/com/android/server/power/DisplayPowerState.java +++ b/services/java/com/android/server/power/DisplayPowerState.java @@ -239,6 +239,7 @@ final class DisplayPowerState { private void apply() { if (mDirty != 0) { if ((mDirty & DIRTY_SCREEN_ON) != 0 && !mScreenOn) { + mScreenBrightnessModulator.setBrightness(0, true /*sync*/); PowerManagerService.nativeSetScreenState(false); } @@ -246,15 +247,16 @@ final class DisplayPowerState { mElectronBeam.draw(mElectronBeamLevel); } - if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0) { - mScreenBrightnessModulator.setBrightness(mScreenOn ? - (int)(mScreenBrightness * mElectronBeamLevel) : 0); - } - if ((mDirty & DIRTY_SCREEN_ON) != 0 && mScreenOn) { PowerManagerService.nativeSetScreenState(true); } + if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON | DIRTY_ELECTRON_BEAM)) != 0 + && mScreenOn) { + mScreenBrightnessModulator.setBrightness( + (int)(mScreenBrightness * mElectronBeamLevel), false /*sync*/); + } + mDirty = 0; if (mCleanListener != null) { diff --git a/services/java/com/android/server/power/PhotonicModulator.java b/services/java/com/android/server/power/PhotonicModulator.java index f7c9c7d94628..c9b5d90336a6 100644 --- a/services/java/com/android/server/power/PhotonicModulator.java +++ b/services/java/com/android/server/power/PhotonicModulator.java @@ -49,11 +49,12 @@ final class PhotonicModulator { } /** - * Asynchronously sets the backlight brightness. + * Sets the backlight brightness, synchronously or asynchronously. * * @param lightValue The new light value, from 0 to 255. + * @param sync If true, waits for the brightness change to complete before returning. */ - public void setBrightness(int lightValue) { + public void setBrightness(int lightValue, boolean sync) { synchronized (mLock) { if (lightValue != mPendingLightValue) { mPendingLightValue = lightValue; @@ -63,6 +64,15 @@ final class PhotonicModulator { mExecutor.execute(mTask); } } + if (sync) { + while (mPendingChange) { + try { + mLock.wait(); + } catch (InterruptedException ex) { + // ignore it + } + } + } } } @@ -76,6 +86,7 @@ final class PhotonicModulator { if (newLightValue == mActualLightValue) { mSuspendBlocker.release(); mPendingChange = false; + mLock.notifyAll(); return; } mActualLightValue = newLightValue; diff --git a/services/java/com/android/server/wm/AppWindowAnimator.java b/services/java/com/android/server/wm/AppWindowAnimator.java index c6b7e0d1a858..2445b9815fda 100644 --- a/services/java/com/android/server/wm/AppWindowAnimator.java +++ b/services/java/com/android/server/wm/AppWindowAnimator.java @@ -4,6 +4,7 @@ package com.android.server.wm; import android.graphics.Matrix; import android.util.Slog; +import android.view.Display; import android.view.Surface; import android.view.WindowManagerPolicy; import android.view.animation.Animation; @@ -134,11 +135,13 @@ public class AppWindowAnimator { thumbnailTransformation.clear(); thumbnailAnimation.getTransformation(currentTime, thumbnailTransformation); thumbnailTransformation.getMatrix().preTranslate(thumbnailX, thumbnailY); - final boolean screenAnimation = mAnimator.mScreenRotationAnimation != null - && mAnimator.mScreenRotationAnimation.isAnimating(); + + ScreenRotationAnimation screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(Display.DEFAULT_DISPLAY); + final boolean screenAnimation = screenRotationAnimation != null + && screenRotationAnimation.isAnimating(); if (screenAnimation) { - thumbnailTransformation.postCompose( - mAnimator.mScreenRotationAnimation.getEnterTransformation()); + thumbnailTransformation.postCompose(screenRotationAnimation.getEnterTransformation()); } // cache often used attributes locally final float tmpFloats[] = mService.mTmpFloats; diff --git a/services/java/com/android/server/wm/DimAnimator.java b/services/java/com/android/server/wm/DimAnimator.java index 87a2880ce740..9bca83483ef1 100644 --- a/services/java/com/android/server/wm/DimAnimator.java +++ b/services/java/com/android/server/wm/DimAnimator.java @@ -219,5 +219,13 @@ class DimAnimator { mDimHeight = o.mDimHeight; mDimTarget = o.mDimTarget; } + + public void printTo(String prefix, PrintWriter pw) { + pw.print(prefix); + pw.print("mDimWinAnimator="); pw.print(mDimWinAnimator.mWin.mAttrs.getTitle()); + pw.print(" "); pw.print(mDimWidth); pw.print(" x "); + pw.print(mDimHeight); + pw.print(" mDimTarget="); pw.println(mDimTarget); + } } } diff --git a/services/java/com/android/server/wm/DisplayContent.java b/services/java/com/android/server/wm/DisplayContent.java index 4df692b56b73..3898ebcd447b 100644 --- a/services/java/com/android/server/wm/DisplayContent.java +++ b/services/java/com/android/server/wm/DisplayContent.java @@ -101,30 +101,33 @@ class DisplayContent { mDisplay.getDisplayInfo(mDisplayInfo); } - public void dump(PrintWriter pw) { - pw.print(" Display: mDisplayId="); pw.println(mDisplayId); - pw.print(" init="); pw.print(mInitialDisplayWidth); pw.print("x"); - pw.print(mInitialDisplayHeight); pw.print(" "); pw.print(mInitialDisplayDensity); - pw.print("dpi"); - if (mInitialDisplayWidth != mBaseDisplayWidth - || mInitialDisplayHeight != mBaseDisplayHeight - || mInitialDisplayDensity != mBaseDisplayDensity) { - pw.print(" base="); - pw.print(mBaseDisplayWidth); pw.print("x"); pw.print(mBaseDisplayHeight); - pw.print(" "); pw.print(mBaseDisplayDensity); pw.print("dpi"); + public void dump(String prefix, PrintWriter pw) { + pw.print(prefix); pw.print("Display: mDisplayId="); pw.println(mDisplayId); + final String subPrefix = " " + prefix; + pw.print(subPrefix); pw.print("init="); pw.print(mInitialDisplayWidth); pw.print("x"); + pw.print(mInitialDisplayHeight); pw.print(" "); pw.print(mInitialDisplayDensity); + pw.print("dpi"); + if (mInitialDisplayWidth != mBaseDisplayWidth + || mInitialDisplayHeight != mBaseDisplayHeight + || mInitialDisplayDensity != mBaseDisplayDensity) { + pw.print(" base="); + pw.print(mBaseDisplayWidth); pw.print("x"); pw.print(mBaseDisplayHeight); + pw.print(" "); pw.print(mBaseDisplayDensity); pw.print("dpi"); + } + pw.print(" cur="); + pw.print(mDisplayInfo.logicalWidth); + pw.print("x"); pw.print(mDisplayInfo.logicalHeight); + pw.print(" app="); + pw.print(mDisplayInfo.appWidth); + pw.print("x"); pw.print(mDisplayInfo.appHeight); + pw.print(" rng="); pw.print(mDisplayInfo.smallestNominalAppWidth); + pw.print("x"); pw.print(mDisplayInfo.smallestNominalAppHeight); + pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth); + pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight); + pw.print(subPrefix); pw.print("layoutNeeded="); pw.print(layoutNeeded); + if (mMagnificationSpec != null) { + pw.print(" mMagnificationSpec="); pw.print(mMagnificationSpec); } - pw.print(" cur="); - pw.print(mDisplayInfo.logicalWidth); - pw.print("x"); pw.print(mDisplayInfo.logicalHeight); - pw.print(" app="); - pw.print(mDisplayInfo.appWidth); - pw.print("x"); pw.print(mDisplayInfo.appHeight); - pw.print(" rng="); pw.print(mDisplayInfo.smallestNominalAppWidth); - pw.print("x"); pw.print(mDisplayInfo.smallestNominalAppHeight); - pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth); - pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight); - pw.print(" layoutNeeded="); pw.println(layoutNeeded); - pw.print("magnificationSpec="); pw.println(mMagnificationSpec); pw.println(); } } diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java index cabe611344af..4494058e7725 100644 --- a/services/java/com/android/server/wm/WindowAnimator.java +++ b/services/java/com/android/server/wm/WindowAnimator.java @@ -16,6 +16,7 @@ import android.content.Context; import android.os.SystemClock; import android.util.Log; import android.util.Slog; +import android.util.SparseArray; import android.util.SparseIntArray; import android.view.Display; import android.view.Surface; @@ -39,8 +40,6 @@ public class WindowAnimator { final Context mContext; final WindowManagerPolicy mPolicy; - ArrayList<WinAnimatorList> mWinAnimatorLists = new ArrayList<WinAnimatorList>(); - boolean mAnimating; final Runnable mAnimationRunnable; @@ -64,24 +63,19 @@ public class WindowAnimator { * is a long initialized to Long.MIN_VALUE so that it doesn't match this value on startup. */ private int mAnimTransactionSequence; - /** The one and only screen rotation if one is happening */ - ScreenRotationAnimation mScreenRotationAnimation = null; - // Window currently running an animation that has requested it be detached // from the wallpaper. This means we need to ensure the wallpaper is // visible behind it in case it animates in a way that would allow it to be // seen. If multiple windows satisfy this, use the lowest window. WindowState mWindowDetachedWallpaper = null; - DimSurface mWindowAnimationBackgroundSurface = null; - WindowStateAnimator mUniverseBackground = null; int mAboveUniverseLayer = 0; int mBulkUpdateParams = 0; - DimAnimator mDimAnimator = null; - DimAnimator.Parameters mDimParams = null; + SparseArray<DisplayContentsAnimator> mDisplayContentsAnimators = + new SparseArray<WindowAnimator.DisplayContentsAnimator>(); static final int WALLPAPER_ACTION_PENDING = 1; int mPendingActions; @@ -127,11 +121,18 @@ public class WindowAnimator { }; } - void initializeLocked(final int layerStack) { - mWindowAnimationBackgroundSurface = - new DimSurface(mService.mFxSession, layerStack); - mDimAnimator = new DimAnimator(mService.mFxSession, layerStack); - mInitialized = true; + void addDisplayLocked(final int displayId) { + DisplayContentsAnimator displayAnimator = getDisplayContentsAnimatorLocked(displayId); + displayAnimator.mWindowAnimationBackgroundSurface = + new DimSurface(mService.mFxSession, displayId); + displayAnimator.mDimAnimator = new DimAnimator(mService.mFxSession, displayId); + if (displayId == Display.DEFAULT_DISPLAY) { + mInitialized = true; + } + } + + void removeDisplayLocked(final int displayId) { + mDisplayContentsAnimators.delete(displayId); } /** Locked on mAnimToLayout */ @@ -165,8 +166,6 @@ public class WindowAnimator { mWallpaperTokens = new ArrayList<WindowToken>(layoutToAnim.mWallpaperTokens); } - mWinAnimatorLists = - new ArrayList<WinAnimatorList>(layoutToAnim.mWinAnimatorLists); mWallpaperTarget = layoutToAnim.mWallpaperTarget; mWpAppAnimator = mWallpaperTarget == null ? null : mWallpaperTarget.mAppToken == null @@ -175,20 +174,34 @@ public class WindowAnimator { mUpperWallpaperTarget = layoutToAnim.mUpperWallpaperTarget; // Set the new DimAnimator params. - DimAnimator.Parameters dimParams = layoutToAnim.mDimParams; - if (dimParams == null) { - mDimParams = null; - } else { - final WindowStateAnimator newWinAnimator = dimParams.mDimWinAnimator; - - // Only set dim params on the highest dimmed layer. - final WindowStateAnimator existingDimWinAnimator = mDimParams == null - ? null : mDimParams.mDimWinAnimator; - // Don't turn on for an unshown surface, or for any layer but the highest dimmed one. - if (newWinAnimator.mSurfaceShown && - (existingDimWinAnimator == null || !existingDimWinAnimator.mSurfaceShown - || existingDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { - mDimParams = new DimAnimator.Parameters(dimParams); + final int numDisplays = mDisplayContentsAnimators.size(); + for (int i = 0; i < numDisplays; i++) { + final int displayId = mDisplayContentsAnimators.keyAt(i); + DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); + + displayAnimator.mWinAnimators.clear(); + final WinAnimatorList winAnimators = layoutToAnim.mWinAnimatorLists.get(displayId); + if (winAnimators != null) { + displayAnimator.mWinAnimators.addAll(winAnimators); + } + + DimAnimator.Parameters dimParams = layoutToAnim.mDimParams.get(displayId); + if (dimParams == null) { + displayAnimator.mDimParams = null; + } else { + final WindowStateAnimator newWinAnimator = dimParams.mDimWinAnimator; + + // Only set dim params on the highest dimmed layer. + final WindowStateAnimator existingDimWinAnimator = + displayAnimator.mDimParams == null ? + null : displayAnimator.mDimParams.mDimWinAnimator; + // Don't turn on for an unshown surface, or for any layer but the highest + // dimmed layer. + if (newWinAnimator.mSurfaceShown && (existingDimWinAnimator == null + || !existingDimWinAnimator.mSurfaceShown + || existingDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { + displayAnimator.mDimParams = new DimAnimator.Parameters(dimParams); + } } } @@ -225,7 +238,7 @@ public class WindowAnimator { } } - private void updateWindowsAppsAndRotationAnimationsLocked() { + private void updateAppWindowsLocked() { int i; final int NAT = mAppAnimators.size(); for (i=0; i<NAT; i++) { @@ -258,21 +271,13 @@ public class WindowAnimator { "updateWindowsApps...: done animating exiting " + appAnimator.mAppToken); } } - - if (mScreenRotationAnimation != null && mScreenRotationAnimation.isAnimating()) { - if (mScreenRotationAnimation.stepAnimationLocked(mCurrentTime)) { - mAnimating = true; - } else { - mBulkUpdateParams |= SET_UPDATE_ROTATION; - mScreenRotationAnimation.kill(); - mScreenRotationAnimation = null; - } - } } - private void updateWindowsLocked(final WinAnimatorList winAnimatorList) { + private void updateWindowsLocked(final int displayId) { ++mAnimTransactionSequence; + final WinAnimatorList winAnimatorList = + getDisplayContentsAnimatorLocked(displayId).mWinAnimators; ArrayList<WindowStateAnimator> unForceHiding = null; boolean wallpaperInUnForceHiding = false; @@ -313,7 +318,6 @@ public class WindowAnimator { WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG, "Animation started that could impact force hide: " + win); mBulkUpdateParams |= SET_FORCE_HIDING_CHANGED; - final int displayId = win.mDisplayContent.getDisplayId(); setPendingLayoutChanges(displayId, WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER); if (WindowManagerService.DEBUG_LAYOUT_REPEATS) { @@ -391,7 +395,6 @@ public class WindowAnimator { if (winAnimator.mDrawState == WindowStateAnimator.READY_TO_SHOW) { if (atoken == null || atoken.allDrawn) { if (winAnimator.performShowLocked()) { - final int displayId = win.mDisplayContent.getDisplayId(); mPendingLayoutChanges.put(displayId, WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM); if (WindowManagerService.DEBUG_LAYOUT_REPEATS) { @@ -427,10 +430,15 @@ public class WindowAnimator { } } - private void updateWallpaperLocked(final WinAnimatorList winAnimatorList) { + private void updateWallpaperLocked(int displayId) { + final DisplayContentsAnimator displayAnimator = + getDisplayContentsAnimatorLocked(displayId); + final WinAnimatorList winAnimatorList = displayAnimator.mWinAnimators; WindowStateAnimator windowAnimationBackground = null; int windowAnimationBackgroundColor = 0; WindowState detachedWallpaper = null; + final DimSurface windowAnimationBackgroundSurface = + displayAnimator.mWindowAnimationBackgroundSurface; for (int i = winAnimatorList.size() - 1; i >= 0; i--) { WindowStateAnimator winAnimator = winAnimatorList.get(i); @@ -510,11 +518,11 @@ public class WindowAnimator { } } - mWindowAnimationBackgroundSurface.show(mDw, mDh, + windowAnimationBackgroundSurface.show(mDw, mDh, animLayer - WindowManagerService.LAYER_OFFSET_DIM, windowAnimationBackgroundColor); } else { - mWindowAnimationBackgroundSurface.hide(); + windowAnimationBackgroundSurface.hide(); } } @@ -557,9 +565,9 @@ public class WindowAnimator { } } - private void performAnimationsLocked(final WinAnimatorList winAnimatorList) { - updateWindowsLocked(winAnimatorList); - updateWallpaperLocked(winAnimatorList); + private void performAnimationsLocked(final int displayId) { + updateWindowsLocked(displayId); + updateWallpaperLocked(displayId); } // TODO(cmautner): Change the following comment when no longer locked on mWindowMap */ @@ -582,15 +590,30 @@ public class WindowAnimator { TAG, ">>> OPEN TRANSACTION animateLocked"); Surface.openTransaction(); try { - updateWindowsAppsAndRotationAnimationsLocked(); - - for (int i = mWinAnimatorLists.size() - 1; i >= 0; i--) { - final WinAnimatorList winAnimatorList = mWinAnimatorLists.get(i); + updateAppWindowsLocked(); + + final int numDisplays = mDisplayContentsAnimators.size(); + for (int i = 0; i < numDisplays; i++) { + final int displayId = mDisplayContentsAnimators.keyAt(i); + DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); + + final ScreenRotationAnimation screenRotationAnimation = + displayAnimator.mScreenRotationAnimation; + if (screenRotationAnimation != null && screenRotationAnimation.isAnimating()) { + if (screenRotationAnimation.stepAnimationLocked(mCurrentTime)) { + mAnimating = true; + } else { + mBulkUpdateParams |= SET_UPDATE_ROTATION; + screenRotationAnimation.kill(); + displayAnimator.mScreenRotationAnimation = null; + } + } // Update animations of all applications, including those // associated with exiting/removed apps - performAnimationsLocked(winAnimatorList); + performAnimationsLocked(displayId); + final WinAnimatorList winAnimatorList = displayAnimator.mWinAnimators; final int N = winAnimatorList.size(); for (int j = 0; j < N; j++) { winAnimatorList.get(j).prepareSurfaceLocked(true); @@ -599,16 +622,26 @@ public class WindowAnimator { testTokenMayBeDrawnLocked(); - if (mScreenRotationAnimation != null) { - mScreenRotationAnimation.updateSurfacesInTransaction(); - } + for (int i = 0; i < numDisplays; i++) { + final int displayId = mDisplayContentsAnimators.keyAt(i); + DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); - if (mDimParams != null) { - mDimAnimator.updateParameters(mContext.getResources(), mDimParams, mCurrentTime); - } - if (mDimAnimator != null && mDimAnimator.mDimShown) { - mAnimating |= mDimAnimator.updateSurface(isDimming(), mCurrentTime, - !mService.okToDisplay()); + final ScreenRotationAnimation screenRotationAnimation = + displayAnimator.mScreenRotationAnimation; + if (screenRotationAnimation != null) { + screenRotationAnimation.updateSurfacesInTransaction(); + } + + final DimAnimator.Parameters dimParams = displayAnimator.mDimParams; + final DimAnimator dimAnimator = displayAnimator.mDimAnimator; + if (dimParams != null) { + dimAnimator.updateParameters( + mContext.getResources(), dimParams, mCurrentTime); + } + if (dimAnimator != null && dimAnimator.mDimShown) { + mAnimating |= dimAnimator.updateSurface(isDimmingLocked(displayId), + mCurrentTime, !mService.okToDisplay()); + } } if (mService.mWatermark != null) { @@ -661,15 +694,17 @@ public class WindowAnimator { mInnerDh = appHeight; } - boolean isDimming() { - return mDimParams != null; + boolean isDimmingLocked(int displayId) { + return getDisplayContentsAnimatorLocked(displayId).mDimParams != null; } - boolean isDimming(final WindowStateAnimator winAnimator) { - return mDimParams != null && mDimParams.mDimWinAnimator == winAnimator; + boolean isDimmingLocked(final WindowStateAnimator winAnimator) { + DimAnimator.Parameters dimParams = + getDisplayContentsAnimatorLocked(winAnimator.mWin.getDisplayId()).mDimParams; + return dimParams != null && dimParams.mDimWinAnimator == winAnimator; } - public void dump(PrintWriter pw, String prefix, boolean dumpAll) { + public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { if (dumpAll) { if (mWindowDetachedWallpaper != null) { pw.print(prefix); pw.print("mWindowDetachedWallpaper="); @@ -677,16 +712,36 @@ public class WindowAnimator { } pw.print(prefix); pw.print("mAnimTransactionSequence="); pw.println(mAnimTransactionSequence); - if (mWindowAnimationBackgroundSurface != null) { - pw.print(prefix); pw.print("mWindowAnimationBackgroundSurface:"); - mWindowAnimationBackgroundSurface.printTo(prefix + " ", pw); - } - if (mDimAnimator != null) { - pw.print(prefix); pw.print("mDimAnimator:"); - mDimAnimator.printTo(prefix + " ", pw); - } else { - pw.print(prefix); pw.print("no DimAnimator "); + for (int i = 0; i < mDisplayContentsAnimators.size(); i++) { + pw.print(prefix); pw.print("DisplayContentsAnimator #"); + pw.println(mDisplayContentsAnimators.keyAt(i)); + DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); + final String subPrefix = " " + prefix; + final String subSubPrefix = " " + subPrefix; + if (displayAnimator.mWindowAnimationBackgroundSurface != null) { + pw.println(subPrefix + "mWindowAnimationBackgroundSurface:"); + displayAnimator.mWindowAnimationBackgroundSurface.printTo(subSubPrefix, pw); + } + if (displayAnimator.mDimAnimator != null) { + pw.println(subPrefix + "mDimAnimator:"); + displayAnimator.mDimAnimator.printTo(subSubPrefix, pw); + } else { + pw.println(subPrefix + "no DimAnimator "); + } + if (displayAnimator.mDimParams != null) { + pw.println(subPrefix + "mDimParams:"); + displayAnimator.mDimParams.printTo(subSubPrefix, pw); + } else { + pw.println(subPrefix + "no DimParams "); + } + if (displayAnimator.mScreenRotationAnimation != null) { + pw.println(subPrefix + "mScreenRotationAnimation:"); + displayAnimator.mScreenRotationAnimation.printTo(subSubPrefix, pw); + } else { + pw.print(subPrefix + "no ScreenRotationAnimation "); + } } + pw.println(); } } @@ -716,4 +771,29 @@ public class WindowAnimator { } } } + + private DisplayContentsAnimator getDisplayContentsAnimatorLocked(int displayId) { + DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.get(displayId); + if (displayAnimator == null) { + displayAnimator = new DisplayContentsAnimator(); + mDisplayContentsAnimators.put(displayId, displayAnimator); + } + return displayAnimator; + } + + void setScreenRotationAnimationLocked(int displayId, ScreenRotationAnimation animation) { + getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation = animation; + } + + ScreenRotationAnimation getScreenRotationAnimationLocked(int displayId) { + return getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation; + } + + private static class DisplayContentsAnimator { + WinAnimatorList mWinAnimators = new WinAnimatorList(); + DimAnimator mDimAnimator = null; + DimAnimator.Parameters mDimParams = null; + DimSurface mWindowAnimationBackgroundSurface = null; + ScreenRotationAnimation mScreenRotationAnimation = null; + } } diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 1a101ad56947..55a7c466e531 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -294,7 +294,6 @@ public class WindowManagerService extends IWindowManager.Stub KeyguardDisableHandler.KEYGUARD_POLICY_CHANGED); } else if (Intent.ACTION_USER_SWITCHED.equals(action)) { final int newUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); - Slog.v(TAG, "Switching user from " + mCurrentUserId + " to " + newUserId); mCurrentUserId = newUserId; } } @@ -624,11 +623,11 @@ public class WindowManagerService extends IWindowManager.Stub long mChanges; boolean mAnimationScheduled; - ArrayList<WinAnimatorList> mWinAnimatorLists = new ArrayList<WinAnimatorList>(); + SparseArray<WinAnimatorList> mWinAnimatorLists = new SparseArray<WinAnimatorList>(); WindowState mWallpaperTarget; WindowState mLowerWallpaperTarget; WindowState mUpperWallpaperTarget; - DimAnimator.Parameters mDimParams; + SparseArray<DimAnimator.Parameters> mDimParams = new SparseArray<DimAnimator.Parameters>(); ArrayList<WindowToken> mWallpaperTokens = new ArrayList<WindowToken>(); ArrayList<AppWindowAnimParams> mAppWindowAnimParams = new ArrayList<AppWindowAnimParams>(); } @@ -4122,6 +4121,7 @@ public class WindowManagerService extends IWindowManager.Stub } } + @Override public void overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth, int startHeight) { synchronized(mWindowMap) { @@ -4139,6 +4139,7 @@ public class WindowManagerService extends IWindowManager.Stub } } + @Override public void overridePendingAppTransitionThumb(Bitmap srcThumb, int startX, int startY, IRemoteCallback startedCallback, boolean scaleUp) { synchronized(mWindowMap) { @@ -4158,6 +4159,7 @@ public class WindowManagerService extends IWindowManager.Stub } } + @Override public void executeAppTransition() { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "executeAppTransition()")) { @@ -5944,8 +5946,9 @@ public class WindowManagerService extends IWindowManager.Stub return false; } - if (mAnimator.mScreenRotationAnimation != null && - mAnimator.mScreenRotationAnimation.isAnimating()) { + ScreenRotationAnimation screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(Display.DEFAULT_DISPLAY); + if (screenRotationAnimation != null && screenRotationAnimation.isAnimating()) { // Rotation updates cannot be performed while the previous rotation change // animation is still in progress. Skip this update. We will try updating // again after the animation is finished and the display is unfrozen. @@ -5997,6 +6000,9 @@ public class WindowManagerService extends IWindowManager.Stub mWaitingForConfig = true; getDefaultDisplayContentLocked().layoutNeeded = true; startFreezingDisplayLocked(inTransaction, 0, 0); + // startFreezingDisplayLocked can reset the ScreenRotationAnimation. + screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(Display.DEFAULT_DISPLAY); // We need to update our screen size information to match the new // rotation. Note that this is redundant with the later call to @@ -6017,9 +6023,9 @@ public class WindowManagerService extends IWindowManager.Stub try { // NOTE: We disable the rotation in the emulator because // it doesn't support hardware OpenGL emulation yet. - if (CUSTOM_SCREEN_ROTATION && mAnimator.mScreenRotationAnimation != null - && mAnimator.mScreenRotationAnimation.hasScreenshot()) { - if (mAnimator.mScreenRotationAnimation.setRotationInTransaction( + if (CUSTOM_SCREEN_ROTATION && screenRotationAnimation != null + && screenRotationAnimation.hasScreenshot()) { + if (screenRotationAnimation.setRotationInTransaction( rotation, mFxSession, MAX_ANIMATION_DURATION, mTransitionAnimationScale, displayInfo.logicalWidth, displayInfo.logicalHeight)) { @@ -7159,8 +7165,6 @@ public class WindowManagerService extends IWindowManager.Stub mIsTouchDevice = mContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TOUCHSCREEN); - mAnimator.initializeLocked(display.getLayerStack()); - final DisplayInfo displayInfo = getDefaultDisplayInfoLocked(); mAnimator.setDisplayDimensions( displayInfo.logicalWidth, displayInfo.logicalHeight, @@ -7182,6 +7186,7 @@ public class WindowManagerService extends IWindowManager.Stub synchronized(mWindowMap) { final DisplayContent displayContent = getDisplayContentLocked(displayId); final DisplayInfo displayInfo; + mAnimator.addDisplayLocked(displayId); synchronized(displayContent.mDisplaySizeLock) { // Bootstrap the default logical display from the display manager. displayInfo = displayContent.getDisplayInfo(); @@ -8137,7 +8142,7 @@ public class WindowManagerService extends IWindowManager.Stub if (winAnimator.mAnimLayer != oldLayer) { layerChanged = true; } - if (layerChanged && mAnimator.isDimming(winAnimator)) { + if (layerChanged && mAnimator.isDimmingLocked(winAnimator)) { // Force an animation pass just to update the mDimAnimator layer. updateLayoutToAnimationLocked(); } @@ -8843,7 +8848,7 @@ public class WindowManagerService extends IWindowManager.Stub //Slog.i(TAG, "DIM BEHIND: " + w); mInnerFields.mDimming = true; final WindowStateAnimator winAnimator = w.mWinAnimator; - if (!mAnimator.isDimming(winAnimator)) { + if (!mAnimator.isDimmingLocked(winAnimator)) { final int width, height; if (attrs.type == WindowManager.LayoutParams.TYPE_BOOT_PROGRESS) { final DisplayInfo displayInfo = w.mDisplayContent.getDisplayInfo(); @@ -8853,7 +8858,8 @@ public class WindowManagerService extends IWindowManager.Stub width = innerDw; height = innerDh; } - startDimming(winAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount, width, height); + startDimmingLocked( + winAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount, width, height); } } } @@ -9081,7 +9087,7 @@ public class WindowManagerService extends IWindowManager.Stub } } - winAnimator.setSurfaceBoundaries(recoveringMemory); + winAnimator.setSurfaceBoundariesLocked(recoveringMemory); final AppWindowToken atoken = w.mAppToken; if (DEBUG_STARTING_WINDOW && atoken != null && w == atoken.startingWindow) { @@ -9139,6 +9145,10 @@ public class WindowManagerService extends IWindowManager.Stub updateResizingWindows(w); } + + if (!mInnerFields.mDimming && mAnimator.isDimmingLocked(displayId)) { + stopDimmingLocked(displayId); + } } if (updateAllDrawn) { @@ -9148,10 +9158,6 @@ public class WindowManagerService extends IWindowManager.Stub if (focusDisplayed) { mH.sendEmptyMessage(H.REPORT_LOSING_FOCUS); } - - if (!mInnerFields.mDimming && mAnimator.isDimming()) { - stopDimming(); - } } catch (RuntimeException e) { Log.wtf(TAG, "Unhandled exception in Window Manager", e); } finally { @@ -9516,7 +9522,7 @@ public class WindowManagerService extends IWindowManager.Stub final LayoutToAnimatorParams layoutToAnim = mLayoutToAnim; synchronized (layoutToAnim) { // Copy local params to transfer params. - ArrayList<WinAnimatorList> allWinAnimatorLists = layoutToAnim.mWinAnimatorLists; + SparseArray<WinAnimatorList> allWinAnimatorLists = layoutToAnim.mWinAnimatorLists; allWinAnimatorLists.clear(); DisplayContentsIterator iterator = new DisplayContentsIterator(); while (iterator.hasNext()) { @@ -9530,7 +9536,7 @@ public class WindowManagerService extends IWindowManager.Stub winAnimatorList.add(winAnimator); } } - allWinAnimatorLists.add(winAnimatorList); + allWinAnimatorLists.put(displayContent.getDisplayId(), winAnimatorList); } layoutToAnim.mWallpaperTarget = mWallpaperTarget; @@ -9556,20 +9562,21 @@ public class WindowManagerService extends IWindowManager.Stub } } - void setAnimDimParams(DimAnimator.Parameters params) { + void setAnimDimParams(int displayId, DimAnimator.Parameters params) { synchronized (mLayoutToAnim) { - mLayoutToAnim.mDimParams = params; + mLayoutToAnim.mDimParams.put(displayId, params); scheduleAnimationLocked(); } } - void startDimming(final WindowStateAnimator winAnimator, final float target, + void startDimmingLocked(final WindowStateAnimator winAnimator, final float target, final int width, final int height) { - setAnimDimParams(new DimAnimator.Parameters(winAnimator, width, height, target)); + setAnimDimParams(winAnimator.mWin.getDisplayId(), + new DimAnimator.Parameters(winAnimator, width, height, target)); } - void stopDimming() { - setAnimDimParams(null); + void stopDimmingLocked(int displayId) { + setAnimDimParams(displayId, null); } private boolean needsLayout() { @@ -9901,19 +9908,22 @@ public class WindowManagerService extends IWindowManager.Stub } if (CUSTOM_SCREEN_ROTATION) { - if (mAnimator.mScreenRotationAnimation != null) { - mAnimator.mScreenRotationAnimation.kill(); - mAnimator.mScreenRotationAnimation = null; + final DisplayContent displayContent = getDefaultDisplayContentLocked(); + final int displayId = displayContent.getDisplayId(); + ScreenRotationAnimation screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(displayId); + if (screenRotationAnimation != null) { + screenRotationAnimation.kill(); } // TODO(multidisplay): rotation on main screen only. - final DisplayContent displayContent = getDefaultDisplayContentLocked(); final Display display = displayContent.getDisplay(); final DisplayInfo displayInfo = displayContent.getDisplayInfo(); - mAnimator.mScreenRotationAnimation = new ScreenRotationAnimation(mContext, + screenRotationAnimation = new ScreenRotationAnimation(mContext, display, mFxSession, inTransaction, displayInfo.logicalWidth, displayInfo.logicalHeight, display.getRotation(), exitAnim, enterAnim); + mAnimator.setScreenRotationAnimationLocked(displayId, screenRotationAnimation); } } @@ -9941,24 +9951,30 @@ public class WindowManagerService extends IWindowManager.Stub boolean updateRotation = false; - if (CUSTOM_SCREEN_ROTATION && mAnimator.mScreenRotationAnimation != null - && mAnimator.mScreenRotationAnimation.hasScreenshot()) { + final DisplayContent displayContent = getDefaultDisplayContentLocked(); + final int displayId = displayContent.getDisplayId(); + ScreenRotationAnimation screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(displayId); + if (CUSTOM_SCREEN_ROTATION && screenRotationAnimation != null + && screenRotationAnimation.hasScreenshot()) { if (DEBUG_ORIENTATION) Slog.i(TAG, "**** Dismissing screen rotation animation"); // TODO(multidisplay): rotation on main screen only. - DisplayInfo displayInfo = getDefaultDisplayContentLocked().getDisplayInfo(); - if (mAnimator.mScreenRotationAnimation.dismiss(mFxSession, MAX_ANIMATION_DURATION, + DisplayInfo displayInfo = displayContent.getDisplayInfo(); + if (screenRotationAnimation.dismiss(mFxSession, MAX_ANIMATION_DURATION, mTransitionAnimationScale, displayInfo.logicalWidth, displayInfo.logicalHeight)) { updateLayoutToAnimationLocked(); } else { - mAnimator.mScreenRotationAnimation.kill(); - mAnimator.mScreenRotationAnimation = null; + screenRotationAnimation.kill(); + screenRotationAnimation = null; + mAnimator.setScreenRotationAnimationLocked(displayId, screenRotationAnimation); updateRotation = true; } } else { - if (mAnimator.mScreenRotationAnimation != null) { - mAnimator.mScreenRotationAnimation.kill(); - mAnimator.mScreenRotationAnimation = null; + if (screenRotationAnimation != null) { + screenRotationAnimation.kill(); + screenRotationAnimation = null; + mAnimator.setScreenRotationAnimationLocked(displayId, screenRotationAnimation); } updateRotation = true; } @@ -10395,11 +10411,11 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(": "); pw.println(pair.second); } } - pw.println(); + pw.println(" DisplayContents"); if (mDisplayReady) { DisplayContentsIterator dCIterator = new DisplayContentsIterator(); while (dCIterator.hasNext()) { - dCIterator.next().dump(pw); + dCIterator.next().dump(" ", pw); } } else { pw.println(" NO DISPLAY"); @@ -10464,10 +10480,6 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mLastWindowForcedOrientation="); pw.print(mLastWindowForcedOrientation); pw.print(" mForcedAppOrientation="); pw.println(mForcedAppOrientation); pw.print(" mDeferredRotationPauseCount="); pw.println(mDeferredRotationPauseCount); - if (mAnimator.mScreenRotationAnimation != null) { - pw.println(" mScreenRotationAnimation:"); - mAnimator.mScreenRotationAnimation.printTo(" ", pw); - } pw.print(" mWindowAnimationScale="); pw.print(mWindowAnimationScale); pw.print(" mTransitionWindowAnimationScale="); pw.print(mTransitionAnimationScale); pw.print(" mAnimatorDurationScale="); pw.println(mAnimatorDurationScale); @@ -10516,7 +10528,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); pw.print(" mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); pw.println(" Window Animator:"); - mAnimator.dump(pw, " ", dumpAll); + mAnimator.dumpLocked(pw, " ", dumpAll); } } @@ -10851,6 +10863,7 @@ public class WindowManagerService extends IWindowManager.Stub private void handleDisplayAddedLocked(int displayId) { createDisplayContentLocked(mDisplayManager.getDisplay(displayId)); + displayReady(displayId); } @Override @@ -10866,6 +10879,7 @@ public class WindowManagerService extends IWindowManager.Stub final WindowState win = windows.get(i); removeWindowLocked(win.mSession, win); } + mAnimator.removeDisplayLocked(displayId); } @Override diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java index 8912c73d3000..000a191fcd87 100644 --- a/services/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/java/com/android/server/wm/WindowStateAnimator.java @@ -31,6 +31,13 @@ import java.io.PrintWriter; import java.util.ArrayList; class WinAnimatorList extends ArrayList<WindowStateAnimator> { + public WinAnimatorList() { + super(); + } + + public WinAnimatorList(WinAnimatorList other) { + super(other); + } } /** @@ -840,8 +847,11 @@ class WindowStateAnimator { } } - final boolean screenAnimation = mService.mAnimator.mScreenRotationAnimation != null - && mService.mAnimator.mScreenRotationAnimation.isAnimating(); + final int displayId = mWin.getDisplayId(); + final ScreenRotationAnimation screenRotationAnimation = + mAnimator.getScreenRotationAnimationLocked(displayId); + final boolean screenAnimation = + screenRotationAnimation != null && screenRotationAnimation.isAnimating(); if (selfTransformation || attachedTransformation != null || appTransformation != null || screenAnimation) { // cache often used attributes locally @@ -883,8 +893,7 @@ class WindowStateAnimator { tmpMatrix.postConcat(mAnimator.mUniverseBackground.mUniverseTransform.getMatrix()); } if (screenAnimation) { - tmpMatrix.postConcat( - mService.mAnimator.mScreenRotationAnimation.getEnterTransformation().getMatrix()); + tmpMatrix.postConcat(screenRotationAnimation.getEnterTransformation().getMatrix()); } MagnificationSpec spec = mWin.getWindowMagnificationSpecLocked(); if (spec != null && !spec.isNop()) { @@ -934,21 +943,21 @@ class WindowStateAnimator { mShownAlpha *= mAnimator.mUniverseBackground.mUniverseTransform.getAlpha(); } if (screenAnimation) { - mShownAlpha *= - mService.mAnimator.mScreenRotationAnimation.getEnterTransformation().getAlpha(); + mShownAlpha *= screenRotationAnimation.getEnterTransformation().getAlpha(); } } else { //Slog.i(TAG, "Not applying alpha transform"); } - if ((DEBUG_SURFACE_TRACE || WindowManagerService.localLOGV) && (mShownAlpha == 1.0 || mShownAlpha == 0.0)) Slog.v( - TAG, "computeShownFrameLocked: Animating " + this + - " mAlpha=" + mAlpha + - " self=" + (selfTransformation ? mTransformation.getAlpha() : "null") + - " attached=" + (attachedTransformation == null ? "null" : attachedTransformation.getAlpha()) + - " app=" + (appTransformation == null ? "null" : appTransformation.getAlpha()) + - " screen=" + (screenAnimation ? mService.mAnimator.mScreenRotationAnimation.getEnterTransformation().getAlpha() - : "null")); + if ((DEBUG_SURFACE_TRACE || WindowManagerService.localLOGV) + && (mShownAlpha == 1.0 || mShownAlpha == 0.0)) Slog.v( + TAG, "computeShownFrameLocked: Animating " + this + " mAlpha=" + mAlpha + + " self=" + (selfTransformation ? mTransformation.getAlpha() : "null") + + " attached=" + (attachedTransformation == null ? + "null" : attachedTransformation.getAlpha()) + + " app=" + (appTransformation == null ? "null" : appTransformation.getAlpha()) + + " screen=" + (screenAnimation ? + screenRotationAnimation.getEnterTransformation().getAlpha() : "null")); return; } else if (mIsWallpaper && (mAnimator.mPendingActions & WindowAnimator.WALLPAPER_ACTION_PENDING) != 0) { @@ -1083,7 +1092,7 @@ class WindowStateAnimator { } } - void setSurfaceBoundaries(final boolean recoveringMemory) { + void setSurfaceBoundariesLocked(final boolean recoveringMemory) { final WindowState w = mWin; int width, height; if ((w.mAttrs.flags & LayoutParams.FLAG_SCALED) != 0) { @@ -1138,7 +1147,7 @@ class WindowStateAnimator { WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER); if ((w.mAttrs.flags & LayoutParams.FLAG_DIM_BEHIND) != 0) { final DisplayInfo displayInfo = mWin.mDisplayContent.getDisplayInfo(); - mService.startDimming(this, w.mExiting ? 0 : w.mAttrs.dimAmount, + mService.startDimmingLocked(this, w.mExiting ? 0 : w.mAttrs.dimAmount, displayInfo.appWidth, displayInfo.appHeight); } } catch (RuntimeException e) { @@ -1172,7 +1181,7 @@ class WindowStateAnimator { computeShownFrameLocked(); - setSurfaceBoundaries(recoveringMemory); + setSurfaceBoundariesLocked(recoveringMemory); if (mIsWallpaper && !mWin.mWallpaperVisible) { // Wallpaper is no longer visible and there is no wp target => hide it. diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java index a2104bba6c6c..167b6c29fd10 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java @@ -54,7 +54,6 @@ import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; -import android.content.pm.UserInfo; import android.net.ConnectivityManager; import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; @@ -87,9 +86,7 @@ import org.easymock.EasyMock; import org.easymock.IAnswer; import java.io.File; -import java.util.ArrayList; import java.util.LinkedHashSet; -import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -133,15 +130,12 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { private long mElapsedRealtime; private static final int USER_ID = 0; - private static final int USER_ID_GUEST = 1; private static final int APP_ID_A = android.os.Process.FIRST_APPLICATION_UID + 800; private static final int APP_ID_B = android.os.Process.FIRST_APPLICATION_UID + 801; private static final int UID_A = UserHandle.getUid(USER_ID, APP_ID_A); private static final int UID_B = UserHandle.getUid(USER_ID, APP_ID_B); - private static final int UID_A_GUEST = UserHandle.getUid(USER_ID_GUEST, APP_ID_A); - private static final int UID_B_GUEST = UserHandle.getUid(USER_ID_GUEST, APP_ID_B); private static final int PID_1 = 400; private static final int PID_2 = 401; @@ -258,13 +252,13 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { @Suppress public void testPolicyChangeTriggersBroadcast() throws Exception { - mService.setAppPolicy(APP_ID_A, POLICY_NONE); + mService.setUidPolicy(APP_ID_A, POLICY_NONE); // change background policy and expect broadcast final Future<Intent> backgroundChanged = mServiceContext.nextBroadcastIntent( ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED); - mService.setAppPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); + mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); backgroundChanged.get(); } @@ -318,7 +312,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { public void testScreenChangesRules() throws Exception { Future<Void> future; - Future<Void> futureGuest; expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, true); @@ -331,14 +324,10 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { // push strict policy for foreground uid, verify ALLOW rule expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, true); - expectSetUidNetworkRules(UID_A_GUEST, true); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_REJECT_METERED); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); + mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); future.get(); - futureGuest.get(); verifyAndReset(); // now turn screen off and verify REJECT rule @@ -364,7 +353,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { public void testPolicyNone() throws Exception { Future<Void> future; - Future<Void> futureGuest; expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, true); @@ -377,14 +365,10 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { // POLICY_NONE should RULE_ALLOW in foreground expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, true); - expectSetUidNetworkRules(UID_A_GUEST, false); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_ALLOW_ALL); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_NONE); + mService.setUidPolicy(APP_ID_A, POLICY_NONE); future.get(); - futureGuest.get(); verifyAndReset(); // POLICY_NONE should RULE_ALLOW in background @@ -399,19 +383,14 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { public void testPolicyReject() throws Exception { Future<Void> future; - Future<Void> futureGuest; // POLICY_REJECT should RULE_ALLOW in background expectSetUidNetworkRules(UID_A, true); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, true); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_REJECT_METERED); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_REJECT_METERED); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); + mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); future.get(); - futureGuest.get(); verifyAndReset(); // POLICY_REJECT should RULE_ALLOW in foreground @@ -435,46 +414,33 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { public void testPolicyRejectAddRemove() throws Exception { Future<Void> future; - Future<Void> futureGuest; // POLICY_NONE should have RULE_ALLOW in background expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, false); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_ALLOW_ALL); replay(); mProcessObserver.onForegroundActivitiesChanged(PID_1, UID_A, false); - mService.setAppPolicy(APP_ID_A, POLICY_NONE); + mService.setUidPolicy(APP_ID_A, POLICY_NONE); future.get(); - futureGuest.get(); verifyAndReset(); // adding POLICY_REJECT should cause RULE_REJECT expectSetUidNetworkRules(UID_A, true); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, true); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_REJECT_METERED); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_REJECT_METERED); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); + mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); future.get(); - futureGuest.get(); verifyAndReset(); // removing POLICY_REJECT should return us to RULE_ALLOW expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, false); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_ALLOW_ALL); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_NONE); + mService.setUidPolicy(APP_ID_A, POLICY_NONE); future.get(); - futureGuest.get(); verifyAndReset(); } @@ -645,34 +611,25 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { public void testUidRemovedPolicyCleared() throws Exception { Future<Void> future; - Future<Void> futureGuest; // POLICY_REJECT should RULE_REJECT in background expectSetUidNetworkRules(UID_A, true); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, true); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_REJECT_METERED); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_REJECT_METERED); replay(); - mService.setAppPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); + mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); future.get(); - futureGuest.get(); verifyAndReset(); // uninstall should clear RULE_REJECT expectSetUidNetworkRules(UID_A, false); expectSetUidForeground(UID_A, false); - expectSetUidNetworkRules(UID_A_GUEST, false); - expectSetUidForeground(UID_A_GUEST, false); future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - futureGuest = expectRulesChanged(UID_A_GUEST, RULE_ALLOW_ALL); replay(); final Intent intent = new Intent(ACTION_UID_REMOVED); intent.putExtra(EXTRA_UID, UID_A); mServiceContext.sendBroadcast(intent); future.get(); - futureGuest.get(); verifyAndReset(); } @@ -880,8 +837,8 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { private Future<Void> expectClearNotifications() throws Exception { final FutureAnswer future = new FutureAnswer(); - mNotifManager.cancelNotificationWithTag(isA(String.class), isA(String.class), anyInt(), - UserHandle.myUserId()); + mNotifManager.cancelNotificationWithTag( + isA(String.class), isA(String.class), anyInt(), anyInt()); expectLastCall().andAnswer(future).anyTimes(); return future; } diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java index 805faa636373..4c5fc5d07410 100644 --- a/wifi/java/android/net/wifi/WifiNative.java +++ b/wifi/java/android/net/wifi/WifiNative.java @@ -49,6 +49,7 @@ public class WifiNative { static final int BLUETOOTH_COEXISTENCE_MODE_SENSE = 2; String mInterface = ""; + private boolean mSuspendOptEnabled = false; public native static boolean loadDriver(); @@ -349,6 +350,8 @@ public class WifiNative { } public boolean setSuspendOptimizations(boolean enabled) { + if (mSuspendOptEnabled == enabled) return true; + mSuspendOptEnabled = enabled; if (enabled) { return doBooleanCommand("DRIVER SETSUSPENDMODE 1"); } else { diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 4cbb824c2b92..b3260b18a3ad 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -138,11 +138,13 @@ public class WifiStateMachine extends StateMachine { private boolean mScanResultIsPending = false; /* Tracks if the current scan settings are active */ private boolean mSetScanActive = false; + /* Tracks if state machine has received any screen state change broadcast yet. + * We can miss one of these at boot. + */ + private AtomicBoolean mScreenBroadcastReceived = new AtomicBoolean(false); private boolean mBluetoothConnectionActive = false; - private BroadcastReceiver mScreenReceiver; - private IntentFilter mScreenFilter; private PowerManager.WakeLock mSuspendWakeLock; /** @@ -398,14 +400,14 @@ public class WifiStateMachine extends StateMachine { * Default framework scan interval in milliseconds. This is used in the scenario in which * wifi chipset does not support background scanning to set up a * periodic wake up scan so that the device can connect to a new access - * point on the move. {@link Settings.Secure#WIFI_FRAMEWORK_SCAN_INTERVAL_MS} can + * point on the move. {@link Settings.Global#WIFI_FRAMEWORK_SCAN_INTERVAL_MS} can * override this. */ private final int mDefaultFrameworkScanIntervalMs; /** * Supplicant scan interval in milliseconds. - * Comes from {@link Settings.Secure#WIFI_SUPPLICANT_SCAN_INTERVAL_MS} or + * Comes from {@link Settings.Global#WIFI_SUPPLICANT_SCAN_INTERVAL_MS} or * from the default config if the setting is not set */ private long mSupplicantScanIntervalMs; @@ -628,38 +630,22 @@ public class WifiStateMachine extends StateMachine { }, new IntentFilter(ACTION_START_SCAN)); - mScreenFilter = new IntentFilter(); - mScreenFilter.addAction(Intent.ACTION_SCREEN_ON); - mScreenFilter.addAction(Intent.ACTION_SCREEN_OFF); - mScreenReceiver = new BroadcastReceiver() { + IntentFilter screenFilter = new IntentFilter(); + screenFilter.addAction(Intent.ACTION_SCREEN_ON); + screenFilter.addAction(Intent.ACTION_SCREEN_OFF); + BroadcastReceiver screenReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_SCREEN_ON)) { - enableRssiPolling(true); - if (mBackgroundScanSupported) { - enableBackgroundScanCommand(false); - } - enableAllNetworks(); - if (mUserWantsSuspendOpt.get()) { - if (DBG) log("Clear suspend optimizations"); - sendMessage(obtainMessage(CMD_SET_SUSPEND_OPT_ENABLED, 0, 0)); - } + handleScreenStateChanged(true); } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { - enableRssiPolling(false); - if (mBackgroundScanSupported) { - enableBackgroundScanCommand(true); - } - if (mUserWantsSuspendOpt.get()) { - if (DBG) log("Enable suspend optimizations"); - //Allow 2s for suspend optimizations to be set - mSuspendWakeLock.acquire(2000); - sendMessage(obtainMessage(CMD_SET_SUSPEND_OPT_ENABLED, 1, 0)); - } + handleScreenStateChanged(false); } } }; + mContext.registerReceiver(screenReceiver, screenFilter); mContext.registerReceiver( new BroadcastReceiver() { @@ -1220,6 +1206,26 @@ public class WifiStateMachine extends StateMachine { * Internal private functions ********************************************************/ + private void handleScreenStateChanged(boolean screenOn) { + if (DBG) log("handleScreenStateChanged: " + screenOn); + enableRssiPolling(screenOn); + if (mBackgroundScanSupported) { + enableBackgroundScanCommand(screenOn == false); + } + + if (screenOn) enableAllNetworks(); + if (mUserWantsSuspendOpt.get()) { + if (screenOn) { + sendMessage(obtainMessage(CMD_SET_SUSPEND_OPT_ENABLED, 0, 0)); + } else { + //Allow 2s for suspend optimizations to be set + mSuspendWakeLock.acquire(2000); + sendMessage(obtainMessage(CMD_SET_SUSPEND_OPT_ENABLED, 1, 0)); + } + } + mScreenBroadcastReceived.set(true); + } + private void checkAndSetConnectivityInstance() { if (mCm == null) { mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); @@ -1335,12 +1341,10 @@ public class WifiStateMachine extends StateMachine { /* None of dhcp, screen or highperf need it disabled and user wants it enabled */ if (mSuspendOptNeedsDisabled == 0 && mUserWantsSuspendOpt.get()) { mWifiNative.setSuspendOptimizations(true); - if (DBG) log("Enabled, mSuspendOptNeedsDisabled " + mSuspendOptNeedsDisabled); } } else { mSuspendOptNeedsDisabled |= reason; mWifiNative.setSuspendOptimizations(false); - if (DBG) log("Disabled, mSuspendOptNeedsDisabled " + mSuspendOptNeedsDisabled); } } @@ -2403,8 +2407,8 @@ public class WifiStateMachine extends StateMachine { int defaultInterval = mContext.getResources().getInteger( com.android.internal.R.integer.config_wifi_supplicant_scan_interval); - mSupplicantScanIntervalMs = Settings.Secure.getLong(mContext.getContentResolver(), - Settings.Secure.WIFI_SUPPLICANT_SCAN_INTERVAL_MS, + mSupplicantScanIntervalMs = Settings.Global.getLong(mContext.getContentResolver(), + Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS, defaultInterval); mWifiNative.setScanInterval((int)mSupplicantScanIntervalMs / 1000); @@ -2722,9 +2726,18 @@ public class WifiStateMachine extends StateMachine { transitionTo(mDisconnectedState); } - if (mP2pSupported) mWifiP2pChannel.sendMessage(WifiStateMachine.CMD_ENABLE_P2P); + // We may have missed screen update at boot + if (mScreenBroadcastReceived.get() == false) { + PowerManager powerManager = (PowerManager)mContext.getSystemService( + Context.POWER_SERVICE); + handleScreenStateChanged(powerManager.isScreenOn()); + } else { + // Set the right suspend mode settings + mWifiNative.setSuspendOptimizations(mSuspendOptNeedsDisabled == 0 + && mUserWantsSuspendOpt.get()); + } - mContext.registerReceiver(mScreenReceiver, mScreenFilter); + if (mP2pSupported) mWifiP2pChannel.sendMessage(WifiStateMachine.CMD_ENABLE_P2P); } @Override public boolean processMessage(Message message) { @@ -2861,7 +2874,6 @@ public class WifiStateMachine extends StateMachine { mScanResults = new ArrayList<ScanResult>(); if (mP2pSupported) mWifiP2pChannel.sendMessage(WifiStateMachine.CMD_DISABLE_P2P); - mContext.unregisterReceiver(mScreenReceiver); } } @@ -3445,8 +3457,8 @@ public class WifiStateMachine extends StateMachine { if (DBG) log(getName() + "\n"); EventLog.writeEvent(EVENTLOG_WIFI_STATE_CHANGED, getName()); - mFrameworkScanIntervalMs = Settings.Secure.getLong(mContext.getContentResolver(), - Settings.Secure.WIFI_FRAMEWORK_SCAN_INTERVAL_MS, + mFrameworkScanIntervalMs = Settings.Global.getLong(mContext.getContentResolver(), + Settings.Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS, mDefaultFrameworkScanIntervalMs); /* * We initiate background scanning if it is enabled, otherwise we diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index 3575d9758681..edd1dac8b56b 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -135,7 +135,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { private static final int DISCOVER_TIMEOUT_S = 120; /* Idle time after a peer is gone when the group is torn down */ - private static final int GROUP_IDLE_TIME_S = 2; + private static final int GROUP_IDLE_TIME_S = 5; /** * Delay between restarts upon failure to setup connection with supplicant |