Merge "Add camera bayer image format."
diff --git a/Android.mk b/Android.mk
index b61936f..752a5f8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -116,15 +116,10 @@
core/java/android/net/INetworkPolicyListener.aidl \
core/java/android/net/INetworkPolicyManager.aidl \
core/java/android/net/INetworkStatsService.aidl \
- core/java/android/nfc/ILlcpConnectionlessSocket.aidl \
- core/java/android/nfc/ILlcpServiceSocket.aidl \
- core/java/android/nfc/ILlcpSocket.aidl \
core/java/android/nfc/INdefPushCallback.aidl \
core/java/android/nfc/INfcAdapter.aidl \
core/java/android/nfc/INfcAdapterExtras.aidl \
core/java/android/nfc/INfcTag.aidl \
- core/java/android/nfc/IP2pInitiator.aidl \
- core/java/android/nfc/IP2pTarget.aidl \
core/java/android/os/IHardwareService.aidl \
core/java/android/os/IMessenger.aidl \
core/java/android/os/INetworkManagementService.aidl \
@@ -188,6 +183,7 @@
media/java/android/media/IAudioFocusDispatcher.aidl \
media/java/android/media/IMediaScannerListener.aidl \
media/java/android/media/IMediaScannerService.aidl \
+ media/java/android/media/IRemoteControlClient.aidl \
telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl \
telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \
telephony/java/com/android/internal/telephony/ITelephony.aidl \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index f3eaeeb..a87293d 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -101,6 +101,7 @@
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/os)
$(call add-clean-step, rm -rf $(OUT_DIR)target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/keystore/java/android/security/IKeyChainAliasResponse.java)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/vpn)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/nfc)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/api/14.txt b/api/14.txt
index 895c44d..3d96c11 100644
--- a/api/14.txt
+++ b/api/14.txt
@@ -20979,45 +20979,17 @@
public class Surface implements android.os.Parcelable {
method public int describeContents();
- method public void freeze();
- method public void hide();
method public boolean isValid();
method public android.graphics.Canvas lockCanvas(android.graphics.Rect) throws java.lang.IllegalArgumentException, android.view.Surface.OutOfResourcesException;
method public void readFromParcel(android.os.Parcel);
- method public void setAlpha(float);
- method public void setFlags(int, int);
- method public void setFreezeTint(int);
- method public void setLayer(int);
- method public void setMatrix(float, float, float, float);
- method public static void setOrientation(int, int);
- method public void setPosition(int, int);
- method public void setSize(int, int);
- method public void setTransparentRegionHint(android.graphics.Region);
- method public void show();
- method public void unfreeze();
method public void unlockCanvas(android.graphics.Canvas);
method public void unlockCanvasAndPost(android.graphics.Canvas);
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;
- field public static final int FX_SURFACE_BLUR = 65536; // 0x10000
- field public static final int FX_SURFACE_DIM = 131072; // 0x20000
- field public static final int FX_SURFACE_MASK = 983040; // 0xf0000
- field public static final int FX_SURFACE_NORMAL = 0; // 0x0
- field public static final deprecated int GPU = 40; // 0x28
- field public static final deprecated int HARDWARE = 16; // 0x10
- field public static final int HIDDEN = 4; // 0x4
- field public static final int NON_PREMULTIPLIED = 256; // 0x100
- field public static final deprecated int PUSH_BUFFERS = 512; // 0x200
field public static final int ROTATION_0 = 0; // 0x0
field public static final int ROTATION_180 = 2; // 0x2
field public static final int ROTATION_270 = 3; // 0x3
field public static final int ROTATION_90 = 1; // 0x1
- field public static final int SECURE = 128; // 0x80
- field public static final deprecated int SURACE_FROZEN = 2; // 0x2
- field public static final int SURFACE_BLUR_FREEZE = 16; // 0x10
- field public static final int SURFACE_DITHER = 4; // 0x4
- field public static final int SURFACE_FROZEN = 2; // 0x2
- field public static final int SURFACE_HIDDEN = 1; // 0x1
}
public static class Surface.OutOfResourcesException extends java.lang.Exception {
diff --git a/api/current.txt b/api/current.txt
index 2f78f63..1180440 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -15,6 +15,7 @@
field public static final java.lang.String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
+ field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
field public static final java.lang.String AUTHENTICATE_ACCOUNTS = "android.permission.AUTHENTICATE_ACCOUNTS";
field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
@@ -183,19 +184,19 @@
public static final class R.attr {
ctor public R.attr();
field public static final int absListViewStyle = 16842858; // 0x101006a
- field public static final int accessibilityEventTypes = 16843646; // 0x101037e
- field public static final int accessibilityFeedbackType = 16843648; // 0x1010380
- field public static final int accessibilityFlags = 16843650; // 0x1010382
+ field public static final int accessibilityEventTypes = 16843644; // 0x101037c
+ field public static final int accessibilityFeedbackType = 16843646; // 0x101037e
+ field public static final int accessibilityFlags = 16843648; // 0x1010380
field public static final int accountPreferences = 16843423; // 0x101029f
field public static final int accountType = 16843407; // 0x101028f
field public static final int action = 16842797; // 0x101002d
field public static final int actionBarSize = 16843499; // 0x10102eb
- field public static final int actionBarSplitStyle = 16843668; // 0x1010394
+ field public static final int actionBarSplitStyle = 16843666; // 0x1010392
field public static final int actionBarStyle = 16843470; // 0x10102ce
field public static final int actionBarTabBarStyle = 16843508; // 0x10102f4
field public static final int actionBarTabStyle = 16843507; // 0x10102f3
field public static final int actionBarTabTextStyle = 16843509; // 0x10102f5
- field public static final int actionBarWidgetTheme = 16843683; // 0x10103a3
+ field public static final int actionBarWidgetTheme = 16843681; // 0x10103a1
field public static final int actionButtonStyle = 16843480; // 0x10102d8
field public static final int actionDropDownStyle = 16843479; // 0x10102d7
field public static final int actionLayout = 16843515; // 0x10102fb
@@ -207,10 +208,10 @@
field public static final int actionModeCopyDrawable = 16843538; // 0x1010312
field public static final int actionModeCutDrawable = 16843537; // 0x1010311
field public static final int actionModePasteDrawable = 16843539; // 0x1010313
- field public static final int actionModeSelectAllDrawable = 16843644; // 0x101037c
- field public static final int actionModeStyle = 16843680; // 0x10103a0
+ field public static final int actionModeSelectAllDrawable = 16843642; // 0x101037a
+ field public static final int actionModeStyle = 16843678; // 0x101039e
field public static final int actionOverflowButtonStyle = 16843510; // 0x10102f6
- field public static final int actionProviderClass = 16843669; // 0x1010395
+ field public static final int actionProviderClass = 16843667; // 0x1010393
field public static final int actionViewClass = 16843516; // 0x10102fc
field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
@@ -256,8 +257,8 @@
field public static final int background = 16842964; // 0x10100d4
field public static final int backgroundDimAmount = 16842802; // 0x1010032
field public static final int backgroundDimEnabled = 16843295; // 0x101021f
- field public static final int backgroundSplit = 16843671; // 0x1010397
- field public static final int backgroundStacked = 16843670; // 0x1010396
+ field public static final int backgroundSplit = 16843669; // 0x1010395
+ field public static final int backgroundStacked = 16843668; // 0x1010394
field public static final int backupAgent = 16843391; // 0x101027f
field public static final int baseline = 16843548; // 0x101031c
field public static final int baselineAlignBottom = 16843042; // 0x1010122
@@ -266,7 +267,7 @@
field public static final int borderlessButtonStyle = 16843563; // 0x101032b
field public static final int bottom = 16843184; // 0x10101b0
field public static final int bottomBright = 16842957; // 0x10100cd
- field public static final int bottomChevronDrawable = 16843657; // 0x1010389
+ field public static final int bottomChevronDrawable = 16843655; // 0x1010387
field public static final int bottomDark = 16842953; // 0x10100c9
field public static final int bottomLeftRadius = 16843179; // 0x10101ab
field public static final int bottomMedium = 16842958; // 0x10100ce
@@ -285,7 +286,7 @@
field public static final int cacheColorHint = 16843009; // 0x1010101
field public static final int calendarViewShown = 16843596; // 0x101034c
field public static final int calendarViewStyle = 16843613; // 0x101035d
- field public static final int canRetrieveWindowContent = 16843651; // 0x1010383
+ field public static final int canRetrieveWindowContent = 16843649; // 0x1010381
field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
field public static final deprecated int capitalize = 16843113; // 0x1010169
field public static final int centerBright = 16842956; // 0x10100cc
@@ -314,15 +315,15 @@
field public static final int codes = 16843330; // 0x1010242
field public static final int collapseColumns = 16843083; // 0x101014b
field public static final int color = 16843173; // 0x10101a5
- field public static final int colorActivatedHighlight = 16843676; // 0x101039c
+ field public static final int colorActivatedHighlight = 16843674; // 0x101039a
field public static final int colorBackground = 16842801; // 0x1010031
field public static final int colorBackgroundCacheHint = 16843435; // 0x10102ab
- field public static final int colorFocusedHighlight = 16843675; // 0x101039b
+ field public static final int colorFocusedHighlight = 16843673; // 0x1010399
field public static final int colorForeground = 16842800; // 0x1010030
field public static final int colorForegroundInverse = 16843270; // 0x1010206
- field public static final int colorLongPressedHighlight = 16843674; // 0x101039a
- field public static final int colorMultiSelectHighlight = 16843677; // 0x101039d
- field public static final int colorPressedHighlight = 16843673; // 0x1010399
+ field public static final int colorLongPressedHighlight = 16843672; // 0x1010398
+ field public static final int colorMultiSelectHighlight = 16843675; // 0x101039b
+ field public static final int colorPressedHighlight = 16843671; // 0x1010397
field public static final int columnCount = 16843635; // 0x1010373
field public static final int columnDelay = 16843215; // 0x10101cf
field public static final int columnOrderPreserved = 16843636; // 0x1010374
@@ -379,11 +380,11 @@
field public static final int drawSelectorOnTop = 16843004; // 0x10100fc
field public static final int drawable = 16843161; // 0x1010199
field public static final int drawableBottom = 16843118; // 0x101016e
- field public static final int drawableEnd = 16843679; // 0x101039f
+ field public static final int drawableEnd = 16843677; // 0x101039d
field public static final int drawableLeft = 16843119; // 0x101016f
field public static final int drawablePadding = 16843121; // 0x1010171
field public static final int drawableRight = 16843120; // 0x1010170
- field public static final int drawableStart = 16843678; // 0x101039e
+ field public static final int drawableStart = 16843676; // 0x101039c
field public static final int drawableTop = 16843117; // 0x101016d
field public static final int drawingCacheQuality = 16842984; // 0x10100e8
field public static final int dropDownAnchor = 16843363; // 0x1010263
@@ -440,7 +441,7 @@
field public static final int fastScrollTextColor = 16843609; // 0x1010359
field public static final int fastScrollThumbDrawable = 16843574; // 0x1010336
field public static final int fastScrollTrackDrawable = 16843577; // 0x1010339
- field public static final int feedbackCount = 16843663; // 0x101038f
+ field public static final int feedbackCount = 16843661; // 0x101038d
field public static final int fillAfter = 16843197; // 0x10101bd
field public static final int fillBefore = 16843196; // 0x10101bc
field public static final int fillEnabled = 16843343; // 0x101024f
@@ -493,7 +494,7 @@
field public static final int hand_hour = 16843011; // 0x1010103
field public static final int hand_minute = 16843012; // 0x1010104
field public static final int handle = 16843354; // 0x101025a
- field public static final int handleDrawable = 16843653; // 0x1010385
+ field public static final int handleDrawable = 16843651; // 0x1010383
field public static final int handleProfiling = 16842786; // 0x1010022
field public static final int hapticFeedbackEnabled = 16843358; // 0x101025e
field public static final int hardwareAccelerated = 16843475; // 0x10102d3
@@ -502,12 +503,12 @@
field public static final int headerDividersEnabled = 16843310; // 0x101022e
field public static final int height = 16843093; // 0x1010155
field public static final int hint = 16843088; // 0x1010150
- field public static final int hitRadius = 16843660; // 0x101038c
+ field public static final int hitRadius = 16843658; // 0x101038a
field public static final int homeAsUpIndicator = 16843531; // 0x101030b
field public static final int homeLayout = 16843549; // 0x101031d
field public static final int horizontalDivider = 16843053; // 0x101012d
field public static final int horizontalGap = 16843327; // 0x101023f
- field public static final int horizontalOffset = 16843665; // 0x1010391
+ field public static final int horizontalOffset = 16843663; // 0x101038f
field public static final int horizontalScrollViewStyle = 16843603; // 0x1010353
field public static final int horizontalSpacing = 16843028; // 0x1010114
field public static final int host = 16842792; // 0x1010028
@@ -553,7 +554,7 @@
field public static final int installLocation = 16843447; // 0x10102b7
field public static final int interpolator = 16843073; // 0x1010141
field public static final int isAlwaysSyncable = 16843571; // 0x1010333
- field public static final int isAuxiliary = 16843645; // 0x101037d
+ field public static final int isAuxiliary = 16843643; // 0x101037b
field public static final int isDefault = 16843297; // 0x1010221
field public static final int isIndicator = 16843079; // 0x1010147
field public static final int isModifier = 16843334; // 0x1010246
@@ -606,8 +607,7 @@
field public static final int layout_centerInParent = 16843151; // 0x101018f
field public static final int layout_centerVertical = 16843153; // 0x1010191
field public static final int layout_column = 16843084; // 0x101014c
- field public static final deprecated int layout_columnFlexibility = 16843643; // 0x101037b
- field public static final int layout_columnSpan = 16843642; // 0x101037a
+ field public static final int layout_columnSpan = 16843641; // 0x1010379
field public static final int layout_gravity = 16842931; // 0x10100b3
field public static final int layout_height = 16842997; // 0x10100f5
field public static final int layout_margin = 16842998; // 0x10100f6
@@ -616,7 +616,6 @@
field public static final int layout_marginRight = 16843001; // 0x10100f9
field public static final int layout_marginTop = 16843000; // 0x10100f8
field public static final int layout_row = 16843639; // 0x1010377
- field public static final deprecated int layout_rowFlexibility = 16843641; // 0x1010379
field public static final int layout_rowSpan = 16843640; // 0x1010378
field public static final int layout_scale = 16843155; // 0x1010193
field public static final int layout_span = 16843085; // 0x101014d
@@ -627,7 +626,7 @@
field public static final int layout_x = 16843135; // 0x101017f
field public static final int layout_y = 16843136; // 0x1010180
field public static final int left = 16843181; // 0x10101ad
- field public static final int leftChevronDrawable = 16843654; // 0x1010386
+ field public static final int leftChevronDrawable = 16843652; // 0x1010384
field public static final int lineSpacingExtra = 16843287; // 0x1010217
field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
field public static final int lines = 16843092; // 0x1010154
@@ -639,8 +638,8 @@
field public static final int listDividerAlertDialog = 16843525; // 0x1010305
field public static final int listPopupWindowStyle = 16843519; // 0x10102ff
field public static final int listPreferredItemHeight = 16842829; // 0x101004d
- field public static final int listPreferredItemHeightLarge = 16843666; // 0x1010392
- field public static final int listPreferredItemHeightSmall = 16843667; // 0x1010393
+ field public static final int listPreferredItemHeightLarge = 16843664; // 0x1010390
+ field public static final int listPreferredItemHeightSmall = 16843665; // 0x1010391
field public static final int listSelector = 16843003; // 0x10100fb
field public static final int listSeparatorTextViewStyle = 16843272; // 0x1010208
field public static final int listViewStyle = 16842868; // 0x1010074
@@ -671,8 +670,8 @@
field public static final int minHeight = 16843072; // 0x1010140
field public static final int minLevel = 16843185; // 0x10101b1
field public static final int minLines = 16843094; // 0x1010156
- field public static final int minResizeHeight = 16843682; // 0x10103a2
- field public static final int minResizeWidth = 16843681; // 0x10103a1
+ field public static final int minResizeHeight = 16843680; // 0x10103a0
+ field public static final int minResizeWidth = 16843679; // 0x101039f
field public static final int minSdkVersion = 16843276; // 0x101020c
field public static final int minWidth = 16843071; // 0x101013f
field public static final int mode = 16843134; // 0x101017e
@@ -688,7 +687,7 @@
field public static final int nextFocusUp = 16842979; // 0x10100e3
field public static final int noHistory = 16843309; // 0x101022d
field public static final int normalScreens = 16843397; // 0x1010285
- field public static final int notificationTimeout = 16843649; // 0x1010381
+ field public static final int notificationTimeout = 16843647; // 0x101037f
field public static final int numColumns = 16843032; // 0x1010118
field public static final int numStars = 16843076; // 0x1010144
field public static final deprecated int numeric = 16843109; // 0x1010165
@@ -702,11 +701,11 @@
field public static final int orderingFromXml = 16843239; // 0x10101e7
field public static final int orientation = 16842948; // 0x10100c4
field public static final int outAnimation = 16843128; // 0x1010178
- field public static final int outerRadius = 16843659; // 0x101038b
+ field public static final int outerRadius = 16843657; // 0x1010389
field public static final int overScrollFooter = 16843459; // 0x10102c3
field public static final int overScrollHeader = 16843458; // 0x10102c2
field public static final int overScrollMode = 16843457; // 0x10102c1
- field public static final int packageNames = 16843647; // 0x101037f
+ field public static final int packageNames = 16843645; // 0x101037d
field public static final int padding = 16842965; // 0x10100d5
field public static final int paddingBottom = 16842969; // 0x10100d9
field public static final int paddingLeft = 16842966; // 0x10100d6
@@ -791,7 +790,7 @@
field public static final int restoreAnyVersion = 16843450; // 0x10102ba
field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
field public static final int right = 16843183; // 0x10101af
- field public static final int rightChevronDrawable = 16843655; // 0x1010387
+ field public static final int rightChevronDrawable = 16843653; // 0x1010385
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
@@ -867,7 +866,7 @@
field public static final int smallIcon = 16843422; // 0x101029e
field public static final int smallScreens = 16843396; // 0x1010284
field public static final int smoothScrollbar = 16843313; // 0x1010231
- field public static final int snapMargin = 16843662; // 0x101038e
+ field public static final int snapMargin = 16843660; // 0x101038c
field public static final int soundEffectsEnabled = 16843285; // 0x1010215
field public static final int spacing = 16843027; // 0x1010113
field public static final int spinnerDropDownItemStyle = 16842887; // 0x1010087
@@ -932,7 +931,7 @@
field public static final int tag = 16842961; // 0x10100d1
field public static final int targetActivity = 16843266; // 0x1010202
field public static final int targetClass = 16842799; // 0x101002f
- field public static final int targetDrawables = 16843652; // 0x1010384
+ field public static final int targetDrawables = 16843650; // 0x1010382
field public static final int targetPackage = 16842785; // 0x1010021
field public static final int targetSdkVersion = 16843376; // 0x1010270
field public static final int taskAffinity = 16842770; // 0x1010012
@@ -947,7 +946,7 @@
field public static final int tension = 16843370; // 0x101026a
field public static final int testOnly = 16843378; // 0x1010272
field public static final int text = 16843087; // 0x101014f
- field public static final int textAllCaps = 16843672; // 0x1010398
+ field public static final int textAllCaps = 16843670; // 0x1010396
field public static final int textAppearance = 16842804; // 0x1010034
field public static final int textAppearanceButton = 16843271; // 0x1010207
field public static final int textAppearanceInverse = 16842805; // 0x1010035
@@ -1021,7 +1020,7 @@
field public static final int toYScale = 16843205; // 0x10101c5
field public static final int top = 16843182; // 0x10101ae
field public static final int topBright = 16842955; // 0x10100cb
- field public static final int topChevronDrawable = 16843656; // 0x1010388
+ field public static final int topChevronDrawable = 16843654; // 0x1010386
field public static final int topDark = 16842951; // 0x10100c7
field public static final int topLeftRadius = 16843177; // 0x10101a9
field public static final int topOffset = 16843352; // 0x1010258
@@ -1033,6 +1032,7 @@
field public static final int translationY = 16843555; // 0x1010323
field public static final int type = 16843169; // 0x10101a1
field public static final int typeface = 16842902; // 0x1010096
+ field public static final int uiOptions = 16843682; // 0x10103a2
field public static final int uncertainGestureColor = 16843382; // 0x1010276
field public static final int unfocusedMonthDateColor = 16843588; // 0x1010344
field public static final int unselectedAlpha = 16843278; // 0x101020e
@@ -1051,10 +1051,10 @@
field public static final int verticalCorrection = 16843322; // 0x101023a
field public static final int verticalDivider = 16843054; // 0x101012e
field public static final int verticalGap = 16843328; // 0x1010240
- field public static final int verticalOffset = 16843664; // 0x1010390
+ field public static final int verticalOffset = 16843662; // 0x101038e
field public static final int verticalScrollbarPosition = 16843572; // 0x1010334
field public static final int verticalSpacing = 16843029; // 0x1010115
- field public static final int vibrationDuration = 16843661; // 0x101038d
+ field public static final int vibrationDuration = 16843659; // 0x101038b
field public static final int visibility = 16842972; // 0x10100dc
field public static final int visible = 16843156; // 0x1010194
field public static final int vmSafeMode = 16843448; // 0x10102b8
@@ -1071,7 +1071,7 @@
field public static final int wallpaperIntraOpenExitAnimation = 16843416; // 0x1010298
field public static final int wallpaperOpenEnterAnimation = 16843411; // 0x1010293
field public static final int wallpaperOpenExitAnimation = 16843412; // 0x1010294
- field public static final int waveDrawable = 16843658; // 0x101038a
+ field public static final int waveDrawable = 16843656; // 0x1010388
field public static final int webTextViewStyle = 16843449; // 0x10102b9
field public static final int webViewStyle = 16842885; // 0x1010085
field public static final int weekDayTextAppearance = 16843592; // 0x1010348
@@ -1499,6 +1499,12 @@
field public static final int Animation_InputMethod = 16973910; // 0x1030056
field public static final int Animation_Toast = 16973828; // 0x1030004
field public static final int Animation_Translucent = 16973827; // 0x1030003
+ field public static final int DeviceDefault_ButtonBar = 16974287; // 0x10301cf
+ field public static final int DeviceDefault_ButtonBar_AlertDialog = 16974288; // 0x10301d0
+ field public static final int DeviceDefault_Light_ButtonBar = 16974290; // 0x10301d2
+ field public static final int DeviceDefault_Light_ButtonBar_AlertDialog = 16974291; // 0x10301d3
+ field public static final int DeviceDefault_Light_SegmentedButton = 16974292; // 0x10301d4
+ field public static final int DeviceDefault_SegmentedButton = 16974289; // 0x10301d1
field public static final int Holo_ButtonBar = 16974053; // 0x10300e5
field public static final int Holo_ButtonBar_AlertDialog = 16974055; // 0x10300e7
field public static final int Holo_Light_ButtonBar = 16974054; // 0x10300e6
@@ -1513,6 +1519,40 @@
field public static final int MediaButton_Previous = 16973880; // 0x1030038
field public static final int MediaButton_Rew = 16973884; // 0x103003c
field public static final int TextAppearance = 16973886; // 0x103003e
+ field public static final int TextAppearance_DeviceDefault = 16974253; // 0x10301ad
+ field public static final int TextAppearance_DeviceDefault_DialogWindowTitle = 16974264; // 0x10301b8
+ field public static final int TextAppearance_DeviceDefault_Inverse = 16974254; // 0x10301ae
+ field public static final int TextAppearance_DeviceDefault_Large = 16974255; // 0x10301af
+ field public static final int TextAppearance_DeviceDefault_Large_Inverse = 16974256; // 0x10301b0
+ field public static final int TextAppearance_DeviceDefault_Medium = 16974257; // 0x10301b1
+ field public static final int TextAppearance_DeviceDefault_Medium_Inverse = 16974258; // 0x10301b2
+ field public static final int TextAppearance_DeviceDefault_SearchResult_Subtitle = 16974262; // 0x10301b6
+ field public static final int TextAppearance_DeviceDefault_SearchResult_Title = 16974261; // 0x10301b5
+ field public static final int TextAppearance_DeviceDefault_Small = 16974259; // 0x10301b3
+ field public static final int TextAppearance_DeviceDefault_Small_Inverse = 16974260; // 0x10301b4
+ field public static final int TextAppearance_DeviceDefault_Widget = 16974265; // 0x10301b9
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Menu = 16974286; // 0x10301ce
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle = 16974279; // 0x10301c7
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283; // 0x10301cb
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title = 16974278; // 0x10301c6
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282; // 0x10301ca
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle = 16974281; // 0x10301c9
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285; // 0x10301cd
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title = 16974280; // 0x10301c8
+ field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284; // 0x10301cc
+ field public static final int TextAppearance_DeviceDefault_Widget_Button = 16974266; // 0x10301ba
+ field public static final int TextAppearance_DeviceDefault_Widget_DropDownHint = 16974271; // 0x10301bf
+ field public static final int TextAppearance_DeviceDefault_Widget_DropDownItem = 16974272; // 0x10301c0
+ field public static final int TextAppearance_DeviceDefault_Widget_EditText = 16974274; // 0x10301c2
+ field public static final int TextAppearance_DeviceDefault_Widget_IconMenu_Item = 16974267; // 0x10301bb
+ field public static final int TextAppearance_DeviceDefault_Widget_PopupMenu = 16974275; // 0x10301c3
+ field public static final int TextAppearance_DeviceDefault_Widget_PopupMenu_Large = 16974276; // 0x10301c4
+ field public static final int TextAppearance_DeviceDefault_Widget_PopupMenu_Small = 16974277; // 0x10301c5
+ field public static final int TextAppearance_DeviceDefault_Widget_TabWidget = 16974268; // 0x10301bc
+ field public static final int TextAppearance_DeviceDefault_Widget_TextView = 16974269; // 0x10301bd
+ field public static final int TextAppearance_DeviceDefault_Widget_TextView_PopupMenu = 16974270; // 0x10301be
+ field public static final int TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem = 16974273; // 0x10301c1
+ field public static final int TextAppearance_DeviceDefault_WindowTitle = 16974263; // 0x10301b7
field public static final int TextAppearance_DialogWindowTitle = 16973889; // 0x1030041
field public static final int TextAppearance_Holo = 16974075; // 0x10300fb
field public static final int TextAppearance_Holo_DialogWindowTitle = 16974103; // 0x1030117
@@ -1526,15 +1566,15 @@
field public static final int TextAppearance_Holo_Small = 16974081; // 0x1030101
field public static final int TextAppearance_Holo_Small_Inverse = 16974082; // 0x1030102
field public static final int TextAppearance_Holo_Widget = 16974085; // 0x1030105
- field public static final int TextAppearance_Holo_Widget_ActionBar_Menu = 16974113; // 0x1030121
+ field public static final int TextAppearance_Holo_Widget_ActionBar_Menu = 16974112; // 0x1030120
field public static final int TextAppearance_Holo_Widget_ActionBar_Subtitle = 16974099; // 0x1030113
- field public static final int TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse = 16974110; // 0x103011e
+ field public static final int TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse = 16974109; // 0x103011d
field public static final int TextAppearance_Holo_Widget_ActionBar_Title = 16974098; // 0x1030112
- field public static final int TextAppearance_Holo_Widget_ActionBar_Title_Inverse = 16974109; // 0x103011d
+ field public static final int TextAppearance_Holo_Widget_ActionBar_Title_Inverse = 16974108; // 0x103011c
field public static final int TextAppearance_Holo_Widget_ActionMode_Subtitle = 16974101; // 0x1030115
- field public static final int TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse = 16974112; // 0x1030120
+ field public static final int TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse = 16974111; // 0x103011f
field public static final int TextAppearance_Holo_Widget_ActionMode_Title = 16974100; // 0x1030114
- field public static final int TextAppearance_Holo_Widget_ActionMode_Title_Inverse = 16974111; // 0x103011f
+ field public static final int TextAppearance_Holo_Widget_ActionMode_Title_Inverse = 16974110; // 0x103011e
field public static final int TextAppearance_Holo_Widget_Button = 16974086; // 0x1030106
field public static final int TextAppearance_Holo_Widget_DropDownHint = 16974091; // 0x103010b
field public static final int TextAppearance_Holo_Widget_DropDownItem = 16974092; // 0x103010c
@@ -1578,6 +1618,30 @@
field public static final int Theme_Black = 16973832; // 0x1030008
field public static final int Theme_Black_NoTitleBar = 16973833; // 0x1030009
field public static final int Theme_Black_NoTitleBar_Fullscreen = 16973834; // 0x103000a
+ field public static final int Theme_DeviceDefault = 16974120; // 0x1030128
+ field public static final int Theme_DeviceDefault_Dialog = 16974126; // 0x103012e
+ field public static final int Theme_DeviceDefault_DialogWhenLarge = 16974134; // 0x1030136
+ field public static final int Theme_DeviceDefault_DialogWhenLarge_NoActionBar = 16974135; // 0x1030137
+ field public static final int Theme_DeviceDefault_Dialog_MinWidth = 16974127; // 0x103012f
+ field public static final int Theme_DeviceDefault_Dialog_NoActionBar = 16974128; // 0x1030130
+ field public static final int Theme_DeviceDefault_Dialog_NoActionBar_MinWidth = 16974129; // 0x1030131
+ field public static final int Theme_DeviceDefault_InputMethod = 16974142; // 0x103013e
+ field public static final int Theme_DeviceDefault_Light = 16974123; // 0x103012b
+ field public static final int Theme_DeviceDefault_Light_DarkActionBar = 16974143; // 0x103013f
+ field public static final int Theme_DeviceDefault_Light_Dialog = 16974130; // 0x1030132
+ field public static final int Theme_DeviceDefault_Light_DialogWhenLarge = 16974136; // 0x1030138
+ field public static final int Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar = 16974137; // 0x1030139
+ field public static final int Theme_DeviceDefault_Light_Dialog_MinWidth = 16974131; // 0x1030133
+ field public static final int Theme_DeviceDefault_Light_Dialog_NoActionBar = 16974132; // 0x1030134
+ field public static final int Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth = 16974133; // 0x1030135
+ field public static final int Theme_DeviceDefault_Light_NoActionBar = 16974124; // 0x103012c
+ field public static final int Theme_DeviceDefault_Light_NoActionBar_Fullscreen = 16974125; // 0x103012d
+ field public static final int Theme_DeviceDefault_Light_Panel = 16974139; // 0x103013b
+ field public static final int Theme_DeviceDefault_NoActionBar = 16974121; // 0x1030129
+ field public static final int Theme_DeviceDefault_NoActionBar_Fullscreen = 16974122; // 0x103012a
+ field public static final int Theme_DeviceDefault_Panel = 16974138; // 0x103013a
+ field public static final int Theme_DeviceDefault_Wallpaper = 16974140; // 0x103013c
+ field public static final int Theme_DeviceDefault_Wallpaper_NoTitleBar = 16974141; // 0x103013d
field public static final int Theme_Dialog = 16973835; // 0x103000b
field public static final int Theme_Holo = 16973931; // 0x103006b
field public static final int Theme_Holo_Dialog = 16973935; // 0x103006f
@@ -1588,6 +1652,7 @@
field public static final int Theme_Holo_Dialog_NoActionBar_MinWidth = 16973938; // 0x1030072
field public static final int Theme_Holo_InputMethod = 16973951; // 0x103007f
field public static final int Theme_Holo_Light = 16973934; // 0x103006e
+ field public static final int Theme_Holo_Light_DarkActionBar = 16974105; // 0x1030119
field public static final int Theme_Holo_Light_Dialog = 16973939; // 0x1030073
field public static final int Theme_Holo_Light_DialogWhenLarge = 16973945; // 0x1030079
field public static final int Theme_Holo_Light_DialogWhenLarge_NoActionBar = 16973946; // 0x103007a
@@ -1597,17 +1662,9 @@
field public static final int Theme_Holo_Light_NoActionBar = 16974064; // 0x10300f0
field public static final int Theme_Holo_Light_NoActionBar_Fullscreen = 16974065; // 0x10300f1
field public static final int Theme_Holo_Light_Panel = 16973948; // 0x103007c
- field public static final int Theme_Holo_Light_SolidActionBar = 16974122; // 0x103012a
- field public static final int Theme_Holo_Light_SolidActionBar_Inverse = 16974123; // 0x103012b
- field public static final int Theme_Holo_Light_SolidActionBar_Inverse_SplitActionBarWhenNarrow = 16974126; // 0x103012e
- field public static final int Theme_Holo_Light_SolidActionBar_SplitActionBarWhenNarrow = 16974125; // 0x103012d
- field public static final int Theme_Holo_Light_SplitActionBarWhenNarrow = 16974106; // 0x103011a
field public static final int Theme_Holo_NoActionBar = 16973932; // 0x103006c
field public static final int Theme_Holo_NoActionBar_Fullscreen = 16973933; // 0x103006d
field public static final int Theme_Holo_Panel = 16973947; // 0x103007b
- field public static final int Theme_Holo_SolidActionBar = 16974121; // 0x1030129
- field public static final int Theme_Holo_SolidActionBar_SplitActionBarWhenNarrow = 16974124; // 0x103012c
- field public static final int Theme_Holo_SplitActionBarWhenNarrow = 16974105; // 0x1030119
field public static final int Theme_Holo_Wallpaper = 16973949; // 0x103007d
field public static final int Theme_Holo_Wallpaper_NoTitleBar = 16973950; // 0x103007e
field public static final int Theme_InputMethod = 16973908; // 0x1030054
@@ -1649,6 +1706,115 @@
field public static final int Widget_CompoundButton_RadioButton = 16973850; // 0x103001a
field public static final int Widget_CompoundButton_Star = 16973851; // 0x103001b
field public static final int Widget_DatePicker = 16974062; // 0x10300ee
+ field public static final int Widget_DeviceDefault = 16974144; // 0x1030140
+ field public static final int Widget_DeviceDefault_ActionBar = 16974187; // 0x103016b
+ field public static final int Widget_DeviceDefault_ActionBar_Solid = 16974195; // 0x1030173
+ field public static final int Widget_DeviceDefault_ActionBar_TabBar = 16974194; // 0x1030172
+ field public static final int Widget_DeviceDefault_ActionBar_TabText = 16974193; // 0x1030171
+ field public static final int Widget_DeviceDefault_ActionBar_TabView = 16974192; // 0x1030170
+ field public static final int Widget_DeviceDefault_ActionButton = 16974182; // 0x1030166
+ field public static final int Widget_DeviceDefault_ActionButton_CloseMode = 16974186; // 0x103016a
+ field public static final int Widget_DeviceDefault_ActionButton_Overflow = 16974183; // 0x1030167
+ field public static final int Widget_DeviceDefault_ActionButton_TextButton = 16974184; // 0x1030168
+ field public static final int Widget_DeviceDefault_ActionMode = 16974185; // 0x1030169
+ field public static final int Widget_DeviceDefault_AutoCompleteTextView = 16974151; // 0x1030147
+ field public static final int Widget_DeviceDefault_Button = 16974145; // 0x1030141
+ field public static final int Widget_DeviceDefault_Button_Borderless = 16974188; // 0x103016c
+ field public static final int Widget_DeviceDefault_Button_Borderless_Small = 16974149; // 0x1030145
+ field public static final int Widget_DeviceDefault_Button_Inset = 16974147; // 0x1030143
+ field public static final int Widget_DeviceDefault_Button_Small = 16974146; // 0x1030142
+ field public static final int Widget_DeviceDefault_Button_Toggle = 16974148; // 0x1030144
+ field public static final int Widget_DeviceDefault_CalendarView = 16974190; // 0x103016e
+ field public static final int Widget_DeviceDefault_CompoundButton_CheckBox = 16974152; // 0x1030148
+ field public static final int Widget_DeviceDefault_CompoundButton_RadioButton = 16974169; // 0x1030159
+ field public static final int Widget_DeviceDefault_CompoundButton_Star = 16974173; // 0x103015d
+ field public static final int Widget_DeviceDefault_DatePicker = 16974191; // 0x103016f
+ field public static final int Widget_DeviceDefault_DropDownItem = 16974177; // 0x1030161
+ field public static final int Widget_DeviceDefault_DropDownItem_Spinner = 16974178; // 0x1030162
+ field public static final int Widget_DeviceDefault_EditText = 16974154; // 0x103014a
+ field public static final int Widget_DeviceDefault_ExpandableListView = 16974155; // 0x103014b
+ field public static final int Widget_DeviceDefault_GridView = 16974156; // 0x103014c
+ field public static final int Widget_DeviceDefault_HorizontalScrollView = 16974171; // 0x103015b
+ field public static final int Widget_DeviceDefault_ImageButton = 16974157; // 0x103014d
+ field public static final int Widget_DeviceDefault_Light = 16974196; // 0x1030174
+ field public static final int Widget_DeviceDefault_Light_ActionBar = 16974243; // 0x10301a3
+ field public static final int Widget_DeviceDefault_Light_ActionBar_Solid = 16974247; // 0x10301a7
+ field public static final int Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248; // 0x10301a8
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabBar = 16974246; // 0x10301a6
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249; // 0x10301a9
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabText = 16974245; // 0x10301a5
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251; // 0x10301ab
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabView = 16974244; // 0x10301a4
+ field public static final int Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250; // 0x10301aa
+ field public static final int Widget_DeviceDefault_Light_ActionButton = 16974239; // 0x103019f
+ field public static final int Widget_DeviceDefault_Light_ActionButton_CloseMode = 16974242; // 0x10301a2
+ field public static final int Widget_DeviceDefault_Light_ActionButton_Overflow = 16974240; // 0x10301a0
+ field public static final int Widget_DeviceDefault_Light_ActionMode = 16974241; // 0x10301a1
+ field public static final int Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252; // 0x10301ac
+ field public static final int Widget_DeviceDefault_Light_AutoCompleteTextView = 16974203; // 0x103017b
+ field public static final int Widget_DeviceDefault_Light_Button = 16974197; // 0x1030175
+ field public static final int Widget_DeviceDefault_Light_Button_Borderless_Small = 16974201; // 0x1030179
+ field public static final int Widget_DeviceDefault_Light_Button_Inset = 16974199; // 0x1030177
+ field public static final int Widget_DeviceDefault_Light_Button_Small = 16974198; // 0x1030176
+ field public static final int Widget_DeviceDefault_Light_Button_Toggle = 16974200; // 0x1030178
+ field public static final int Widget_DeviceDefault_Light_CalendarView = 16974238; // 0x103019e
+ field public static final int Widget_DeviceDefault_Light_CompoundButton_CheckBox = 16974204; // 0x103017c
+ field public static final int Widget_DeviceDefault_Light_CompoundButton_RadioButton = 16974224; // 0x1030190
+ field public static final int Widget_DeviceDefault_Light_CompoundButton_Star = 16974228; // 0x1030194
+ field public static final int Widget_DeviceDefault_Light_DropDownItem = 16974232; // 0x1030198
+ field public static final int Widget_DeviceDefault_Light_DropDownItem_Spinner = 16974233; // 0x1030199
+ field public static final int Widget_DeviceDefault_Light_EditText = 16974206; // 0x103017e
+ field public static final int Widget_DeviceDefault_Light_ExpandableListView = 16974207; // 0x103017f
+ field public static final int Widget_DeviceDefault_Light_GridView = 16974208; // 0x1030180
+ field public static final int Widget_DeviceDefault_Light_HorizontalScrollView = 16974226; // 0x1030192
+ field public static final int Widget_DeviceDefault_Light_ImageButton = 16974209; // 0x1030181
+ field public static final int Widget_DeviceDefault_Light_ListPopupWindow = 16974235; // 0x103019b
+ field public static final int Widget_DeviceDefault_Light_ListView = 16974210; // 0x1030182
+ field public static final int Widget_DeviceDefault_Light_ListView_DropDown = 16974205; // 0x103017d
+ field public static final int Widget_DeviceDefault_Light_PopupMenu = 16974236; // 0x103019c
+ field public static final int Widget_DeviceDefault_Light_PopupWindow = 16974211; // 0x1030183
+ field public static final int Widget_DeviceDefault_Light_ProgressBar = 16974212; // 0x1030184
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Horizontal = 16974213; // 0x1030185
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Inverse = 16974217; // 0x1030189
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Large = 16974216; // 0x1030188
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Large_Inverse = 16974219; // 0x103018b
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Small = 16974214; // 0x1030186
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Small_Inverse = 16974218; // 0x103018a
+ field public static final int Widget_DeviceDefault_Light_ProgressBar_Small_Title = 16974215; // 0x1030187
+ field public static final int Widget_DeviceDefault_Light_RatingBar = 16974221; // 0x103018d
+ field public static final int Widget_DeviceDefault_Light_RatingBar_Indicator = 16974222; // 0x103018e
+ field public static final int Widget_DeviceDefault_Light_RatingBar_Small = 16974223; // 0x103018f
+ field public static final int Widget_DeviceDefault_Light_ScrollView = 16974225; // 0x1030191
+ field public static final int Widget_DeviceDefault_Light_SeekBar = 16974220; // 0x103018c
+ field public static final int Widget_DeviceDefault_Light_Spinner = 16974227; // 0x1030193
+ field public static final int Widget_DeviceDefault_Light_Tab = 16974237; // 0x103019d
+ field public static final int Widget_DeviceDefault_Light_TabWidget = 16974229; // 0x1030195
+ field public static final int Widget_DeviceDefault_Light_TextView = 16974202; // 0x103017a
+ field public static final int Widget_DeviceDefault_Light_TextView_SpinnerItem = 16974234; // 0x103019a
+ field public static final int Widget_DeviceDefault_Light_WebTextView = 16974230; // 0x1030196
+ field public static final int Widget_DeviceDefault_Light_WebView = 16974231; // 0x1030197
+ field public static final int Widget_DeviceDefault_ListPopupWindow = 16974180; // 0x1030164
+ field public static final int Widget_DeviceDefault_ListView = 16974158; // 0x103014e
+ field public static final int Widget_DeviceDefault_ListView_DropDown = 16974153; // 0x1030149
+ field public static final int Widget_DeviceDefault_PopupMenu = 16974181; // 0x1030165
+ field public static final int Widget_DeviceDefault_PopupWindow = 16974159; // 0x103014f
+ field public static final int Widget_DeviceDefault_ProgressBar = 16974160; // 0x1030150
+ field public static final int Widget_DeviceDefault_ProgressBar_Horizontal = 16974161; // 0x1030151
+ field public static final int Widget_DeviceDefault_ProgressBar_Large = 16974164; // 0x1030154
+ field public static final int Widget_DeviceDefault_ProgressBar_Small = 16974162; // 0x1030152
+ field public static final int Widget_DeviceDefault_ProgressBar_Small_Title = 16974163; // 0x1030153
+ field public static final int Widget_DeviceDefault_RatingBar = 16974166; // 0x1030156
+ field public static final int Widget_DeviceDefault_RatingBar_Indicator = 16974167; // 0x1030157
+ field public static final int Widget_DeviceDefault_RatingBar_Small = 16974168; // 0x1030158
+ field public static final int Widget_DeviceDefault_ScrollView = 16974170; // 0x103015a
+ field public static final int Widget_DeviceDefault_SeekBar = 16974165; // 0x1030155
+ field public static final int Widget_DeviceDefault_Spinner = 16974172; // 0x103015c
+ field public static final int Widget_DeviceDefault_Tab = 16974189; // 0x103016d
+ field public static final int Widget_DeviceDefault_TabWidget = 16974174; // 0x103015e
+ field public static final int Widget_DeviceDefault_TextView = 16974150; // 0x1030146
+ field public static final int Widget_DeviceDefault_TextView_SpinnerItem = 16974179; // 0x1030163
+ field public static final int Widget_DeviceDefault_WebTextView = 16974175; // 0x103015f
+ field public static final int Widget_DeviceDefault_WebView = 16974176; // 0x1030160
field public static final int Widget_DropDownItem = 16973867; // 0x103002b
field public static final int Widget_DropDownItem_Spinner = 16973868; // 0x103002c
field public static final int Widget_EditText = 16973859; // 0x1030023
@@ -1658,7 +1824,7 @@
field public static final int Widget_GridView = 16973874; // 0x1030032
field public static final int Widget_Holo = 16973962; // 0x103008a
field public static final int Widget_Holo_ActionBar = 16974004; // 0x10300b4
- field public static final int Widget_Holo_ActionBar_Solid = 16974114; // 0x1030122
+ field public static final int Widget_Holo_ActionBar_Solid = 16974113; // 0x1030121
field public static final int Widget_Holo_ActionBar_TabBar = 16974071; // 0x10300f7
field public static final int Widget_Holo_ActionBar_TabText = 16974070; // 0x10300f6
field public static final int Widget_Holo_ActionBar_TabView = 16974069; // 0x10300f5
@@ -1670,7 +1836,7 @@
field public static final int Widget_Holo_AutoCompleteTextView = 16973968; // 0x1030090
field public static final int Widget_Holo_Button = 16973963; // 0x103008b
field public static final int Widget_Holo_Button_Borderless = 16974050; // 0x10300e2
- field public static final int Widget_Holo_Button_Borderless_Small = 16974107; // 0x103011b
+ field public static final int Widget_Holo_Button_Borderless_Small = 16974106; // 0x103011a
field public static final int Widget_Holo_Button_Inset = 16973965; // 0x103008d
field public static final int Widget_Holo_Button_Small = 16973964; // 0x103008c
field public static final int Widget_Holo_Button_Toggle = 16973966; // 0x103008e
@@ -1688,22 +1854,22 @@
field public static final int Widget_Holo_ImageButton = 16973974; // 0x1030096
field public static final int Widget_Holo_Light = 16974005; // 0x10300b5
field public static final int Widget_Holo_Light_ActionBar = 16974049; // 0x10300e1
- field public static final int Widget_Holo_Light_ActionBar_Solid = 16974115; // 0x1030123
- field public static final int Widget_Holo_Light_ActionBar_Solid_Inverse = 16974116; // 0x1030124
+ field public static final int Widget_Holo_Light_ActionBar_Solid = 16974114; // 0x1030122
+ field public static final int Widget_Holo_Light_ActionBar_Solid_Inverse = 16974115; // 0x1030123
field public static final int Widget_Holo_Light_ActionBar_TabBar = 16974074; // 0x10300fa
- field public static final int Widget_Holo_Light_ActionBar_TabBar_Inverse = 16974117; // 0x1030125
+ field public static final int Widget_Holo_Light_ActionBar_TabBar_Inverse = 16974116; // 0x1030124
field public static final int Widget_Holo_Light_ActionBar_TabText = 16974073; // 0x10300f9
- field public static final int Widget_Holo_Light_ActionBar_TabText_Inverse = 16974119; // 0x1030127
+ field public static final int Widget_Holo_Light_ActionBar_TabText_Inverse = 16974118; // 0x1030126
field public static final int Widget_Holo_Light_ActionBar_TabView = 16974072; // 0x10300f8
- field public static final int Widget_Holo_Light_ActionBar_TabView_Inverse = 16974118; // 0x1030126
+ field public static final int Widget_Holo_Light_ActionBar_TabView_Inverse = 16974117; // 0x1030125
field public static final int Widget_Holo_Light_ActionButton = 16974045; // 0x10300dd
field public static final int Widget_Holo_Light_ActionButton_CloseMode = 16974048; // 0x10300e0
field public static final int Widget_Holo_Light_ActionButton_Overflow = 16974046; // 0x10300de
field public static final int Widget_Holo_Light_ActionMode = 16974047; // 0x10300df
- field public static final int Widget_Holo_Light_ActionMode_Inverse = 16974120; // 0x1030128
+ field public static final int Widget_Holo_Light_ActionMode_Inverse = 16974119; // 0x1030127
field public static final int Widget_Holo_Light_AutoCompleteTextView = 16974011; // 0x10300bb
field public static final int Widget_Holo_Light_Button = 16974006; // 0x10300b6
- field public static final int Widget_Holo_Light_Button_Borderless_Small = 16974108; // 0x103011c
+ field public static final int Widget_Holo_Light_Button_Borderless_Small = 16974107; // 0x103011b
field public static final int Widget_Holo_Light_Button_Inset = 16974008; // 0x10300b8
field public static final int Widget_Holo_Light_Button_Small = 16974007; // 0x10300b7
field public static final int Widget_Holo_Light_Button_Toggle = 16974009; // 0x10300b9
@@ -5639,6 +5805,7 @@
field public static final int SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7; // 0x7
field public static final int SCREEN_ORIENTATION_UNSPECIFIED = -1; // 0xffffffff
field public static final int SCREEN_ORIENTATION_USER = 2; // 0x2
+ field public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1; // 0x1
field public int configChanges;
field public int flags;
field public int launchMode;
@@ -5648,6 +5815,7 @@
field public java.lang.String targetActivity;
field public java.lang.String taskAffinity;
field public int theme;
+ field public int uiOptions;
}
public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
@@ -5698,6 +5866,7 @@
field public int targetSdkVersion;
field public java.lang.String taskAffinity;
field public int theme;
+ field public int uiOptions;
field public int uid;
}
@@ -8458,6 +8627,7 @@
ctor public SurfaceTexture(int, boolean);
method public long getTimestamp();
method public void getTransformMatrix(float[]);
+ method public void release();
method public void setOnFrameAvailableListener(android.graphics.SurfaceTexture.OnFrameAvailableListener);
method public void updateTexImage();
}
@@ -11120,6 +11290,7 @@
public class ConnectivityManager {
method public android.net.NetworkInfo getActiveNetworkInfo();
+ method public android.net.NetworkQuotaInfo getActiveNetworkQuotaInfo();
method public android.net.NetworkInfo[] getAllNetworkInfo();
method public boolean getBackgroundDataSetting();
method public android.net.NetworkInfo getNetworkInfo(int);
@@ -11134,7 +11305,7 @@
field public static final int DEFAULT_NETWORK_PREFERENCE = 1; // 0x1
field public static final java.lang.String EXTRA_EXTRA_INFO = "extraInfo";
field public static final java.lang.String EXTRA_IS_FAILOVER = "isFailover";
- field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo";
+ field public static final deprecated java.lang.String EXTRA_NETWORK_INFO = "networkInfo";
field public static final java.lang.String EXTRA_NO_CONNECTIVITY = "noConnectivity";
field public static final java.lang.String EXTRA_OTHER_NETWORK_INFO = "otherNetwork";
field public static final java.lang.String EXTRA_REASON = "reason";
@@ -11279,6 +11450,16 @@
enum_constant public static final android.net.NetworkInfo.State UNKNOWN;
}
+ public class NetworkQuotaInfo implements android.os.Parcelable {
+ method public int describeContents();
+ method public long getEstimatedBytes();
+ method public long getHardLimitBytes();
+ method public long getSoftLimitBytes();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final long NO_LIMIT = -1L; // 0xffffffffffffffffL
+ }
+
public class ParseException extends java.lang.RuntimeException {
field public java.lang.String response;
}
@@ -16988,7 +17169,7 @@
field public static final java.lang.String VOICEMAIL_ACCESS_URI = "voicemail_access_uri";
}
- public static final class VoicemailContract.Voicemails implements android.provider.BaseColumns {
+ public static final class VoicemailContract.Voicemails implements android.provider.BaseColumns android.provider.OpenableColumns {
method public static android.net.Uri buildSourceUri(java.lang.String);
field public static final android.net.Uri CONTENT_URI;
field public static final java.lang.String DATE = "date";
@@ -22072,45 +22253,18 @@
public class Surface implements android.os.Parcelable {
method public int describeContents();
- method public void freeze();
- method public void hide();
method public boolean isValid();
method public android.graphics.Canvas lockCanvas(android.graphics.Rect) throws java.lang.IllegalArgumentException, android.view.Surface.OutOfResourcesException;
method public void readFromParcel(android.os.Parcel);
- method public void setAlpha(float);
- method public void setFlags(int, int);
- method public void setFreezeTint(int);
- method public void setLayer(int);
- method public void setMatrix(float, float, float, float);
- method public static void setOrientation(int, int);
- method public void setPosition(int, int);
- method public void setSize(int, int);
- method public void setTransparentRegionHint(android.graphics.Region);
- method public void show();
- method public void unfreeze();
+ method public void release();
method public void unlockCanvas(android.graphics.Canvas);
method public void unlockCanvasAndPost(android.graphics.Canvas);
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;
- field public static final int FX_SURFACE_BLUR = 65536; // 0x10000
- field public static final int FX_SURFACE_DIM = 131072; // 0x20000
- field public static final int FX_SURFACE_MASK = 983040; // 0xf0000
- field public static final int FX_SURFACE_NORMAL = 0; // 0x0
- field public static final deprecated int GPU = 40; // 0x28
- field public static final deprecated int HARDWARE = 16; // 0x10
- field public static final int HIDDEN = 4; // 0x4
- field public static final int NON_PREMULTIPLIED = 256; // 0x100
- field public static final deprecated int PUSH_BUFFERS = 512; // 0x200
field public static final int ROTATION_0 = 0; // 0x0
field public static final int ROTATION_180 = 2; // 0x2
field public static final int ROTATION_270 = 3; // 0x3
field public static final int ROTATION_90 = 1; // 0x1
- field public static final int SECURE = 128; // 0x80
- field public static final deprecated int SURACE_FROZEN = 2; // 0x2
- field public static final int SURFACE_BLUR_FREEZE = 16; // 0x10
- field public static final int SURFACE_DITHER = 4; // 0x4
- field public static final int SURFACE_FROZEN = 2; // 0x2
- field public static final int SURFACE_HIDDEN = 1; // 0x1
}
public static class Surface.OutOfResourcesException extends java.lang.Exception {
@@ -23164,6 +23318,7 @@
method public abstract void setTitle(java.lang.CharSequence);
method public abstract void setTitleColor(int);
method public void setType(int);
+ method public void setUiOptions(int);
method public abstract void setVolumeControlStream(int);
method public void setWindowAnimations(int);
method public void setWindowManager(android.view.WindowManager, android.os.IBinder, java.lang.String);
@@ -24138,7 +24293,7 @@
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;
field public static final int RESULT_ATTR_IN_THE_DICTIONARY = 1; // 0x1
- field public static final int RESULT_ATTR_LOOKS_TYPO = 2; // 0x2
+ field public static final int RESULT_ATTR_LOOKS_LIKE_TYPO = 2; // 0x2
}
public final class TextInfo implements android.os.Parcelable {
diff --git a/core/java/android/animation/AnimatorSet.java b/core/java/android/animation/AnimatorSet.java
index e6c2a0f..61a12ee 100644
--- a/core/java/android/animation/AnimatorSet.java
+++ b/core/java/android/animation/AnimatorSet.java
@@ -445,7 +445,10 @@
// First, clear out the old listeners
ArrayList<AnimatorListener> oldListeners = node.animation.getListeners();
if (oldListeners != null && oldListeners.size() > 0) {
- for (AnimatorListener listener : oldListeners) {
+ final ArrayList<AnimatorListener> clonedListeners = new
+ ArrayList<AnimatorListener>(oldListeners);
+
+ for (AnimatorListener listener : clonedListeners) {
if (listener instanceof DependencyListener ||
listener instanceof AnimatorSetListener) {
node.animation.removeListener(listener);
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index d5b669e..98b867d 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -4399,6 +4399,9 @@
if (info.softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) {
mWindow.setSoftInputMode(info.softInputMode);
}
+ if (info.uiOptions != 0) {
+ mWindow.setUiOptions(info.uiOptions);
+ }
mUiThread = Thread.currentThread();
mMainThread = aThread;
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 8931675..c566104 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -2503,6 +2503,7 @@
mAvailThumbnailBitmap = thumbnail;
thumbnail = null;
}
+ cv.setBitmap(null);
}
} catch (Exception e) {
diff --git a/core/java/android/app/LauncherActivity.java b/core/java/android/app/LauncherActivity.java
index 7b9bd60..8eb9ba4 100644
--- a/core/java/android/app/LauncherActivity.java
+++ b/core/java/android/app/LauncherActivity.java
@@ -314,6 +314,7 @@
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(getResources(), thumb);
+ canvas.setBitmap(null);
} else if (iconWidth < width && iconHeight < height) {
final Bitmap.Config c = Bitmap.Config.ARGB_8888;
final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
@@ -326,6 +327,7 @@
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(getResources(), thumb);
+ canvas.setBitmap(null);
}
}
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index ca6f085..28bc424 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1163,7 +1163,10 @@
* <p> If this API returns true, it means the callback will be called.
* The callback will be called with the current state of Bluetooth.
* If the state is not what was requested, an internal error would be the
- * reason.
+ * reason. If Bluetooth is already on and if this function is called to turn
+ * it on, the api will return true and a callback will be called.
+ *
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
*
* @param on True for on, false for off.
* @param callback The callback to notify changes to the state.
diff --git a/core/java/android/bluetooth/BluetoothDeviceProfileState.java b/core/java/android/bluetooth/BluetoothDeviceProfileState.java
index 095cd11..316c474 100644
--- a/core/java/android/bluetooth/BluetoothDeviceProfileState.java
+++ b/core/java/android/bluetooth/BluetoothDeviceProfileState.java
@@ -1048,12 +1048,12 @@
break;
case CONNECT_HID_INCOMING:
if (!accept) {
- ret = mService.allowIncomingHidConnect(mDevice, false);
+ ret = mService.allowIncomingProfileConnect(mDevice, false);
sendMessage(TRANSITION_TO_STABLE);
updateIncomingAllowedTimer();
} else {
writeTimerValue(0);
- ret = mService.allowIncomingHidConnect(mDevice, true);
+ ret = mService.allowIncomingProfileConnect(mDevice, true);
}
break;
default:
diff --git a/core/java/android/bluetooth/BluetoothInputDevice.java b/core/java/android/bluetooth/BluetoothInputDevice.java
index f6757d9..282b70a 100644
--- a/core/java/android/bluetooth/BluetoothInputDevice.java
+++ b/core/java/android/bluetooth/BluetoothInputDevice.java
@@ -308,28 +308,6 @@
return BluetoothProfile.PRIORITY_OFF;
}
- /**
- * Allow or disallow incoming connection
- * @param device Input device
- * @param allow true / false
- * @return Success or Failure of the operation
- * @hide
- */
- public boolean allowIncomingConnect(BluetoothDevice device, boolean allow) {
- if (DBG) log("allowIncomingConnect(" + device + ", " + allow + ")");
-
- if (mService == null || !isEnabled() || !isValidDevice(device)) {
- return false;
- }
- try {
- mService.allowIncomingHidConnect(device, allow);
- } catch (RemoteException e) {
- Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
- return false;
- }
- return true;
- }
-
private boolean isEnabled() {
if (mAdapter.getState() == BluetoothAdapter.STATE_ON) return true;
return false;
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index ddede9c..48dfed8 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -85,6 +85,7 @@
int addRfcommServiceRecord(in String serviceName, in ParcelUuid uuid, int channel, IBinder b);
void removeServiceRecord(int handle);
+ boolean allowIncomingProfileConnect(in BluetoothDevice device, boolean value);
boolean connectHeadset(String address);
boolean disconnectHeadset(String address);
@@ -98,7 +99,6 @@
int getInputDeviceConnectionState(in BluetoothDevice device);
boolean setInputDevicePriority(in BluetoothDevice device, int priority);
int getInputDevicePriority(in BluetoothDevice device);
- boolean allowIncomingHidConnect(in BluetoothDevice device, boolean value);
boolean isTetheringOn();
void setBluetoothTethering(boolean value);
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 4858f14..bba329d 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -433,7 +433,19 @@
* the mode from the theme will be used.
*/
public int softInputMode;
-
+
+ /**
+ * The desired extra UI options for this activity and its main window.
+ * Set from the {@link android.R.attr#uiOptions} attribute in the
+ * activity's manifest.
+ */
+ public int uiOptions = 0;
+
+ /**
+ * Flag for use with uiOptions.
+ */
+ public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1;
+
public ActivityInfo() {
}
@@ -448,6 +460,7 @@
screenOrientation = orig.screenOrientation;
configChanges = orig.configChanges;
softInputMode = orig.softInputMode;
+ uiOptions = orig.uiOptions;
}
/**
@@ -479,6 +492,9 @@
+ " configChanges=0x" + Integer.toHexString(configChanges)
+ " softInputMode=0x" + Integer.toHexString(softInputMode));
}
+ if (uiOptions != 0) {
+ pw.println(prefix + " uiOptions=0x" + Integer.toHexString(uiOptions));
+ }
super.dumpBack(pw, prefix);
}
@@ -503,6 +519,7 @@
dest.writeInt(screenOrientation);
dest.writeInt(configChanges);
dest.writeInt(softInputMode);
+ dest.writeInt(uiOptions);
}
public static final Parcelable.Creator<ActivityInfo> CREATOR
@@ -526,5 +543,6 @@
screenOrientation = source.readInt();
configChanges = source.readInt();
softInputMode = source.readInt();
+ uiOptions = source.readInt();
}
}
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index ddb6ef0..65a8750 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -91,6 +91,13 @@
public String backupAgentName;
/**
+ * The default extra UI options for activities in this application.
+ * Set from the {@link android.R.attr#uiOptions} attribute in the
+ * activity's manifest.
+ */
+ public int uiOptions = 0;
+
+ /**
* Value for {@link #flags}: if set, this application is installed in the
* device's system image.
*/
@@ -456,6 +463,9 @@
if (descriptionRes != 0) {
pw.println(prefix + "description=0x"+Integer.toHexString(descriptionRes));
}
+ if (uiOptions != 0) {
+ pw.println(prefix + "uiOptions=0x" + Integer.toHexString(uiOptions));
+ }
super.dumpBack(pw, prefix);
}
@@ -509,6 +519,7 @@
installLocation = orig.installLocation;
manageSpaceActivityName = orig.manageSpaceActivityName;
descriptionRes = orig.descriptionRes;
+ uiOptions = orig.uiOptions;
}
@@ -547,6 +558,7 @@
dest.writeString(manageSpaceActivityName);
dest.writeString(backupAgentName);
dest.writeInt(descriptionRes);
+ dest.writeInt(uiOptions);
}
public static final Parcelable.Creator<ApplicationInfo> CREATOR
@@ -584,6 +596,7 @@
manageSpaceActivityName = source.readString();
backupAgentName = source.readString();
descriptionRes = source.readInt();
+ uiOptions = source.readInt();
}
/**
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 53d6bb1..22fdc98 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -598,7 +598,12 @@
assmgr = new AssetManager();
assmgr.setConfiguration(0, 0, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Build.VERSION.RESOURCES_SDK_INT);
+
int cookie = assmgr.addAssetPath(packageFilePath);
+ if (cookie == 0) {
+ return null;
+ }
+
parser = assmgr.openXmlResourceParser(cookie, "AndroidManifest.xml");
} catch (Exception e) {
if (assmgr != null) assmgr.close();
@@ -1645,6 +1650,9 @@
}
}
+ ai.uiOptions = sa.getInt(
+ com.android.internal.R.styleable.AndroidManifestApplication_uiOptions, 0);
+
sa.recycle();
if (outError[0] != null) {
@@ -1850,6 +1858,10 @@
a.info.theme = sa.getResourceId(
com.android.internal.R.styleable.AndroidManifestActivity_theme, 0);
+ a.info.uiOptions = sa.getInt(
+ com.android.internal.R.styleable.AndroidManifestActivity_uiOptions,
+ a.info.applicationInfo.uiOptions);
+
String str;
str = sa.getNonConfigurationString(
com.android.internal.R.styleable.AndroidManifestActivity_permission, 0);
@@ -2091,6 +2103,7 @@
info.screenOrientation = target.info.screenOrientation;
info.taskAffinity = target.info.taskAffinity;
info.theme = target.info.theme;
+ info.uiOptions = target.info.uiOptions;
Activity a = new Activity(mParseActivityAliasArgs, info);
if (outError[0] != null) {
diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java
index b548623..551926c 100644
--- a/core/java/android/hardware/usb/UsbManager.java
+++ b/core/java/android/hardware/usb/UsbManager.java
@@ -408,6 +408,23 @@
}
/**
+ * Returns the current default USB function.
+ *
+ * @return name of the default function.
+ *
+ * {@hide}
+ */
+ public String getDefaultFunction() {
+ String functions = SystemProperties.get("persist.sys.usb.config", "");
+ int commaIndex = functions.indexOf(',');
+ if (commaIndex > 0) {
+ return functions.substring(0, commaIndex);
+ } else {
+ return functions;
+ }
+ }
+
+ /**
* Sets the current USB function.
* If function is null, then the current function is set to the default function.
*
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index a564d97..eb9cd21 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -16,10 +16,11 @@
package android.net;
+import static com.android.internal.util.Preconditions.checkNotNull;
+
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.os.Binder;
-import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import java.net.InetAddress;
@@ -67,11 +68,19 @@
* is set to {@code true} if there are no connected networks at all.
*/
public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
+
/**
* The lookup key for a {@link NetworkInfo} object. Retrieve with
* {@link android.content.Intent#getParcelableExtra(String)}.
+ *
+ * @deprecated Since {@link NetworkInfo} can vary based on UID, applications
+ * should always obtain network information through
+ * {@link #getActiveNetworkInfo()} or
+ * {@link #getAllNetworkInfo()}.
*/
+ @Deprecated
public static final String EXTRA_NETWORK_INFO = "networkInfo";
+
/**
* The lookup key for a boolean that indicates whether a connect event
* is for a network to which the connectivity manager was failing over
@@ -515,6 +524,19 @@
}
/**
+ * Return quota status for the current active network, or {@code null} if no
+ * network is active. Quota status can change rapidly, so these values
+ * shouldn't be cached.
+ */
+ public NetworkQuotaInfo getActiveNetworkQuotaInfo() {
+ try {
+ return mService.getActiveNetworkQuotaInfo();
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+
+ /**
* Gets the value of the setting for enabling Mobile data.
*
* @return Whether mobile data is enabled.
@@ -546,10 +568,7 @@
* {@hide}
*/
public ConnectivityManager(IConnectivityManager service) {
- if (service == null) {
- throw new IllegalArgumentException("missing IConnectivityManager");
- }
- mService = service;
+ mService = checkNotNull(service, "missing IConnectivityManager");
}
/**
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index b1d99a4..f391200 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -18,6 +18,7 @@
import android.net.LinkProperties;
import android.net.NetworkInfo;
+import android.net.NetworkQuotaInfo;
import android.net.NetworkState;
import android.net.ProxyProperties;
import android.os.IBinder;
@@ -47,6 +48,8 @@
NetworkState[] getAllNetworkState();
+ NetworkQuotaInfo getActiveNetworkQuotaInfo();
+
boolean setRadios(boolean onOff);
boolean setRadio(int networkType, boolean turnOn);
diff --git a/core/java/android/net/INetworkPolicyManager.aidl b/core/java/android/net/INetworkPolicyManager.aidl
index 3e07b0a..633c38e0 100644
--- a/core/java/android/net/INetworkPolicyManager.aidl
+++ b/core/java/android/net/INetworkPolicyManager.aidl
@@ -18,6 +18,8 @@
import android.net.INetworkPolicyListener;
import android.net.NetworkPolicy;
+import android.net.NetworkQuotaInfo;
+import android.net.NetworkState;
import android.net.NetworkTemplate;
/**
@@ -27,6 +29,7 @@
*/
interface INetworkPolicyManager {
+ /** Control UID policies. */
void setUidPolicy(int uid, int policy);
int getUidPolicy(int uid);
@@ -35,12 +38,17 @@
void registerListener(INetworkPolicyListener listener);
void unregisterListener(INetworkPolicyListener listener);
+ /** Control network policies atomically. */
void setNetworkPolicies(in NetworkPolicy[] policies);
NetworkPolicy[] getNetworkPolicies();
+ /** Snooze limit on policy matching given template. */
void snoozePolicy(in NetworkTemplate template);
+ /** Control if background data is restricted system-wide. */
void setRestrictBackground(boolean restrictBackground);
boolean getRestrictBackground();
+ NetworkQuotaInfo getNetworkQuotaInfo(in NetworkState state);
+
}
diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java
index f3c863f..5501f38 100644
--- a/core/java/android/net/MobileDataStateTracker.java
+++ b/core/java/android/net/MobileDataStateTracker.java
@@ -95,9 +95,7 @@
mTarget = target;
mContext = context;
- HandlerThread handlerThread = new HandlerThread("ConnectivityServiceThread");
- handlerThread.start();
- mHandler = new MdstHandler(handlerThread.getLooper(), this);
+ mHandler = new MdstHandler(target.getLooper(), this);
IntentFilter filter = new IntentFilter();
filter.addAction(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
@@ -121,22 +119,22 @@
switch (msg.what) {
case AsyncChannel.CMD_CHANNEL_HALF_CONNECTED:
if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) {
- if (DBG) {
+ if (VDBG) {
mMdst.log("MdstHandler connected");
}
mMdst.mDataConnectionTrackerAc = (AsyncChannel) msg.obj;
} else {
- if (DBG) {
+ if (VDBG) {
mMdst.log("MdstHandler %s NOT connected error=" + msg.arg1);
}
}
break;
case AsyncChannel.CMD_CHANNEL_DISCONNECTED:
- mMdst.log("Disconnected from DataStateTracker");
+ if (VDBG) mMdst.log("Disconnected from DataStateTracker");
mMdst.mDataConnectionTrackerAc = null;
break;
default: {
- mMdst.log("Ignorning unknown message=" + msg);
+ if (VDBG) mMdst.log("Ignorning unknown message=" + msg);
break;
}
}
@@ -223,13 +221,13 @@
mLinkProperties = intent.getParcelableExtra(
Phone.DATA_LINK_PROPERTIES_KEY);
if (mLinkProperties == null) {
- log("CONNECTED event did not supply link properties.");
+ loge("CONNECTED event did not supply link properties.");
mLinkProperties = new LinkProperties();
}
mLinkCapabilities = intent.getParcelableExtra(
Phone.DATA_LINK_CAPABILITIES_KEY);
if (mLinkCapabilities == null) {
- log("CONNECTED event did not supply link capabilities.");
+ loge("CONNECTED event did not supply link capabilities.");
mLinkCapabilities = new LinkCapabilities();
}
setDetailedState(DetailedState.CONNECTED, reason, apnName);
@@ -240,7 +238,7 @@
if (TextUtils.equals(reason, Phone.REASON_LINK_PROPERTIES_CHANGED)) {
mLinkProperties = intent.getParcelableExtra(Phone.DATA_LINK_PROPERTIES_KEY);
if (mLinkProperties == null) {
- log("No link property in LINK_PROPERTIES change event.");
+ loge("No link property in LINK_PROPERTIES change event.");
mLinkProperties = new LinkProperties();
}
// Just update reason field in this NetworkInfo
@@ -271,7 +269,7 @@
setDetailedState(DetailedState.FAILED, reason, apnName);
} else if (intent.getAction().
equals(DataConnectionTracker.ACTION_DATA_CONNECTION_TRACKER_MESSENGER)) {
- if (DBG) log(mApnType + " got ACTION_DATA_CONNECTION_TRACKER_MESSENGER");
+ if (VDBG) log(mApnType + " got ACTION_DATA_CONNECTION_TRACKER_MESSENGER");
mMessenger = intent.getParcelableExtra(DataConnectionTracker.EXTRA_MESSENGER);
AsyncChannel ac = new AsyncChannel();
ac.connect(mContext, MobileDataStateTracker.this.mHandler, mMessenger);
@@ -439,7 +437,7 @@
*/
for (int retry = 0; retry < 2; retry++) {
if (mPhoneService == null) {
- log("Ignoring mobile radio request because could not acquire PhoneService");
+ loge("Ignoring mobile radio request because could not acquire PhoneService");
break;
}
@@ -450,7 +448,7 @@
}
}
- log("Could not set radio power to " + (turnOn ? "on" : "off"));
+ loge("Could not set radio power to " + (turnOn ? "on" : "off"));
return false;
}
@@ -459,12 +457,12 @@
*/
public void setDataEnable(boolean enabled) {
try {
- log("setDataEnable: E enabled=" + enabled);
+ if (DBG) log("setDataEnable: E enabled=" + enabled);
mDataConnectionTrackerAc.sendMessage(DataConnectionTracker.CMD_SET_DATA_ENABLE,
enabled ? DataConnectionTracker.ENABLED : DataConnectionTracker.DISABLED);
- log("setDataEnable: X enabled=" + enabled);
+ if (VDBG) log("setDataEnable: X enabled=" + enabled);
} catch (Exception e) {
- log("setDataEnable: X mAc was null" + e);
+ loge("setDataEnable: X mAc was null" + e);
}
}
@@ -475,15 +473,15 @@
public void setDependencyMet(boolean met) {
Bundle bundle = Bundle.forPair(DataConnectionTracker.APN_TYPE_KEY, mApnType);
try {
- log("setDependencyMet: E met=" + met);
+ if (DBG) log("setDependencyMet: E met=" + met);
Message msg = Message.obtain();
msg.what = DataConnectionTracker.CMD_SET_DEPENDENCY_MET;
msg.arg1 = (met ? DataConnectionTracker.ENABLED : DataConnectionTracker.DISABLED);
msg.setData(bundle);
mDataConnectionTrackerAc.sendMessage(msg);
- log("setDependencyMet: X met=" + met);
+ if (VDBG) log("setDependencyMet: X met=" + met);
} catch (NullPointerException e) {
- log("setDependencyMet: X mAc was null" + e);
+ loge("setDependencyMet: X mAc was null" + e);
}
}
@@ -510,7 +508,7 @@
*/
for (int retry = 0; retry < 2; retry++) {
if (mPhoneService == null) {
- log("Ignoring feature request because could not acquire PhoneService");
+ loge("Ignoring feature request because could not acquire PhoneService");
break;
}
@@ -525,7 +523,7 @@
}
}
- log("Could not " + (enable ? "enable" : "disable") + " APN type \"" + apnType + "\"");
+ loge("Could not " + (enable ? "enable" : "disable") + " APN type \"" + apnType + "\"");
return Phone.APN_REQUEST_FAILED;
}
diff --git a/core/java/android/nfc/ILlcpServiceSocket.aidl b/core/java/android/net/NetworkQuotaInfo.aidl
similarity index 74%
rename from core/java/android/nfc/ILlcpServiceSocket.aidl
rename to core/java/android/net/NetworkQuotaInfo.aidl
index 581c21d..98a02c4 100644
--- a/core/java/android/nfc/ILlcpServiceSocket.aidl
+++ b/core/java/android/net/NetworkQuotaInfo.aidl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 The Android Open Source Project
+ * 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.
@@ -14,13 +14,6 @@
* limitations under the License.
*/
-package android.nfc;
+package android.net;
-/**
- * {@hide}
- */
-interface ILlcpServiceSocket
-{
- int accept(int nativeHandle);
- void close(int nativeHandle);
-}
+parcelable NetworkQuotaInfo;
diff --git a/core/java/android/net/NetworkQuotaInfo.java b/core/java/android/net/NetworkQuotaInfo.java
new file mode 100644
index 0000000..b85f925
--- /dev/null
+++ b/core/java/android/net/NetworkQuotaInfo.java
@@ -0,0 +1,79 @@
+/*
+ * 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 android.net;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Information about quota status on a specific network.
+ */
+public class NetworkQuotaInfo implements Parcelable {
+ private final long mEstimatedBytes;
+ private final long mSoftLimitBytes;
+ private final long mHardLimitBytes;
+
+ public static final long NO_LIMIT = -1;
+
+ /** {@hide} */
+ public NetworkQuotaInfo(long estimatedBytes, long softLimitBytes, long hardLimitBytes) {
+ mEstimatedBytes = estimatedBytes;
+ mSoftLimitBytes = softLimitBytes;
+ mHardLimitBytes = hardLimitBytes;
+ }
+
+ /** {@hide} */
+ public NetworkQuotaInfo(Parcel in) {
+ mEstimatedBytes = in.readLong();
+ mSoftLimitBytes = in.readLong();
+ mHardLimitBytes = in.readLong();
+ }
+
+ public long getEstimatedBytes() {
+ return mEstimatedBytes;
+ }
+
+ public long getSoftLimitBytes() {
+ return mSoftLimitBytes;
+ }
+
+ public long getHardLimitBytes() {
+ return mHardLimitBytes;
+ }
+
+ /** {@inheritDoc} */
+ public int describeContents() {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeLong(mEstimatedBytes);
+ out.writeLong(mSoftLimitBytes);
+ out.writeLong(mHardLimitBytes);
+ }
+
+ public static final Creator<NetworkQuotaInfo> CREATOR = new Creator<NetworkQuotaInfo>() {
+ public NetworkQuotaInfo createFromParcel(Parcel in) {
+ return new NetworkQuotaInfo(in);
+ }
+
+ public NetworkQuotaInfo[] newArray(int size) {
+ return new NetworkQuotaInfo[size];
+ }
+ };
+}
diff --git a/core/java/android/net/NetworkStatsHistory.java b/core/java/android/net/NetworkStatsHistory.java
index 4ffabb1..7a4b811 100644
--- a/core/java/android/net/NetworkStatsHistory.java
+++ b/core/java/android/net/NetworkStatsHistory.java
@@ -405,11 +405,10 @@
final long curEnd = randomLong(r, curStart, end);
entry.rxBytes = randomLong(r, 0, rx);
entry.txBytes = randomLong(r, 0, tx);
-
- recordData(curStart, curEnd, entry);
-
rx -= entry.rxBytes;
tx -= entry.txBytes;
+
+ recordData(curStart, curEnd, entry);
}
}
diff --git a/core/java/android/nfc/ILlcpConnectionlessSocket.aidl b/core/java/android/nfc/ILlcpConnectionlessSocket.aidl
deleted file mode 100644
index c6d84e5..0000000
--- a/core/java/android/nfc/ILlcpConnectionlessSocket.aidl
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.nfc;
-
-import android.nfc.LlcpPacket;
-
-/**
- * @hide
- */
-interface ILlcpConnectionlessSocket
-{
- void close(int nativeHandle);
- int getSap(int nativeHandle);
- LlcpPacket receiveFrom(int nativeHandle);
- int sendTo(int nativeHandle, in LlcpPacket packet);
-}
\ No newline at end of file
diff --git a/core/java/android/nfc/ILlcpSocket.aidl b/core/java/android/nfc/ILlcpSocket.aidl
deleted file mode 100644
index 3166e72..0000000
--- a/core/java/android/nfc/ILlcpSocket.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.nfc;
-
-/**
- * @hide
- */
-interface ILlcpSocket
-{
- int close(int nativeHandle);
- int connect(int nativeHandle, int sap);
- int connectByName(int nativeHandle, String sn);
- int getLocalSap(int nativeHandle);
- int getLocalSocketMiu(int nativeHandle);
- int getLocalSocketRw(int nativeHandle);
- int getRemoteSocketMiu(int nativeHandle);
- int getRemoteSocketRw(int nativeHandle);
- int receive(int nativeHandle, out byte[] receiveBuffer);
- int send(int nativeHandle, in byte[] data);
-}
\ No newline at end of file
diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl
index 2ed6619..83a055c 100644
--- a/core/java/android/nfc/INfcAdapter.aidl
+++ b/core/java/android/nfc/INfcAdapter.aidl
@@ -22,13 +22,8 @@
import android.nfc.NdefMessage;
import android.nfc.Tag;
import android.nfc.TechListParcel;
-import android.nfc.ILlcpSocket;
-import android.nfc.ILlcpServiceSocket;
-import android.nfc.ILlcpConnectionlessSocket;
import android.nfc.INdefPushCallback;
import android.nfc.INfcTag;
-import android.nfc.IP2pTarget;
-import android.nfc.IP2pInitiator;
import android.nfc.INfcAdapterExtras;
/**
@@ -36,12 +31,7 @@
*/
interface INfcAdapter
{
- ILlcpSocket getLlcpInterface();
- ILlcpConnectionlessSocket getLlcpConnectionlessInterface();
- ILlcpServiceSocket getLlcpServiceInterface();
INfcTag getNfcTagInterface();
- IP2pTarget getP2pTargetInterface();
- IP2pInitiator getP2pInitiatorInterface();
INfcAdapterExtras getNfcAdapterExtrasInterface();
// NfcAdapter-class related methods
@@ -54,10 +44,6 @@
void disableForegroundNdefPush(in ComponentName activity);
// Non-public methods
- // TODO: check and complete
- int createLlcpConnectionlessSocket(int sap);
- int createLlcpServiceSocket(int sap, String sn, int miu, int rw, int linearBufferLength);
- int createLlcpSocket(int sap, int miu, int rw, int linearBufferLength);
boolean disable();
boolean enable();
boolean enableZeroClick();
diff --git a/core/java/android/nfc/INfcAdapterExtras.aidl b/core/java/android/nfc/INfcAdapterExtras.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/nfc/IP2pInitiator.aidl b/core/java/android/nfc/IP2pInitiator.aidl
deleted file mode 100644
index 931f1f8..0000000
--- a/core/java/android/nfc/IP2pInitiator.aidl
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.nfc;
-
-/**
- * @hide
- */
-interface IP2pInitiator
-{
- byte[] getGeneralBytes(int nativeHandle);
- int getMode(int nativeHandle);
- byte[] receive(int nativeHandle);
- boolean send(int nativeHandle, in byte[] data);
-}
\ No newline at end of file
diff --git a/core/java/android/nfc/IP2pTarget.aidl b/core/java/android/nfc/IP2pTarget.aidl
deleted file mode 100644
index ddaaed42..0000000
--- a/core/java/android/nfc/IP2pTarget.aidl
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.nfc;
-
-/**
- * @hide
- */
-interface IP2pTarget
-{
- byte[] getGeneralBytes(int nativeHandle);
- int getMode(int nativeHandle);
- int connect(int nativeHandle);
- boolean disconnect(int nativeHandle);
- byte[] transceive(int nativeHandle, in byte[] data);
-}
\ No newline at end of file
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index d3ff8f8..a6c3387 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -1445,17 +1445,16 @@
public static final String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";
/**
- * Whether the notifications should use the ring volume (value of 1) or
- * a separate notification volume (value of 0). In most cases, users
- * will have this enabled so the notification and ringer volumes will be
- * the same. However, power users can disable this and use the separate
- * notification volume control.
+ * Whether the notifications should use the ring volume (value of 1) or a separate
+ * notification volume (value of 0). In most cases, users will have this enabled so the
+ * notification and ringer volumes will be the same. However, power users can disable this
+ * and use the separate notification volume control.
* <p>
- * Note: This is a one-off setting that will be removed in the future
- * when there is profile support. For this reason, it is kept hidden
- * from the public APIs.
+ * Note: This is a one-off setting that will be removed in the future when there is profile
+ * support. For this reason, it is kept hidden from the public APIs.
*
* @hide
+ * @deprecated
*/
public static final String NOTIFICATIONS_USE_RING_VOLUME =
"notifications_use_ring_volume";
diff --git a/core/java/android/provider/VoicemailContract.java b/core/java/android/provider/VoicemailContract.java
index a31374f..5217624 100644
--- a/core/java/android/provider/VoicemailContract.java
+++ b/core/java/android/provider/VoicemailContract.java
@@ -92,7 +92,7 @@
public static final String SOURCE_PACKAGE_FIELD = "source_package";
/** Defines fields exposed through the /voicemail path of this content provider. */
- public static final class Voicemails implements BaseColumns {
+ public static final class Voicemails implements BaseColumns, OpenableColumns {
/** Not instantiable. */
private Voicemails() {
}
diff --git a/core/java/android/server/BluetoothA2dpService.java b/core/java/android/server/BluetoothA2dpService.java
index fd277d0..f498bb2 100644
--- a/core/java/android/server/BluetoothA2dpService.java
+++ b/core/java/android/server/BluetoothA2dpService.java
@@ -187,24 +187,10 @@
return false;
}
- private synchronized boolean addAudioSink(BluetoothDevice device) {
- String path = mBluetoothService.getObjectPathFromAddress(device.getAddress());
- String propValues[] = (String []) getSinkPropertiesNative(path);
- if (propValues == null) {
- Log.e(TAG, "Error while getting AudioSink properties for device: " + device);
- return false;
+ private synchronized void addAudioSink(BluetoothDevice device) {
+ if (mAudioDevices.get(device) == null) {
+ mAudioDevices.put(device, BluetoothA2dp.STATE_DISCONNECTED);
}
- Integer state = null;
- // Properties are name-value pairs
- for (int i = 0; i < propValues.length; i+=2) {
- if (propValues[i].equals(PROPERTY_STATE)) {
- state = new Integer(convertBluezSinkStringToState(propValues[i+1]));
- break;
- }
- }
- mAudioDevices.put(device, state);
- handleSinkStateChange(device, BluetoothA2dp.STATE_DISCONNECTED, state);
- return true;
}
private synchronized void onBluetoothEnable() {
@@ -259,9 +245,7 @@
return false;
}
- if (mAudioDevices.get(device) == null && !addAudioSink(device)) {
- return false;
- }
+ addAudioSink(device);
String path = mBluetoothService.getObjectPathFromAddress(device.getAddress());
if (path == null) {
@@ -495,6 +479,7 @@
// This is for an incoming connection for a device not known to us.
// We have authorized it and bluez state has changed.
addAudioSink(device);
+ handleSinkStateChange(device, BluetoothA2dp.STATE_DISCONNECTED, state);
} else {
if (state == BluetoothA2dp.STATE_PLAYING && mPlayingA2dpDevice == null) {
mPlayingA2dpDevice = device;
diff --git a/core/java/android/server/BluetoothAdapterStateMachine.java b/core/java/android/server/BluetoothAdapterStateMachine.java
index 83f5a9f..031375e 100644
--- a/core/java/android/server/BluetoothAdapterStateMachine.java
+++ b/core/java/android/server/BluetoothAdapterStateMachine.java
@@ -39,7 +39,7 @@
* (BluetootOn)<----------------------<-
* | ^ -------------------->- |
* | | | |
- * TURN_OFF | | BECAME_PAIRABLE m1 | | USER_TURN_ON
+ * TURN_OFF | | BECAME_PAIRABLE m1 | | USER_TURN_ON
* AIRPLANE_MODE_ON | | | |
* V | | |
* (Switching) (PerProcessState)
@@ -47,7 +47,7 @@
* BECAME_NON_PAIRABLE& | | TURN_ON(_CONTINUE) | |
* ALL_DEVICES_DISCONNECTED | | m2 | |
* V |------------------------< | BECAME_PAIRABLE
- * (HotOff)---------------------------- PER_PROCESS_TURN_ON
+ * (HotOff)-------------------------->- PER_PROCESS_TURN_ON
* / ^
* / | SERVICE_RECORD_LOADED
* | |
@@ -59,7 +59,7 @@
* (PowerOff) <----- initial state
*
* Legend:
- * m1 = USER_TURN_OFF
+ * m1 = TURN_HOT
* m2 = Transition to HotOff when number of process wanting BT on is 0.
* BECAME_NON_PAIRABLE will make the transition.
*/
@@ -73,6 +73,9 @@
static final int USER_TURN_ON = 1;
// We get this message when user tries to turn off BT
static final int USER_TURN_OFF = 2;
+ // Per process enable / disable messages
+ static final int PER_PROCESS_TURN_ON = 3;
+ static final int PER_PROCESS_TURN_OFF = 4;
// Message(what) to report a event that the state machine need to respond to
//
@@ -102,9 +105,8 @@
private static final int TURN_ON_CONTINUE = 102;
// Unload firmware, turning off Bluetooth module power
private static final int TURN_COLD = 103;
- // Per process enable / disable messages
- static final int PER_PROCESS_TURN_ON = 104;
- static final int PER_PROCESS_TURN_OFF = 105;
+ // Device disconnecting timeout happens
+ private static final int DEVICES_DISCONNECT_TIMEOUT = 104;
private Context mContext;
private BluetoothService mBluetoothService;
@@ -120,6 +122,9 @@
// this is the BluetoothAdapter state that reported externally
private int mPublicState;
+ // timeout value waiting for all the devices to be disconnected
+ private static final int DEVICES_DISCONNECT_TIMEOUT_TIME = 3000;
+
BluetoothAdapterStateMachine(Context context, BluetoothService bluetoothService,
BluetoothAdapter bluetoothAdapter) {
super(TAG);
@@ -156,7 +161,7 @@
private class PowerOff extends State {
@Override
public void enter() {
- if (DBG) log("Enter PowerOff: ");
+ if (DBG) log("Enter PowerOff: " + getCurrentMessage().what);
}
@Override
public boolean processMessage(Message message) {
@@ -214,8 +219,9 @@
case PER_PROCESS_TURN_OFF:
perProcessCallback(false, (IBluetoothStateChangeCallback) message.obj);
break;
- case AIRPLANE_MODE_ON:
- case USER_TURN_OFF: // ignore
+ case USER_TURN_OFF:
+ Log.w(TAG, "PowerOff received: " + message.what);
+ case AIRPLANE_MODE_ON: // ignore
break;
default:
return NOT_HANDLED;
@@ -280,7 +286,7 @@
@Override
public void enter() {
- if (DBG) log("Enter WarmUp");
+ if (DBG) log("Enter WarmUp: " + getCurrentMessage().what);
}
@Override
@@ -301,7 +307,8 @@
case PER_PROCESS_TURN_OFF:
deferMessage(message);
break;
- case USER_TURN_OFF: // ignore
+ case USER_TURN_OFF:
+ Log.w(TAG, "WarmUp received: " + message.what);
break;
default:
return NOT_HANDLED;
@@ -319,7 +326,7 @@
private class HotOff extends State {
@Override
public void enter() {
- if (DBG) log("Enter HotOff:");
+ if (DBG) log("Enter HotOff: " + getCurrentMessage().what);
}
@Override
@@ -344,7 +351,6 @@
mBluetoothService.shutoffBluetooth();
mEventLoop.stop();
transitionTo(mPowerOff);
- // ASSERT no support of config_bluetooth_adapter_quick_switch
broadcastState(BluetoothAdapter.STATE_OFF);
break;
case AIRPLANE_MODE_OFF:
@@ -354,8 +360,6 @@
broadcastState(BluetoothAdapter.STATE_TURNING_ON);
}
break;
- case USER_TURN_OFF: // ignore
- break;
case PER_PROCESS_TURN_ON:
transitionTo(mPerProcessState);
@@ -368,6 +372,8 @@
case PER_PROCESS_TURN_OFF:
perProcessCallback(false, (IBluetoothStateChangeCallback)message.obj);
break;
+ case USER_TURN_OFF: // ignore
+ break;
default:
return NOT_HANDLED;
}
@@ -380,8 +386,7 @@
@Override
public void enter() {
- int what = getCurrentMessage().what;
- if (DBG) log("Enter Switching: " + what);
+ if (DBG) log("Enter Switching: " + getCurrentMessage().what);
}
@Override
public boolean processMessage(Message message) {
@@ -390,27 +395,38 @@
boolean retValue = HANDLED;
switch(message.what) {
case BECAME_PAIRABLE:
- String[] propVal = {"Pairable", mBluetoothService.getProperty("Pairable")};
- mEventLoop.onPropertyChanged(propVal);
-
- // run bluetooth now that it's turned on
- mBluetoothService.runBluetooth();
+ mBluetoothService.initBluetoothAfterTurningOn();
transitionTo(mBluetoothOn);
broadcastState(BluetoothAdapter.STATE_ON);
+ // run bluetooth now that it's turned on
+ // Note runBluetooth should be called only in adapter STATE_ON
+ mBluetoothService.runBluetooth();
break;
case BECAME_NON_PAIRABLE:
if (mBluetoothService.getAdapterConnectionState() ==
BluetoothAdapter.STATE_DISCONNECTED) {
+ removeMessages(DEVICES_DISCONNECT_TIMEOUT);
transitionTo(mHotOff);
finishSwitchingOff();
}
break;
case ALL_DEVICES_DISCONNECTED:
+ removeMessages(DEVICES_DISCONNECT_TIMEOUT);
if (mBluetoothService.getScanMode() == BluetoothAdapter.SCAN_MODE_NONE) {
transitionTo(mHotOff);
finishSwitchingOff();
}
break;
+ case DEVICES_DISCONNECT_TIMEOUT:
+ sendMessage(ALL_DEVICES_DISCONNECTED);
+ // reset the hardware for error recovery
+ Log.e(TAG, "Devices failed to disconnect, reseting...");
+ deferMessage(obtainMessage(TURN_COLD));
+ if (mContext.getResources().getBoolean
+ (com.android.internal.R.bool.config_bluetooth_adapter_quick_switch)) {
+ deferMessage(obtainMessage(TURN_HOT));
+ }
+ break;
case USER_TURN_ON:
case AIRPLANE_MODE_OFF:
case AIRPLANE_MODE_ON:
@@ -438,11 +454,10 @@
}
private class BluetoothOn extends State {
- private boolean mPersistBluetoothOff = false;
@Override
public void enter() {
- if (DBG) log("Enter BluetoothOn: " + mPersistBluetoothOff);
+ if (DBG) log("Enter BluetoothOn: " + getCurrentMessage().what);
}
@Override
public boolean processMessage(Message message) {
@@ -460,7 +475,7 @@
}
if (!mBluetoothService.isApplicationStateChangeTrackerEmpty()) {
transitionTo(mPerProcessState);
- deferMessage(obtainMessage(USER_TURN_OFF));
+ deferMessage(obtainMessage(TURN_HOT));
break;
}
//$FALL-THROUGH$ to AIRPLANE_MODE_ON
@@ -469,6 +484,7 @@
broadcastState(BluetoothAdapter.STATE_TURNING_OFF);
mBluetoothService.switchConnectable(false);
mBluetoothService.disconnectDevices();
+ sendMessageDelayed(DEVICES_DISCONNECT_TIMEOUT, DEVICES_DISCONNECT_TIMEOUT_TIME);
// we turn all the way to PowerOff with AIRPLANE_MODE_ON
if (message.what == AIRPLANE_MODE_ON) {
@@ -477,8 +493,9 @@
deferMessage(obtainMessage(AIRPLANE_MODE_ON));
}
break;
- case AIRPLANE_MODE_OFF: // ignore
- case USER_TURN_ON: // ignore
+ case AIRPLANE_MODE_OFF:
+ case USER_TURN_ON:
+ Log.w(TAG, "BluetoothOn received: " + message.what);
break;
case PER_PROCESS_TURN_ON:
perProcessCallback(true, (IBluetoothStateChangeCallback)message.obj);
@@ -500,7 +517,7 @@
@Override
public void enter() {
- if (DBG) log("Enter PerProcessState");
+ if (DBG) log("Enter PerProcessState: " + getCurrentMessage().what);
}
@Override
@@ -523,28 +540,40 @@
case USER_TURN_ON:
broadcastState(BluetoothAdapter.STATE_TURNING_ON);
persistSwitchSetting(true);
-
- String[] propVal = {"Pairable", mBluetoothService.getProperty("Pairable")};
- mEventLoop.onPropertyChanged(propVal);
-
- // run bluetooth now that it's turned on
- mBluetoothService.runBluetooth();
+ mBluetoothService.initBluetoothAfterTurningOn();
transitionTo(mBluetoothOn);
broadcastState(BluetoothAdapter.STATE_ON);
+ // run bluetooth now that it's turned on
+ mBluetoothService.runBluetooth();
break;
- case USER_TURN_OFF:
+ case TURN_HOT:
broadcastState(BluetoothAdapter.STATE_TURNING_OFF);
if (mBluetoothService.getAdapterConnectionState() !=
BluetoothAdapter.STATE_DISCONNECTED) {
mBluetoothService.disconnectDevices();
+ sendMessageDelayed(DEVICES_DISCONNECT_TIMEOUT,
+ DEVICES_DISCONNECT_TIMEOUT_TIME);
break;
}
//$FALL-THROUGH$ all devices are already disconnected
case ALL_DEVICES_DISCONNECTED:
+ removeMessages(DEVICES_DISCONNECT_TIMEOUT);
mBluetoothService.finishDisable();
broadcastState(BluetoothAdapter.STATE_OFF);
break;
- case PER_PROCESS_TURN_OFF:
+ case DEVICES_DISCONNECT_TIMEOUT:
+ mBluetoothService.finishDisable();
+ broadcastState(BluetoothAdapter.STATE_OFF);
+ Log.e(TAG, "Devices fail to disconnect, reseting...");
+ transitionTo(mHotOff);
+ deferMessage(obtainMessage(TURN_COLD));
+ for (IBluetoothStateChangeCallback c:
+ mBluetoothService.getApplicationStateChangeCallbacks()) {
+ perProcessCallback(false, c);
+ deferMessage(obtainMessage(PER_PROCESS_TURN_ON, c));
+ }
+ break;
+ case PER_PROCESS_TURN_OFF:
perProcessCallback(false, (IBluetoothStateChangeCallback)message.obj);
if (mBluetoothService.isApplicationStateChangeTrackerEmpty()) {
mBluetoothService.switchConnectable(false);
@@ -563,6 +592,9 @@
// we turn all the way to PowerOff with AIRPLANE_MODE_ON
deferMessage(obtainMessage(AIRPLANE_MODE_ON));
break;
+ case USER_TURN_OFF:
+ Log.w(TAG, "PerProcessState received: " + message.what);
+ break;
default:
return NOT_HANDLED;
}
diff --git a/core/java/android/server/BluetoothBondState.java b/core/java/android/server/BluetoothBondState.java
index 30a8b2a..4e2608e 100644
--- a/core/java/android/server/BluetoothBondState.java
+++ b/core/java/android/server/BluetoothBondState.java
@@ -90,6 +90,7 @@
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_PAIRING_REQUEST);
mContext.registerReceiver(mReceiver, filter);
+ readAutoPairingData();
}
synchronized void setPendingOutgoingBonding(String address) {
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java
index 9b9196a..d73f8c9 100644
--- a/core/java/android/server/BluetoothEventLoop.java
+++ b/core/java/android/server/BluetoothEventLoop.java
@@ -54,7 +54,6 @@
private final BluetoothAdapter mAdapter;
private final BluetoothAdapterStateMachine mBluetoothState;
private BluetoothA2dp mA2dp;
- private BluetoothInputDevice mInputDevice;
private final Context mContext;
// The WakeLock is used for bringing up the LCD during a pairing request
// from remote device when Android is in Suspend state.
@@ -134,15 +133,11 @@
public void onServiceConnected(int profile, BluetoothProfile proxy) {
if (profile == BluetoothProfile.A2DP) {
mA2dp = (BluetoothA2dp) proxy;
- } else if (profile == BluetoothProfile.INPUT_DEVICE) {
- mInputDevice = (BluetoothInputDevice) proxy;
}
}
public void onServiceDisconnected(int profile) {
if (profile == BluetoothProfile.A2DP) {
mA2dp = null;
- } else if (profile == BluetoothProfile.INPUT_DEVICE) {
- mInputDevice = null;
}
}
};
@@ -359,12 +354,10 @@
Intent intent;
adapterProperties.setProperty(name, propValues[1]);
if (propValues[1].equals("true")) {
- mBluetoothService.setIsDiscovering(true);
intent = new Intent(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
} else {
// Stop the discovery.
mBluetoothService.cancelDiscovery();
- mBluetoothService.setIsDiscovering(false);
intent = new Intent(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
}
mContext.sendBroadcast(intent, BLUETOOTH_PERM);
@@ -803,21 +796,25 @@
"Incoming A2DP / AVRCP connection from " + address);
mA2dp.allowIncomingConnect(device, authorized);
}
- } else if (mInputDevice != null && BluetoothUuid.isInputDevice(uuid)) {
+ } else if (BluetoothUuid.isInputDevice(uuid)) {
// We can have more than 1 input device connected.
- authorized = mInputDevice.getPriority(device) > BluetoothInputDevice.PRIORITY_OFF;
- if (authorized) {
- Log.i(TAG, "First check pass for incoming HID connection from " + address);
- // notify profile state change
- mBluetoothService.notifyIncomingHidConnection(address);
- } else {
- Log.i(TAG, "Rejecting incoming HID connection from " + address);
- mBluetoothService.allowIncomingHidConnect(device, authorized);
- }
- } else if (BluetoothUuid.isBnep(uuid) && mBluetoothService.allowIncomingTethering()){
- authorized = true;
+ authorized = mBluetoothService.getInputDevicePriority(device) >
+ BluetoothInputDevice.PRIORITY_OFF;
+ if (authorized) {
+ Log.i(TAG, "First check pass for incoming HID connection from " + address);
+ // notify profile state change
+ mBluetoothService.notifyIncomingHidConnection(address);
+ } else {
+ Log.i(TAG, "Rejecting incoming HID connection from " + address);
+ mBluetoothService.allowIncomingProfileConnect(device, authorized);
+ }
+ } else if (BluetoothUuid.isBnep(uuid)) {
+ // PAN doesn't go to the state machine, accept or reject from here
+ authorized = mBluetoothService.allowIncomingTethering();
+ mBluetoothService.allowIncomingProfileConnect(device, authorized);
} else {
Log.i(TAG, "Rejecting incoming " + deviceUuid + " connection from " + address);
+ mBluetoothService.allowIncomingProfileConnect(device, authorized);
}
log("onAgentAuthorize(" + objectPath + ", " + deviceUuid + ") = " + authorized);
}
diff --git a/core/java/android/server/BluetoothPanProfileHandler.java b/core/java/android/server/BluetoothPanProfileHandler.java
index 0d63e19..37cfdc4 100644
--- a/core/java/android/server/BluetoothPanProfileHandler.java
+++ b/core/java/android/server/BluetoothPanProfileHandler.java
@@ -145,13 +145,14 @@
return false;
}
- handlePanDeviceStateChange(device, BluetoothPan.STATE_CONNECTING,
+ // Send interface as null as it is not known
+ handlePanDeviceStateChange(device, null, BluetoothPan.STATE_CONNECTING,
BluetoothPan.LOCAL_PANU_ROLE);
if (mBluetoothService.connectPanDeviceNative(objectPath, "nap")) {
debugLog("connecting to PAN");
return true;
} else {
- handlePanDeviceStateChange(device, BluetoothPan.STATE_DISCONNECTED,
+ handlePanDeviceStateChange(device, null, BluetoothPan.STATE_DISCONNECTED,
BluetoothPan.LOCAL_PANU_ROLE);
errorLog("could not connect to PAN");
return false;
@@ -168,16 +169,16 @@
panDevice.mLocalRole == BluetoothPan.LOCAL_NAP_ROLE) {
String objectPath = mBluetoothService.getObjectPathFromAddress(device.getAddress());
- handlePanDeviceStateChange(device, BluetoothPan.STATE_DISCONNECTING,
- panDevice.mLocalRole);
+ handlePanDeviceStateChange(device, panDevice.mIface,
+ BluetoothPan.STATE_DISCONNECTING, panDevice.mLocalRole);
if (!mBluetoothService.disconnectPanServerDeviceNative(objectPath,
device.getAddress(),
- panDevice.mIfaceAddr)) {
+ panDevice.mIface)) {
errorLog("could not disconnect Pan Server Device "+device.getAddress());
// Restore prev state
- handlePanDeviceStateChange(device, state,
+ handlePanDeviceStateChange(device, panDevice.mIface, state,
panDevice.mLocalRole);
return false;
@@ -230,19 +231,19 @@
return false;
}
- handlePanDeviceStateChange(device, BluetoothPan.STATE_DISCONNECTING,
+ handlePanDeviceStateChange(device, panDevice.mIface, BluetoothPan.STATE_DISCONNECTING,
panDevice.mLocalRole);
if (panDevice.mLocalRole == BluetoothPan.LOCAL_NAP_ROLE) {
if (!mBluetoothService.disconnectPanServerDeviceNative(objectPath, device.getAddress(),
panDevice.mIface)) {
// Restore prev state, this shouldn't happen
- handlePanDeviceStateChange(device, state, panDevice.mLocalRole);
+ handlePanDeviceStateChange(device, panDevice.mIface, state, panDevice.mLocalRole);
return false;
}
} else {
if (!mBluetoothService.disconnectPanDeviceNative(objectPath)) {
// Restore prev state, this shouldn't happen
- handlePanDeviceStateChange(device, state, panDevice.mLocalRole);
+ handlePanDeviceStateChange(device, panDevice.mIface, state, panDevice.mLocalRole);
return false;
}
}
@@ -291,6 +292,7 @@
panDevice.mState = state;
panDevice.mIfaceAddr = ifaceAddr;
panDevice.mLocalRole = role;
+ panDevice.mIface = iface;
}
Intent intent = new Intent(BluetoothPan.ACTION_CONNECTION_STATE_CHANGED);
@@ -304,11 +306,6 @@
mBluetoothService.sendConnectionStateChange(device, state, prevState);
}
- void handlePanDeviceStateChange(BluetoothDevice device,
- int state, int role) {
- handlePanDeviceStateChange(device, null, state, role);
- }
-
private class BluetoothPanDevice {
private int mState;
private String mIfaceAddr;
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index 0d95a58..3029c9d 100755
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -96,7 +96,6 @@
private boolean mIsAirplaneToggleable;
private BluetoothAdapterStateMachine mBluetoothState;
private boolean mRestart = false; // need to call enable() after disable()
- private boolean mIsDiscovering;
private int[] mAdapterSdpHandles;
private ParcelUuid[] mAdapterUuids;
@@ -213,8 +212,6 @@
disableNative();
}
- mIsDiscovering = false;
-
mBondState = new BluetoothBondState(context, this);
mAdapterProperties = new BluetoothAdapterProperties(context, this);
mDeviceProperties = new BluetoothDeviceProperties(this);
@@ -411,7 +408,6 @@
intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE, BluetoothAdapter.SCAN_MODE_NONE);
mContext.sendBroadcast(intent, BLUETOOTH_PERM);
- mIsDiscovering = false;
mAdapterProperties.clear();
mServiceRecordToPid.clear();
@@ -482,8 +478,6 @@
if (!setupNativeDataNative()) {
return false;
}
- mIsDiscovering = false;
-
switchConnectable(false);
updateSdpRecords();
return true;
@@ -587,16 +581,21 @@
}
/**
+ * This method is called immediately before Bluetooth module is turned on after
+ * the adapter became pariable.
+ * It inits bond state and profile state before STATE_ON intent is broadcasted.
+ */
+ /*package*/ void initBluetoothAfterTurningOn() {
+ mBondState.initBondState();
+ initProfileState();
+ }
+
+ /**
* This method is called immediately after Bluetooth module is turned on.
* It starts auto-connection and places bluetooth on sign onto the battery
* stats
*/
/*package*/ void runBluetooth() {
- mIsDiscovering = false;
- mBondState.readAutoPairingData();
- mBondState.initBondState();
- initProfileState();
-
autoConnect();
// Log bluetooth on to battery stats.
@@ -787,12 +786,14 @@
}
if (allowOnlyInOnState) {
- setPropertyBoolean("Pairable", pairable);
setPropertyBoolean("Discoverable", discoverable);
+ setPropertyBoolean("Pairable", pairable);
} else {
// allowed to set the property through native layer directly
- setAdapterPropertyBooleanNative("Pairable", pairable ? 1 : 0);
setAdapterPropertyBooleanNative("Discoverable", discoverable ? 1 : 0);
+ // do setting pairable after setting discoverable since the adapter
+ // state machine uses pairable event for state change
+ setAdapterPropertyBooleanNative("Pairable", pairable ? 1 : 0);
}
return true;
}
@@ -949,11 +950,13 @@
public synchronized boolean isDiscovering() {
mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
- return mIsDiscovering;
- }
- /* package */ void setIsDiscovering(boolean isDiscovering) {
- mIsDiscovering = isDiscovering;
+ String discoveringProperty = mAdapterProperties.getProperty("Discovering");
+ if (discoveringProperty == null) {
+ return false;
+ }
+
+ return discoveringProperty.equals("true");
}
private boolean isBondingFeasible(String address) {
@@ -1562,6 +1565,8 @@
@Override
public boolean changeApplicationBluetoothState(boolean on,
IBluetoothStateChangeCallback callback, IBinder binder) {
+ mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
+
int pid = Binder.getCallingPid();
//mStateChangeTracker is a synchronized map
if (!mStateChangeTracker.containsKey(pid)) {
@@ -2113,7 +2118,16 @@
}
}
- public boolean allowIncomingHidConnect(BluetoothDevice device, boolean allow) {
+ /**
+ * Handle incoming profile acceptance for profiles handled by Bluetooth Service,
+ * currently PAN and HID. This also is the catch all for all rejections for profiles
+ * that is not supported.
+ *
+ * @param device - Bluetooth Device
+ * @param allow - true / false
+ * @return
+ */
+ public boolean allowIncomingProfileConnect(BluetoothDevice device, boolean allow) {
mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM,
"Need BLUETOOTH_ADMIN permission");
String address = device.getAddress();
@@ -2123,11 +2137,11 @@
Integer data = getAuthorizationAgentRequestData(address);
if (data == null) {
- Log.w(TAG, "allowIncomingHidConnect(" + device +
+ Log.w(TAG, "allowIncomingProfileConnect(" + device +
") called but no native data available");
return false;
}
- if (DBG) log("allowIncomingHidConnect: " + device + " : " + allow + " : " + data);
+ if (DBG) log("allowIncomingProfileConnect: " + device + " : " + allow + " : " + data);
return setAuthorizationNative(address, allow, data.intValue());
}
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 346adc8..f2b6b1f 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -135,7 +135,7 @@
/**
* Updates the hardware renderer for the specified surface.
*
- * @param holder The holder for the surface to hardware accelerate.
+ * @param holder The holder for the surface to hardware accelerate
*/
abstract void updateSurface(SurfaceHolder holder) throws Surface.OutOfResourcesException;
@@ -148,9 +148,11 @@
/**
* This method should be invoked whenever the current hardware renderer
- * context should be reset.
+ * context should be reset.
+ *
+ * @param holder The holder for the surface to hardware accelerate
*/
- abstract void invalidate();
+ abstract void invalidate(SurfaceHolder holder);
/**
* This method should be invoked to ensure the hardware renderer is in
@@ -633,16 +635,8 @@
destroySurface();
// Create an EGL surface we can render into.
- mEglSurface = sEgl.eglCreateWindowSurface(sEglDisplay, sEglConfig, holder, null);
-
- if (mEglSurface == null || mEglSurface == EGL_NO_SURFACE) {
- int error = sEgl.eglGetError();
- if (error == EGL_BAD_NATIVE_WINDOW) {
- Log.e(LOG_TAG, "createWindowSurface returned EGL_BAD_NATIVE_WINDOW.");
- return null;
- }
- throw new RuntimeException("createWindowSurface failed "
- + getEGLErrorString(error));
+ if (!createSurface(holder)) {
+ return null;
}
/*
@@ -685,16 +679,17 @@
if (full && mCanvas != null) {
mCanvas = null;
}
-
- if (!isEnabled() || mDestroyed) return;
- mDestroyed = true;
+ if (!isEnabled() || mDestroyed) {
+ setEnabled(false);
+ return;
+ }
destroySurface();
-
- mGl = null;
-
setEnabled(false);
+
+ mDestroyed = true;
+ mGl = null;
}
void destroySurface() {
@@ -706,13 +701,40 @@
}
@Override
- void invalidate() {
+ void invalidate(SurfaceHolder holder) {
// Cancels any existing buffer to ensure we'll get a buffer
// of the right size before we call eglSwapBuffers
- sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE,
- EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+
+ if (mEglSurface != null && mEglSurface != EGL_NO_SURFACE) {
+ sEgl.eglDestroySurface(sEglDisplay, mEglSurface);
+ mEglSurface = null;
+ setEnabled(false);
+ }
+
+ if (holder.getSurface().isValid()) {
+ if (!createSurface(holder)) {
+ return;
+ }
+ setEnabled(true);
+ }
}
-
+
+ private boolean createSurface(SurfaceHolder holder) {
+ mEglSurface = sEgl.eglCreateWindowSurface(sEglDisplay, sEglConfig, holder, null);
+
+ if (mEglSurface == null || mEglSurface == EGL_NO_SURFACE) {
+ int error = sEgl.eglGetError();
+ if (error == EGL_BAD_NATIVE_WINDOW) {
+ Log.e(LOG_TAG, "createWindowSurface returned EGL_BAD_NATIVE_WINDOW.");
+ return false;
+ }
+ throw new RuntimeException("createWindowSurface failed "
+ + getEGLErrorString(error));
+ }
+ return true;
+ }
+
@Override
boolean validate() {
return checkCurrent() != SURFACE_STATE_ERROR;
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java
index 836867b..7a96a50 100644
--- a/core/java/android/view/Surface.java
+++ b/core/java/android/view/Surface.java
@@ -29,30 +29,84 @@
private static final String LOG_TAG = "Surface";
private static final boolean DEBUG_RELEASE = false;
+ /* orientations for setOrientation() */
+ public static final int ROTATION_0 = 0;
+ public static final int ROTATION_90 = 1;
+ public static final int ROTATION_180 = 2;
+ public static final int ROTATION_270 = 3;
+
+ /**
+ * Does this object hold a valid surface? Returns true if it holds
+ * a physical surface, so lockCanvas() will succeed. Otherwise
+ * returns false.
+ */
+ public native boolean isValid();
+
+ /** Release the local reference to the server-side surface.
+ * Always call release() when you're done with a Surface. This will
+ * make the surface invalid.
+ */
+ public native void release();
+
+ /** draw into a surface */
+ public Canvas lockCanvas(Rect dirty) throws OutOfResourcesException, IllegalArgumentException {
+ /*
+ * the dirty rectangle may be expanded to the surface's size, if for
+ * instance it has been resized or if the bits were lost, since the last
+ * call.
+ */
+ return lockCanvasNative(dirty);
+ }
+
+ /** unlock the surface and asks a page flip */
+ public native void unlockCanvasAndPost(Canvas canvas);
+
+ /**
+ * unlock the surface. the screen won't be updated until
+ * post() or postAll() is called
+ */
+ public native void unlockCanvas(Canvas canvas);
+
+ @Override
+ public String toString() {
+ return "Surface(name=" + mName + ", identity=" + getIdentity() + ")";
+ }
+
+ public int describeContents() {
+ return 0;
+ }
+
+ public native void readFromParcel(Parcel source);
+ public native void writeToParcel(Parcel dest, int flags);
+
+ /**
+ * Exception thrown when a surface couldn't be created or resized
+ */
+ public static class OutOfResourcesException extends Exception {
+ public OutOfResourcesException() {
+ }
+ public OutOfResourcesException(String name) {
+ super(name);
+ }
+ }
+
+ /*
+ * -----------------------------------------------------------------------
+ * No user serviceable parts beyond this point
+ * -----------------------------------------------------------------------
+ */
+
/* flags used in constructor (keep in sync with ISurfaceComposer.h) */
- /** Surface is created hidden */
+ /** Surface is created hidden @hide */
public static final int HIDDEN = 0x00000004;
- /** The surface is to be used by hardware accelerators or DMA engines
- * @deprecated this is ignored, this value is set automatically when needed.
- */
- @Deprecated
- public static final int HARDWARE = 0x00000010;
-
- /** Implies "HARDWARE", the surface is to be used by the GPU;
- * additionally the backbuffer is never preserved for these
- * surfaces.
- * @deprecated this is ignored, this value is set automatically when needed.
- */
- @Deprecated
- public static final int GPU = 0x00000028;
-
/** The surface contains secure content, special measures will
* be taken to disallow the surface's content to be copied from
* another process. In particular, screenshots and VNC servers will
* be disabled, but other measures can take place, for instance the
- * surface might not be hardware accelerated. */
+ * surface might not be hardware accelerated.
+ * @hide*/
public static final int SECURE = 0x00000080;
/** Creates a surface where color components are interpreted as
@@ -75,20 +129,11 @@
*
* In some rare situations, a non pre-multiplied surface is preferable.
*
+ * @hide
*/
public static final int NON_PREMULTIPLIED = 0x00000100;
/**
- * Creates a surface without a rendering buffer. Instead, the content
- * of the surface must be pushed by an external entity. This type
- * of surface can be used for efficient camera preview or movie
- * playback.
- *
- * @deprecated not support by the system anymore
- */
- @Deprecated
- public static final int PUSH_BUFFERS = 0x00000200;
- /**
* Indicates that the surface must be considered opaque, even if its
* pixel format is set to translucent. This can be useful if an
* application needs full RGBA 8888 support for instance but will
@@ -109,7 +154,7 @@
// 0x1000 is reserved for an independent DRM protected flag in framework
- /** Creates a normal surface. This is the default. */
+ /** Creates a normal surface. This is the default. @hide */
public static final int FX_SURFACE_NORMAL = 0x00000000;
/** Creates a Blur surface. Everything behind this surface is blurred
@@ -117,6 +162,7 @@
* is not settable or guaranteed.
* It is an error to lock a Blur surface, since it doesn't have
* a backing store.
+ * @hide
*/
public static final int FX_SURFACE_BLUR = 0x00010000;
@@ -124,55 +170,35 @@
* by the amount specified in {@link #setAlpha}.
* It is an error to lock a Dim surface, since it doesn't have
* a backing store.
+ * @hide
*/
public static final int FX_SURFACE_DIM = 0x00020000;
- /** Mask used for FX values above */
+ /** Mask used for FX values above @hide */
public static final int FX_SURFACE_MASK = 0x000F0000;
/* flags used with setFlags() (keep in sync with ISurfaceComposer.h) */
- /** Hide the surface. Equivalent to calling hide(). */
+ /** Hide the surface. Equivalent to calling hide(). @hide */
public static final int SURFACE_HIDDEN = 0x01;
- /** Freeze the surface. Equivalent to calling freeze(). */
+ /** Freeze the surface. Equivalent to calling freeze(). @hide */
public static final int SURFACE_FROZEN = 0x02;
- /**
- * @deprecated Use {@link #SURFACE_FROZEN} instead.
- */
- @Deprecated
- public static final int SURACE_FROZEN = 0x02;
-
- /** Enable dithering when compositing this surface */
+ /** Enable dithering when compositing this surface @hide */
public static final int SURFACE_DITHER = 0x04;
-
- public static final int SURFACE_BLUR_FREEZE= 0x10;
-
- /* orientations for setOrientation() */
- public static final int ROTATION_0 = 0;
- public static final int ROTATION_90 = 1;
- public static final int ROTATION_180 = 2;
- public static final int ROTATION_270 = 3;
- /**
- * Disable the orientation animation
- * {@hide}
- */
+ /** Disable the orientation animation @hide */
public static final int FLAGS_ORIENTATION_ANIMATION_DISABLE = 0x000000001;
// The mSurfaceControl will only be present for Surfaces used by the window
// server or system processes. When this class is parceled we defer to the
- // mSurfaceControl to do the parceling. Otherwise we parcel the mNativeSurface.
- @SuppressWarnings("unused")
+ // mSurfaceControl to do the parceling. Otherwise we parcel the
+ // mNativeSurface.
private int mSurfaceControl;
- @SuppressWarnings("unused")
private int mSaveCount;
- @SuppressWarnings("unused")
private Canvas mCanvas;
- @SuppressWarnings("unused")
private int mNativeSurface;
- @SuppressWarnings("unused")
private int mSurfaceGenerationId;
private String mName;
@@ -184,19 +210,8 @@
// non compatibility mode.
private Matrix mCompatibleMatrix;
- @SuppressWarnings("unused")
private Exception mCreationStack;
- /**
- * Exception thrown when a surface couldn't be created or resized
- */
- public static class OutOfResourcesException extends Exception {
- public OutOfResourcesException() {
- }
- public OutOfResourcesException(String name) {
- super(name);
- }
- }
/*
* We use a class initializer to allow the native code to cache some
@@ -219,10 +234,7 @@
initFromSurfaceTexture(surfaceTexture);
}
- /**
- * create a surface
- * {@hide}
- */
+ /** create a surface @hide */
public Surface(SurfaceSession s,
int pid, int display, int w, int h, int format, int flags)
throws OutOfResourcesException {
@@ -233,10 +245,7 @@
init(s,pid,null,display,w,h,format,flags);
}
- /**
- * create a surface with a name
- * {@hide}
- */
+ /** create a surface with a name @hide */
public Surface(SurfaceSession s,
int pid, String name, int display, int w, int h, int format, int flags)
throws OutOfResourcesException {
@@ -251,7 +260,7 @@
/**
* Create an empty surface, which will later be filled in by
* readFromParcel().
- * {@hide}
+ * @hide
*/
public Surface() {
if (DEBUG_RELEASE) {
@@ -260,16 +269,35 @@
mCanvas = new CompatibleCanvas();
}
+ private Surface(Parcel source) throws OutOfResourcesException {
+ init(source);
+ }
+
/**
- * A Canvas class that can handle the compatibility mode. This does two things differently.
+ * Copy another surface to this one. This surface now holds a reference
+ * to the same data as the original surface, and is -not- the owner.
+ * @hide
+ */
+ public native void copyFrom(Surface o);
+
+ /** @hide */
+ public int getGenerationId() {
+ return mSurfaceGenerationId;
+ }
+
+ /**
+ * A Canvas class that can handle the compatibility mode. This does two
+ * things differently.
* <ul>
- * <li> Returns the width and height of the target metrics, rather than native.
- * For example, the canvas returns 320x480 even if an app is running in WVGA high density.
- * <li> Scales the matrix in setMatrix by the application scale, except if the matrix looks
- * like obtained from getMatrix. This is a hack to handle the case that an application
- * uses getMatrix to keep the original matrix, set matrix of its own, then set the original
- * matrix back. There is no perfect solution that works for all cases, and there are a lot of
- * cases that this model does not work, but we hope this works for many apps.
+ * <li>Returns the width and height of the target metrics, rather than
+ * native. For example, the canvas returns 320x480 even if an app is running
+ * in WVGA high density.
+ * <li>Scales the matrix in setMatrix by the application scale, except if
+ * the matrix looks like obtained from getMatrix. This is a hack to handle
+ * the case that an application uses getMatrix to keep the original matrix,
+ * set matrix of its own, then set the original matrix back. There is no
+ * perfect solution that works for all cases, and there are a lot of cases
+ * that this model does not work, but we hope this works for many apps.
* </ul>
*/
private class CompatibleCanvas extends Canvas {
@@ -318,7 +346,8 @@
}
/**
- * Sets the translator used to scale canvas's width/height in compatibility mode.
+ * Sets the translator used to scale canvas's width/height in compatibility
+ * mode.
*/
void setCompatibilityTranslator(Translator translator) {
if (translator != null) {
@@ -328,73 +357,29 @@
}
}
- /**
- * Copy another surface to this one. This surface now holds a reference
- * to the same data as the original surface, and is -not- the owner.
- * {@hide}
- */
- public native void copyFrom(Surface o);
-
- /**
- * Does this object hold a valid surface? Returns true if it holds
- * a physical surface, so lockCanvas() will succeed. Otherwise
- * returns false.
- */
- public native boolean isValid();
-
- /**
- * @hide
- */
- public int getGenerationId() {
- return mSurfaceGenerationId;
- }
-
/** Free all server-side state associated with this surface and
- * release this object's reference. {@hide} */
+ * release this object's reference. @hide */
public native void destroy();
- /** Release the local reference to the server-side surface. @hide */
- public native void release();
+ private native Canvas lockCanvasNative(Rect dirty);
- /** draw into a surface */
- public Canvas lockCanvas(Rect dirty) throws OutOfResourcesException, IllegalArgumentException
- {
- /* the dirty rectangle may be expanded to the surface's size, if
- * for instance it has been resized or if the bits were lost, since
- * the last call.
- */
- return lockCanvasNative(dirty);
- }
-
- private native Canvas lockCanvasNative(Rect dirty);
-
- /** unlock the surface and asks a page flip */
- public native void unlockCanvasAndPost(Canvas canvas);
-
- /**
- * unlock the surface. the screen won't be updated until
- * post() or postAll() is called
+ /*
+ * set display parameters & screenshots
*/
- public native void unlockCanvas(Canvas canvas);
- /** start/end a transaction {@hide} */
- public static native void openTransaction();
- /** {@hide} */
- public static native void closeTransaction();
-
/**
* Freezes the specified display, No updating of the screen will occur
* until unfreezeDisplay() is called. Everything else works as usual though,
* in particular transactions.
* @param display
- * {@hide}
+ * @hide
*/
public static native void freezeDisplay(int display);
/**
* resume updating the specified display.
* @param display
- * {@hide}
+ * @hide
*/
public static native void unfreezeDisplay(int display);
@@ -403,7 +388,7 @@
* @param display
* @param orientation
* @param flags
- * {@hide}
+ * @hide
*/
public static native void setOrientation(int display, int orientation, int flags);
@@ -411,6 +396,7 @@
* set the orientation of the given display.
* @param display
* @param orientation
+ * @hide
*/
public static void setOrientation(int display, int orientation) {
setOrientation(display, orientation, 0);
@@ -441,44 +427,43 @@
*/
public static native Bitmap screenshot(int width, int height, int minLayer, int maxLayer);
- /**
+
+ /*
* set surface parameters.
* needs to be inside open/closeTransaction block
*/
+
+ /** start a transaction @hide */
+ public static native void openTransaction();
+ /** end a transaction @hide */
+ public static native void closeTransaction();
+ /** @hide */
public native void setLayer(int zorder);
+ /** @hide */
public native void setPosition(int x, int y);
+ /** @hide */
public native void setSize(int w, int h);
-
+ /** @hide */
public native void hide();
+ /** @hide */
public native void show();
+ /** @hide */
public native void setTransparentRegionHint(Region region);
+ /** @hide */
public native void setAlpha(float alpha);
- public native void setMatrix(float dsdx, float dtdx,
- float dsdy, float dtdy);
-
+ /** @hide */
+ public native void setMatrix(float dsdx, float dtdx, float dsdy, float dtdy);
+ /** @hide */
public native void freeze();
+ /** @hide */
public native void unfreeze();
-
+ /** @hide */
public native void setFreezeTint(int tint);
-
+ /** @hide */
public native void setFlags(int flags, int mask);
- @Override
- public String toString() {
- return "Surface(name=" + mName + ", identity=" + getIdentity() + ")";
- }
- private Surface(Parcel source) throws OutOfResourcesException {
- init(source);
- }
-
- public int describeContents() {
- return 0;
- }
-
- public native void readFromParcel(Parcel source);
- public native void writeToParcel(Parcel dest, int flags);
-
+
public static final Parcelable.Creator<Surface> CREATOR
= new Parcelable.Creator<Surface>()
{
@@ -496,7 +481,6 @@
}
};
- /* no user serviceable parts here ... */
@Override
protected void finalize() throws Throwable {
try {
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index 96d6f09..76aa21f 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -204,6 +204,7 @@
}
mLayer.destroy();
+ mSurface.release();
mSurface = null;
mLayer = null;
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 935281a5..ad76928 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -10221,6 +10221,7 @@
}
canvas.restoreToCount(restoreCount);
+ canvas.setBitmap(null);
if (attachInfo != null) {
// Restore the cached Canvas for our siblings
@@ -10289,9 +10290,9 @@
mPrivateFlags = flags;
canvas.restoreToCount(restoreCount);
+ canvas.setBitmap(null);
if (attachInfo != null) {
- canvas.setBitmap(null);
// Restore the cached Canvas for our siblings
attachInfo.mCanvas = canvas;
}
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index dbcbd6e..9520958 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -220,6 +220,7 @@
private final int mMaximumDrawingCacheSize;
private final int mOverscrollDistance;
private final int mOverflingDistance;
+ private final boolean mFadingMarqueeEnabled;
private boolean sHasPermanentMenuKey;
private boolean sHasPermanentMenuKeySet;
@@ -246,6 +247,7 @@
mMaximumDrawingCacheSize = MAXIMUM_DRAWING_CACHE_SIZE;
mOverscrollDistance = OVERSCROLL_DISTANCE;
mOverflingDistance = OVERFLING_DISTANCE;
+ mFadingMarqueeEnabled = true;
}
/**
@@ -297,6 +299,9 @@
sHasPermanentMenuKey = false;
}
}
+
+ mFadingMarqueeEnabled = res.getBoolean(
+ com.android.internal.R.bool.config_ui_enableFadingMarquee);
}
/**
@@ -673,4 +678,12 @@
public boolean hasPermanentMenuKey() {
return sHasPermanentMenuKey;
}
+
+ /**
+ * @hide
+ * @return Whether or not marquee should use fading edges.
+ */
+ public boolean isFadingMarqueeEnabled() {
+ return mFadingMarqueeEnabled;
+ }
}
diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java
index 96e550e..65e72c9 100644
--- a/core/java/android/view/ViewDebug.java
+++ b/core/java/android/view/ViewDebug.java
@@ -1094,6 +1094,9 @@
}
public void post(Object... data) {
+ if (data[1] != null) {
+ ((Canvas) data[1]).setBitmap(null);
+ }
if (data[0] != null) {
((Bitmap) data[0]).recycle();
}
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index b22ab7e..ec4c5a29 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1253,6 +1253,11 @@
mScroller.abortAnimation();
}
disposeResizeBuffer();
+ // Our surface is gone
+ if (mAttachInfo.mHardwareRenderer != null &&
+ mAttachInfo.mHardwareRenderer.isEnabled()) {
+ mAttachInfo.mHardwareRenderer.destroy(true);
+ }
} else if (surfaceGenerationId != mSurface.getGenerationId() &&
mSurfaceHolder == null && mAttachInfo.mHardwareRenderer != null) {
fullRedrawNeeded = true;
@@ -1273,7 +1278,7 @@
}
} catch (RemoteException e) {
}
-
+
if (DEBUG_ORIENTATION) Log.v(
TAG, "Relayout returned: frame=" + frame + ", surface=" + mSurface);
@@ -1344,7 +1349,7 @@
mAttachInfo.mHardwareRenderer.isEnabled())) {
mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight);
if (!hwInitialized) {
- mAttachInfo.mHardwareRenderer.invalidate();
+ mAttachInfo.mHardwareRenderer.invalidate(mHolder);
}
}
diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java
index 9e9f46f..662137a 100644
--- a/core/java/android/view/VolumePanel.java
+++ b/core/java/android/view/VolumePanel.java
@@ -26,7 +26,6 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.media.AudioService;
import android.media.AudioSystem;
@@ -36,13 +35,9 @@
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
-import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.ImageView;
-import android.widget.ProgressBar;
import android.widget.SeekBar;
-import android.widget.TextView;
-import android.widget.Toast;
import android.widget.SeekBar.OnSeekBarChangeListener;
import java.util.HashMap;
@@ -52,6 +47,10 @@
*
* This code really should be moved elsewhere.
*
+ * Seriously, it really really should be moved elsewhere. This is used by
+ * android.media.AudioService, which actually runs in the system process, to
+ * show the volume dialog when the user changes the volume. What a mess.
+ *
* @hide
*/
public class VolumePanel extends Handler implements OnSeekBarChangeListener, View.OnClickListener
@@ -89,30 +88,16 @@
private static final int MSG_TIMEOUT = 5;
private static final int MSG_RINGER_MODE_CHANGED = 6;
-// private static final int RINGTONE_VOLUME_TEXT = com.android.internal.R.string.volume_ringtone;
-// private static final int MUSIC_VOLUME_TEXT = com.android.internal.R.string.volume_music;
-// private static final int INCALL_VOLUME_TEXT = com.android.internal.R.string.volume_call;
-// private static final int ALARM_VOLUME_TEXT = com.android.internal.R.string.volume_alarm;
-// private static final int UNKNOWN_VOLUME_TEXT = com.android.internal.R.string.volume_unknown;
-// private static final int NOTIFICATION_VOLUME_TEXT =
-// com.android.internal.R.string.volume_notification;
-// private static final int BLUETOOTH_INCALL_VOLUME_TEXT =
-// com.android.internal.R.string.volume_bluetooth_call;
-
protected Context mContext;
private AudioManager mAudioManager;
protected AudioService mAudioService;
private boolean mRingIsSilent;
+ private boolean mShowCombinedVolumes;
/** Dialog containing all the sliders */
private final Dialog mDialog;
/** Dialog's content view */
private final View mView;
-// private final TextView mMessage;
-// private final TextView mAdditionalMessage;
-// private final ImageView mSmallStreamIcon;
-// private final ImageView mLargeStreamIcon;
-// private final ProgressBar mLevel;
/** Contains the sliders and their touchable icons */
private final ViewGroup mSliderGroup;
@@ -127,7 +112,7 @@
private HashMap<Integer,StreamControl> mStreamControls;
// List of stream types and their order
- // RING and VOICE_CALL are hidden unless explicitly requested
+ // RING, VOICE_CALL & BLUETOOTH_SCO are hidden unless explicitly requested
private static final int [] STREAM_TYPES = {
AudioManager.STREAM_BLUETOOTH_SCO,
AudioManager.STREAM_RING,
@@ -136,10 +121,18 @@
AudioManager.STREAM_NOTIFICATION
};
+ private static final int [] CONTENT_DESCRIPTIONS = {
+ R.string.volume_icon_description_bluetooth,
+ R.string.volume_icon_description_ringer,
+ R.string.volume_icon_description_incall,
+ R.string.volume_icon_description_media,
+ R.string.volume_icon_description_notification
+ };
+
// These icons need to correspond to the ones above.
private static final int [] STREAM_ICONS_NORMAL = {
R.drawable.ic_audio_bt,
- R.drawable.ic_audio_phone,
+ R.drawable.ic_audio_ring_notif,
R.drawable.ic_audio_phone,
R.drawable.ic_audio_vol,
R.drawable.ic_audio_notification,
@@ -148,7 +141,7 @@
// These icons need to correspond to the ones above.
private static final int [] STREAM_ICONS_MUTED = {
R.drawable.ic_audio_bt,
- R.drawable.ic_audio_phone,
+ R.drawable.ic_audio_ring_notif_mute,
R.drawable.ic_audio_phone,
R.drawable.ic_audio_vol_mute,
R.drawable.ic_audio_notification_mute,
@@ -184,7 +177,6 @@
});
mSliderGroup = (ViewGroup) mView.findViewById(R.id.slider_group);
mMoreButton = (ImageView) mView.findViewById(R.id.expand_button);
- mMoreButton.setOnClickListener(this);
mDivider = (ImageView) mView.findViewById(R.id.expand_button_divider);
mDialog = new Dialog(context, R.style.Theme_Panel_Volume);
@@ -201,20 +193,22 @@
window.setGravity(Gravity.TOP);
WindowManager.LayoutParams lp = window.getAttributes();
lp.token = null;
- lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+ lp.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
window.setAttributes(lp);
window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
-// mMessage = (TextView) view.findViewById(com.android.internal.R.id.message);
-// mAdditionalMessage =
-// (TextView) view.findViewById(com.android.internal.R.id.additional_message);
-// mSmallStreamIcon = (ImageView) view.findViewById(com.android.internal.R.id.other_stream_icon);
-// mLargeStreamIcon = (ImageView) view.findViewById(com.android.internal.R.id.ringer_stream_icon);
-// mLevel = (ProgressBar) view.findViewById(com.android.internal.R.id.level);
-
mToneGenerators = new ToneGenerator[AudioSystem.getNumStreamTypes()];
mVibrator = new Vibrator();
+ mShowCombinedVolumes = !context.getResources().getBoolean(R.bool.config_voice_capable);
+ // If we don't want to show multiple volumes, hide the settings button and divider
+ if (!mShowCombinedVolumes) {
+ mMoreButton.setVisibility(View.GONE);
+ mDivider.setVisibility(View.GONE);
+ } else {
+ mMoreButton.setOnClickListener(this);
+ }
+
listenToRingerMode();
}
@@ -242,6 +236,7 @@
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mStreamControls = new HashMap<Integer,StreamControl>(STREAM_TYPES.length);
+ Resources res = mContext.getResources();
for (int i = 0; i < STREAM_TYPES.length; i++) {
StreamControl sc = new StreamControl();
sc.streamType = STREAM_TYPES[i];
@@ -250,6 +245,7 @@
sc.icon = (ImageView) sc.group.findViewById(R.id.stream_icon);
sc.icon.setOnClickListener(this);
sc.icon.setTag(sc);
+ sc.icon.setContentDescription(res.getString(CONTENT_DESCRIPTIONS[i]));
sc.iconRes = STREAM_ICONS_NORMAL[i];
sc.iconMuteRes = STREAM_ICONS_MUTED[i];
sc.icon.setImageResource(sc.iconRes);
@@ -275,13 +271,19 @@
updateSlider(active);
}
+ addOtherVolumes();
+ }
+
+ private void addOtherVolumes() {
+ if (!mShowCombinedVolumes) return;
+
for (int i = 0; i < STREAM_TYPES.length; i++) {
// Skip the phone specific ones and the active one
final int streamType = STREAM_TYPES[i];
if (streamType == AudioManager.STREAM_RING
|| streamType == AudioManager.STREAM_VOICE_CALL
|| streamType == AudioManager.STREAM_BLUETOOTH_SCO
- || streamType == activeStreamType) {
+ || streamType == mActiveStreamType) {
continue;
}
StreamControl sc = mStreamControls.get(streamType);
@@ -392,31 +394,23 @@
case AudioManager.STREAM_RING: {
// setRingerIcon();
-// message = RINGTONE_VOLUME_TEXT;
Uri ringuri = RingtoneManager.getActualDefaultRingtoneUri(
mContext, RingtoneManager.TYPE_RINGTONE);
if (ringuri == null) {
-// additionalMessage =
-// com.android.internal.R.string.volume_music_hint_silent_ringtone_selected;
mRingIsSilent = true;
}
break;
}
case AudioManager.STREAM_MUSIC: {
-// message = MUSIC_VOLUME_TEXT;
// Special case for when Bluetooth is active for music
if ((mAudioManager.getDevicesForStream(AudioManager.STREAM_MUSIC) &
(AudioManager.DEVICE_OUT_BLUETOOTH_A2DP |
AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES |
AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER)) != 0) {
-// additionalMessage =
-// com.android.internal.R.string.volume_music_hint_playing_through_bluetooth;
-// setLargeIcon(com.android.internal.R.drawable.ic_volume_bluetooth_ad2p);
setMusicIcon(R.drawable.ic_audio_bt, R.drawable.ic_audio_bt_mute);
} else {
setMusicIcon(R.drawable.ic_audio_vol, R.drawable.ic_audio_vol_mute);
-// setSmallIcon(index);
}
break;
}
@@ -429,25 +423,17 @@
*/
index++;
max++;
-// message = INCALL_VOLUME_TEXT;
-// setSmallIcon(index);
break;
}
case AudioManager.STREAM_ALARM: {
-// message = ALARM_VOLUME_TEXT;
-// setSmallIcon(index);
break;
}
case AudioManager.STREAM_NOTIFICATION: {
-// message = NOTIFICATION_VOLUME_TEXT;
-// setSmallIcon(index);
Uri ringuri = RingtoneManager.getActualDefaultRingtoneUri(
mContext, RingtoneManager.TYPE_NOTIFICATION);
if (ringuri == null) {
-// additionalMessage =
-// com.android.internal.R.string.volume_music_hint_silent_ringtone_selected;
mRingIsSilent = true;
}
break;
@@ -461,29 +447,10 @@
*/
index++;
max++;
-// message = BLUETOOTH_INCALL_VOLUME_TEXT;
-// setLargeIcon(com.android.internal.R.drawable.ic_volume_bluetooth_in_call);
break;
}
}
-// String messageString = Resources.getSystem().getString(message);
-// if (!mMessage.getText().equals(messageString)) {
-// mMessage.setText(messageString);
-// }
-//
-// if (additionalMessage == 0) {
-// mAdditionalMessage.setVisibility(View.GONE);
-// } else {
-// mAdditionalMessage.setVisibility(View.VISIBLE);
-// mAdditionalMessage.setText(Resources.getSystem().getString(additionalMessage));
-// }
-
-// if (max != mLevel.getMax()) {
-// mLevel.setMax(max);
-// }
-// mLevel.setProgress(index);
-
StreamControl sc = mStreamControls.get(streamType);
if (sc != null) {
sc.seekbarView.setProgress(index);
@@ -493,7 +460,9 @@
mAudioManager.forceVolumeControlStream(streamType);
mDialog.setContentView(mView);
// Showing dialog - use collapsed state
- collapse();
+ if (mShowCombinedVolumes) {
+ collapse();
+ }
mDialog.show();
}
@@ -566,31 +535,6 @@
}
// /**
-// * Makes the small icon visible, and hides the large icon.
-// *
-// * @param index The volume index, where 0 means muted.
-// */
-// private void setSmallIcon(int index) {
-// mLargeStreamIcon.setVisibility(View.GONE);
-// mSmallStreamIcon.setVisibility(View.VISIBLE);
-//
-// mSmallStreamIcon.setImageResource(index == 0
-// ? com.android.internal.R.drawable.ic_volume_off_small
-// : com.android.internal.R.drawable.ic_volume_small);
-// }
-//
-// /**
-// * Makes the large image view visible with the given icon.
-// *
-// * @param resId The icon to display.
-// */
-// private void setLargeIcon(int resId) {
-// mSmallStreamIcon.setVisibility(View.GONE);
-// mLargeStreamIcon.setVisibility(View.VISIBLE);
-// mLargeStreamIcon.setImageResource(resId);
-// }
-//
-// /**
// * Makes the ringer icon visible with an icon that is chosen
// * based on the current ringer mode.
// */
@@ -627,11 +571,6 @@
}
protected void onFreeResources() {
- // We'll keep the views, just ditch the cached drawable and hence
- // bitmaps
-// mSmallStreamIcon.setImageDrawable(null);
-// mLargeStreamIcon.setImageDrawable(null);
-
synchronized (this) {
for (int i = mToneGenerators.length - 1; i >= 0; i--) {
if (mToneGenerators[i] != null) {
@@ -718,7 +657,7 @@
mAudioManager.setRingerMode(mAudioManager.isSilentMode()
? AudioManager.RINGER_MODE_NORMAL : AudioManager.RINGER_MODE_SILENT);
// Expand the dialog if it hasn't been expanded yet.
- if (!isExpanded()) expand();
+ if (mShowCombinedVolumes && !isExpanded()) expand();
}
resetTimeout();
}
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index e07085c..6ac679c 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -1213,5 +1213,10 @@
* @see android.app.Activity#getVolumeControlStream()
*/
public abstract int getVolumeControlStream();
-
+
+ /**
+ * Set extra options that will influence the UI for this window.
+ * @param uiOptions Flags specifying extra options for this window.
+ */
+ public void setUiOptions(int uiOptions) { }
}
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index d1ad113..ff378a6 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -394,6 +394,13 @@
public static final int TYPE_NAVIGATION_BAR = FIRST_SYSTEM_WINDOW+19;
/**
+ * Window type: The volume level overlay/dialog shown when the user
+ * changes the system volume.
+ * @hide
+ */
+ public static final int TYPE_VOLUME_OVERLAY = FIRST_SYSTEM_WINDOW+20;
+
+ /**
* End of types of system windows.
*/
public static final int LAST_SYSTEM_WINDOW = 2999;
diff --git a/core/java/android/view/textservice/SuggestionsInfo.java b/core/java/android/view/textservice/SuggestionsInfo.java
index 3332f1e..ed0f89d 100644
--- a/core/java/android/view/textservice/SuggestionsInfo.java
+++ b/core/java/android/view/textservice/SuggestionsInfo.java
@@ -34,9 +34,9 @@
/**
* Flag of the attributes of the suggestions that can be obtained by
* {@link #getSuggestionsAttributes}: this tells that the text service thinks the requested
- * word looks a typo.
+ * word looks like a typo.
*/
- public static final int RESULT_ATTR_LOOKS_TYPO = 0x0002;
+ public static final int RESULT_ATTR_LOOKS_LIKE_TYPO = 0x0002;
private final int mSuggestionsAttributes;
private final String[] mSuggestions;
private final boolean mSuggestionsAvailable;
diff --git a/core/java/android/webkit/DeviceMotionService.java b/core/java/android/webkit/DeviceMotionService.java
index 7d7a0f0..b4d5759 100755
--- a/core/java/android/webkit/DeviceMotionService.java
+++ b/core/java/android/webkit/DeviceMotionService.java
@@ -99,6 +99,7 @@
mUpdateRunnable = new Runnable() {
@Override
public void run() {
+ assert mIsRunning;
mManager.onMotionChange(new Double(mLastAcceleration[0]),
new Double(mLastAcceleration[1]), new Double(mLastAcceleration[2]),
INTERVAL_MILLIS);
@@ -157,6 +158,11 @@
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
assert(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER);
+ // We may get callbacks after the call to getSensorManager().unregisterListener() returns.
+ if (!mIsRunning) {
+ return;
+ }
+
boolean firstData = mLastAcceleration == null;
mLastAcceleration = event.values;
if (firstData) {
diff --git a/core/java/android/webkit/DeviceOrientationService.java b/core/java/android/webkit/DeviceOrientationService.java
index f3c0576..47c8ab7 100755
--- a/core/java/android/webkit/DeviceOrientationService.java
+++ b/core/java/android/webkit/DeviceOrientationService.java
@@ -188,6 +188,7 @@
assert(event.values.length == 3);
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
+ // We may get callbacks after the call to getSensorManager().unregisterListener() returns.
if (!mIsRunning) {
return;
}
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index f4fd551..7620a63 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -8405,9 +8405,9 @@
}
}
- // Called by JNI to invalidate the View, given rectangle coordinates in
- // content space
- private void pageSwapCallback() {
+ /** @hide Called by JNI when pages are swapped (only occurs with hardware
+ * acceleration) */
+ protected void pageSwapCallback() {
if (inEditingMode()) {
didUpdateWebTextViewDimensions(ANYWHERE);
}
@@ -8426,11 +8426,11 @@
WebViewCore.ViewState viewState = draw.mViewState;
boolean isPictureAfterFirstLayout = viewState != null;
- // Request a callback on pageSwap (to reposition the webtextview)
- boolean registerPageSwapCallback =
- !mZoomManager.isFixedLengthAnimationInProgress() && inEditingMode();
-
if (updateBaseLayer) {
+ // Request a callback on pageSwap (to reposition the webtextview)
+ boolean registerPageSwapCallback =
+ !mZoomManager.isFixedLengthAnimationInProgress() && inEditingMode();
+
setBaseLayer(draw.mBaseLayer, draw.mInvalRegion,
getSettings().getShowVisualIndicator(),
isPictureAfterFirstLayout, registerPageSwapCallback);
@@ -9084,6 +9084,16 @@
}
}
+ /** @hide send content invalidate */
+ protected void contentInvalidateAll() {
+ mWebViewCore.sendMessage(EventHub.CONTENT_INVALIDATE_ALL);
+ }
+
+ /** @hide call pageSwapCallback upon next page swap */
+ protected void registerPageSwapCallback() {
+ nativeRegisterPageSwapCallback();
+ }
+
/**
* Begin collecting per-tile profiling data
*
@@ -9245,6 +9255,7 @@
private native void nativeStopGL();
private native Rect nativeSubtractLayers(Rect content);
private native int nativeTextGeneration();
+ private native void nativeRegisterPageSwapCallback();
private native void nativeTileProfilingStart();
private native float nativeTileProfilingStop();
private native void nativeTileProfilingClear();
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 8d8023b..400cdbd 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -999,6 +999,7 @@
static final int DUMP_V8COUNTERS = 173;
static final int SET_JS_FLAGS = 174;
+ static final int CONTENT_INVALIDATE_ALL = 175;
// Geolocation
static final int GEOLOCATION_PERMISSIONS_PROVIDE = 180;
@@ -1503,6 +1504,10 @@
nativeSetJsFlags((String)msg.obj);
break;
+ case CONTENT_INVALIDATE_ALL:
+ nativeContentInvalidateAll();
+ break;
+
case SAVE_WEBARCHIVE:
WebView.SaveWebArchiveMessage saveMessage =
(WebView.SaveWebArchiveMessage)msg.obj;
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java
index f999960..d977029 100644
--- a/core/java/android/widget/GridLayout.java
+++ b/core/java/android/widget/GridLayout.java
@@ -32,12 +32,13 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static android.view.Gravity.*;
+import static android.view.View.MeasureSpec.EXACTLY;
+import static android.view.View.MeasureSpec.makeMeasureSpec;
import static java.lang.Math.max;
import static java.lang.Math.min;
@@ -92,8 +93,21 @@
*
* <h4>Excess Space Distribution</h4>
*
- * A child's ability to stretch is controlled using the flexibility
- * properties of its row and column groups.
+ * A child's ability to stretch is inferred from the alignment properties of
+ * its row and column groups (which are typically set by setting the
+ * {@link LayoutParams#setGravity(int) gravity} property of the child's layout parameters).
+ * If alignment was defined along a given axis then the component
+ * is taken as flexible in along that axis. If no alignment was set,
+ * the component is instead assumed to be inflexible. Multiple components in
+ * the same row or column group are considered to act in <em>parallel</em>. Such a
+ * group is flexible only if <em>all</em> of the components
+ * within it are flexible. Row and column groups that sit either side of a common boundary
+ * are instead considered to act in <em>series</em>. The composite group made of these two
+ * elements is flexible if <em>one</em> of its elements is flexible.
+ * <p>
+ * To make a column stretch, make sure all of the components inside it define a
+ * gravity. To prevent a column from stretching, ensure that one of the components
+ * in the column does not define a gravity.
* <p>
* <p>
* See {@link GridLayout.LayoutParams} for a full description of the
@@ -175,7 +189,7 @@
private static final int DEFAULT_ORIENTATION = HORIZONTAL;
private static final int DEFAULT_COUNT = UNDEFINED;
private static final boolean DEFAULT_USE_DEFAULT_MARGINS = false;
- private static final boolean DEFAULT_ORDER_PRESERVED = false;
+ private static final boolean DEFAULT_ORDER_PRESERVED = true;
private static final int DEFAULT_ALIGNMENT_MODE = ALIGN_MARGINS;
private static final int DEFAULT_CONTAINER_MARGIN = 0;
private static final int MAX_SIZE = 100000;
@@ -198,8 +212,6 @@
private int mOrientation = DEFAULT_ORIENTATION;
private boolean mUseDefaultMargins = DEFAULT_USE_DEFAULT_MARGINS;
private int mAlignmentMode = DEFAULT_ALIGNMENT_MODE;
- private Alignment mColumnAlignment = LEFT;
- private Alignment mRowAlignment = BASELINE;
private int mDefaultGap;
// Constructors
@@ -238,6 +250,7 @@
* {@inheritDoc}
*/
public GridLayout(Context context) {
+ //noinspection NullableProblems
this(context, null);
}
@@ -440,22 +453,13 @@
}
/**
- * When this property is {@code false}, the default state, GridLayout
- * is at liberty to choose an order that better suits the heights of its children.
- <p>
* When this property is {@code true}, GridLayout is forced to place the row boundaries
* so that their associated grid indices are in ascending order in the view.
* <p>
- * GridLayout implements this specification by creating ordering constraints between
- * the variables that represent the locations of the row boundaries.
- *
- * When this property is {@code true}, constraints are added for each pair of consecutive
- * indices: i.e. between row boundaries: {@code [0..1], [1..2], [2..3],...} etc.
- *
- * When the property is {@code false}, the ordering constraints are placed
- * only between boundaries that separate opposing edges of the layout's children.
+ * When this property is {@code false} GridLayout is at liberty to place the vertical row
+ * boundaries in whatever order best fits the given constraints.
* <p>
- * The default value of this property is {@code false}.
+ * The default value of this property is {@code true}.
* @param rowOrderPreserved {@code true} to force GridLayout to respect the order
* of row boundaries
@@ -485,22 +489,13 @@
}
/**
- * When this property is {@code false}, the default state, GridLayout
- * is at liberty to choose an order that better suits the widths of its children.
- <p>
* When this property is {@code true}, GridLayout is forced to place the column boundaries
* so that their associated grid indices are in ascending order in the view.
* <p>
- * GridLayout implements this specification by creating ordering constraints between
- * the variables that represent the locations of the column boundaries.
- *
- * When this property is {@code true}, constraints are added for each pair of consecutive
- * indices: i.e. between column boundaries: {@code [0..1], [1..2], [2..3],...} etc.
- *
- * When the property is {@code false}, the ordering constraints are placed
- * only between boundaries that separate opposing edges of the layout's children.
+ * When this property is {@code false} GridLayout is at liberty to place the horizontal column
+ * boundaries in whatever order best fits the given constraints.
* <p>
- * The default value of this property is {@code false}.
+ * The default value of this property is {@code true}.
*
* @param columnOrderPreserved use {@code true} to force GridLayout to respect the order
* of column boundaries.
@@ -525,14 +520,7 @@
return result;
}
- private static int sum(int[] a) {
- int result = 0;
- for (int i = 0, N = a.length; i < N; i++) {
- result += a[i];
- }
- return result;
- }
-
+ @SuppressWarnings("unchecked")
private static <T> T[] append(T[] a, T[] b) {
T[] result = (T[]) Array.newInstance(a.getClass().getComponentType(), a.length + b.length);
System.arraycopy(a, 0, result, 0, a.length);
@@ -558,7 +546,11 @@
}
}
+ /** @noinspection UnusedParameters*/
private int getDefaultMargin(View c, boolean horizontal, boolean leading) {
+ if (c.getClass() == Space.class) {
+ return 0;
+ }
return mDefaultGap / 2;
}
@@ -578,7 +570,7 @@
return getDefaultMargin(c, isAtEdge, horizontal, leading);
}
- private int getMargin(View view, boolean horizontal, boolean leading) {
+ private int getMargin1(View view, boolean horizontal, boolean leading) {
LayoutParams lp = getLayoutParams(view);
int margin = horizontal ?
(leading ? lp.leftMargin : lp.rightMargin) :
@@ -586,6 +578,19 @@
return margin == UNDEFINED ? getDefaultMarginValue(view, lp, horizontal, leading) : margin;
}
+ private int getMargin(View view, boolean horizontal, boolean leading) {
+ if (mAlignmentMode == ALIGN_MARGINS) {
+ return getMargin1(view, horizontal, leading);
+ } else {
+ Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
+ int[] margins = leading ? axis.getLeadingMargins() : axis.getTrailingMargins();
+ LayoutParams lp = getLayoutParams(view);
+ Spec spec = horizontal ? lp.columnSpec : lp.rowSpec;
+ int index = leading ? spec.span.min : spec.span.max;
+ return margins[index];
+ }
+ }
+
private int getTotalMargin(View child, boolean horizontal) {
return getMargin(child, horizontal, true) + getMargin(child, horizontal, false);
}
@@ -594,72 +599,92 @@
return (value != UNDEFINED) ? value : defaultValue;
}
+ private static boolean fits(int[] a, int value, int start, int end) {
+ if (end > a.length) {
+ return false;
+ }
+ for (int i = start; i < end; i++) {
+ if (a[i] > value) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static void procrusteanFill(int[] a, int start, int end, int value) {
+ int length = a.length;
+ Arrays.fill(a, Math.min(start, length), Math.min(end, length), value);
+ }
+
+ private static void setCellGroup(LayoutParams lp, int row, int rowSpan, int col, int colSpan) {
+ lp.setRowSpecSpan(new Interval(row, row + rowSpan));
+ lp.setColumnSpecSpan(new Interval(col, col + colSpan));
+ }
+
+ // Logic to avert infinite loops by ensuring that the cells can be placed somewhere.
+ private static int clip(Interval minorRange, boolean minorWasDefined, int count) {
+ int size = minorRange.size();
+ if (count == 0) {
+ return size;
+ }
+ int min = minorWasDefined ? min(minorRange.min, count) : 0;
+ return min(size, count - min);
+ }
+
// install default indices for cells that don't define them
private void validateLayoutParams() {
- new Object() {
- public int maxSize = 0;
+ final boolean horizontal = (mOrientation == HORIZONTAL);
+ final int axisCount = horizontal ? mHorizontalAxis.count : mVerticalAxis.count;
+ final int count = valueIfDefined(axisCount, 0);
- private int valueIfDefined2(int value, int defaultValue) {
- if (value != UNDEFINED) {
- maxSize = 0;
- return value;
- } else {
- return defaultValue;
- }
+ int major = 0;
+ int minor = 0;
+ int[] maxSizes = new int[count];
+
+ for (int i = 0, N = getChildCount(); i < N; i++) {
+ LayoutParams lp = getLayoutParams1(getChildAt(i));
+
+ final Interval majorRange = (horizontal ? lp.rowSpec : lp.columnSpec).span;
+ final boolean majorWasDefined = (majorRange.min != UNDEFINED);
+ final int majorSpan = majorRange.size();
+ if (majorWasDefined) {
+ major = majorRange.min;
}
- {
- final boolean horizontal = (mOrientation == HORIZONTAL);
- final int axis = horizontal ? mHorizontalAxis.count : mVerticalAxis.count;
- final int count = valueIfDefined(axis, Integer.MAX_VALUE);
+ final Interval minorRange = (horizontal ? lp.columnSpec : lp.rowSpec).span;
+ final boolean minorWasDefined = (minorRange.min != UNDEFINED);
+ final int minorSpan = clip(minorRange, minorWasDefined, count);
+ if (minorWasDefined) {
+ minor = minorRange.min;
+ }
- int row = 0;
- int col = 0;
- for (int i = 0, N = getChildCount(); i < N; i++) {
- View c = getChildAt(i);
- LayoutParams lp = getLayoutParams1(c);
-
- final Spec colSpec = lp.columnSpec;
- final Interval cols = colSpec.span;
- final int colSpan = cols.size();
-
- final Spec rowSpec = lp.rowSpec;
- final Interval rows = rowSpec.span;
- final int rowSpan = rows.size();
-
- if (horizontal) {
- row = valueIfDefined2(rows.min, row);
-
- int newCol = valueIfDefined(cols.min, (col + colSpan > count) ? 0 : col);
- if (newCol < col) {
- row += maxSize;
- maxSize = 0;
+ if (count != 0) {
+ // Find suitable row/col values when at least one is undefined.
+ if (!majorWasDefined || !minorWasDefined) {
+ while (!fits(maxSizes, major, minor, minor + minorSpan)) {
+ if (minorWasDefined) {
+ major++;
+ } else {
+ if (minor + minorSpan <= count) {
+ minor++;
+ } else {
+ minor = 0;
+ major++;
+ }
}
- col = newCol;
- maxSize = max(maxSize, rowSpan);
- } else {
- col = valueIfDefined2(cols.min, col);
-
- int newRow = valueIfDefined(rows.min, (row + rowSpan > count) ? 0 : row);
- if (newRow < row) {
- col += maxSize;
- maxSize = 0;
- }
- row = newRow;
- maxSize = max(maxSize, colSpan);
- }
-
- lp.setColumnSpecSpan(new Interval(col, col + colSpan));
- lp.setRowSpecSpan(new Interval(row, row + rowSpan));
-
- if (horizontal) {
- col = col + colSpan;
- } else {
- row = row + rowSpan;
}
}
+ procrusteanFill(maxSizes, minor, minor + minorSpan, major + majorSpan);
}
- };
+
+ if (horizontal) {
+ setCellGroup(lp, major, majorSpan, minor, minorSpan);
+ } else {
+ setCellGroup(lp, minor, minorSpan, major, majorSpan);
+ }
+
+ minor = minor + minorSpan;
+ }
invalidateStructure();
}
@@ -667,7 +692,7 @@
mLayoutParamsValid = false;
mHorizontalAxis.invalidateStructure();
mVerticalAxis.invalidateStructure();
- // This can end up being done twice. But better that than not at all.
+ // This can end up being done twice. Better twice than not at all.
invalidateValues();
}
@@ -715,15 +740,6 @@
graphics.drawLine(dx + x1, dy + y1, dx + x2, dy + y2, paint);
}
- private void drawRectangle(Canvas graphics, int x1, int y1, int x2, int y2, Paint paint) {
- x2 = x2 - 1;
- y2 = y2 - 1;
- graphics.drawLine(x1, y1, x1, y2, paint);
- graphics.drawLine(x1, y1, x2, y1, paint);
- graphics.drawLine(x1, y2, x2, y2, paint);
- graphics.drawLine(x2, y1, x2, y2, paint);
- }
-
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
@@ -733,6 +749,7 @@
int width = getWidth() - getPaddingLeft() - getPaddingRight();
Paint paint = new Paint();
+ paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.argb(50, 255, 255, 255));
int[] xs = mHorizontalAxis.locations;
@@ -755,22 +772,18 @@
paint.setColor(Color.BLUE);
for (int i = 0; i < getChildCount(); i++) {
View c = getChildAt(i);
- drawRectangle(canvas,
- c.getLeft(),
- c.getTop(),
- c.getRight(),
- c.getBottom(), paint);
+ canvas.drawRect(c.getLeft(), c.getTop(), c.getRight(), c.getBottom(), paint);
}
// Draw margins
paint.setColor(Color.MAGENTA);
for (int i = 0; i < getChildCount(); i++) {
View c = getChildAt(i);
- drawRectangle(canvas,
- c.getLeft() - getMargin(c, true, true),
- c.getTop() - getMargin(c, false, true),
- c.getRight() + getMargin(c, true, false),
- c.getBottom() + getMargin(c, false, false), paint);
+ canvas.drawRect(
+ c.getLeft() - getMargin1(c, true, true),
+ c.getTop() - getMargin1(c, false, true),
+ c.getRight() + getMargin1(c, true, false),
+ c.getBottom() + getMargin1(c, false, false), paint);
}
}
}
@@ -857,11 +870,7 @@
if (isGone(c)) {
return 0;
}
- int result = getMeasurement(c, horizontal);
- if (mAlignmentMode == ALIGN_MARGINS) {
- return result + getTotalMargin(c, horizontal);
- }
- return result;
+ return getMeasurement(c, horizontal) + getTotalMargin(c, horizontal);
}
@Override
@@ -872,7 +881,7 @@
private Alignment getAlignment(Alignment alignment, boolean horizontal) {
return (alignment != UNDEFINED_ALIGNMENT) ? alignment :
- (horizontal ? mColumnAlignment : mRowAlignment);
+ (horizontal ? LEFT : BASELINE);
}
// Layout container
@@ -902,6 +911,9 @@
mHorizontalAxis.layout(targetWidth - paddingLeft - paddingRight);
mVerticalAxis.layout(targetHeight - paddingTop - paddingBottom);
+ int[] hLocations = mHorizontalAxis.getLocations();
+ int[] vLocations = mVerticalAxis.getLocations();
+
for (int i = 0, N = getChildCount(); i < N; i++) {
View c = getChildAt(i);
if (isGone(c)) continue;
@@ -912,11 +924,11 @@
Interval colSpan = columnSpec.span;
Interval rowSpan = rowSpec.span;
- int x1 = mHorizontalAxis.getLocationIncludingMargin(true, colSpan.min);
- int y1 = mVerticalAxis.getLocationIncludingMargin(true, rowSpan.min);
+ int x1 = hLocations[colSpan.min];
+ int y1 = vLocations[rowSpan.min];
- int x2 = mHorizontalAxis.getLocationIncludingMargin(false, colSpan.max);
- int y2 = mVerticalAxis.getLocationIncludingMargin(false, rowSpan.max);
+ int x2 = hLocations[colSpan.max];
+ int y2 = vLocations[rowSpan.max];
int cellWidth = x2 - x1;
int cellHeight = y2 - y1;
@@ -933,36 +945,29 @@
Bounds rowBounds = mVerticalAxis.getGroupBounds().getValue(i);
// Gravity offsets: the location of the alignment group relative to its cell group.
+ //noinspection NullableProblems
int c2ax = protect(hAlign.getAlignmentValue(null, cellWidth - colBounds.size(true)));
+ //noinspection NullableProblems
int c2ay = protect(vAlign.getAlignmentValue(null, cellHeight - rowBounds.size(true)));
- if (mAlignmentMode == ALIGN_MARGINS) {
- int leftMargin = getMargin(c, true, true);
- int topMargin = getMargin(c, false, true);
- int rightMargin = getMargin(c, true, false);
- int bottomMargin = getMargin(c, false, false);
+ int leftMargin = getMargin(c, true, true);
+ int topMargin = getMargin(c, false, true);
+ int rightMargin = getMargin(c, true, false);
+ int bottomMargin = getMargin(c, false, false);
- // Same calculation as getMeasurementIncludingMargin()
- int mWidth = leftMargin + pWidth + rightMargin;
- int mHeight = topMargin + pHeight + bottomMargin;
+ // Same calculation as getMeasurementIncludingMargin()
+ int mWidth = leftMargin + pWidth + rightMargin;
+ int mHeight = topMargin + pHeight + bottomMargin;
- // Alignment offsets: the location of the view relative to its alignment group.
- int a2vx = colBounds.getOffset(c, hAlign, mWidth);
- int a2vy = rowBounds.getOffset(c, vAlign, mHeight);
+ // Alignment offsets: the location of the view relative to its alignment group.
+ int a2vx = colBounds.getOffset(c, hAlign, mWidth);
+ int a2vy = rowBounds.getOffset(c, vAlign, mHeight);
- dx = c2ax + a2vx + leftMargin;
- dy = c2ay + a2vy + topMargin;
+ dx = c2ax + a2vx + leftMargin;
+ dy = c2ay + a2vy + topMargin;
- cellWidth -= leftMargin + rightMargin;
- cellHeight -= topMargin + bottomMargin;
- } else {
- // Alignment offsets: the location of the view relative to its alignment group.
- int a2vx = colBounds.getOffset(c, hAlign, pWidth);
- int a2vy = rowBounds.getOffset(c, vAlign, pHeight);
-
- dx = c2ax + a2vx;
- dy = c2ay + a2vy;
- }
+ cellWidth -= leftMargin + rightMargin;
+ cellHeight -= topMargin + bottomMargin;
int type = PRF;
int width = hAlign.getSizeInCell(c, pWidth, cellWidth, type);
@@ -970,6 +975,9 @@
int cx = paddingLeft + x1 + dx;
int cy = paddingTop + y1 + dy;
+ if (width != c.getMeasuredWidth() || height != c.getMeasuredHeight()) {
+ c.measure(makeMeasureSpec(width, EXACTLY), makeMeasureSpec(height, EXACTLY));
+ }
c.layout(cx, cy, cx + width, cy + height);
}
}
@@ -1237,53 +1245,6 @@
return topologicalSort(arcs.toArray(new Arc[arcs.size()]));
}
- private boolean[] findUsed(Collection<Arc> arcs) {
- boolean[] result = new boolean[getCount()];
- for (Arc arc : arcs) {
- Interval span = arc.span;
- int min = min(span.min, span.max);
- int max = max(span.min, span.max);
- for (int i = min; i < max; i++) {
- result[i] = true;
- }
- }
- return result;
- }
-
- // todo unify with findUsed above. Both routines analyze which rows/columns are empty.
- private Collection<Interval> getSpacers() {
- List<Interval> result = new ArrayList<Interval>();
- int V = getCount() + 1;
- int[] leadingEdgeCount = new int[V];
- int[] trailingEdgeCount = new int[V];
- for (int i = 0, N = getChildCount(); i < N; i++) {
- View c = getChildAt(i);
- if (isGone(c)) continue;
- LayoutParams lp = getLayoutParams(c);
- Spec spec = horizontal ? lp.columnSpec : lp.rowSpec;
- Interval span = spec.span;
- leadingEdgeCount[span.min]++;
- trailingEdgeCount[span.max]++;
- }
-
- int lastTrailingEdge = 0;
-
- // treat the parent's edges like peer edges of the opposite type
- trailingEdgeCount[0] = 1;
- leadingEdgeCount[V - 1] = 1;
-
- for (int i = 0; i < V; i++) {
- if (trailingEdgeCount[i] > 0) {
- lastTrailingEdge = i;
- continue; // if this is also a leading edge, don't add a space of length zero
- }
- if (leadingEdgeCount[i] > 0) {
- result.add(new Interval(lastTrailingEdge, i));
- }
- }
- return result;
- }
-
private void addComponentSizes(List<Arc> result, PackedMap<Interval, MutableInt> links) {
for (int i = 0; i < links.keys.length; i++) {
Interval key = links.keys[i];
@@ -1300,28 +1261,11 @@
// Add the maximum values from the components.
addComponentSizes(maxs, getBackwardLinks());
- // Find redundant rows/cols and glue them together with 0-length arcs to link the tree
- boolean[] used = findUsed(mins);
- for (int i = 0; i < getCount(); i++) {
- if (!used[i]) {
- Interval span = new Interval(i, i + 1);
- include(mins, span, new MutableInt(0));
- include(maxs, span.inverse(), new MutableInt(0));
- }
- }
-
// Add ordering constraints to prevent row/col sizes from going negative
if (mOrderPreserved) {
// Add a constraint for every row/col
for (int i = 0; i < getCount(); i++) {
- if (used[i]) {
- include(mins, new Interval(i, i + 1), new MutableInt(0));
- }
- }
- } else {
- // Add a constraint for each row/col that separates opposing component edges
- for (Interval gap : getSpacers()) {
- include(mins, gap, new MutableInt(0));
+ include(mins, new Interval(i, i + 1), new MutableInt(0));
}
}
@@ -1409,10 +1353,9 @@
String axis = horizontal ? "horizontal" : "vertical";
int N = getCount() + 1; // The number of vertices is the number of columns/rows + 1.
- boolean changed = false;
// We take one extra pass over traditional Bellman-Ford (and omit their final step)
for (int i = 0; i < N; i++) {
- changed = false;
+ boolean changed = false;
for (int j = 0, length = arcs.length; j < length; j++) {
changed |= relax(locations, arcs[j]);
}
@@ -1463,7 +1406,7 @@
Spec spec = horizontal ? lp.columnSpec : lp.rowSpec;
Interval span = spec.span;
int index = leading ? span.min : span.max;
- margins[index] = max(margins[index], getMargin(c, horizontal, leading));
+ margins[index] = max(margins[index], getMargin1(c, horizontal, leading));
}
}
@@ -1489,34 +1432,8 @@
return trailingMargins;
}
- private void addMargins() {
- int[] leadingMargins = getLeadingMargins();
- int[] trailingMargins = getTrailingMargins();
-
- int delta = 0;
- for (int i = 0, N = getCount(); i < N; i++) {
- int margins = leadingMargins[i] + trailingMargins[i + 1];
- delta += margins;
- locations[i + 1] += delta;
- }
- }
-
- private int getLocationIncludingMargin(boolean leading, int index) {
- int location = locations[index];
- int margin;
- if (mAlignmentMode != ALIGN_MARGINS) {
- margin = (leading ? leadingMargins : trailingMargins)[index];
- } else {
- margin = 0;
- }
- return leading ? (location + margin) : (location - margin);
- }
-
private void computeLocations(int[] a) {
solve1(getArcs(), a);
- if (mAlignmentMode != ALIGN_MARGINS) {
- addMargins();
- }
}
private int[] getLocations() {
@@ -1538,12 +1455,6 @@
}
private void setParentConstraints(int min, int max) {
- if (mAlignmentMode != ALIGN_MARGINS) {
- int margins = sum(getLeadingMargins()) + sum(getTrailingMargins());
- min -= margins;
- max -= margins;
- }
-
parentMin.value = min;
parentMax.value = -max;
locationsValid = false;
@@ -1658,10 +1569,8 @@
*
* @attr ref android.R.styleable#GridLayout_Layout_layout_row
* @attr ref android.R.styleable#GridLayout_Layout_layout_rowSpan
- * @attr ref android.R.styleable#GridLayout_Layout_layout_rowFlexibility
* @attr ref android.R.styleable#GridLayout_Layout_layout_column
* @attr ref android.R.styleable#GridLayout_Layout_layout_columnSpan
- * @attr ref android.R.styleable#GridLayout_Layout_layout_columnFlexibility
* @attr ref android.R.styleable#GridLayout_Layout_layout_gravity
*/
public static class LayoutParams extends MarginLayoutParams {
@@ -1688,13 +1597,9 @@
private static final int COLUMN = R.styleable.GridLayout_Layout_layout_column;
private static final int COLUMN_SPAN = R.styleable.GridLayout_Layout_layout_columnSpan;
- private static final int COLUMN_FLEXIBILITY =
- R.styleable.GridLayout_Layout_layout_columnFlexibility;
private static final int ROW = R.styleable.GridLayout_Layout_layout_row;
private static final int ROW_SPAN = R.styleable.GridLayout_Layout_layout_rowSpan;
- private static final int ROW_FLEXIBILITY =
- R.styleable.GridLayout_Layout_layout_rowFlexibility;
private static final int GRAVITY = R.styleable.GridLayout_Layout_layout_gravity;
@@ -1816,13 +1721,11 @@
int column = a.getInt(COLUMN, DEFAULT_COLUMN);
int colSpan = a.getInt(COLUMN_SPAN, DEFAULT_SPAN_SIZE);
- int hFlexibility = a.getInt(COLUMN_FLEXIBILITY, Spec.UNDEFINED_FLEXIBILITY);
- this.columnSpec = spec(column, colSpan, getAlignment(gravity, true), hFlexibility);
+ this.columnSpec = spec(column, colSpan, getAlignment(gravity, true));
int row = a.getInt(ROW, DEFAULT_ROW);
int rowSpan = a.getInt(ROW_SPAN, DEFAULT_SPAN_SIZE);
- int vFlexibility = a.getInt(ROW_FLEXIBILITY, Spec.UNDEFINED_FLEXIBILITY);
- this.rowSpec = spec(row, rowSpan, getAlignment(gravity, false), vFlexibility);
+ this.rowSpec = spec(row, rowSpan, getAlignment(gravity, false));
} finally {
a.recycle();
}
@@ -1956,10 +1859,6 @@
this.values = compact(values, index);
}
- private K getKey(int i) {
- return keys[index[i]];
- }
-
private V getValue(int i) {
return values[index[i]];
}
@@ -2009,8 +1908,6 @@
of the values for each View.
*/
private static class Bounds {
- private static final Bounds GONE = new Bounds();
-
public int before;
public int after;
public int flexibility; // we're flexible iff all included specs are flexible
@@ -2046,8 +1943,8 @@
protected final void include(View c, Spec spec, GridLayout gridLayout, Axis axis) {
this.flexibility &= spec.getFlexibility();
int size = gridLayout.getMeasurementIncludingMargin(c, axis.horizontal);
- // todo test this works correctly when the returned value is UNDEFINED
Alignment alignment = gridLayout.getAlignment(spec.alignment, axis.horizontal);
+ // todo test this works correctly when the returned value is UNDEFINED
int before = alignment.getAlignmentValue(c, size);
include(before, size - before);
}
@@ -2130,6 +2027,7 @@
if (max != interval.max) {
return false;
}
+ //noinspection RedundantIfStatement
if (min != interval.min) {
return false;
}
@@ -2150,75 +2048,47 @@
}
}
- /**
- * A Spec defines the horizontal or vertical characteristics of a group of
- * cells. Each spec. defines the <em>grid indices</em>, <em>alignment</em> and
- * <em>flexibility</em> along the appropriate axis.
- * <p>
- * The <em>grid indices</em> are the leading and trailing edges of this cell group.
- * See {@link GridLayout} for a description of the conventions used by GridLayout
- * for grid indices.
- * <p>
- * The <em>alignment</em> property specifies how cells should be aligned in this group.
- * For row groups, this specifies the vertical alignment.
- * For column groups, this specifies the horizontal alignment.
- */
+ /**
+ * A Spec defines the horizontal or vertical characteristics of a group of
+ * cells. Each spec. defines the <em>grid indices</em>, <em>alignment</em> and
+ * <em>flexibility</em> along the appropriate axis.
+ * <p>
+ * The <em>grid indices</em> are the leading and trailing edges of this cell group.
+ * See {@link GridLayout} for a description of the conventions used by GridLayout
+ * for grid indices.
+ * <p>
+ * The <em>alignment</em> property specifies how cells should be aligned in this group.
+ * For row groups, this specifies the vertical alignment.
+ * For column groups, this specifies the horizontal alignment.
+ */
public static class Spec {
- private static final int UNDEFINED_FLEXIBILITY = UNDEFINED;
-
final Interval span;
-
final Alignment alignment;
- /**
- * The <em>flexibility</em> property tells GridLayout how to derive minimum and maximum size
- * values for a component. Specifications are made with respect to a child's
- * 'measured size'. A child's measured size is, in turn, controlled by its
- * height and width layout parameters which either specify a size or, in
- * the case of {@link LayoutParams#WRAP_CONTENT WRAP_CONTENT}, defer to
- * the computed size of the component.
- * <p>
- * A cell group is flexible only if <em>all</em> of its components are flexible.
- * <p>
- * By default, flexibility is {@link #INFLEXIBLE} only when alignment/gravity is undefined.
- */
- final int flexibility;
-
- private Spec(Interval span, Alignment alignment, int flexibility) {
+ private Spec(Interval span, Alignment alignment) {
this.span = span;
this.alignment = alignment;
- this.flexibility = flexibility;
- }
-
- private Spec(Interval span, Alignment alignment) {
- this(span, alignment, UNDEFINED_FLEXIBILITY);
}
/* Copying constructor */
private Spec(Spec that) {
- this(that.span, that.alignment, that.flexibility);
+ this(that.span, that.alignment);
}
- Spec(int start, int size, Alignment alignment, int flexibility) {
- this(new Interval(start, start + size), alignment, flexibility);
+ private Spec(int start, int size, Alignment alignment) {
+ this(new Interval(start, start + size), alignment);
}
private Spec copyWriteSpan(Interval span) {
- return new Spec(span, alignment, flexibility);
+ return new Spec(span, alignment);
}
private Spec copyWriteAlignment(Alignment alignment) {
- return new Spec(span, alignment, flexibility);
- }
-
- private static int defaultFlexibility(Alignment alignment) {
- return (alignment == UNDEFINED_ALIGNMENT) ? INFLEXIBLE : CAN_STRETCH;
+ return new Spec(span, alignment);
}
int getFlexibility() {
- return (flexibility != UNDEFINED_FLEXIBILITY) ?
- flexibility :
- defaultFlexibility(alignment);
+ return (alignment == UNDEFINED_ALIGNMENT) ? INFLEXIBLE : CAN_STRETCH;
}
/**
@@ -2245,6 +2115,7 @@
if (!alignment.equals(spec.alignment)) {
return false;
}
+ //noinspection RedundantIfStatement
if (!span.equals(spec.span)) {
return false;
}
@@ -2261,28 +2132,6 @@
}
/**
- * @deprecated Please use {@link #spec(int, int, Alignment)} instead,
- * all spec's that define alignments (gravity) are assumed to be able to stretch.
- *
- * @hide
- */
- @Deprecated
- public static Spec spec(int start, int size, Alignment alignment, int flexibility) {
- return new Spec(start, size, alignment, flexibility);
- }
-
- /**
- * @deprecated Please use {@link #spec(int, Alignment)} instead,
- * all spec's that define alignments (gravity) are assumed to be able to stretch.
- *
- * @hide
- */
- @Deprecated
- public static Spec spec(int start, Alignment alignment, int flexibility) {
- return spec(start, 1, alignment, flexibility);
- }
-
- /**
* Return a Spec, {@code spec}, where:
* <ul>
* <li> {@code spec.span = [start, start + size]} </li>
@@ -2294,7 +2143,7 @@
* @param alignment the alignment
*/
public static Spec spec(int start, int size, Alignment alignment) {
- return spec(start, size, alignment, Spec.UNDEFINED_FLEXIBILITY);
+ return new Spec(start, size, alignment);
}
/**
@@ -2524,15 +2373,5 @@
private static final int INFLEXIBLE = 0;
- /**
- * Indicates that a view's size should be greater than or equal to the size specified by
- * its layout parameters.
- *
- * @deprecated Please use {@link #spec(int, int, Alignment)} instead,
- * all spec's that define alignment (gravity) are assumed to able to stretch.
- *
- * @hide
- */
- @Deprecated
- public static final int CAN_STRETCH = 2;
+ private static final int CAN_STRETCH = 2;
}
diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java
index c4ba7c8..4b08f2d 100644
--- a/core/java/android/widget/StackView.java
+++ b/core/java/android/widget/StackView.java
@@ -1406,6 +1406,7 @@
v.setTranslationX(translationX);
drawOutline(mCanvas, bitmap);
+ mCanvas.setBitmap(null);
return bitmap;
}
@@ -1417,6 +1418,7 @@
dest.drawColor(0, PorterDuff.Mode.CLEAR);
dest.setMatrix(mIdentityMatrix);
dest.drawBitmap(mask, xy[0], xy[1], mHolographicPaint);
+ mMaskCanvas.setBitmap(null);
mask.recycle();
}
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index ab66676..968d612 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -343,6 +343,9 @@
private Drawable mSelectHandleRight;
private Drawable mSelectHandleCenter;
+ // Global listener that detects changes in the global position of the TextView
+ private PositionListener mPositionListener;
+
private float mLastDownPositionX, mLastDownPositionY;
private Callback mCustomSelectionActionModeCallback;
@@ -394,7 +397,7 @@
*/
boolean onEditorAction(TextView v, int actionId, KeyEvent event);
}
-
+
public TextView(Context context) {
this(context, null);
}
@@ -999,7 +1002,8 @@
setEllipsize(TextUtils.TruncateAt.END);
break;
case 4:
- setHorizontalFadingEdgeEnabled(true);
+ setHorizontalFadingEdgeEnabled(
+ ViewConfiguration.get(context).isFadingMarqueeEnabled());
setEllipsize(TextUtils.TruncateAt.MARQUEE);
break;
}
@@ -2080,7 +2084,7 @@
TextAppearance_textStyle, -1);
setTypefaceByIndex(typefaceIndex, styleIndex);
-
+
if (appearance.getBoolean(com.android.internal.R.styleable.TextAppearance_textAllCaps,
false)) {
setTransformationMethod(new AllCapsTransformationMethod(getContext()));
@@ -3018,7 +3022,7 @@
* To style your strings, attach android.text.style.* objects to a
* {@link android.text.SpannableString SpannableString}, or see the
* <a href="{@docRoot}guide/topics/resources/available-resources.html#stringresources">
- * Available Resource Types</a> documentation for an example of setting
+ * Available Resource Types</a> documentation for an example of setting
* formatted text in the XML resource file.
*
* @attr ref android.R.styleable#TextView_text
@@ -3067,7 +3071,8 @@
if (text instanceof Spanned &&
((Spanned) text).getSpanStart(TextUtils.TruncateAt.MARQUEE) >= 0) {
- setHorizontalFadingEdgeEnabled(true);
+ setHorizontalFadingEdgeEnabled(
+ ViewConfiguration.get(mContext).isFadingMarqueeEnabled());
setEllipsize(TextUtils.TruncateAt.MARQUEE);
}
@@ -8755,32 +8760,247 @@
return ((minOffset >= selectionStart) && (maxOffset < selectionEnd));
}
+ private PositionListener getPositionListener() {
+ if (mPositionListener == null) {
+ mPositionListener = new PositionListener();
+ }
+ return mPositionListener;
+ }
+
+ private interface TextViewPositionListener {
+ public void updatePosition(int parentPositionX, int parentPositionY, boolean modified);
+ }
+
+ private class PositionListener implements ViewTreeObserver.OnPreDrawListener {
+ // 3 handles, 2 ActionPopup (suggestionsPopup first hides the others)
+ private final int MAXIMUM_NUMBER_OF_LISTENERS = 5;
+ private TextViewPositionListener[] mPositionListeners =
+ new TextViewPositionListener[MAXIMUM_NUMBER_OF_LISTENERS];
+ private boolean mCanMove[] = new boolean[MAXIMUM_NUMBER_OF_LISTENERS];
+ private boolean mPositionHasChanged = true;
+ // Absolute position of the TextView with respect to its parent window
+ private int mPositionX, mPositionY;
+ private int mNumberOfListeners;
+
+ public void addSubscriber(TextViewPositionListener positionListener, boolean canMove) {
+ if (mNumberOfListeners == 0) {
+ updatePosition();
+ ViewTreeObserver vto = TextView.this.getViewTreeObserver();
+ vto.addOnPreDrawListener(this);
+ }
+
+ int emptySlotIndex = -1;
+ for (int i = 0; i < MAXIMUM_NUMBER_OF_LISTENERS; i++) {
+ TextViewPositionListener listener = mPositionListeners[i];
+ if (listener == positionListener) {
+ return;
+ } else if (emptySlotIndex < 0 && listener == null) {
+ emptySlotIndex = i;
+ }
+ }
+
+ mPositionListeners[emptySlotIndex] = positionListener;
+ mCanMove[emptySlotIndex] = canMove;
+ mNumberOfListeners++;
+ }
+
+ public void removeSubscriber(TextViewPositionListener positionListener) {
+ for (int i = 0; i < MAXIMUM_NUMBER_OF_LISTENERS; i++) {
+ if (mPositionListeners[i] == positionListener) {
+ mPositionListeners[i] = null;
+ mNumberOfListeners--;
+ break;
+ }
+ }
+
+ if (mNumberOfListeners == 0) {
+ ViewTreeObserver vto = TextView.this.getViewTreeObserver();
+ vto.removeOnPreDrawListener(this);
+ }
+ }
+
+ public int getPositionX() {
+ return mPositionX;
+ }
+
+ public int getPositionY() {
+ return mPositionY;
+ }
+
+ @Override
+ public boolean onPreDraw() {
+ updatePosition();
+
+ for (int i = 0; i < MAXIMUM_NUMBER_OF_LISTENERS; i++) {
+ if (mPositionHasChanged || mCanMove[i]) {
+ TextViewPositionListener positionListener = mPositionListeners[i];
+ if (positionListener != null) {
+ positionListener.updatePosition(mPositionX, mPositionY,
+ mPositionHasChanged);
+ }
+ }
+ }
+
+ return true;
+ }
+
+ private void updatePosition() {
+ TextView.this.getLocationInWindow(mTempCoords);
+
+ mPositionHasChanged = mTempCoords[0] != mPositionX || mTempCoords[1] != mPositionY;
+
+ mPositionX = mTempCoords[0];
+ mPositionY = mTempCoords[1];
+ }
+
+ public boolean isVisible(int positionX, int positionY) {
+ final TextView textView = TextView.this;
+
+ if (mTempRect == null) mTempRect = new Rect();
+ final Rect clip = mTempRect;
+ clip.left = getCompoundPaddingLeft();
+ clip.top = getExtendedPaddingTop();
+ clip.right = textView.getWidth() - getCompoundPaddingRight();
+ clip.bottom = textView.getHeight() - getExtendedPaddingBottom();
+
+ final ViewParent parent = textView.getParent();
+ if (parent == null || !parent.getChildVisibleRect(textView, clip, null)) {
+ return false;
+ }
+
+ int posX = mPositionX + positionX;
+ int posY = mPositionY + positionY;
+
+ // Offset by 1 to take into account 0.5 and int rounding around getPrimaryHorizontal.
+ return posX >= clip.left - 1 && posX <= clip.right + 1 &&
+ posY >= clip.top && posY <= clip.bottom;
+ }
+
+ public boolean isOffsetVisible(int offset) {
+ final int line = mLayout.getLineForOffset(offset);
+ final int lineBottom = mLayout.getLineBottom(line);
+ final int primaryHorizontal = (int) mLayout.getPrimaryHorizontal(offset);
+ return isVisible(primaryHorizontal, lineBottom);
+ }
+ }
+
+ private abstract class PinnedPopupWindow implements TextViewPositionListener {
+ protected PopupWindow mPopupWindow;
+ protected LinearLayout mContentView;
+ int mPositionX, mPositionY;
+
+ protected abstract void createPopupWindow();
+ protected abstract void initContentView();
+ protected abstract int getTextOffset();
+ protected abstract int getVerticalLocalPosition(int line);
+ protected abstract int clipVertically(int positionY);
+
+ public PinnedPopupWindow() {
+ createPopupWindow();
+
+ mPopupWindow.setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL);
+ mPopupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
+ mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
+
+ mContentView = new LinearLayout(TextView.this.getContext());
+ LayoutParams wrapContent = new LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ mContentView.setLayoutParams(wrapContent);
+
+ initContentView();
+ mPopupWindow.setContentView(mContentView);
+ }
+
+ public void show() {
+ final DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
+ mContentView.measure(
+ View.MeasureSpec.makeMeasureSpec(displayMetrics.widthPixels,
+ View.MeasureSpec.AT_MOST),
+ View.MeasureSpec.makeMeasureSpec(displayMetrics.heightPixels,
+ View.MeasureSpec.AT_MOST));
+
+ TextView.this.getPositionListener().addSubscriber(this, false);
+
+ computeLocalPosition();
+
+ final PositionListener positionListener = TextView.this.getPositionListener();
+ updatePosition(positionListener.getPositionX(), positionListener.getPositionY());
+ }
+
+ private void computeLocalPosition() {
+ final int offset = getTextOffset();
+
+ final int width = mContentView.getMeasuredWidth();
+ mPositionX = (int) (mLayout.getPrimaryHorizontal(offset) - width / 2.0f);
+ mPositionX += viewportToContentHorizontalOffset();
+
+ final int line = mLayout.getLineForOffset(offset);
+ mPositionY = getVerticalLocalPosition(line);
+ mPositionY += viewportToContentVerticalOffset();
+ }
+
+ private void updatePosition(int parentPositionX, int parentPositionY) {
+ int positionX = parentPositionX + mPositionX;
+ int positionY = parentPositionY + mPositionY;
+
+ positionY = clipVertically(positionY);
+
+ // Horizontal clipping
+ final DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
+ final int width = mContentView.getMeasuredWidth();
+ positionX = Math.min(displayMetrics.widthPixels - width, positionX);
+ positionX = Math.max(0, positionX);
+
+ if (isShowing()) {
+ mPopupWindow.update(positionX, positionY, -1, -1);
+ } else {
+ mPopupWindow.showAtLocation(TextView.this, Gravity.NO_GRAVITY,
+ positionX, positionY);
+ }
+ }
+
+ public void hide() {
+ mPopupWindow.dismiss();
+ TextView.this.getPositionListener().removeSubscriber(this);
+ }
+
+ @Override
+ public void updatePosition(int parentPositionX, int parentPositionY, boolean modified) {
+ if (isShowing() && getPositionListener().isOffsetVisible(getTextOffset())) {
+ updatePosition(parentPositionX, parentPositionY);
+ } else {
+ hide();
+ }
+ }
+
+ public boolean isShowing() {
+ return mPopupWindow.isShowing();
+ }
+ }
+
private static class SuggestionRangeSpan extends UnderlineSpan {
// TODO themable, would be nice to make it a child class of TextAppearanceSpan, but
// there is no way to have underline and TextAppearanceSpan.
}
- private class SuggestionsPopupWindow implements OnClickListener {
+ private class SuggestionsPopupWindow extends PinnedPopupWindow implements OnClickListener {
private static final int MAX_NUMBER_SUGGESTIONS = 5;
private static final int NO_SUGGESTIONS = -1;
- private final PopupWindow mPopupWindow;
- private LinearLayout mSuggestionsContainer;
private WordIterator mSuggestionWordIterator;
private TextAppearanceSpan[] mHighlightSpans = new TextAppearanceSpan[0];
- public SuggestionsPopupWindow() {
+ @Override
+ protected void createPopupWindow() {
mPopupWindow = new PopupWindow(TextView.this.mContext, null,
- com.android.internal.R.attr.textSuggestionsWindowStyle);
- mPopupWindow.setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL);
+ com.android.internal.R.attr.textSuggestionsWindowStyle);
mPopupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
mPopupWindow.setOutsideTouchable(true);
- mPopupWindow.setClippingEnabled(true);
+ mPopupWindow.setClippingEnabled(false);
+ }
- mPopupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
- mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-
- mSuggestionsContainer = new LinearLayout(TextView.this.mContext);
- mSuggestionsContainer.setOrientation(LinearLayout.VERTICAL);
+ @Override
+ protected void initContentView() {
+ mContentView.setOrientation(LinearLayout.VERTICAL);
LayoutInflater inflater = (LayoutInflater) TextView.this.mContext.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -8793,7 +9013,7 @@
// Inflate the suggestion items once and for all.
for (int i = 0; i < MAX_NUMBER_SUGGESTIONS; i++) {
View childView = inflater.inflate(mTextEditSuggestionItemLayout,
- mSuggestionsContainer, false);
+ mContentView, false);
if (! (childView instanceof TextView)) {
throw new IllegalArgumentException(
@@ -8801,11 +9021,9 @@
}
childView.setTag(new SuggestionInfo());
- mSuggestionsContainer.addView(childView);
+ mContentView.addView(childView);
childView.setOnClickListener(this);
}
-
- mPopupWindow.setContentView(mSuggestionsContainer);
}
private class SuggestionInfo {
@@ -8825,30 +9043,61 @@
SuggestionSpan[] suggestionSpans = spannable.getSpans(pos, pos, SuggestionSpan.class);
// Cache the span length for performance reason.
- final HashMap<SuggestionSpan, Integer> spanLengthMap =
- new HashMap<SuggestionSpan, Integer>();
+ final HashMap<SuggestionSpan, Integer> spansLengths =
+ new HashMap<SuggestionSpan, Integer>();
for (SuggestionSpan suggestionSpan : suggestionSpans) {
int start = spannable.getSpanStart(suggestionSpan);
int end = spannable.getSpanEnd(suggestionSpan);
- spanLengthMap.put(suggestionSpan, end - start);
+ spansLengths.put(suggestionSpan, Integer.valueOf(end - start));
}
// The suggestions are sorted according to the lenght of the text that they cover
// (shorter first)
Arrays.sort(suggestionSpans, new Comparator<SuggestionSpan>() {
public int compare(SuggestionSpan span1, SuggestionSpan span2) {
- return spanLengthMap.get(span1) - spanLengthMap.get(span2);
+ return spansLengths.get(span1).intValue() - spansLengths.get(span2).intValue();
}
});
return suggestionSpans;
}
+ @Override
public void show() {
if (!(mText instanceof Editable)) return;
+ updateSuggestions();
- Spannable spannable = (Spannable) TextView.this.mText;
+ super.show();
+ }
+
+ @Override
+ protected int getTextOffset() {
+ return getSelectionStart();
+ }
+
+ @Override
+ protected int getVerticalLocalPosition(int line) {
+ return mLayout.getLineBottom(line);
+ }
+
+ @Override
+ protected int clipVertically(int positionY) {
+ final int height = mContentView.getMeasuredHeight();
+ final DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
+ return Math.min(positionY, displayMetrics.heightPixels - height);
+ }
+
+ @Override
+ public void hide() {
+ super.hide();
+ if ((mText instanceof Editable) && mSuggestionRangeSpan != null) {
+ ((Editable) mText).removeSpan(mSuggestionRangeSpan);
+ }
+ }
+
+ private void updateSuggestions() {
+ Spannable spannable = (Spannable)TextView.this.mText;
SuggestionSpan[] suggestionSpans = getSuggestionSpans();
final int nbSpans = suggestionSpans.length;
@@ -8867,7 +9116,7 @@
String[] suggestions = suggestionSpan.getSuggestions();
int nbSuggestions = suggestions.length;
for (int suggestionIndex = 0; suggestionIndex < nbSuggestions; suggestionIndex++) {
- TextView textView = (TextView) mSuggestionsContainer.getChildAt(
+ TextView textView = (TextView) mContentView.getChildAt(
totalNbSuggestions);
textView.setText(suggestions[suggestionIndex]);
SuggestionInfo suggestionInfo = (SuggestionInfo) textView.getTag();
@@ -8887,7 +9136,7 @@
if (totalNbSuggestions == 0) {
// TODO Replace by final text, use a dedicated layout, add a fade out timer...
- TextView textView = (TextView) mSuggestionsContainer.getChildAt(0);
+ TextView textView = (TextView) mContentView.getChildAt(0);
textView.setText("No suggestions available");
SuggestionInfo suggestionInfo = (SuggestionInfo) textView.getTag();
suggestionInfo.spanStart = NO_SUGGESTIONS;
@@ -8898,26 +9147,17 @@
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
for (int i = 0; i < totalNbSuggestions; i++) {
- final TextView textView = (TextView) mSuggestionsContainer.getChildAt(i);
+ final TextView textView = (TextView) mContentView.getChildAt(i);
highlightTextDifferences(textView, spanUnionStart, spanUnionEnd);
}
}
for (int i = 0; i < totalNbSuggestions; i++) {
- mSuggestionsContainer.getChildAt(i).setVisibility(VISIBLE);
+ mContentView.getChildAt(i).setVisibility(VISIBLE);
}
for (int i = totalNbSuggestions; i < MAX_NUMBER_SUGGESTIONS; i++) {
- mSuggestionsContainer.getChildAt(i).setVisibility(GONE);
+ mContentView.getChildAt(i).setVisibility(GONE);
}
-
- final DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
- final int screenWidth = displayMetrics.widthPixels;
- final int screenHeight = displayMetrics.heightPixels;
- mSuggestionsContainer.measure(
- View.MeasureSpec.makeMeasureSpec(screenWidth, View.MeasureSpec.AT_MOST),
- View.MeasureSpec.makeMeasureSpec(screenHeight, View.MeasureSpec.AT_MOST));
-
- positionAtCursor();
}
private long[] getWordLimits(CharSequence text) {
@@ -9069,17 +9309,6 @@
textView.setText(ssb);
}
- public void hide() {
- if ((mText instanceof Editable) && mSuggestionRangeSpan != null) {
- ((Editable) mText).removeSpan(mSuggestionRangeSpan);
- }
- mPopupWindow.dismiss();
- }
-
- public boolean isShowing() {
- return mPopupWindow.isShowing();
- }
-
@Override
public void onClick(View view) {
if (view instanceof TextView) {
@@ -9139,44 +9368,6 @@
}
hide();
}
-
- void positionAtCursor() {
- View contentView = mPopupWindow.getContentView();
- int width = contentView.getMeasuredWidth();
- int height = contentView.getMeasuredHeight();
- final int offset = TextView.this.getSelectionStart();
- final int line = mLayout.getLineForOffset(offset);
- final int lineBottom = mLayout.getLineBottom(line);
- float primaryHorizontal = mLayout.getPrimaryHorizontal(offset);
-
- final Rect bounds = sCursorControllerTempRect;
- bounds.left = (int) (primaryHorizontal - width / 2.0f);
- bounds.top = lineBottom;
-
- bounds.right = bounds.left + width;
- bounds.bottom = bounds.top + height;
-
- convertFromViewportToContentCoordinates(bounds);
-
- final int[] coords = mTempCoords;
- TextView.this.getLocationInWindow(coords);
- coords[0] += bounds.left;
- coords[1] += bounds.top;
-
- final DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
- final int screenHeight = displayMetrics.heightPixels;
-
- // Vertical clipping
- if (coords[1] + height > screenHeight) {
- coords[1] = screenHeight - height;
- }
-
- // Horizontal clipping
- coords[0] = Math.min(displayMetrics.widthPixels - width, coords[0]);
- coords[0] = Math.max(0, coords[0]);
-
- mPopupWindow.showAtLocation(TextView.this, Gravity.NO_GRAVITY, coords[0], coords[1]);
- }
}
void showSuggestions() {
@@ -9357,7 +9548,7 @@
boolean allowText = getContext().getResources().getBoolean(
com.android.internal.R.bool.config_allowActionMenuItemTextWithIcon);
- mode.setTitle(allowText ?
+ mode.setTitle(allowText ?
mContext.getString(com.android.internal.R.string.textSelectionCABTitle) : null);
mode.setSubtitle(null);
@@ -9450,29 +9641,23 @@
}
}
- private class ActionPopupWindow implements OnClickListener {
- private static final int TEXT_EDIT_ACTION_POPUP_TEXT =
+ private class ActionPopupWindow extends PinnedPopupWindow implements OnClickListener {
+ private static final int POPUP_TEXT_LAYOUT =
com.android.internal.R.layout.text_edit_action_popup_text;
- private final PopupWindow mPopupWindow;
private TextView mPasteTextView;
private TextView mReplaceTextView;
- private LinearLayout mContentView;
// Whether or not the Paste action should be available when the action popup is displayed
private boolean mWithPaste;
- public ActionPopupWindow() {
+ @Override
+ protected void createPopupWindow() {
mPopupWindow = new PopupWindow(TextView.this.mContext, null,
com.android.internal.R.attr.textSelectHandleWindowStyle);
mPopupWindow.setClippingEnabled(true);
- mPopupWindow.setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL);
+ }
- mPopupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
- mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
-
- mContentView = new LinearLayout(TextView.this.getContext());
- LayoutParams wrapContent = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- mContentView.setLayoutParams(wrapContent);
+ @Override
+ protected void initContentView() {
mContentView.setOrientation(LinearLayout.HORIZONTAL);
mContentView.setBackgroundResource(
com.android.internal.R.drawable.text_edit_side_paste_window);
@@ -9480,36 +9665,26 @@
LayoutInflater inflater = (LayoutInflater)TextView.this.mContext.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mPasteTextView = (TextView) inflater.inflate(TEXT_EDIT_ACTION_POPUP_TEXT, null);
+ LayoutParams wrapContent = new LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+ mPasteTextView = (TextView) inflater.inflate(POPUP_TEXT_LAYOUT, null);
mPasteTextView.setLayoutParams(wrapContent);
mContentView.addView(mPasteTextView);
mPasteTextView.setText(com.android.internal.R.string.paste);
mPasteTextView.setOnClickListener(this);
- mReplaceTextView = (TextView) inflater.inflate(TEXT_EDIT_ACTION_POPUP_TEXT, null);
+ mReplaceTextView = (TextView) inflater.inflate(POPUP_TEXT_LAYOUT, null);
mReplaceTextView.setLayoutParams(wrapContent);
mContentView.addView(mReplaceTextView);
mReplaceTextView.setText(com.android.internal.R.string.replace);
mReplaceTextView.setOnClickListener(this);
-
- mPopupWindow.setContentView(mContentView);
}
+ @Override
public void show() {
mPasteTextView.setVisibility(mWithPaste && canPaste() ? View.VISIBLE : View.GONE);
-
- final int size = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
- mContentView.measure(size, size);
-
- positionAtCursor();
- }
-
- public void hide() {
- mPopupWindow.dismiss();
- }
-
- public boolean isShowing() {
- return mPopupWindow.isShowing();
+ super.show();
}
@Override
@@ -9522,48 +9697,30 @@
}
}
- void positionAtCursor() {
- int width = mContentView.getMeasuredWidth();
- int height = mContentView.getMeasuredHeight();
- final int selectionStart = TextView.this.getSelectionStart();
- final int selectionEnd = TextView.this.getSelectionEnd();
- final int offset = (selectionStart + selectionEnd) / 2;
- final int line = mLayout.getLineForOffset(offset);
- final int lineTop = mLayout.getLineTop(line);
- float primaryHorizontal = mLayout.getPrimaryHorizontal(offset);
+ @Override
+ protected int getTextOffset() {
+ return (getSelectionStart() + getSelectionEnd()) / 2;
+ }
- final Rect bounds = sCursorControllerTempRect;
- bounds.left = (int) (primaryHorizontal - width / 2.0f);
- bounds.top = lineTop - height;
+ @Override
+ protected int getVerticalLocalPosition(int line) {
+ return mLayout.getLineTop(line) - mContentView.getMeasuredHeight();
+ }
- bounds.right = bounds.left + width;
- bounds.bottom = bounds.top + height;
-
- convertFromViewportToContentCoordinates(bounds);
-
- final int[] coords = mTempCoords;
- TextView.this.getLocationInWindow(coords);
- coords[0] += bounds.left;
- coords[1] += bounds.top;
-
- // Vertical clipping, move under edited line and to the side of insertion cursor
- if (coords[1] < 0) {
- coords[1] += height;
- final int lineBottom = mLayout.getLineBottom(line);
- final int lineHeight = lineBottom - lineTop;
- coords[1] += lineHeight;
+ @Override
+ protected int clipVertically(int positionY) {
+ if (positionY < 0) {
+ final int offset = getTextOffset();
+ final int line = mLayout.getLineForOffset(offset);
+ positionY += mLayout.getLineBottom(line) - mLayout.getLineTop(line);
+ positionY += mContentView.getMeasuredHeight();
// Assumes insertion and selection handles share the same height
final Drawable handle = mContext.getResources().getDrawable(mTextSelectHandleRes);
- coords[1] += handle.getIntrinsicHeight();
+ positionY += handle.getIntrinsicHeight();
}
- // Horizontal clipping
- coords[0] = Math.max(0, coords[0]);
- final int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
- coords[0] = Math.min(screenWidth - width, coords[0]);
-
- mPopupWindow.showAtLocation(TextView.this, Gravity.NO_GRAVITY, coords[0], coords[1]);
+ return positionY;
}
public void setShowWithPaste(boolean withPaste) {
@@ -9571,7 +9728,7 @@
}
}
- private abstract class HandleView extends View implements ViewTreeObserver.OnPreDrawListener {
+ private abstract class HandleView extends View implements TextViewPositionListener {
protected Drawable mDrawable;
private final PopupWindow mContainer;
// Position with respect to the parent TextView
@@ -9579,21 +9736,19 @@
private boolean mIsDragging;
// Offset from touch position to mPosition
private float mTouchToWindowOffsetX, mTouchToWindowOffsetY;
- protected float mHotspotX;
+ protected int mHotspotX;
// Offsets the hotspot point up, so that cursor is not hidden by the finger when moving up
private float mTouchOffsetY;
// Where the touch position should be on the handle to ensure a maximum cursor visibility
private float mIdealVerticalOffset;
// Parent's (TextView) previous position in window
private int mLastParentX, mLastParentY;
- // PopupWindow container absolute position with respect to the enclosing window
- private int mContainerPositionX, mContainerPositionY;
- // Visible or not (scrolled off screen), whether or not this handle should be visible
- private boolean mIsActive = false;
- // Used to detect that setFrame was called
- private boolean mNeedsUpdate = true;
// Transient action popup window for Paste and Replace actions
protected ActionPopupWindow mActionPopupWindow;
+ // Previous text character offset
+ private int mPreviousOffset = -1;
+ // Previous text character offset
+ private boolean mPositionHasChanged = true;
// Used to delay the appearance of the action popup window
private Runnable mActionPopupShower;
@@ -9613,15 +9768,6 @@
mIdealVerticalOffset = 0.7f * handleHeight;
}
- @Override
- protected boolean setFrame(int left, int top, int right, int bottom) {
- boolean changed = super.setFrame(left, top, right, bottom);
- // onPreDraw is called for PhoneWindow before the layout of this view is
- // performed. Make sure to update position, even if container didn't move.
- if (changed) mNeedsUpdate = true;
- return changed;
- }
-
protected abstract void initDrawable();
// Touch-up filter: number of previous positions remembered
@@ -9639,12 +9785,6 @@
}
private void addPositionToTouchUpFilter(int offset) {
- if (mNumberPreviousOffsets > 0 &&
- mPreviousOffsets[mPreviousOffsetIndex] == offset) {
- // Make sure only actual changes of position are recorded.
- return;
- }
-
mPreviousOffsetIndex = (mPreviousOffsetIndex + 1) % HISTORY_SIZE;
mPreviousOffsets[mPreviousOffsetIndex] = offset;
mPreviousOffsetsTimes[mPreviousOffsetIndex] = SystemClock.uptimeMillis();
@@ -9663,28 +9803,28 @@
if (i > 0 && i < iMax &&
(now - mPreviousOffsetsTimes[index]) > TOUCH_UP_FILTER_DELAY_BEFORE) {
- updateOffset(mPreviousOffsets[index]);
+ positionAtCursorOffset(mPreviousOffsets[index]);
}
}
+ public boolean offsetHasBeenChanged() {
+ return mNumberPreviousOffsets > 1;
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight());
}
public void show() {
- if (isShowing()) {
- mContainer.update(mContainerPositionX, mContainerPositionY, -1, -1);
- } else {
- mContainer.showAtLocation(TextView.this, 0,
- mContainerPositionX, mContainerPositionY);
+ if (isShowing()) return;
- if (!mIsActive) {
- ViewTreeObserver vto = TextView.this.getViewTreeObserver();
- vto.addOnPreDrawListener(this);
- mIsActive = true;
- }
- }
+ getPositionListener().addSubscriber(this, true);
+
+ // Make sure the offset is always considered new, even when focusing at same position
+ mPreviousOffset = -1;
+ positionAtCursorOffset(getCurrentCursorOffset());
+
hideActionPopupWindow();
}
@@ -9697,9 +9837,7 @@
public void hide() {
dismiss();
- ViewTreeObserver vto = TextView.this.getViewTreeObserver();
- vto.removeOnPreDrawListener(this);
- mIsActive = false;
+ TextView.this.getPositionListener().removeSubscriber(this);
}
void showActionPopupWindow(int delay, boolean withPaste) {
@@ -9732,7 +9870,7 @@
return mContainer.isShowing();
}
- private boolean isPositionVisible() {
+ private boolean isVisible() {
// Always show a dragging handle.
if (mIsDragging) {
return true;
@@ -9742,103 +9880,71 @@
return false;
}
- final int extendedPaddingTop = getExtendedPaddingTop();
- final int extendedPaddingBottom = getExtendedPaddingBottom();
- final int compoundPaddingLeft = getCompoundPaddingLeft();
- final int compoundPaddingRight = getCompoundPaddingRight();
-
- final TextView textView = TextView.this;
-
- if (mTempRect == null) mTempRect = new Rect();
- final Rect clip = mTempRect;
- clip.left = compoundPaddingLeft;
- clip.top = extendedPaddingTop;
- clip.right = textView.getWidth() - compoundPaddingRight;
- clip.bottom = textView.getHeight() - extendedPaddingBottom;
-
- final ViewParent parent = textView.getParent();
- if (parent == null || !parent.getChildVisibleRect(textView, clip, null)) {
- return false;
- }
-
- final int[] coords = mTempCoords;
- textView.getLocationInWindow(coords);
- final int posX = coords[0] + mPositionX + (int) mHotspotX;
- final int posY = coords[1] + mPositionY;
-
- // Offset by 1 to take into account 0.5 and int rounding around getPrimaryHorizontal.
- return posX >= clip.left - 1 && posX <= clip.right + 1 &&
- posY >= clip.top && posY <= clip.bottom;
+ return getPositionListener().isVisible(mPositionX + mHotspotX, mPositionY);
}
public abstract int getCurrentCursorOffset();
- public abstract void updateOffset(int offset);
+ public abstract void updateSelection(int offset);
public abstract void updatePosition(float x, float y);
protected void positionAtCursorOffset(int offset) {
- // A HandleView relies on the layout, which may be nulled by external methods.
+ // A HandleView relies on the layout, which may be nulled by external methods
if (mLayout == null) {
// Will update controllers' state, hiding them and stopping selection mode if needed
prepareCursorControllers();
return;
}
- addPositionToTouchUpFilter(offset);
- final int line = mLayout.getLineForOffset(offset);
- final int lineBottom = mLayout.getLineBottom(line);
+ if (offset != mPreviousOffset) {
+ updateSelection(offset);
+ addPositionToTouchUpFilter(offset);
+ final int line = mLayout.getLineForOffset(offset);
- mPositionX = (int) (mLayout.getPrimaryHorizontal(offset) - 0.5f - mHotspotX);
- mPositionY = lineBottom;
+ mPositionX = (int) (mLayout.getPrimaryHorizontal(offset) - 0.5f - mHotspotX);
+ mPositionY = mLayout.getLineBottom(line);
- // Take TextView's padding into account.
- mPositionX += viewportToContentHorizontalOffset();
- mPositionY += viewportToContentVerticalOffset();
+ // Take TextView's padding into account.
+ mPositionX += viewportToContentHorizontalOffset();
+ mPositionY += viewportToContentVerticalOffset();
+
+ mPreviousOffset = offset;
+ mPositionHasChanged = true;
+ }
}
- private void checkForContainerPositionChange() {
- positionAtCursorOffset(getCurrentCursorOffset());
-
- final int previousContainerPositionX = mContainerPositionX;
- final int previousContainerPositionY = mContainerPositionY;
-
- TextView.this.getLocationInWindow(mTempCoords);
- mContainerPositionX = mTempCoords[0] + mPositionX;
- mContainerPositionY = mTempCoords[1] + mPositionY;
-
- mNeedsUpdate |= previousContainerPositionX != mContainerPositionX;
- mNeedsUpdate |= previousContainerPositionY != mContainerPositionY;
- }
-
- public boolean onPreDraw() {
- checkForContainerPositionChange();
- if (mNeedsUpdate) {
+ public void updatePosition(int parentPositionX, int parentPositionY, boolean modified) {
+ if (modified || mPositionHasChanged) {
if (mIsDragging) {
- if (mTempCoords[0] != mLastParentX || mTempCoords[1] != mLastParentY) {
- mTouchToWindowOffsetX += mTempCoords[0] - mLastParentX;
- mTouchToWindowOffsetY += mTempCoords[1] - mLastParentY;
- mLastParentX = mTempCoords[0];
- mLastParentY = mTempCoords[1];
+ // Update touchToWindow offset in case of parent scrolling while dragging
+ if (parentPositionX != mLastParentX || parentPositionY != mLastParentY) {
+ mTouchToWindowOffsetX += parentPositionX - mLastParentX;
+ mTouchToWindowOffsetY += parentPositionY - mLastParentY;
+ mLastParentX = parentPositionX;
+ mLastParentY = parentPositionY;
}
onHandleMoved();
}
- if (isPositionVisible()) {
- mContainer.update(mContainerPositionX, mContainerPositionY, -1, -1);
-
- if (mIsActive && !isShowing()) {
- show();
+ if (isVisible()) {
+ final int positionX = parentPositionX + mPositionX;
+ final int positionY = parentPositionY + mPositionY;
+ if (isShowing()) {
+ mContainer.update(positionX, positionY, -1, -1);
+ } else {
+ mContainer.showAtLocation(TextView.this, Gravity.NO_GRAVITY,
+ positionX, positionY);
}
} else {
if (isShowing()) {
dismiss();
}
}
- mNeedsUpdate = false;
+
+ mPositionHasChanged = false;
}
- return true;
}
@Override
@@ -9855,10 +9961,9 @@
mTouchToWindowOffsetX = ev.getRawX() - mPositionX;
mTouchToWindowOffsetY = ev.getRawY() - mPositionY;
- final int[] coords = mTempCoords;
- TextView.this.getLocationInWindow(coords);
- mLastParentX = coords[0];
- mLastParentY = coords[1];
+ final PositionListener positionListener = getPositionListener();
+ mLastParentX = positionListener.getPositionX();
+ mLastParentY = positionListener.getPositionY();
mIsDragging = true;
break;
}
@@ -9961,7 +10066,7 @@
mTextSelectHandleRes);
}
mDrawable = mSelectHandleCenter;
- mHotspotX = mDrawable.getIntrinsicWidth() / 2.0f;
+ mHotspotX = mDrawable.getIntrinsicWidth() / 2;
}
@Override
@@ -9975,15 +10080,17 @@
break;
case MotionEvent.ACTION_UP:
- final float deltaX = mDownPositionX - ev.getRawX();
- final float deltaY = mDownPositionY - ev.getRawY();
- final float distanceSquared = deltaX * deltaX + deltaY * deltaY;
- if (distanceSquared < mSquaredTouchSlopDistance) {
- if (mActionPopupWindow != null && mActionPopupWindow.isShowing()) {
- // Tapping on the handle dismisses the displayed action popup
- mActionPopupWindow.hide();
- } else {
- show(0);
+ if (!offsetHasBeenChanged()) {
+ final float deltaX = mDownPositionX - ev.getRawX();
+ final float deltaY = mDownPositionY - ev.getRawY();
+ final float distanceSquared = deltaX * deltaX + deltaY * deltaY;
+ if (distanceSquared < mSquaredTouchSlopDistance) {
+ if (mActionPopupWindow != null && mActionPopupWindow.isShowing()) {
+ // Tapping on the handle dismisses the displayed action popup
+ mActionPopupWindow.hide();
+ } else {
+ show(0);
+ }
}
}
hideAfterDelay();
@@ -10006,13 +10113,13 @@
}
@Override
- public void updateOffset(int offset) {
+ public void updateSelection(int offset) {
Selection.setSelection((Spannable) mText, offset);
}
@Override
public void updatePosition(float x, float y) {
- updateOffset(getOffsetForPosition(x, y));
+ positionAtCursorOffset(getOffsetForPosition(x, y));
}
@Override
@@ -10036,7 +10143,7 @@
mTextSelectHandleLeftRes);
}
mDrawable = mSelectHandleLeft;
- mHotspotX = mDrawable.getIntrinsicWidth() * 3.0f / 4.0f;
+ mHotspotX = (mDrawable.getIntrinsicWidth() * 3) / 4;
}
@Override
@@ -10045,7 +10152,7 @@
}
@Override
- public void updateOffset(int offset) {
+ public void updateSelection(int offset) {
Selection.setSelection((Spannable) mText, offset, getSelectionEnd());
}
@@ -10061,7 +10168,7 @@
// Handles can not cross and selection is at least one character
if (offset >= selectionEnd) offset = selectionEnd - 1;
- Selection.setSelection((Spannable) mText, offset, selectionEnd);
+ positionAtCursorOffset(offset);
}
public ActionPopupWindow getActionPopupWindow() {
@@ -10077,7 +10184,7 @@
mTextSelectHandleRightRes);
}
mDrawable = mSelectHandleRight;
- mHotspotX = mDrawable.getIntrinsicWidth() / 4.0f;
+ mHotspotX = mDrawable.getIntrinsicWidth() / 4;
}
@Override
@@ -10086,7 +10193,7 @@
}
@Override
- public void updateOffset(int offset) {
+ public void updateSelection(int offset) {
Selection.setSelection((Spannable) mText, getSelectionStart(), offset);
}
@@ -10102,7 +10209,7 @@
// Handles can not cross and selection is at least one character
if (offset <= selectionStart) offset = selectionStart + 1;
- Selection.setSelection((Spannable) mText, selectionStart, offset);
+ positionAtCursorOffset(offset);
}
public void setActionPopupWindow(ActionPopupWindow actionPopupWindow) {
diff --git a/core/java/com/android/internal/content/NativeLibraryHelper.java b/core/java/com/android/internal/content/NativeLibraryHelper.java
index 1531946..6d65782 100644
--- a/core/java/com/android/internal/content/NativeLibraryHelper.java
+++ b/core/java/com/android/internal/content/NativeLibraryHelper.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.android.internal.content;
import android.os.Build;
@@ -17,6 +33,12 @@
private static native long nativeSumNativeBinaries(String file, String cpuAbi, String cpuAbi2);
+ /**
+ * Sums the size of native binaries in an APK.
+ *
+ * @param apkFile APK file to scan for native libraries
+ * @return size of all native binary files in bytes
+ */
public static long sumNativeBinariesLI(File apkFile) {
final String cpuAbi = Build.CPU_ABI;
final String cpuAbi2 = Build.CPU_ABI2;
@@ -26,6 +48,14 @@
private native static int nativeCopyNativeBinaries(String filePath, String sharedLibraryPath,
String cpuAbi, String cpuAbi2);
+ /**
+ * Copies native binaries to a shared library directory.
+ *
+ * @param apkFile APK file to scan for native libraries
+ * @param sharedLibraryDir directory for libraries to be copied to
+ * @return {@link PackageManager#INSTALL_SUCCEEDED} if successful or another
+ * error code from that class if not
+ */
public static int copyNativeBinariesIfNeededLI(File apkFile, File sharedLibraryDir) {
final String cpuAbi = Build.CPU_ABI;
final String cpuAbi2 = Build.CPU_ABI2;
diff --git a/core/java/com/android/internal/content/PackageHelper.java b/core/java/com/android/internal/content/PackageHelper.java
index ec64552..266728b 100644
--- a/core/java/com/android/internal/content/PackageHelper.java
+++ b/core/java/com/android/internal/content/PackageHelper.java
@@ -39,6 +39,8 @@
public static final int RECOMMEND_FAILED_INVALID_LOCATION = -3;
public static final int RECOMMEND_FAILED_ALREADY_EXISTS = -4;
public static final int RECOMMEND_MEDIA_UNAVAILABLE = -5;
+ public static final int RECOMMEND_FAILED_INVALID_URI = -6;
+
private static final boolean localLOGV = true;
private static final String TAG = "PackageHelper";
// App installation location settings values
diff --git a/core/java/com/android/internal/nfc/LlcpConnectionlessSocket.java b/core/java/com/android/internal/nfc/LlcpConnectionlessSocket.java
deleted file mode 100644
index a9cf6b8..0000000
--- a/core/java/com/android/internal/nfc/LlcpConnectionlessSocket.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-import android.nfc.ErrorCodes;
-import android.nfc.ILlcpConnectionlessSocket;
-import android.nfc.LlcpPacket;
-import android.os.RemoteException;
-import android.util.Log;
-
-public class LlcpConnectionlessSocket {
- private static final String TAG = "LlcpConnectionlessSocket";
-
- /**
- * The handle returned by the NFC service and used to identify the LLCP connectionless socket in
- * every call of this class.
- */
- protected int mHandle;
-
-
- /**
- * The entry point for LLCP Connectionless socket operations.
- */
- protected ILlcpConnectionlessSocket mService;
-
-
- /**
- * Internal constructor for the LlcpConnectionlessSocket class.
- *
- * @param service The entry point to the Nfc Service for LLCP Connectionless socket class.
- * @param handle The handle returned by the NFC service and used to identify
- * the socket in subsequent calls.
- */
- LlcpConnectionlessSocket(ILlcpConnectionlessSocket service, int handle) {
- this.mService = service;
- this.mHandle = handle;
- }
-
- /**
- * Send data to a specific LLCP Connectionless client
- *
- * @param packet Service Access Point number related to a LLCP
- * Connectionless client and a data buffer to send
- * @throws IOException if the LLCP link has been lost or deactivated.
- */
- public void sendTo(LlcpPacket packet) throws IOException {
- try {
- int result = mService.sendTo(mHandle, packet);
- // Handle potential errors
- if (ErrorCodes.isError(result)) {
- throw new IOException();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in sendTo(): ", e);
- }
- }
-
- /**
- * Receive data from a LLCP Connectionless client
- *
- * @return data data received from a specific LLCP Connectionless client
- * @throws IOException if the LLCP link has been lost or deactivated.
- * @see LlcpPacket
- */
- public LlcpPacket receiveFrom() throws IOException {
- try {
- LlcpPacket packet = mService.receiveFrom(mHandle);
- if (packet != null) {
- return packet;
- }else{
- // Handle potential errors
- throw new IOException();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in receiveFrom(): ", e);
- }
- return null;
- }
-
- /**
- * Close the created Connectionless socket.
- */
- public void close() {
- try {
- mService.close(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in close(): ", e);
- }
- }
-
- /**
- * Returns the local Service Access Point number of the socket
- *
- * @return sap
- */
- public int getSap() {
- int sap = 0;
-
- try {
- sap = mService.getSap(mHandle);
-
- } catch (RemoteException e) {
-
- e.printStackTrace();
- }
- return sap;
- }
-}
diff --git a/core/java/com/android/internal/nfc/LlcpException.java b/core/java/com/android/internal/nfc/LlcpException.java
deleted file mode 100644
index da4e91e..0000000
--- a/core/java/com/android/internal/nfc/LlcpException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-/**
- * Generic exception thrown in case something unexpected happened during a
- * LLCP communication.
- */
-public class LlcpException extends Exception {
- /**
- * Constructs a new LlcpException with the current stack trace and the
- * specified detail message.
- *
- * @param s the detail message for this exception.
- */
- public LlcpException(String s) {
- super(s);
- }
-}
diff --git a/core/java/com/android/internal/nfc/LlcpServiceSocket.java b/core/java/com/android/internal/nfc/LlcpServiceSocket.java
deleted file mode 100644
index d616860..0000000
--- a/core/java/com/android/internal/nfc/LlcpServiceSocket.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-import android.nfc.ErrorCodes;
-import android.nfc.ILlcpSocket;
-import android.nfc.ILlcpServiceSocket;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * LlcpServiceSocket represents a LLCP Service to be used in a
- * Connection-oriented communication
- */
-public class LlcpServiceSocket {
-
- private static final String TAG = "LlcpServiceSocket";
-
- /**
- * The handle returned by the NFC service and used to identify the LLCP
- * Service socket in every call of this class.
- */
- protected int mHandle;
-
- /**
- * The entry point for LLCP Service socket operations.
- */
- protected ILlcpServiceSocket mService;
-
- private final ILlcpSocket mLlcpSocketService;
-
- static LlcpException convertErrorToLlcpException(int errorCode) {
- return convertErrorToLlcpException(errorCode, null);
- }
-
- static LlcpException convertErrorToLlcpException(int errorCode,
- String message) {
- if (message == null) {
- message = "";
- } else {
- message = " (" + message + ")";
- }
-
- switch (errorCode) {
- case ErrorCodes.ERROR_SOCKET_CREATION:
- return new LlcpException(
- "Error during the creation of an Llcp socket" + message);
- case ErrorCodes.ERROR_INSUFFICIENT_RESOURCES:
- return new LlcpException("Not enough ressources are available"
- + message);
- default:
- return new LlcpException("Unkown error code " + errorCode + message);
- }
- }
-
- /**
- * Internal constructor for the LlcpServiceSocket class.
- *
- * @param service
- * The entry point to the Nfc Service for LlcpServiceSocket
- * class.
- * @param handle
- * The handle returned by the NFC service and used to identify
- * the socket in subsequent calls.
- * @hide
- */
- public LlcpServiceSocket(ILlcpServiceSocket service, ILlcpSocket socketService, int handle) {
- this.mService = service;
- this.mHandle = handle;
- this.mLlcpSocketService = socketService;
- }
-
- /**
- * Wait for incomming connection request from a LLCP client and accept this
- * request
- *
- * @return socket object to be used to communicate with a LLCP client
- *
- * @throws IOException
- * if the llcp link is lost or deactivated
- * @throws LlcpException
- * if not enough ressources are available
- *
- * @see LlcpSocket
- */
- public LlcpSocket accept() throws IOException, LlcpException {
-
- try {
- int handle = mService.accept(mHandle);
- // Handle potential errors
- if (ErrorCodes.isError(handle)) {
- if (handle == ErrorCodes.ERROR_IO) {
- throw new IOException();
- } else {
- throw convertErrorToLlcpException(handle);
- }
- }
-
- // Build the public LlcpSocket object
- return new LlcpSocket(mLlcpSocketService, handle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in accept(): ", e);
- return null;
- }
-
- }
-
- /**
- * Close the created Llcp Service socket
- */
- public void close() {
- try {
- mService.close(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in close(): ", e);
- }
- }
-}
diff --git a/core/java/com/android/internal/nfc/LlcpSocket.java b/core/java/com/android/internal/nfc/LlcpSocket.java
deleted file mode 100644
index 63888ae..0000000
--- a/core/java/com/android/internal/nfc/LlcpSocket.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-import android.nfc.ErrorCodes;
-import android.nfc.ILlcpSocket;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * LlcpClientSocket represents a LLCP Connection-Oriented client to be used in a
- * connection-oriented communication
- */
-public class LlcpSocket {
-
- private static final String TAG = "LlcpSocket";
-
- /**
- * The handle returned by the NFC service and used to identify the LLCP
- * socket in every call of this class.
- */
- protected int mHandle;
-
- /**
- * The entry point for LLCP socket operations.
- */
- protected ILlcpSocket mService;
-
- static LlcpException convertErrorToLlcpException(int errorCode) {
- return convertErrorToLlcpException(errorCode, null);
- }
-
- static LlcpException convertErrorToLlcpException(int errorCode,
- String message) {
- if (message == null) {
- message = "";
- } else {
- message = " (" + message + ")";
- }
-
- switch (errorCode) {
- case ErrorCodes.ERROR_SOCKET_CREATION:
- return new LlcpException(
- "Error during the creation of an Llcp socket" + message);
- case ErrorCodes.ERROR_INSUFFICIENT_RESOURCES:
- return new LlcpException("Not enough ressources are available"
- + message);
- case ErrorCodes.ERROR_SOCKET_NOT_CONNECTED:
- return new LlcpException("Socket not connected to an Llcp Service"
- + message);
- default:
- return new LlcpException("Unkown error code " + errorCode + message);
- }
- }
-
- /**
- * Internal constructor for the LlcpSocket class.
- *
- * @param service
- * The entry point to the Nfc Service for LlcpServiceSocket
- * class.
- * @param handle
- * The handle returned by the NFC service and used to identify
- * the socket in subsequent calls.
- * @hide
- */
- public LlcpSocket(ILlcpSocket service, int handle) {
- this.mService = service;
- this.mHandle = handle;
- }
-
- /**
- * Connect request to a specific LLCP Service by its SAP.
- *
- * @param sap
- * Service Access Point number of the LLCP Service
- * @throws IOException
- * if the LLCP has been lost or deactivated.
- * @throws LlcpException
- * if the connection request is rejected by the remote LLCP
- * Service
- */
- public void connect(int sap) throws IOException, LlcpException {
- try {
- int result = mService.connect(mHandle, sap);
- // Handle potential errors
- if (ErrorCodes.isError(result)) {
- if (result == ErrorCodes.ERROR_IO) {
- throw new IOException();
- } else {
- throw convertErrorToLlcpException(result);
- }
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in accept(): ", e);
- }
- }
-
- /**
- * Connect request to a specific LLCP Service by its Service Name.
- *
- * @param sn
- * Service Name of the LLCP Service
- * @throws IOException
- * if the LLCP has been lost or deactivated.
- * @throws LlcpException
- * if the connection request is rejected by the remote LLCP
- * Service
- */
- public void connect(String sn) throws IOException, LlcpException {
- try {
- int result = mService.connectByName(mHandle, sn);
- // Handle potential errors
- if (ErrorCodes.isError(result)) {
- if (result == ErrorCodes.ERROR_IO) {
- throw new IOException();
- } else {
- throw convertErrorToLlcpException(result);
- }
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in accept(): ", e);
- }
- }
-
- /**
- * Disconnect request to the connected LLCP socket and close the created
- * socket.
- *
- * @throws IOException
- * if the LLCP has been lost or deactivated.
- */
- public void close() throws IOException {
- try {
- int result = mService.close(mHandle);
- // Handle potential errors
- if (ErrorCodes.isError(result)) {
- throw new IOException();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in close(): ", e);
- }
- }
-
- /**
- * Send data to the connected LLCP Socket.
- *
- * @throws IOException
- * if the LLCP has been lost or deactivated.
- */
- public void send(byte[] data) throws IOException {
- try {
- int result = mService.send(mHandle, data);
- // Handle potential errors
- if (ErrorCodes.isError(result)) {
- throw new IOException();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in send(): ", e);
- }
- }
-
- /**
- * Receive data from the connected LLCP socket
- *
- * @param receiveBuffer
- * a buffer for the received data
- * @return length length of the data received
- * @throws IOException
- * if the LLCP has been lost or deactivated.
- */
- public int receive(byte[] receiveBuffer) throws IOException {
- int receivedLength = 0;
- try {
- receivedLength = mService.receive(mHandle, receiveBuffer);
- if(receivedLength == 0){
- throw new IOException();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in receive(): ", e);
- }
-
- return receivedLength;
- }
-
- /**
- * Returns the local Service Access Point number of the socket
- *
- * @return localSap
- */
- public int getLocalSap() {
- try {
- return mService.getLocalSap(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getLocalSap(): ", e);
- return 0;
- }
- }
-
- /**
- * Returns the local Maximum Information Unit(MIU) of the socket
- *
- * @return miu
- */
- public int getLocalSocketMiu() {
- try {
- return mService.getLocalSocketMiu(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getLocalSocketMiu(): ", e);
- return 0;
- }
- }
-
- /**
- * Returns the local Receive Window(RW) of the socket
- *
- * @return rw
- */
- public int getLocalSocketRw() {
- try {
- return mService.getLocalSocketRw(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getLocalSocketRw(): ", e);
- return 0;
- }
- }
-
- /**
- * Returns the remote Maximum Information Unit(MIU) of the socket.
- * <p>
- * This method must be called when the socket is in CONNECTED_STATE
- *
- * @return remoteMiu
- * @throws LlcpException
- * if the LlcpClientSocket is not in a CONNECTED_STATE
- */
- public int getRemoteSocketMiu() throws LlcpException {
- try {
- int result = mService.getRemoteSocketMiu(mHandle);
- if(result != ErrorCodes.ERROR_SOCKET_NOT_CONNECTED){
- return result;
- }else{
- throw convertErrorToLlcpException(result);
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getRemoteSocketMiu(): ", e);
- return 0;
- }
- }
-
- /**
- * Returns the remote Receive Window(RW) of the connected remote socket.
- * <p>
- * This method must be called when the socket is in CONNECTED_STATE
- *
- * @return rw
- * @throws LlcpException
- * if the LlcpClientSocket is not in a CONNECTED_STATE
- */
- public int getRemoteSocketRw() throws LlcpException {
- try {
- int result = mService.getRemoteSocketRw(mHandle);
- if( result != ErrorCodes.ERROR_SOCKET_NOT_CONNECTED){
- return result;
- }else{
- throw convertErrorToLlcpException(result);
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getRemoteSocketRw(): ", e);
- return 0;
- }
- }
-}
diff --git a/core/java/com/android/internal/nfc/NfcException.java b/core/java/com/android/internal/nfc/NfcException.java
deleted file mode 100644
index 29a99c6..0000000
--- a/core/java/com/android/internal/nfc/NfcException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-/**
- * Generic exception thrown in case something unexpected happened during the
- * NFCManager operations.
- */
-public class NfcException extends Exception {
- /**
- * Constructs a new NfcException with the current stack trace and the
- * specified detail message.
- *
- * @param s the detail message for this exception.
- */
- public NfcException(String s) {
- super(s);
- }
-}
diff --git a/core/java/com/android/internal/nfc/P2pDevice.java b/core/java/com/android/internal/nfc/P2pDevice.java
deleted file mode 100644
index 8ab9aad..0000000
--- a/core/java/com/android/internal/nfc/P2pDevice.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-/**
- * P2pDevice is the abstract base class for all supported P2P targets the
- * NfcManager can handle.
- */
-public abstract class P2pDevice {
-
- /**
- * Peer-to-Peer Target.
- */
- public static final short MODE_P2P_TARGET = 0x00;
-
- /**
- * Peer-to-Peer Initiator.
- */
- public static final short MODE_P2P_INITIATOR = 0x01;
-
- /**
- * Invalid target type.
- */
- public static final short MODE_INVALID = 0xff;
-
- /**
- * Target handle, used by native calls.
- */
- protected int mHandle;
-
- /**
- * Flag set when the object is closed and thus not usable any more.
- */
- protected boolean isClosed = false;
-
- /**
- * Prevent default constructor to be public.
- */
- protected P2pDevice() {
- }
-
- /**
- * Returns the remote NFC-IP1 General Bytes.
- *
- * @return remote general bytes
- * @throws IOException
- */
- public byte[] getGeneralBytes() throws IOException {
- // Should not be called directly (use subclasses overridden method instead)
- return null;
- }
-
- /**
- * Returns target type. The value returned can be one of the TYPE_*
- * constants.
- *
- * @return target type.
- */
- public int getMode() {
- // Should not be called directly (use subclasses overridden method instead)
- return MODE_INVALID;
- }
-}
diff --git a/core/java/com/android/internal/nfc/P2pInitiator.java b/core/java/com/android/internal/nfc/P2pInitiator.java
deleted file mode 100644
index 46ae9ab..0000000
--- a/core/java/com/android/internal/nfc/P2pInitiator.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-import android.nfc.IP2pInitiator;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * P2pInitiator represents the initiator in an NFC-IP1 peer-to-peer
- * communication.
- *
- * @see P2pTarget
- */
-public class P2pInitiator extends P2pDevice {
-
- private static final String TAG = "P2pInitiator";
-
- /**
- * The entry point for P2P tag operations.
- */
- private final IP2pInitiator mService;
-
- /**
- * Internal constructor for the P2pInitiator class.
- *
- * @param handle The handle returned by the NFC service and used to identify
- * the tag in subsequent calls.
- */
- P2pInitiator(IP2pInitiator service, int handle) {
- this.mService = service;
- this.mHandle = handle;
- }
-
- /**
- * Receives data from a P2pInitiator.
- *
- * @return data sent by the P2pInitiator.
- * @throws IOException if the target has been lost or if the connection has
- * been closed.
- */
- public byte[] receive() throws IOException {
- try {
- byte[] result = mService.receive(mHandle);
- if (result == null) {
- throw new IOException("Tag has been lost");
- }
- return result;
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in receive(): ", e);
- return null;
- }
- }
-
- /**
- * Sends data to a P2pInitiator.
- *
- * @param data data to be sent to the P2pInitiator.
- * @throws IOException if the target has been lost or if the connection has
- * been closed.
- */
- public void send(byte[] data) throws IOException {
- try {
- boolean isSuccess = mService.send(mHandle, data);
- if (!isSuccess) {
- throw new IOException("Tag has been lost");
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in send(): ", e);
- }
- }
-
- @Override
- public byte[] getGeneralBytes() {
- try {
- return mService.getGeneralBytes(mHandle);
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getGeneralBytes(): ", e);
- return null;
- }
- }
-
- @Override
- public int getMode() {
- return P2pDevice.MODE_P2P_INITIATOR;
- }
-
-}
diff --git a/core/java/com/android/internal/nfc/P2pTarget.java b/core/java/com/android/internal/nfc/P2pTarget.java
deleted file mode 100644
index 7b59da3..0000000
--- a/core/java/com/android/internal/nfc/P2pTarget.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.nfc;
-
-import java.io.IOException;
-
-import android.nfc.ErrorCodes;
-import android.nfc.IP2pTarget;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * P2pTarget represents the target in an NFC-IP1 peer-to-peer communication.
- *
- * @see P2pInitiator
- */
-public class P2pTarget extends P2pDevice {
-
- private static final String TAG = "P2pTarget";
-
- /**
- * The entry point for P2P tag operations.
- */
- private final IP2pTarget mService;
-
- /**
- * Flag set when the object is closed and thus not usable any more.
- */
- private final boolean isClosed = false;
-
- /**
- * Flag set when the tag is connected.
- */
- private boolean isConnected = false;
-
- /**
- * Check if tag is still opened.
- *
- * @return data sent by the P2pInitiator.
- * @throws NfcException if accessing a closed target.
- */
- public void checkState() throws NfcException {
- if(isClosed) {
- throw new NfcException("Tag has been closed.");
- }
- }
-
- /**
- * Internal constructor for the P2pTarget class.
- *
- * @param handle The handle returned by the NFC service and used to identify
- * the tag in subsequent calls.
- */
- P2pTarget(IP2pTarget service, int handle) {
- this.mService = service;
- this.mHandle = handle;
- }
-
- /**
- * Connects to the P2pTarget. This shall be called prior to any other
- * operation on the P2pTarget.
- *
- * @throws NfcException
- */
- public void connect() throws NfcException {
- // Check state
- checkState();
- if (isConnected) {
- throw new NfcException("Already connected");
- }
-
- // Perform connect
- try {
- int result = mService.connect(mHandle);
- if (ErrorCodes.isError(result)) {
- if (result == ErrorCodes.ERROR_IO) {
- throw new NfcException("Failed to connect");
- }
- else {
- // TODO(nxp)
- // throw NfcAdapter.convertErrorToNfcException(result);
- }
- }
- isConnected = true;
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in connect(): ", e);
- }
- }
-
- /**
- * Disconnects from the P2p Target. This must be called so that other
- * targets can be discovered. It restarts the NFC discovery loop.
- *
- * @throws NFCException
- */
- public void disconnect() throws NfcException {
- checkState();
- try {
- mService.disconnect(mHandle);
- isConnected = true;
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in disconnect(): ", e);
- }
- }
-
- /**
- * Exchanges raw data with the P2pTarget.
- *
- * @param data data to be sent to the P2pTarget
- * @return data sent in response by the P2pTarget
- * @throws IOException if the target has been lost or the connection has
- * been closed.
- * @throws NfcException in case of failure within the stack
- */
- public byte[] transceive(byte[] data) throws IOException, NfcException {
- // Check state
- checkState();
-
- // Perform transceive
- try {
- byte[] response = mService.transceive(mHandle, data);
- if (response == null) {
- throw new IOException("Transceive failed");
- }
- return response;
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in transceive(): ", e);
- return null;
- }
- }
-
- /**
- * Get the General bytes of the connected P2P Target
- *
- * @return general bytes of the connected P2P Target
- * @throws IOException if the target in not in connected state
- */
- @Override
- public byte[] getGeneralBytes() throws IOException {
- try {
- if(isConnected){
- return mService.getGeneralBytes(mHandle);
- }else{
- throw new IOException("Target not in connected state");
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException in getGeneralBytes(): ", e);
- return null;
- }
- }
-
- @Override
- public int getMode() {
- return P2pDevice.MODE_P2P_TARGET;
- }
-}
diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java
index 7839a08..5e70e4c 100644
--- a/core/java/com/android/internal/view/menu/MenuBuilder.java
+++ b/core/java/com/android/internal/view/menu/MenuBuilder.java
@@ -150,6 +150,11 @@
private CopyOnWriteArrayList<WeakReference<MenuPresenter>> mPresenters =
new CopyOnWriteArrayList<WeakReference<MenuPresenter>>();
+
+ /**
+ * Currently expanded menu item; must be collapsed when we clear.
+ */
+ private MenuItemImpl mExpandedItem;
/**
* Called by menu to notify of close and selection changes.
@@ -512,6 +517,9 @@
}
public void clear() {
+ if (mExpandedItem != null) {
+ collapseItemActionView(mExpandedItem);
+ }
mItems.clear();
onItemsChanged(true);
@@ -1223,11 +1231,14 @@
}
startDispatchingItemsChanged();
+ if (expanded) {
+ mExpandedItem = item;
+ }
return expanded;
}
public boolean collapseItemActionView(MenuItemImpl item) {
- if (mPresenters.isEmpty()) return false;
+ if (mPresenters.isEmpty() || mExpandedItem != item) return false;
boolean collapsed = false;
@@ -1242,6 +1253,9 @@
}
startDispatchingItemsChanged();
+ if (collapsed) {
+ mExpandedItem = null;
+ }
return collapsed;
}
}
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index 446c842..4878b0f 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -1265,9 +1265,8 @@
@Override
public void initForMenu(Context context, MenuBuilder menu) {
// Clear the expanded action view when menus change.
- mExpandedActionView = null;
- if (mCurrentExpandedItem != null) {
- mCurrentExpandedItem.collapseActionView();
+ if (mMenu != null && mCurrentExpandedItem != null) {
+ mMenu.collapseItemActionView(mCurrentExpandedItem);
}
mMenu = menu;
}
diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
index fb33748..366b983 100644
--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
+++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
@@ -29,6 +29,7 @@
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.View;
+import android.view.ViewGroup;
import android.view.ViewRootImpl;
import com.android.internal.R;
@@ -62,7 +63,8 @@
mContext = context;
mTargetView = targetView;
mKeyboardView = keyboardView;
- if (useFullScreenWidth || mKeyboardView.getLayoutParams().width == -1) {
+ if (useFullScreenWidth
+ || mKeyboardView.getLayoutParams().width == ViewGroup.LayoutParams.MATCH_PARENT) {
createKeyboards();
} else {
createKeyboardsWithSpecificSize(mKeyboardView.getLayoutParams().width,
diff --git a/core/jni/android/graphics/NinePatchImpl.cpp b/core/jni/android/graphics/NinePatchImpl.cpp
index 579749a..a3e36ee 100644
--- a/core/jni/android/graphics/NinePatchImpl.cpp
+++ b/core/jni/android/graphics/NinePatchImpl.cpp
@@ -160,14 +160,6 @@
return;
}
- // if the nine patch is bigger than the dst on a given axis we cannot
- // stretch properly so just draw the bitmap as best as possible and return
- if (bitmap.width() >= bounds.width() || bitmap.height() >= bounds.height())
- {
- canvas->drawBitmapRect(bitmap, NULL, bounds, paint);
- return;
- }
-
// should try a quick-reject test before calling lockPixels
SkAutoLockPixels alp(bitmap);
diff --git a/core/jni/android/graphics/SurfaceTexture.cpp b/core/jni/android/graphics/SurfaceTexture.cpp
index 2de0932..ffcd1a0 100644
--- a/core/jni/android/graphics/SurfaceTexture.cpp
+++ b/core/jni/android/graphics/SurfaceTexture.cpp
@@ -233,6 +233,12 @@
return surfaceTexture->getTimestamp();
}
+static void SurfaceTexture_release(JNIEnv* env, jobject thiz)
+{
+ sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz));
+ surfaceTexture->abandon();
+}
+
// ----------------------------------------------------------------------------
static JNINativeMethod gSurfaceTextureMethods[] = {
@@ -243,6 +249,7 @@
{"nativeUpdateTexImage", "()V", (void*)SurfaceTexture_updateTexImage },
{"nativeGetTransformMatrix", "([F)V", (void*)SurfaceTexture_getTransformMatrix },
{"nativeGetTimestamp", "()J", (void*)SurfaceTexture_getTimestamp },
+ {"nativeRelease", "()V", (void*)SurfaceTexture_release },
};
int register_android_graphics_SurfaceTexture(JNIEnv* env)
diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
index 830f70e..5118351 100644
--- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
+++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
@@ -51,15 +51,17 @@
namespace android {
-typedef void (*iterFunc)(JNIEnv*, void*, ZipFileRO*, ZipEntryRO, const char*);
-
// These match PackageManager.java install codes
typedef enum {
- INSTALL_SUCCEEDED = 0,
+ INSTALL_SUCCEEDED = 1,
INSTALL_FAILED_INVALID_APK = -2,
INSTALL_FAILED_INSUFFICIENT_STORAGE = -4,
+ INSTALL_FAILED_CONTAINER_ERROR = -18,
+ INSTALL_FAILED_INTERNAL_ERROR = -110,
} install_status_t;
+typedef install_status_t (*iterFunc)(JNIEnv*, void*, ZipFileRO*, ZipEntryRO, const char*);
+
// Equivalent to isFilenameSafe
static bool
isFilenameSafe(const char* filename)
@@ -140,17 +142,19 @@
return false;
}
-static void
+static install_status_t
sumFiles(JNIEnv* env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntry, const char* fileName)
{
size_t* total = (size_t*) arg;
size_t uncompLen;
if (!zipFile->getEntryInfo(zipEntry, NULL, &uncompLen, NULL, NULL, NULL, NULL)) {
- return;
+ return INSTALL_FAILED_INVALID_APK;
}
*total += uncompLen;
+
+ return INSTALL_SUCCEEDED;
}
/*
@@ -158,7 +162,7 @@
*
* This function assumes the library and path names passed in are considered safe.
*/
-static void
+static install_status_t
copyFileIfChanged(JNIEnv *env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntry, const char* fileName)
{
jstring* javaNativeLibPath = (jstring*) arg;
@@ -170,7 +174,8 @@
time_t modTime;
if (!zipFile->getEntryInfo(zipEntry, NULL, &uncompLen, NULL, NULL, &when, &crc)) {
- return;
+ LOGD("Couldn't read zip entry info\n");
+ return INSTALL_FAILED_INVALID_APK;
} else {
struct tm t;
ZipFileRO::zipTimeToTimespec(when, &t);
@@ -182,50 +187,50 @@
char localFileName[nativeLibPath.size() + fileNameLen + 2];
if (strlcpy(localFileName, nativeLibPath.c_str(), sizeof(localFileName)) != nativeLibPath.size()) {
- LOGD("Couldn't allocate local file name for library: %s", strerror(errno));
- return;
+ LOGD("Couldn't allocate local file name for library");
+ return INSTALL_FAILED_INTERNAL_ERROR;
}
*(localFileName + nativeLibPath.size()) = '/';
if (strlcpy(localFileName + nativeLibPath.size() + 1, fileName, sizeof(localFileName)
- nativeLibPath.size() - 1) != fileNameLen) {
- LOGD("Couldn't allocate local file name for library: %s", strerror(errno));
- return;
+ LOGD("Couldn't allocate local file name for library");
+ return INSTALL_FAILED_INTERNAL_ERROR;
}
// Only copy out the native file if it's different.
struct stat st;
if (!isFileDifferent(localFileName, uncompLen, modTime, crc, &st)) {
- return;
+ return INSTALL_SUCCEEDED;
}
char localTmpFileName[nativeLibPath.size() + TMP_FILE_PATTERN_LEN + 2];
if (strlcpy(localTmpFileName, nativeLibPath.c_str(), sizeof(localTmpFileName))
!= nativeLibPath.size()) {
- LOGD("Couldn't allocate local file name for library: %s", strerror(errno));
- return;
+ LOGD("Couldn't allocate local file name for library");
+ return INSTALL_FAILED_INTERNAL_ERROR;
}
*(localFileName + nativeLibPath.size()) = '/';
if (strlcpy(localTmpFileName + nativeLibPath.size(), TMP_FILE_PATTERN,
TMP_FILE_PATTERN_LEN - nativeLibPath.size()) != TMP_FILE_PATTERN_LEN) {
- LOGI("Couldn't allocate temporary file name for library: %s", strerror(errno));
- return;
+ LOGI("Couldn't allocate temporary file name for library");
+ return INSTALL_FAILED_INTERNAL_ERROR;
}
int fd = mkstemp(localTmpFileName);
if (fd < 0) {
LOGI("Couldn't open temporary file name: %s: %s\n", localTmpFileName, strerror(errno));
- return;
+ return INSTALL_FAILED_CONTAINER_ERROR;
}
if (!zipFile->uncompressEntry(zipEntry, fd)) {
- LOGI("Failed uncompressing %s to %s: %s", fileName, localTmpFileName, strerror(errno));
+ LOGI("Failed uncompressing %s to %s\n", fileName, localTmpFileName);
close(fd);
unlink(localTmpFileName);
- return;
+ return INSTALL_FAILED_CONTAINER_ERROR;
}
close(fd);
@@ -238,7 +243,7 @@
if (utimes(localTmpFileName, times) < 0) {
LOGI("Couldn't change modification time on %s: %s\n", localTmpFileName, strerror(errno));
unlink(localTmpFileName);
- return;
+ return INSTALL_FAILED_CONTAINER_ERROR;
}
// Set the mode to 755
@@ -246,17 +251,19 @@
if (chmod(localTmpFileName, mode) < 0) {
LOGI("Couldn't change permissions on %s: %s\n", localTmpFileName, strerror(errno));
unlink(localTmpFileName);
- return;
+ return INSTALL_FAILED_CONTAINER_ERROR;
}
// Finally, rename it to the final name.
if (rename(localTmpFileName, localFileName) < 0) {
LOGI("Couldn't rename %s to %s: %s\n", localTmpFileName, localFileName, strerror(errno));
unlink(localTmpFileName);
- return;
+ return INSTALL_FAILED_CONTAINER_ERROR;
}
LOGV("Successfully moved %s to %s\n", localTmpFileName, localFileName);
+
+ return INSTALL_SUCCEEDED;
}
static install_status_t
@@ -301,10 +308,7 @@
}
const char* lastSlash = strrchr(fileName, '/');
- if (lastSlash == NULL) {
- LOG_ASSERT("last slash was null somehow for %s\n", fileName);
- continue;
- }
+ LOG_ASSERT(lastSlash != NULL, "last slash was null somehow for %s\n", fileName);
// Check to make sure the CPU ABI of this file is one we support.
const char* cpuAbiOffset = fileName + APK_LIB_LEN;
@@ -325,12 +329,17 @@
}
// If this is a .so file, check to see if we need to copy it.
- if (!strncmp(fileName + fileNameLen - LIB_SUFFIX_LEN, LIB_SUFFIX, LIB_SUFFIX_LEN)
- && !strncmp(lastSlash, LIB_PREFIX, LIB_PREFIX_LEN)
- && isFilenameSafe(lastSlash + 1)) {
- callFunc(env, callArg, &zipFile, entry, lastSlash + 1);
- } else if (!strncmp(lastSlash + 1, GDBSERVER, GDBSERVER_LEN)) {
- callFunc(env, callArg, &zipFile, entry, lastSlash + 1);
+ if ((!strncmp(fileName + fileNameLen - LIB_SUFFIX_LEN, LIB_SUFFIX, LIB_SUFFIX_LEN)
+ && !strncmp(lastSlash, LIB_PREFIX, LIB_PREFIX_LEN)
+ && isFilenameSafe(lastSlash + 1))
+ || !strncmp(lastSlash + 1, GDBSERVER, GDBSERVER_LEN)) {
+
+ install_status_t ret = callFunc(env, callArg, &zipFile, entry, lastSlash + 1);
+
+ if (ret != INSTALL_SUCCEEDED) {
+ LOGV("Failure for entry %s", lastSlash + 1);
+ return ret;
+ }
}
}
@@ -341,7 +350,7 @@
com_android_internal_content_NativeLibraryHelper_copyNativeBinaries(JNIEnv *env, jclass clazz,
jstring javaFilePath, jstring javaNativeLibPath, jstring javaCpuAbi, jstring javaCpuAbi2)
{
- return iterateOverNativeFiles(env, javaFilePath, javaCpuAbi, javaCpuAbi2,
+ return (jint) iterateOverNativeFiles(env, javaFilePath, javaCpuAbi, javaCpuAbi2,
copyFileIfChanged, &javaNativeLibPath);
}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index f99a94c..21c3f1e 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -294,12 +294,21 @@
<!-- Allows an application to read/write the voicemails owned by its own
package. -->
+ <!-- TODO: delete this permission when dependent content provider &
+ application code has been migrated to use ADD_VOICEMAIL instead -->
<permission android:name="com.android.voicemail.permission.READ_WRITE_OWN_VOICEMAIL"
android:permissionGroup="android.permission-group.PERSONAL_INFO"
android:protectionLevel="dangerous"
android:label="@string/permlab_readWriteOwnVoicemail"
android:description="@string/permdesc_readWriteOwnVoicemail" />
+ <!-- Allows an application to add voicemails into the system. -->
+ <permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"
+ android:permissionGroup="android.permission-group.PERSONAL_INFO"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_addVoicemail"
+ android:description="@string/permdesc_addVoicemail" />
+
<!-- ======================================= -->
<!-- Permissions for accessing location info -->
<!-- ======================================= -->
diff --git a/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_dark.9.png
index 1b34672..3239dd2 100644
--- a/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png
index 1b34672..3239dd2 100644
--- a/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_disabled_holo.9.png b/core/res/res/drawable-hdpi/btn_default_disabled_holo.9.png
index 71ae113..6840962 100644
--- a/core/res/res/drawable-hdpi/btn_default_disabled_holo.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_disabled_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_disabled_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_disabled_holo_dark.9.png
index 739dff3..45c957b 100644
--- a/core/res/res/drawable-hdpi/btn_default_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_disabled_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_disabled_holo_light.9.png
index 26976c5..45c957b 100644
--- a/core/res/res/drawable-hdpi/btn_default_disabled_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_focused_holo.9.png b/core/res/res/drawable-hdpi/btn_default_focused_holo.9.png
index 9d787f1..6549253 100644
--- a/core/res/res/drawable-hdpi/btn_default_focused_holo.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_focused_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_focused_holo_dark.9.png
index 7699c47..ef3ec7a 100644
--- a/core/res/res/drawable-hdpi/btn_default_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_focused_holo_light.9.png
index 7699c47..ef3ec7a 100644
--- a/core/res/res/drawable-hdpi/btn_default_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_holo.9.png b/core/res/res/drawable-hdpi/btn_default_normal_holo.9.png
index 1e9c9d2..f4f657b 100644
--- a/core/res/res/drawable-hdpi/btn_default_normal_holo.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_normal_holo_dark.9.png
index 27e7965..ef12e72 100644
--- a/core/res/res/drawable-hdpi/btn_default_normal_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_normal_holo_light.9.png
index 1dbabd3..ef12e72 100644
--- a/core/res/res/drawable-hdpi/btn_default_normal_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed_holo.9.png b/core/res/res/drawable-hdpi/btn_default_pressed_holo.9.png
index 12eec10..ec7fa78 100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed_holo.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
index 5a94b8d..93a30e3 100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
index 5a94b8d..93a30e3 100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
new file mode 100644
index 0000000..5e6a9d6
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png
new file mode 100644
index 0000000..eb9d740
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png
new file mode 100644
index 0000000..869a330
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
new file mode 100644
index 0000000..7ec33dd
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
new file mode 100644
index 0000000..72d63da
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
new file mode 100644
index 0000000..fcc5cac
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
new file mode 100644
index 0000000..baff858
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png b/core/res/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
new file mode 100644
index 0000000..5612c51
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
old mode 100755
new mode 100644
index 63a9219..3ecf008
--- a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_light.9.png
old mode 100755
new mode 100644
index d977914..6e1f0dd
--- a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_dark.9.png
old mode 100755
new mode 100644
index c04393c..90b35b8
--- a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_light.9.png
old mode 100755
new mode 100644
index 96bd351..6b4b388
--- a/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_dark.9.png
old mode 100755
new mode 100644
index c30b993..c0ed2c6
--- a/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_light.9.png
old mode 100755
new mode 100644
index 730c113..fa386b8
--- a/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_dark.9.png
old mode 100755
new mode 100644
index 17de0eb..9fbd1e99
--- a/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_light.9.png
old mode 100755
new mode 100644
index 7e62cf9..1800eb4
--- a/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
old mode 100755
new mode 100644
index a06f1fc..45d99ee
--- a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
old mode 100755
new mode 100644
index 21ad0d8..8929825
--- a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
old mode 100755
new mode 100644
index c0f6f74..5fc3fbd
--- a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_light.9.png
old mode 100755
new mode 100644
index c0f6f74..5fc3fbd
--- a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_dark.9.png
old mode 100755
new mode 100644
index 44a2f8bb..b0cfa4b
--- a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_light.9.png
old mode 100755
new mode 100644
index 44a2f8bb..b0cfa4b
--- a/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_dark.9.png
old mode 100755
new mode 100644
index 53eb636f..054c18b
--- a/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_light.9.png
old mode 100755
new mode 100644
index 53eb636f..054c18b
--- a/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_dark.9.png
old mode 100755
new mode 100644
index baab86f..a858836
--- a/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_light.9.png
old mode 100755
new mode 100644
index baab86f..a858836
--- a/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
old mode 100755
new mode 100644
index 6a954a6..b5aa5c1
--- a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
old mode 100755
new mode 100644
index 6a954a6..b5aa5c1
--- a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_label_left_holo_dark.9.png b/core/res/res/drawable-hdpi/fastscroll_label_left_holo_dark.9.png
index 3eb81a1..0a1bca8 100644
--- a/core/res/res/drawable-hdpi/fastscroll_label_left_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_label_left_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_label_left_holo_light.9.png b/core/res/res/drawable-hdpi/fastscroll_label_left_holo_light.9.png
index cc14a63..fd5b18d 100644
--- a/core/res/res/drawable-hdpi/fastscroll_label_left_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_label_left_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_label_right_holo_dark.9.png b/core/res/res/drawable-hdpi/fastscroll_label_right_holo_dark.9.png
index c59f135..97d61f4 100644
--- a/core/res/res/drawable-hdpi/fastscroll_label_right_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_label_right_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_label_right_holo_light.9.png b/core/res/res/drawable-hdpi/fastscroll_label_right_holo_light.9.png
index 054707d..9afd6ab 100644
--- a/core/res/res/drawable-hdpi/fastscroll_label_right_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_label_right_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_thumb_default_holo.png b/core/res/res/drawable-hdpi/fastscroll_thumb_default_holo.png
index bc960ab..9233636 100644
--- a/core/res/res/drawable-hdpi/fastscroll_thumb_default_holo.png
+++ b/core/res/res/drawable-hdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png b/core/res/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
index f850e9e..396a8d6 100644
--- a/core/res/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
+++ b/core/res/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_track_default_holo_dark.9.png b/core/res/res/drawable-hdpi/fastscroll_track_default_holo_dark.9.png
index 9e10a29..44502db 100644
--- a/core/res/res/drawable-hdpi/fastscroll_track_default_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_track_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_track_default_holo_light.9.png b/core/res/res/drawable-hdpi/fastscroll_track_default_holo_light.9.png
index 9e10a29..44502db 100644
--- a/core/res/res/drawable-hdpi/fastscroll_track_default_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_track_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_dark.9.png
index be260dd..c5637727 100644
--- a/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_light.9.png
index be260dd..88f60b3 100644
--- a/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/fastscroll_track_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif.png
new file mode 100644
index 0000000..3938778
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_audio_ring_notif.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute.png
new file mode 100644
index 0000000..499c0a3
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_bullet_key_permission.png b/core/res/res/drawable-hdpi/ic_bullet_key_permission.png
index b6b840a..a7eaec5 100644
--- a/core/res/res/drawable-hdpi/ic_bullet_key_permission.png
+++ b/core/res/res/drawable-hdpi/ic_bullet_key_permission.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progress_primary_holo_dark.9.png b/core/res/res/drawable-hdpi/progress_primary_holo_dark.9.png
index f134a59..e2c63b0 100644
--- a/core/res/res/drawable-hdpi/progress_primary_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/progress_primary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progress_primary_holo_light.9.png b/core/res/res/drawable-hdpi/progress_primary_holo_light.9.png
index f134a59..e2c63b0 100644
--- a/core/res/res/drawable-hdpi/progress_primary_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progress_secondary_holo_dark.9.png b/core/res/res/drawable-hdpi/progress_secondary_holo_dark.9.png
index 22d608a..4b204e7 100644
--- a/core/res/res/drawable-hdpi/progress_secondary_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/progress_secondary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progress_secondary_holo_light.9.png b/core/res/res/drawable-hdpi/progress_secondary_holo_light.9.png
index 22d608a..4b204e7 100644
--- a/core/res/res/drawable-hdpi/progress_secondary_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrollbar_handle_holo_dark.9.png b/core/res/res/drawable-hdpi/scrollbar_handle_holo_dark.9.png
index 575edee..7c82955 100644
--- a/core/res/res/drawable-hdpi/scrollbar_handle_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/scrollbar_handle_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrollbar_handle_holo_light.9.png b/core/res/res/drawable-hdpi/scrollbar_handle_holo_light.9.png
index 575edee..7c82955 100644
--- a/core/res/res/drawable-hdpi/scrollbar_handle_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/scrollbar_handle_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrubber_control_disabled_holo.png b/core/res/res/drawable-hdpi/scrubber_control_disabled_holo.png
index d428e5a..822da81 100644
--- a/core/res/res/drawable-hdpi/scrubber_control_disabled_holo.png
+++ b/core/res/res/drawable-hdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrubber_control_holo.png b/core/res/res/drawable-hdpi/scrubber_control_holo.png
index a5fb73c..9957851 100644
--- a/core/res/res/drawable-hdpi/scrubber_control_holo.png
+++ b/core/res/res/drawable-hdpi/scrubber_control_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrubber_primary_holo.9.png b/core/res/res/drawable-hdpi/scrubber_primary_holo.9.png
index 3bc78a8..0fdd530 100644
--- a/core/res/res/drawable-hdpi/scrubber_primary_holo.9.png
+++ b/core/res/res/drawable-hdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrubber_secondary_holo.9.png b/core/res/res/drawable-hdpi/scrubber_secondary_holo.9.png
index 8eadf00..a7eaf66 100644
--- a/core/res/res/drawable-hdpi/scrubber_secondary_holo.9.png
+++ b/core/res/res/drawable-hdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_16_inner_holo.png b/core/res/res/drawable-hdpi/spinner_16_inner_holo.png
index a2a6678..8c93779 100644
--- a/core/res/res/drawable-hdpi/spinner_16_inner_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_16_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_16_outer_holo.png b/core/res/res/drawable-hdpi/spinner_16_outer_holo.png
index 733e852..d272f93 100644
--- a/core/res/res/drawable-hdpi/spinner_16_outer_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_16_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_20_inner_holo.png b/core/res/res/drawable-hdpi/spinner_20_inner_holo.png
index e81e002..3c371b2d 100644
--- a/core/res/res/drawable-hdpi/spinner_20_inner_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_20_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_20_outer_holo.png b/core/res/res/drawable-hdpi/spinner_20_outer_holo.png
index 1da2f90..2820b5f 100644
--- a/core/res/res/drawable-hdpi/spinner_20_outer_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_20_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_48_inner_holo.png b/core/res/res/drawable-hdpi/spinner_48_inner_holo.png
index 8bbe6a0..a992251 100644
--- a/core/res/res/drawable-hdpi/spinner_48_inner_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_48_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_48_outer_holo.png b/core/res/res/drawable-hdpi/spinner_48_outer_holo.png
index d023d10..27452b1 100644
--- a/core/res/res/drawable-hdpi/spinner_48_outer_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_48_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_76_inner_holo.png b/core/res/res/drawable-hdpi/spinner_76_inner_holo.png
index fa6cb6f..3d426e0 100644
--- a/core/res/res/drawable-hdpi/spinner_76_inner_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_76_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_76_outer_holo.png b/core/res/res/drawable-hdpi/spinner_76_outer_holo.png
index 00d577f..92f77a3 100644
--- a/core/res/res/drawable-hdpi/spinner_76_outer_holo.png
+++ b/core/res/res/drawable-hdpi/spinner_76_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_bullet_key_permission.png b/core/res/res/drawable-ldpi/ic_bullet_key_permission.png
index 016c0f0..4aff20c 100644
--- a/core/res/res/drawable-ldpi/ic_bullet_key_permission.png
+++ b/core/res/res/drawable-ldpi/ic_bullet_key_permission.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_dark.9.png
index 918f972..e5197e6 100644
--- a/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png
index 918f972..e5197e6 100644
--- a/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_disabled_holo.9.png b/core/res/res/drawable-mdpi/btn_default_disabled_holo.9.png
index 1ae6cf2..9a24b9c 100644
--- a/core/res/res/drawable-mdpi/btn_default_disabled_holo.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_disabled_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_disabled_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_disabled_holo_dark.9.png
index 0514a7c..c832855 100644
--- a/core/res/res/drawable-mdpi/btn_default_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_disabled_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_disabled_holo_light.9.png
index 8cc4daf..c832855 100644
--- a/core/res/res/drawable-mdpi/btn_default_disabled_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_focused_holo.9.png b/core/res/res/drawable-mdpi/btn_default_focused_holo.9.png
index 6449650..8838414 100644
--- a/core/res/res/drawable-mdpi/btn_default_focused_holo.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_focused_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_focused_holo_dark.9.png
index 7f44eae2..e0a1e0d 100644
--- a/core/res/res/drawable-mdpi/btn_default_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_focused_holo_light.9.png
index 7f44eae2..e0a1e0d 100644
--- a/core/res/res/drawable-mdpi/btn_default_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_normal_holo.9.png b/core/res/res/drawable-mdpi/btn_default_normal_holo.9.png
index 3e9e6c3..e4864c9 100644
--- a/core/res/res/drawable-mdpi/btn_default_normal_holo.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_normal_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_normal_holo_dark.9.png
index 9df36a2..3d9310a 100644
--- a/core/res/res/drawable-mdpi/btn_default_normal_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_normal_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_normal_holo_light.9.png
index 7abdfde..3d9310a 100644
--- a/core/res/res/drawable-mdpi/btn_default_normal_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_pressed_holo.9.png b/core/res/res/drawable-mdpi/btn_default_pressed_holo.9.png
index df4927f..18ec722 100644
--- a/core/res/res/drawable-mdpi/btn_default_pressed_holo.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
index cb70e35..1e3314e 100644
--- a/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
index cb70e35..1e3314e 100644
--- a/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
new file mode 100644
index 0000000..d449d76
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
new file mode 100644
index 0000000..80fe863
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
new file mode 100644
index 0000000..196d6d9
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
new file mode 100644
index 0000000..8f340d3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
new file mode 100644
index 0000000..b34b957
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
new file mode 100644
index 0000000..02f4b3d
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
new file mode 100644
index 0000000..976083f
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
new file mode 100644
index 0000000..c39dd4a
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off.9.png b/core/res/res/drawable-mdpi/btn_toggle_off.9.png
index 26ee1c2..38e810c 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_off.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
old mode 100755
new mode 100644
index 1964085..5f2017d
--- a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_light.9.png
old mode 100755
new mode 100644
index d86a9e6..eab31e8
--- a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_dark.9.png
old mode 100755
new mode 100644
index f3f1ab2..29f9e23
--- a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_light.9.png
old mode 100755
new mode 100644
index d157fed..2d3574d
--- a/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_dark.9.png
old mode 100755
new mode 100644
index f99d946..deea02d
--- a/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_light.9.png
old mode 100755
new mode 100644
index a313744..d480b2e
--- a/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_dark.9.png
old mode 100755
new mode 100644
index 00a589f..7f9d813
--- a/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_light.9.png
old mode 100755
new mode 100644
index e16e470c..848621a
--- a/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
old mode 100755
new mode 100644
index 6f7dd45..2a94003
--- a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
old mode 100755
new mode 100644
index 490c83d..75983d8
--- a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on.9.png b/core/res/res/drawable-mdpi/btn_toggle_on.9.png
index 53e95af..ef39dec 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_on.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
old mode 100755
new mode 100644
index 45dc08f..909586a
--- a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_light.9.png
old mode 100755
new mode 100644
index 45dc08f..909586a
--- a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_dark.9.png
old mode 100755
new mode 100644
index 11dc01d..d64e60a
--- a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_light.9.png
old mode 100755
new mode 100644
index 11dc01d..d64e60a
--- a/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_dark.9.png
old mode 100755
new mode 100644
index 2c95ebd..3b64aa1
--- a/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_light.9.png
old mode 100755
new mode 100644
index 2c95ebd..3b64aa1
--- a/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_dark.9.png
old mode 100755
new mode 100644
index 7c410c0..6039850
--- a/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_light.9.png
old mode 100755
new mode 100644
index 7c410c0..6039850
--- a/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
old mode 100755
new mode 100644
index afb31e1..21b655b
--- a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
old mode 100755
new mode 100644
index afb31e1..21b655b
--- a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_label_left_holo_dark.9.png b/core/res/res/drawable-mdpi/fastscroll_label_left_holo_dark.9.png
index 0dce616..b3fd908 100644
--- a/core/res/res/drawable-mdpi/fastscroll_label_left_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_label_left_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_label_left_holo_light.9.png b/core/res/res/drawable-mdpi/fastscroll_label_left_holo_light.9.png
index e1028cc..a64d4d1 100644
--- a/core/res/res/drawable-mdpi/fastscroll_label_left_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_label_left_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_label_right_holo_dark.9.png b/core/res/res/drawable-mdpi/fastscroll_label_right_holo_dark.9.png
index b6b68ea..6469fca 100644
--- a/core/res/res/drawable-mdpi/fastscroll_label_right_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_label_right_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_label_right_holo_light.9.png b/core/res/res/drawable-mdpi/fastscroll_label_right_holo_light.9.png
index 5087013..fca2e25 100644
--- a/core/res/res/drawable-mdpi/fastscroll_label_right_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_label_right_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_thumb_default_holo.png b/core/res/res/drawable-mdpi/fastscroll_thumb_default_holo.png
index bfb55bd..fa23ea4 100644
--- a/core/res/res/drawable-mdpi/fastscroll_thumb_default_holo.png
+++ b/core/res/res/drawable-mdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png b/core/res/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
index 89d9b01..d8233d9 100644
--- a/core/res/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
+++ b/core/res/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_track_default_holo_dark.9.png b/core/res/res/drawable-mdpi/fastscroll_track_default_holo_dark.9.png
index cf8c4bb..8796e21 100644
--- a/core/res/res/drawable-mdpi/fastscroll_track_default_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_track_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_track_default_holo_light.9.png b/core/res/res/drawable-mdpi/fastscroll_track_default_holo_light.9.png
index cf8c4bb..8796e21 100644
--- a/core/res/res/drawable-mdpi/fastscroll_track_default_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_track_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_dark.9.png
index fef2168..e74acea 100644
--- a/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_light.9.png
index fef2168..62d80a0 100644
--- a/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/fastscroll_track_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif.png
new file mode 100644
index 0000000..856193b
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_audio_ring_notif.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute.png
new file mode 100644
index 0000000..d5d1360
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_bullet_key_permission.png b/core/res/res/drawable-mdpi/ic_bullet_key_permission.png
index 68ad039..47913f6 100644
--- a/core/res/res/drawable-mdpi/ic_bullet_key_permission.png
+++ b/core/res/res/drawable-mdpi/ic_bullet_key_permission.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progress_primary_holo_dark.9.png b/core/res/res/drawable-mdpi/progress_primary_holo_dark.9.png
index bac0a23..4bf3cb9 100644
--- a/core/res/res/drawable-mdpi/progress_primary_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/progress_primary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progress_primary_holo_light.9.png b/core/res/res/drawable-mdpi/progress_primary_holo_light.9.png
index bac0a23..4bf3cb9 100644
--- a/core/res/res/drawable-mdpi/progress_primary_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progress_secondary_holo_dark.9.png b/core/res/res/drawable-mdpi/progress_secondary_holo_dark.9.png
index 8be8656..b13c878 100644
--- a/core/res/res/drawable-mdpi/progress_secondary_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/progress_secondary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progress_secondary_holo_light.9.png b/core/res/res/drawable-mdpi/progress_secondary_holo_light.9.png
index 8be8656..b13c878 100644
--- a/core/res/res/drawable-mdpi/progress_secondary_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_holo_dark.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_holo_dark.9.png
index e039c4b..ca0ec0a 100644
--- a/core/res/res/drawable-mdpi/scrollbar_handle_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/scrollbar_handle_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_holo_light.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_holo_light.9.png
index e039c4b..ca0ec0a 100644
--- a/core/res/res/drawable-mdpi/scrollbar_handle_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/scrollbar_handle_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrubber_primary_holo.9.png b/core/res/res/drawable-mdpi/scrubber_primary_holo.9.png
index ac63e7d..c994519 100644
--- a/core/res/res/drawable-mdpi/scrubber_primary_holo.9.png
+++ b/core/res/res/drawable-mdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrubber_secondary_holo.9.png b/core/res/res/drawable-mdpi/scrubber_secondary_holo.9.png
index 9590bdc..5e21da4 100644
--- a/core/res/res/drawable-mdpi/scrubber_secondary_holo.9.png
+++ b/core/res/res/drawable-mdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_16_inner_holo.png b/core/res/res/drawable-mdpi/spinner_16_inner_holo.png
index 537ab8c..392e1f8 100644
--- a/core/res/res/drawable-mdpi/spinner_16_inner_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_16_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_16_outer_holo.png b/core/res/res/drawable-mdpi/spinner_16_outer_holo.png
index cee54b7..d862a25 100644
--- a/core/res/res/drawable-mdpi/spinner_16_outer_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_16_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_20_inner_holo.png b/core/res/res/drawable-mdpi/spinner_20_inner_holo.png
index 67fb438..f5e7f73 100644
--- a/core/res/res/drawable-mdpi/spinner_20_inner_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_20_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_20_outer_holo.png b/core/res/res/drawable-mdpi/spinner_20_outer_holo.png
index 25beedd..b7ecfff 100644
--- a/core/res/res/drawable-mdpi/spinner_20_outer_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_20_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_48_inner_holo.png b/core/res/res/drawable-mdpi/spinner_48_inner_holo.png
index ed446d6..5231a5b 100644
--- a/core/res/res/drawable-mdpi/spinner_48_inner_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_48_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_48_outer_holo.png b/core/res/res/drawable-mdpi/spinner_48_outer_holo.png
index 08b2dcd..e1e5b52 100644
--- a/core/res/res/drawable-mdpi/spinner_48_outer_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_48_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_76_inner_holo.png b/core/res/res/drawable-mdpi/spinner_76_inner_holo.png
index 2d5e5a1..982f037 100644
--- a/core/res/res/drawable-mdpi/spinner_76_inner_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_76_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_76_outer_holo.png b/core/res/res/drawable-mdpi/spinner_76_outer_holo.png
index 2edad73..01b6ab38 100644
--- a/core/res/res/drawable-mdpi/spinner_76_outer_holo.png
+++ b/core/res/res/drawable-mdpi/spinner_76_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_dark.9.png
index eb7ce5e..8a30fab 100644
--- a/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png
index eb7ce5e..8a30fab 100644
--- a/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_disabled_holo.9.png b/core/res/res/drawable-xhdpi/btn_default_disabled_holo.9.png
index 4e4d3d4..bb4e7f6 100644
--- a/core/res/res/drawable-xhdpi/btn_default_disabled_holo.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_disabled_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_disabled_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_disabled_holo_dark.9.png
index ee291b6..842ea9c 100644
--- a/core/res/res/drawable-xhdpi/btn_default_disabled_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png
index 83e5011..842ea9c 100644
--- a/core/res/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_focused_holo.9.png b/core/res/res/drawable-xhdpi/btn_default_focused_holo.9.png
index 67f007a..5aa02c8 100644
--- a/core/res/res/drawable-xhdpi/btn_default_focused_holo.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_focused_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_focused_holo_dark.9.png
index 4764d1b..025fc00 100644
--- a/core/res/res/drawable-xhdpi/btn_default_focused_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_focused_holo_light.9.png
index 4764d1b..025fc00 100644
--- a/core/res/res/drawable-xhdpi/btn_default_focused_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_normal_holo.9.png b/core/res/res/drawable-xhdpi/btn_default_normal_holo.9.png
index b949121..02360bd 100644
--- a/core/res/res/drawable-xhdpi/btn_default_normal_holo.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_normal_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_normal_holo_dark.9.png
index 6a35514..5c4a2d1 100644
--- a/core/res/res/drawable-xhdpi/btn_default_normal_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_normal_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_normal_holo_light.9.png
index 9068d75..5c4a2d1 100644
--- a/core/res/res/drawable-xhdpi/btn_default_normal_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_pressed_holo.9.png b/core/res/res/drawable-xhdpi/btn_default_pressed_holo.9.png
index daac2e1..1833ffe 100644
--- a/core/res/res/drawable-xhdpi/btn_default_pressed_holo.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
index 94f1a5a..7fc5980 100644
--- a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
index 94f1a5a..7fc5980 100644
--- a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
new file mode 100644
index 0000000..d2cd029
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png
new file mode 100644
index 0000000..0f709eb
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png
new file mode 100644
index 0000000..2f4de8e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
new file mode 100644
index 0000000..3871689e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
new file mode 100644
index 0000000..836ea6e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
new file mode 100644
index 0000000..279db1f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
new file mode 100644
index 0000000..b26f1d2
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png b/core/res/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
new file mode 100644
index 0000000..c23a4b2
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off.9.png
new file mode 100644
index 0000000..1406188
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
new file mode 100644
index 0000000..9d9c6f2
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_light.9.png
new file mode 100644
index 0000000..7d9bfd1
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_dark.9.png
new file mode 100644
index 0000000..0cddd2d
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_light.9.png
new file mode 100644
index 0000000..1109fe1
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_dark.9.png
new file mode 100644
index 0000000..ec33f17
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_light.9.png
new file mode 100644
index 0000000..0b562cc
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_dark.9.png
new file mode 100644
index 0000000..93f565f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_light.9.png
new file mode 100644
index 0000000..aee803d
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png
new file mode 100644
index 0000000..2f56666
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png
new file mode 100644
index 0000000..d636569
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on.9.png
new file mode 100644
index 0000000..90f1e7b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
new file mode 100644
index 0000000..9ec3fe0c
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_light.9.png
new file mode 100644
index 0000000..9ec3fe0c
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_dark.9.png
new file mode 100644
index 0000000..5b8bf7b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_light.9.png
new file mode 100644
index 0000000..5b8bf7b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_disabled_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_dark.9.png
new file mode 100644
index 0000000..5c3318b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_light.9.png
new file mode 100644
index 0000000..5c3318b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_focused_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_dark.9.png
new file mode 100644
index 0000000..ef7310a
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_light.9.png
new file mode 100644
index 0000000..ef7310a
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_normal_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png
new file mode 100644
index 0000000..c55389e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png
new file mode 100644
index 0000000..c55389e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_dark.9.png b/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_dark.9.png
new file mode 100644
index 0000000..dfc5e6b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_light.9.png b/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_light.9.png
new file mode 100644
index 0000000..eab0cb9
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_label_left_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_dark.9.png b/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_dark.9.png
new file mode 100644
index 0000000..e3e0cde
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_light.9.png b/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_light.9.png
new file mode 100644
index 0000000..b2bd5ca
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_label_right_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_thumb_default_holo.png b/core/res/res/drawable-xhdpi/fastscroll_thumb_default_holo.png
new file mode 100644
index 0000000..cc3fe43
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png b/core/res/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png
new file mode 100644
index 0000000..ba3f566
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_dark.9.png b/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_dark.9.png
new file mode 100644
index 0000000..431336a
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_light.9.png b/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_light.9.png
new file mode 100644
index 0000000..431336a
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_track_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_dark.9.png
new file mode 100644
index 0000000..9301f5e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_light.9.png
new file mode 100644
index 0000000..d22724a
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/fastscroll_track_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/progress_primary_holo_dark.9.png b/core/res/res/drawable-xhdpi/progress_primary_holo_dark.9.png
new file mode 100644
index 0000000..dc8711f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/progress_primary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/progress_primary_holo_light.9.png b/core/res/res/drawable-xhdpi/progress_primary_holo_light.9.png
new file mode 100644
index 0000000..dc8711f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/progress_secondary_holo_dark.9.png b/core/res/res/drawable-xhdpi/progress_secondary_holo_dark.9.png
new file mode 100644
index 0000000..39a168f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/progress_secondary_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/progress_secondary_holo_light.9.png b/core/res/res/drawable-xhdpi/progress_secondary_holo_light.9.png
new file mode 100644
index 0000000..39a168f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrollbar_handle_holo_dark.9.png b/core/res/res/drawable-xhdpi/scrollbar_handle_holo_dark.9.png
new file mode 100644
index 0000000..7a31d9d
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrollbar_handle_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrollbar_handle_holo_light.9.png b/core/res/res/drawable-xhdpi/scrollbar_handle_holo_light.9.png
new file mode 100644
index 0000000..7a31d9d
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrollbar_handle_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_control_disabled_holo.png b/core/res/res/drawable-xhdpi/scrubber_control_disabled_holo.png
new file mode 100644
index 0000000..c3b9bb4
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_control_holo.png b/core/res/res/drawable-xhdpi/scrubber_control_holo.png
new file mode 100644
index 0000000..f72e48c
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_control_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_primary_holo.9.png b/core/res/res/drawable-xhdpi/scrubber_primary_holo.9.png
new file mode 100644
index 0000000..328bd1e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_secondary_holo.9.png b/core/res/res/drawable-xhdpi/scrubber_secondary_holo.9.png
new file mode 100644
index 0000000..dcc4221
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_track_holo_dark.9.png b/core/res/res/drawable-xhdpi/scrubber_track_holo_dark.9.png
new file mode 100644
index 0000000..80e4400
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_track_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_track_holo_light.9.png b/core/res/res/drawable-xhdpi/scrubber_track_holo_light.9.png
new file mode 100644
index 0000000..af96c43
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_track_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_16_inner_holo.png b/core/res/res/drawable-xhdpi/spinner_16_inner_holo.png
index f868ff1..f5e9164 100644
--- a/core/res/res/drawable-xhdpi/spinner_16_inner_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_16_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_16_outer_holo.png b/core/res/res/drawable-xhdpi/spinner_16_outer_holo.png
index abd2d57..6f977a2 100644
--- a/core/res/res/drawable-xhdpi/spinner_16_outer_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_16_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_20_inner_holo.png b/core/res/res/drawable-xhdpi/spinner_20_inner_holo.png
index d2691d3..16c8430 100644
--- a/core/res/res/drawable-xhdpi/spinner_20_inner_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_20_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_20_outer_holo.png b/core/res/res/drawable-xhdpi/spinner_20_outer_holo.png
index a5c87d1..9593616 100644
--- a/core/res/res/drawable-xhdpi/spinner_20_outer_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_20_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_48_inner_holo.png b/core/res/res/drawable-xhdpi/spinner_48_inner_holo.png
index 24176bf..cebf1d8 100644
--- a/core/res/res/drawable-xhdpi/spinner_48_inner_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_48_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_48_outer_holo.png b/core/res/res/drawable-xhdpi/spinner_48_outer_holo.png
index 53b34ef..5a9e001 100644
--- a/core/res/res/drawable-xhdpi/spinner_48_outer_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_48_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_76_inner_holo.png b/core/res/res/drawable-xhdpi/spinner_76_inner_holo.png
index fa267b4..c68cc37 100644
--- a/core/res/res/drawable-xhdpi/spinner_76_inner_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_76_inner_holo.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_76_outer_holo.png b/core/res/res/drawable-xhdpi/spinner_76_outer_holo.png
index 2c1f879..611dc5a 100644
--- a/core/res/res/drawable-xhdpi/spinner_76_outer_holo.png
+++ b/core/res/res/drawable-xhdpi/spinner_76_outer_holo.png
Binary files differ
diff --git a/core/res/res/drawable/btn_keyboard_key_ics.xml b/core/res/res/drawable/btn_keyboard_key_ics.xml
new file mode 100644
index 0000000..7335cc2
--- /dev/null
+++ b/core/res/res/drawable/btn_keyboard_key_ics.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- Functional keys. -->
+
+ <item android:state_single="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed_holo" />
+ <item android:state_single="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+
+ <!-- Toggle keys. Use checkable/checked state. -->
+
+ <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed_on_holo" />
+ <item android:state_checkable="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed_off_holo" />
+ <item android:state_checkable="true" android:state_checked="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_normal_on_holo" />
+ <item android:state_checkable="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_normal_off_holo" />
+
+ <!-- Normal keys -->
+
+ <item android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_light_pressed_holo" />
+ <item android:drawable="@drawable/btn_keyboard_key_light_normal_holo" />
+</selector>
diff --git a/core/res/res/layout/keyguard_screen_password_landscape.xml b/core/res/res/layout/keyguard_screen_password_landscape.xml
index 960907d..c2536b7 100644
--- a/core/res/res/layout/keyguard_screen_password_landscape.xml
+++ b/core/res/res/layout/keyguard_screen_password_landscape.xml
@@ -118,41 +118,36 @@
/>
<!-- Column 1 -->
- <Space android:layout_width="32dip" android:layout_rowSpan="7" />
+ <Space android:layout_width="16dip" android:layout_rowSpan="7" />
<!-- Column 2 - password entry field and PIN keyboard -->
- <LinearLayout
- android:orientation="vertical"
- android:layout_gravity="center|fill"
- android:layout_rowSpan="7">
-
- <EditText android:id="@+id/passwordEntry"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:singleLine="true"
- android:textStyle="normal"
- android:inputType="textPassword"
- android:layout_gravity="center"
- android:textSize="24sp"
- android:minEms="8"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:background="@drawable/lockscreen_password_field_dark"
- android:textColor="?android:attr/textColorPrimary"
- android:imeOptions="flagNoFullscreen"
- />
-
- <!-- Numeric keyboard -->
- <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
- android:layout_width="250dip"
- android:layout_height="100dip"
- android:layout_gravity="center"
- android:background="#40000000"
- android:layout_marginTop="5dip"
- android:keyBackground="@drawable/btn_keyboard_key_fulltrans"
- android:visibility="gone"
+ <EditText android:id="@+id/passwordEntry"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="fill"
+ android:gravity="center"
+ android:singleLine="true"
+ android:textStyle="normal"
+ android:inputType="textPassword"
+ android:textSize="24sp"
+ android:minEms="8"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:background="@drawable/lockscreen_password_field_dark"
+ android:textColor="?android:attr/textColorPrimary"
+ android:imeOptions="flagNoFullscreen|actionDone"
/>
- </LinearLayout>
+ <!-- Numeric keyboard -->
+ <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
+ android:layout_width="270dip"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="4dip"
+ android:background="#40000000"
+ android:layout_marginTop="5dip"
+ android:keyBackground="@*android:drawable/btn_keyboard_key_ics"
+ android:visibility="gone"
+ android:layout_rowSpan="6"
+ />
<!-- Music transport control -->
<include android:id="@+id/transport"
diff --git a/core/res/res/layout/keyguard_screen_password_portrait.xml b/core/res/res/layout/keyguard_screen_password_portrait.xml
index 7a51035..cd33275 100644
--- a/core/res/res/layout/keyguard_screen_password_portrait.xml
+++ b/core/res/res/layout/keyguard_screen_password_portrait.xml
@@ -94,31 +94,32 @@
android:drawablePadding="4dip"
/>
- <Space android:layout_height="100dip"/>
-
<!-- Password entry field -->
<EditText android:id="@+id/passwordEntry"
android:layout_height="wrap_content"
android:layout_width="match_parent"
+ android:layout_gravity="center_vertical|fill_horizontal"
+ android:gravity="center_horizontal"
android:singleLine="true"
android:textStyle="normal"
android:inputType="textPassword"
- android:gravity="center"
- android:textSize="22sp"
+ android:textSize="36sp"
android:layout_marginLeft="16dip"
android:layout_marginRight="16dip"
android:background="@drawable/lockscreen_password_field_dark"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="#ffffffff"/>
-
- <Space android:layout_gravity="fill" />
+ android:textColor="#ffffffff"
+ android:imeOptions="actionDone"/>
<!-- Numeric keyboard -->
<com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
android:layout_width="match_parent"
- android:layout_height="260dip"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="4dip"
+ android:paddingTop="4dip"
+ android:paddingBottom="4dip"
android:background="#40000000"
- android:keyBackground="@*android:drawable/btn_keyboard_key_fulltrans"
+ android:keyBackground="@*android:drawable/btn_keyboard_key_ics"
android:visibility="gone"
/>
@@ -139,7 +140,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"
- android:layout_marginRight="16dip"
android:layout_gravity="center_horizontal"
android:drawableLeft="@*android:drawable/lockscreen_emergency_button"
style="?android:attr/buttonBarButtonStyle"
@@ -153,7 +153,7 @@
layout="@layout/keyguard_transport_control"
android:layout_row="0"
android:layout_column="0"
- android:layout_rowSpan="4"
+ android:layout_rowSpan="3"
android:layout_columnSpan="1"
android:layout_gravity="fill"
/>
diff --git a/core/res/res/layout/volume_adjust.xml b/core/res/res/layout/volume_adjust.xml
index 7303003..8c580c2 100644
--- a/core/res/res/layout/volume_adjust.xml
+++ b/core/res/res/layout/volume_adjust.xml
@@ -54,6 +54,7 @@
android:padding="16dip"
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_sysbar_quicksettings"
+ android:contentDescription="@string/volume_panel_more_description"
/>
</LinearLayout>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index e60af6d..93f0526 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -1117,7 +1117,8 @@
<skip />
<!-- no translation found for paste (5629880836805036433) -->
<skip />
- <string name="pasteDisabled" msgid="7259254654641456570">"Niks om te plak nie"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<!-- no translation found for copyUrl (2538211579596067402) -->
<skip />
<string name="selectTextMode" msgid="6738556348861347240">"Kies teks..."</string>
@@ -1431,6 +1432,22 @@
<skip />
<!-- no translation found for number_picker_decrement_button (2576606679160067262) -->
<skip />
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<!-- no translation found for action_bar_home_description (5293600496601490216) -->
<skip />
<!-- no translation found for action_bar_up_description (2237496562952152589) -->
@@ -1457,6 +1474,14 @@
<skip />
<!-- no translation found for data_usage_limit_body (2182247539226163759) -->
<skip />
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<!-- no translation found for ssl_certificate (6510040486049237639) -->
<skip />
<!-- no translation found for ssl_certificate_is_valid (6825263250774569373) -->
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 716d19f..ac2bdd1 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -1117,7 +1117,8 @@
<skip />
<!-- no translation found for paste (5629880836805036433) -->
<skip />
- <string name="pasteDisabled" msgid="7259254654641456570">"ምንም የሚለጠፍ የለም"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<!-- no translation found for copyUrl (2538211579596067402) -->
<skip />
<string name="selectTextMode" msgid="6738556348861347240">"ፅሁፍ ምረጥ"</string>
@@ -1431,6 +1432,22 @@
<skip />
<!-- no translation found for number_picker_decrement_button (2576606679160067262) -->
<skip />
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<!-- no translation found for action_bar_home_description (5293600496601490216) -->
<skip />
<!-- no translation found for action_bar_up_description (2237496562952152589) -->
@@ -1457,6 +1474,14 @@
<skip />
<!-- no translation found for data_usage_limit_body (2182247539226163759) -->
<skip />
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<!-- no translation found for ssl_certificate (6510040486049237639) -->
<skip />
<!-- no translation found for ssl_certificate_is_valid (6825263250774569373) -->
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 12a240a..fb313f9 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"للسماح للتطبيقات بمراقبة الأحرف التي تضغط عليها حتى عند التفاعل مع تطبيق آخر (مثل إدخال كلمة مرور). لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"الالتزام بطريقة إرسال ما"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لطريقة الإرسال. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"الالتزام بخدمة إدخال النصوص"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لخدمة إدخال النصوص (على سبيل المثال، SpellCheckerService). لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"الالتزام بخلفية ما"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"للسماح للمالك بالالتزام بواجهة المستوى العلوي للخلفية. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"الالتزام بخدمة أداة"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"للسماح لتطبيق ما بتعديل سجل المتصفح أو الإشارات في هاتفك. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات المتصفح أو تعديلها."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"تعيين المنبه في ساعة المنبه"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"للسماح للتطبيق بضبط المنبه في تطبيق ساعة منبه مثبّت. ربما لا تنفذ بعض تطبيقات المنبه هذه الميزة."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"الوصول إلى رسائل البريد الصوتي التي يديرها هذا التطبيق"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"للسماح للتطبيق بتخزين واسترداد رسائل البريد الصوتي التي يمكنه الوصول إلى الخدمة المرتبطة بها فقط."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"تعديل أذونات الموقع الجغرافي للمتصفح"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"للسماح لتطبيق ما بتعديل أذونات الموقع الجغرافي للمتصفح. يمكن أن تستخدم التطبيقات الضارة هذا للسماح بإرسال معلومات الموقع إلى مواقع ويب عشوائية."</string>
<string name="save_password_message" msgid="767344687139195790">"هل تريد من المتصفح تذكر كلمة المرور هذه؟"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"قص"</string>
<string name="copy" msgid="2681946229533511987">"نسخ"</string>
<string name="paste" msgid="5629880836805036433">"لصق"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"ليس هناك شيء للصقه"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"نسخ عنوان URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"تحديد نص..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"تحديد النص"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"هناك شبكة Wi-Fi مفتوحة متاحة"</item>
<item quantity="other" msgid="7915895323644292768">"هناك شبكات Wi-Fi مفتوحة متاحة"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"تم تعطيل شبكة Wi-Fi."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"تم تعطيل شبكة Wi-Fi مؤقتًا بسبب اتصال خاطئ."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"اتصال Wi-Fi مباشر"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"ابدأ تشغيل اتصالWi-Fi المباشر. يؤدي ذلك إلى إيقاف تشغيل عميل/نقطة اتصال Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"أخفق بدء اتصال Wi-Fi مباشر."</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"هناك طلب اتصال Wi-Fi مباشر من <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. انقر على موافق للقبول."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"هناك طلب إعداد اتصال Wi-Fi مباشر من <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. أدخل رقم التعريف الشخصي للبدء."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"يجب إدخال رقم التعريف الشخصي لـ WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> في الجهاز النظير <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> حتى يبدأ إعداد الاتصال."</string>
<string name="select_character" msgid="3365550120617701745">"إدراج حرف"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"تطبيق غير معروف"</string>
<string name="sms_control_title" msgid="7296612781128917719">"إرسال رسائل قصيرة SMS"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"التوصيل كجهاز وسائط"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"التوصيل ككاميرا"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"التوصيل كأداة تثبيت"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"الاتصال بجهاز USB ملحق"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"المس للاطلاع على خيارات USB الأخرى"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"تهيئة وحدة تخزين USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"تنسيق بطاقة SD"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"حدد حسابًا."</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"زيادة"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"تناقص"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"التنقل إلى الشاشة الرئيسية"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"التنقل إلى أعلى"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"المزيد من الخيارات"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"تم تعطيل بيانات شبكة الجيل الرابع"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"تم تعطيل بيانات الجوال"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"انقر للتمكين."</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"شهادة الأمان"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"هذه الشهادة صالحة."</string>
<string name="issued_to" msgid="454239480274921032">"إصدار لـ:"</string>
@@ -1134,6 +1146,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"عرض الكل..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"تحديد نشاط"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"مشاركة مع..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"تم قفل الجهاز."</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index f20ef1b..2707b65 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Изрязване"</string>
<string name="copy" msgid="2681946229533511987">"Копиране"</string>
<string name="paste" msgid="5629880836805036433">"Поставяне"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Нищо за поставяне"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Копиране на URL адреса"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Избиране на текст..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Избиране на текст"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Избор на профил"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Увеличаване"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Намаляване"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Придвижване към „Начало“"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Придвижване нагоре"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Още опции"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G данните са деактивирани"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Мобилните данни са деактивирани"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"докоснете за активиране"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Сертификат за сигурност"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Този сертификат е валиден."</string>
<string name="issued_to" msgid="454239480274921032">"Издаден на:"</string>
@@ -1132,10 +1157,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Пръстов отпечатък SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Пръстов отпечатък SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Вижте всички..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Избор на активност"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Споделяне с..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index cb57c33..5eb1eb9 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Retalla"</string>
<string name="copy" msgid="2681946229533511987">"Copia"</string>
<string name="paste" msgid="5629880836805036433">"Enganxa"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Cap elem. per engan."</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copia l\'URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Selecciona el text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selecció de text"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplicació redirigida"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> s\'està executant."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> es va iniciar originalment."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Escala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostra sempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Torna a activar-ho amb Configuració > Aplicacions > Gestiona les aplicacions."</string>
<string name="smv_application" msgid="295583804361236288">"L\'aplicació <xliff:g id="APPLICATION">%1$s</xliff:g> (procés <xliff:g id="PROCESS">%2$s</xliff:g>) ha incomplert la seva política autoimposada de mode estricte."</string>
<string name="smv_process" msgid="5120397012047462446">"El procés <xliff:g id="PROCESS">%1$s</xliff:g> ha incomplert la seva política de mode estricte."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> s\'està executant"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"S\'estan enviant molts missatges SMS. Seleccioneu \"D\'acord\" per continuar o \"Cancel·la\" per aturar l\'enviament."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"D\'acord"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Cancel·la"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Extracció de la targeta SIM"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"La xarxa de telefonia mòbil no estarà disponible fins que no canviïs la targeta SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Fet"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Addició de la targeta SIM"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Cal que reiniciïs el dispositiu per accedir a la xarxa de telefonia mòbil."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reinicia"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Estableix l\'hora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Establiment de data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Defineix"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Selecciona un compte"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Incrementa"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Disminueix"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Torna a la pàgina d\'inici"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Mou cap a dalt"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Més opcions"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Dades 4G desactivades"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Dades mòbils desactivades"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"pica per activar-lo"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificat de seguretat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Aquest certificat és vàlid."</string>
<string name="issued_to" msgid="454239480274921032">"Emès per a:"</string>
@@ -1132,7 +1148,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Empremta SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Empremta SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Mostra-ho tot"</string>
- <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Selecció d\'activitat"</string>
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Selecció d’activitat"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Ús compartit amb..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index c074e7b..edc0b41 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Vyjmout"</string>
<string name="copy" msgid="2681946229533511987">"Kopírovat"</string>
<string name="paste" msgid="5629880836805036433">"Vložit"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Není co vložit"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopírovat adresu URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Vybrat text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Výběr textu"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplikace přesměrována"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Je spuštěna aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Původně byla spuštěna aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Měřítko"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Vždy zobrazovat"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Tuto možnost můžete opět aktivovat v části Nastavení > Aplikace > Správa aplikací."</string>
<string name="smv_application" msgid="295583804361236288">"Aplikace <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) porušila své vlastní vynucené zásady StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> porušil své vlastní vynucené zásady StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Běží aplikace <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Je odesílán velký počet zpráv SMS. Vyberte OK, chcete-li pokračovat, nebo Zrušit, chcete-li odesílání ukončit."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Zrušit"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Karta SIM odebrána"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobilní síť bude nedostupná, dokud nevyměníte kartu SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Hotovo"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Karta SIM přidána."</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Mobilní síť bude přístupná po restartu zařízení."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Restartovat"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastavení času"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastavení data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Nastavit"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Vybrat účet"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Zvýšení"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Snížení"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Přejít na plochu"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Přejít nahoru"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Další možnosti"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Datové přenosy 4G jsou zakázány"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilní data jsou zakázána"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"klepnutím povolíte"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certifikát zabezpečení"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Tento certifikát je platný."</string>
<string name="issued_to" msgid="454239480274921032">"Vydáno pro:"</string>
@@ -1133,7 +1149,7 @@
<string name="sha1_fingerprint" msgid="7930330235269404581">"Digitální otisk SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Zobrazit vše..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Vybrat činnost"</string>
- <string name="share_action_provider_share_with" msgid="1791316789651185229">"Sdílet..."</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Sdílet s..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 0038b29..b8b53ad 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Tillader, at en applikation registrerer taster, du trykker på, selv når du interagerer med andre applikationer (f.eks. ved indtastning af adgangskode). Bør aldrig være nødvendigt til normale applikationer."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"forpligt til en inputmetode"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Tillader, at brugeren forpligter sig til en inputmetodes grænseflade på øverste niveau. Bør aldrig være nødvendig til normale applikationer."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"forpligte sig til en sms-tjeneste"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Tillader brugeren at forpligte sig på en teksttjenestes grænseflade (f. eks. SpellCheckerService) på øverste niveau. Bør aldrig være nødvendig til almindelige programmer."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"forpligt til et tapet"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Tillader, at brugeren forpligter sig til et tapets grænseflade på øverste niveau. Bør aldrig være nødvendig til normale applikationer."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"forpligt til en widgettjeneste"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Tillader, at en applikation ændrer browseroversigten eller bogmærker, der er gemt på din telefon. Ondsindede applikationer kan bruge dette til at slette eller ændre din browsers data."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"angiv alarm i alarmprogram"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Tillader, at applikationen angiver en alarm i et installeret alarmprogram. Nogle alarmprogrammer kan ikke implementere denne funktion."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Få adgang til telefonsvarerbeskeder, der administreres af dette program"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Tillader, at applikationen kun gemmer og henter de telefonsvarerbeskeder, som dets tilknyttede tjeneste kan få adgang til."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Skift browsertilladelser for geografisk placering"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Giver en applikation tilladelse til at ændre browserens tilladelser for geografisk placering. Skadelige applikationer kan bruge dette til at tillade, at placeringsoplysninger sendes til vilkårlige websteder."</string>
<string name="save_password_message" msgid="767344687139195790">"Ønsker du, at browseren skal huske denne adgangskode?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Klip"</string>
<string name="copy" msgid="2681946229533511987">"Kopier"</string>
<string name="paste" msgid="5629880836805036433">"Indsæt"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Intet at indsætte"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopier webadresse"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Marker tekst..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Tekstmarkering"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"Åbent Wi-Fi-netværk tilgængeligt"</item>
<item quantity="other" msgid="7915895323644292768">"Der er åbne Wi-Fi-netværk tilgængelige"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Et Wi-Fi-netværk blev deaktiveret"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Et Wi-Fi-netværk blev midlertidigt deaktiveret på grund af dårlig forbindelse."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Start Wi-Fi Direct-drift. Dette vil slukke for Wi-Fi-klient / hotspot-drift."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Kunne ikke starte Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Anmodning om konfiguration af Wi-Fi Direct-forbindelse fra <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Klik på OK for at acceptere."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Anmodning om konfiguration af Wi-Fi Direct-forbindelse fra <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Indtast pinkode for at fortsætte."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"WPS-pinkoden <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> skal angives på peer-enheden <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> for at fortsætte konfiguration af forbindelsen"</string>
<string name="select_character" msgid="3365550120617701745">"Indsæt tegn"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Ukendt applikation"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Sender sms-beskeder"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Tilsluttet som en medieenhed"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Tilsluttet som et kamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Tilsluttet som et installationsprogram"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Tilsluttet et USB-ekstraudstyr"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Tryk for at se andre valgmuligheder for USB-tilslutning"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formater USB-lager"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formater SD-kort"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Vælg en konto"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Optælling"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Nedtælling"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Naviger hjem"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Naviger op"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Flere valgmuligheder"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G-data er deaktiveret"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobildata er deaktiveret"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tryk for at aktivere"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sikkerhedscertifikat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Dette certifikat er gyldigt."</string>
<string name="issued_to" msgid="454239480274921032">"Udstedt til:"</string>
@@ -1134,6 +1146,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Se alle..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Vælg aktivitet"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Del med..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Enhed låst."</string>
</resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 508b65d..a185a0f 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Ausschneiden"</string>
<string name="copy" msgid="2681946229533511987">"Kopieren"</string>
<string name="paste" msgid="5629880836805036433">"Einfügen"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nichts zum Einfügen"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URL kopieren"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Text auswählen..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Textauswahl"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Konto auswählen"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Erhöhen"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Verringern"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Zur Startseite navigieren"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Nach oben navigieren"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Weitere Optionen"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G-Daten deaktiviert"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobile Daten deaktiviert"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"Zum Aktivieren klicken"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sicherheitszertifikat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Dies ist ein gültiges Zertifikat."</string>
<string name="issued_to" msgid="454239480274921032">"Ausgestellt für:"</string>
@@ -1132,10 +1157,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256-Fingerabdruck:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1-Fingerabdruck:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Alle anzeigen..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Aktion auswählen"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Teilen mit..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 1bf806a..7491472 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Επιτρέπει σε εφαρμογές να παρακολουθούν τα πλήκτρα που πατάτε, ακόμη και σε μια άλλη εφαρμογή (όπως π.χ. η καταχώρηση ενός κωδικού πρόσβασης). Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"δέσμευση σε μέθοδο εισόδου"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Επιτρέπει στον κάτοχο τη δέσμευση στη διεπαφή ανωτάτου επιπέδου μιας μεθόδου εισόδου. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"σύνδεση σε υπηρεσία ανταλλαγής μηνυμάτων"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Επιτρέπει στον κάτοχο τη σύνδεση με τη διεπαφή ανωτέρου επιπέδου μιας υπηρεσίας ανταλλαγής μηνυμάτων (π.χ. SpellCheckerService). Δεν είναι απαραίτητο για κανονικές εφαρμογές."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"δέσμευση σε ταπετσαρία"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Επιτρέπει στον κάτοχο τη δέσμευση στη διεπαφή ανωτάτου επιπέδου μιας ταπετσαρίας. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"δέσμευση σε υπηρεσία γραφικών στοιχείων"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Επιτρέπει σε μια εφαρμογή να τροποποιήσει το ιστορικό ή τους σελιδοδείκτες του προγράμματος περιήγησης που βρίσκονται αποθηκευμένα στο τηλέφωνό σας. Κακόβουλες εφαρμογές μπορούν να το χρησιμοποιήσουν για να διαγράψουν ή να τροποποιήσουν τα δεδομένα του προγράμματος περιήγησης."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"ρύθμιση ειδοποίησης σε ξυπνητήρι"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Επιτρέπει στην εφαρμογή να ρυθμίσει μια ειδοποίηση σε μια εγκατεστημένη εφαρμογή ξυπνητηριού. Κάποιες εφαρμογές ξυπνητηριού ενδέχεται να μην περιλαμβάνουν αυτή τη λειτουργία."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Πρόσβαση σε μηνύματα αυτόματου τηλεφωνητή, τα οποία διαχειρίζεται αυτή η εφαρμογή"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Επιτρέπει στην εφαρμογή την αποθήκευση και την ανάκτηση μόνο μηνυμάτων αυτόματου τηλεφωνητή, στα οποία έχει πρόσβαση η σχετική υπηρεσία."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Τροποποίηση δικαιωμάτων γεωγραφικής θέσης προγράμματος περιήγησης"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Επιτρέπει σε μια εφαρμογή την τροποποίηση των δικαιωμάτων γεωγραφικής θέσης του προγράμματος περιήγησης. Οι κακόβουλες εφαρμογές μπορούν να το χρησιμοποιήσουν για να επιτρέψουν την αποστολή στοιχείων τοποθεσίας σε αυθαίρετους ιστότοπους."</string>
<string name="save_password_message" msgid="767344687139195790">"Θέλετε το πρόγραμμα περιήγησης να διατηρήσει αυτόν τον κωδικό πρόσβασης;"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Αποκοπή"</string>
<string name="copy" msgid="2681946229533511987">"Αντιγραφή"</string>
<string name="paste" msgid="5629880836805036433">"Επικόλληση"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Καν. στοιχ. για επικ."</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Αντιγραφή διεύθυνσης URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Επιλογή κειμένου..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Επιλογή κειμένου"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Ανακατεύθυνση εφαρμογής"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> εκτελείται τώρα."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Έγινε εκκίνηση πρώτα της εφαρμογής <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Κλίμακα"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Να εμφανίζονται πάντα"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Ενεργοποίηση αυτής της εφαρμογής από τις Ρυθμίσεις > Εφαρμογές > Διαχείριση εφαρμογών."</string>
<string name="smv_application" msgid="295583804361236288">"Η εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g> (διεργασία <xliff:g id="PROCESS">%2$s</xliff:g>) παραβίασε την αυτοεπιβαλόμενη πολιτική StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Η διεργασία <xliff:g id="PROCESS">%1$s</xliff:g> παραβίασε την αυτοεπιβαλόμενη πολιτική StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Η εφαρμογή <xliff:g id="APP">%1$s</xliff:g> εκτελείται"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Υπάρχει διαθέσιμο ανοικτό δίκτυο Wi-Fi"</item>
<item quantity="other" msgid="7915895323644292768">"Υπάρχουν διαθέσιμα ανοικτά δίκτυα Wi-Fi"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Ένα δίκτυο Wi-Fi ήταν απενεργοποιημένο."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Ένα δίκτυο Wi-Fi ήταν προσωρινά απενεργοποιημένο λόγω κακής σύνδεσης."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Ξεκινήστε τη λειτουργία Wi-Fi Direct. Θα απενεργοποιηθεί η λειτουργία πελάτη/φορητού σημείου πρόσβασης Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Αποτυχία έναρξης Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Αίτημα για ρύθμιση σύνδεσης Wi-Fi Direct από το <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Κάντε κλικ στο κουμπί OK για αποδοχή."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Αίτημα ρύθμισης σύνδεσης Wi-Fi Direct από τη διεύθυνση <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Καταχωρίστε το pin για να συνεχίσετε."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Το pin WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> πρέπει να καταχωριστεί στην ομότιμη συσκευή <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> για να συνεχιστεί η ρύθμιση της σύνδεσης"</string>
<string name="select_character" msgid="3365550120617701745">"Εισαγωγή χαρακτήρα"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Άγνωστη εφαρμογή"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Αποστολή μηνυμάτων SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Αποστέλλεται μεγάλος αριθμός μηνυμάτων SMS. Επιλέξτε \"OK\" για συνέχεια, ή \"Ακύρωση\" για διακοπή αποστολής."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Ακύρωση"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Η κάρτα SIM αφαιρέθηκε"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Το δίκτυο κινητής τηλεφωνίας δεν θα είναι διαθέσιμο έως ότου αντικαταστήσετε την κάρτα SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Τέλος"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Προστέθηκε κάρτα SIM"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Πρέπει να επανεκκινήσετε τη συσκευή σας για να αποκτήσετε πρόσβαση στο δίκτυο κινητής τηλεφωνίας"</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Επανεκκίνηση"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Ρύθμιση ώρας"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Ορισμός ημερομηνίας"</string>
<string name="date_time_set" msgid="5777075614321087758">"Ορισμός"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Συνδεδεμένο ως συσκευή πολυμέσων"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Συνδεδεμένο ως φωτογραφική μηχανή"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Συνδεδεμένο ως πρόγραμμα εγκατάστασης"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Σύνδεση σε αξεσουάρ USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Αγγίξτε για άλλες επιλογές USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Διαγρ. απ. χώρου USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Διαμόρφωση κάρτας SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Επιλογή λογαριασμού"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Αύξηση"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Μείωση"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Πλοήγηση στην αρχική σελίδα"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Πλοήγηση προς τα επάνω"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Περισσότερες επιλογές"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Τα δεδομένα 4G απενεργοποιήθηκαν"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Τα δεδομ. κιν. τηλεφ. απενεργοπ."</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"πατήστε για ενεργοποίηση"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Πιστοποιητικό ασφαλείας"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Αυτό το πιστοποιητικό είναι έγκυρο."</string>
<string name="issued_to" msgid="454239480274921032">"Εκδόθηκε σε:"</string>
@@ -1132,10 +1135,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Αποτύπωμα SHA-256"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Αποτύπωμα SHA-1"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Εμφάνιση όλων..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Επιλογή δραστηριότητας"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Κοινή χρήση με..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Η συσκευή κλειδώθηκε."</string>
</resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index a22fafc..39e85ed 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Allows applications to watch the keys that you press even when interacting with another application (such as entering a password). Should never be needed for normal applications."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"bind to an input method"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Allows the holder to bind to the top-level interface of an input method. Should never be needed for normal applications."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"bind to a text service"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Allows the holder to bind to the top-level interface of a text service (e.g. SpellCheckerService). Should never be needed for normal applications."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"bind to wallpaper"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Allows the holder to bind to the top-level interface of wallpaper. Should never be needed for normal applications."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"bind to a widget service"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Allows an application to modify the browser\'s history or bookmarks stored on your phone. Malicious applications can use this to erase or modify your browser\'s data."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"set alarm in alarm clock"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Allows the application to set an alarm in an installed alarm clock application. Some alarm clock applications may not implement this feature."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Access voicemails managed by this application"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Allows the application to store and retrieve only voicemails that its associated service can access."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Modify Browser geo-location permissions"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Allows an application to modify the browser\'s geo-location permissions. Malicious applications can use this to allow the sending of location information to arbitrary websites."</string>
<string name="save_password_message" msgid="767344687139195790">"Do you want the browser to remember this password?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Cut"</string>
<string name="copy" msgid="2681946229533511987">"Copy"</string>
<string name="paste" msgid="5629880836805036433">"Paste"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nothing to paste"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copy URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Select text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Text selection"</string>
@@ -916,22 +913,14 @@
<item quantity="one" msgid="1634101450343277345">"Open available Wi-Fi network"</item>
<item quantity="other" msgid="7915895323644292768">"Open Wi-Fi networks available"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"A Wi-Fi network was disabled"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"A Wi-Fi network was temporarily disabled due to bad connectivity."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Start Wi-Fi Direct operation. This will turn off Wi-Fi client/hotspot operation."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Failed to start Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Wi-Fi Direct connection setup request from <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Click OK to accept."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Wi-Fi Direct connection setup request from <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Enter PIN to proceed."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"WPS pin <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> needs to be entered on the peer device <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> for connection setup to proceed"</string>
<string name="select_character" msgid="3365550120617701745">"Insert character"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Unknown application"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Sending SMS messages"</string>
@@ -974,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Connected as a media device"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Connected as a camera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Connected as an installer"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Connected to a USB accessory"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Touch for other USB options"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Format USB storage"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Format SD card"</string>
@@ -1095,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Select an account"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Increment"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Decrement"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navigate home"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navigate up"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"More options"</string>
@@ -1108,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G data disabled"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobile data disabled"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"Tap to enable"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Security certificate"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"This certificate is valid."</string>
<string name="issued_to" msgid="454239480274921032">"Issued to:"</string>
@@ -1125,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"See all..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Select activity"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Share with..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Device locked."</string>
</resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 7c61d39..c07551e 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Admite que las aplicaciones observen las teclas que presionas, incluso al interactuar con otra aplicación (como el ingreso de una contraseña). Se debe evitar utilizarlo en aplicaciones normales."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"vincular a un método de entrada"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite al propietario vincularse a la interfaz de nivel superior de un método de entrada. Se debe evitar utilizarlo en aplicaciones normales."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"vincular a un servicio de texto"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Permite al titular vincularse a la interfaz de nivel superior de un servicio de texto (por ejemplo, SpellCheckerService). Nunca debe ser necesario para las aplicaciones normales."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"vincular a un fondo de pantalla"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite al propietario vincularse a la interfaz de nivel superior de un fondo de pantalla. Se debe evitar utilizarlo en aplicaciones normales."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"vincular a un servicio de widget"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Permite a una aplicación modificar el historial y los marcadores del navegador almacenados en tu teléfono. Las aplicaciones maliciosas pueden utilizarlo para borrar o modificar tus datos."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"configurar alarma en reloj alarma"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Permite que la aplicación configure una alarma en una aplicación instalada de reloj alarma. Es posible que algunas aplicaciones de reloj alarma no implementen esta función."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Buzones de voz de acceso administrados por esta aplicación."</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Permite que la aplicación almacene y recupere solo buzones de voz a los que sus servicios asociados pueden acceder."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Modificar los permisos de ubicación geográfica del navegador"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Permite que una aplicación modifique los permisos de ubicación geográfica del navegador. Las aplicaciones maliciosas pueden utilizarlos para permitir el envío de información sobre la ubicación a sitos web de forma arbitraria."</string>
<string name="save_password_message" msgid="767344687139195790">"¿Quieres recordar esta contraseña en el navegador?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Pegar"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nada que pegar"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selección de texto"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Se redirigió la aplicación"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> se está ejecutando ahora."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> se inició originalmente."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Escala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostrar siempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Volver a habilitar esto con Configuración > Aplicaciones > Administrar aplicaciones."</string>
<string name="smv_application" msgid="295583804361236288">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (proceso <xliff:g id="PROCESS">%2$s</xliff:g>) ha violado su política StrictMode autoimpuesta."</string>
<string name="smv_process" msgid="5120397012047462446">"El proceso <xliff:g id="PROCESS">%1$s</xliff:g> ha violado su política StrictMode autoimpuesta."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> en ejecución"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Abrir red disponible de Wi-Fi"</item>
<item quantity="other" msgid="7915895323644292768">"Abrir redes disponibles de Wi-Fi"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Una red Wi-Fi se ha inhabilitado."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Una red Wi-Fi ha sido temporalmente inhabilitada debido a mala conectividad."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Iniciar operación de Wi-Fi Direct. Esto desactivará la operación de cliente/zona Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Error al iniciar el Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Solicitud de configuración de conexión de Wi-Fi Direct desde <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Haz clic en Aceptar."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Solicitud de configuración de conexión de Wi-Fi Direct desde <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Ingresa el llamado para continuar."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"El llamado a WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> necesita ser ingresado en el dispositivo de pares <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> para que la configuración de la conexión continúe."</string>
<string name="select_character" msgid="3365550120617701745">"Insertar caracteres"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Aplicación desconocida"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Enviando mensajes SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Se envía una gran cantidad de mensajes SMS. Selecciona \"Aceptar\" para continuar o \"Cancelar\" para detener el envío."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Aceptar"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Tarjeta SIM eliminada"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"La red para celulares no estará disponible hasta que cambies la tarjeta SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Finalizado"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Tarjeta SIM agregada"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Debes reiniciar tu dispositivo para acceder a la red para celulares."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reiniciar"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Configurar hora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Configurar fecha"</string>
<string name="date_time_set" msgid="5777075614321087758">"Establecer"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Conectado como un dispositivo de medios"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Conectado como una cámara"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Conectado como un instalador"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Conectado a un accesorio USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Toca para otras opciones de USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formatear almacenamiento USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatear tarjeta SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Seleccionar una cuenta"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Incremento"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Decremento"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Desplazarse hasta la página principal"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Desplazarse hacia arriba"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Más opciones"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Datos de 4 GB desactivados"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Datos móviles desactivados"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"pulsa para habilitarla"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificado de seguridad"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Este certificado es válido."</string>
<string name="issued_to" msgid="454239480274921032">"Emitido a:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Ver todas..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Seleccionar actividad"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Compartir con..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Dispositivo bloqueado"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 1179764..c858179 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Pegar"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Portapapeles vacío"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selección de texto"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplicación redireccionada"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> se está ejecutando."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Inicialmente, se inició la aplicación <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Escala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostrar siempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Vuelve a habilitar esta opción en Ajustes > Aplicaciones > Administrar aplicaciones."</string>
<string name="smv_application" msgid="295583804361236288">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (proceso <xliff:g id="PROCESS">%2$s</xliff:g>) ha infringido su política StrictMode autoaplicable."</string>
<string name="smv_process" msgid="5120397012047462446">"El proceso <xliff:g id="PROCESS">%1$s</xliff:g> ha infringido su política StrictMode autoaplicable."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> en ejecución"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Se ha enviado un número elevado de mensajes SMS. Selecciona \"Aceptar\" para continuar o \"Cancelar\" para interrumpir el envío."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Aceptar"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Tarjeta SIM eliminada"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"La red móvil volverá a estar disponible cuando sustituyas la tarjeta SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Listo"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Tarjeta SIM añadida"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Para acceder a la red móvil, debes reiniciar el dispositivo."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reiniciar"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Establecer hora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Establecer fecha"</string>
<string name="date_time_set" msgid="5777075614321087758">"Establecer"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Seleccionar una cuenta"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Aumentar"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Disminuir"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Ir al escritorio"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Desplazarse hacia arriba"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Más opciones"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Datos 4G inhabilitados"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Datos móviles inhabilitados"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tocar para habilitar"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificado de seguridad"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Este certificado es válido."</string>
<string name="issued_to" msgid="454239480274921032">"Emitido para:"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 35fc0b9..0a32aa4 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"برش"</string>
<string name="copy" msgid="2681946229533511987">"کپی"</string>
<string name="paste" msgid="5629880836805036433">"جای گذاری"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"چیزی برای جای گذاری نیست"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"کپی URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"انتخاب متن..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"انتخاب متن"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"انتخاب یک حساب"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"افزایش"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"کاهش"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"رفتن به صفحه اصلی"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"حرکت به بالا"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"سایر گزینه ها"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"داده 4G غیر فعال شده است"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"داده های تلفن همراه غیرفعال شد"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"برای فعال کردن ضربه بزنید"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"گواهی امنیتی"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"این گواهی معتبر است."</string>
<string name="issued_to" msgid="454239480274921032">"صادر شده برای:"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 2e3f921..c8d29eb 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Antaa sovelluksien tarkkailla painamiasi näppäimiä jopa toisten sovellusten käytön yhteydessä (kuten salasanoja syötettäessä). Ei tavallisten sovelluksien käyttöön."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"sitoudu syöttötapaan"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Antaa sovelluksen sitoutua syöttötavan ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"sitoudu tekstipalveluun"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Sovellus voi sitoutua tekstipalvelun (esim. SpellCheckerService) korkeimman tason käyttöliittymään. Ei pitäisi tarvita tavallisissa sovelluksissa."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"sido taustakuvaan"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Antaa sovelluksen sitoutua taustakuvan ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"sitoudu widget-palveluun"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Antaa sovelluksen muokata puhelimeen tallennettuja selaimen historia- ja kirjanmerkkitietoja. Haitalliset sovellukset voivat käyttää tätä pyyhkiäkseen tai muokatakseen selaimen tietoja."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"aseta herätys herätyskelloon"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Antaa sovelluksen asettaa herätyksen asennettuun herätyskellosovellukseen. Kaikki herätyskellosovellukset eivät välttämättä käytä tätä ominaisuutta."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Käytä tämän sovelluksen hallinnoimia vastaajaviestejä"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Antaa sovelluksen tallentaa ja noutaa vain siihen liitetyn palvelun käyttämiä vastaajaviestejä."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"muokkaa selaimen maantieteellisen sijainnin lupia"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Antaa sovelluksen muokata selaimen maantieteellisen sijainnin lupia. Haitalliset sovellukset saattavat käyttää tätä sijaintitietojen lähettämiseen satunnaisiin verkkosivustoihin."</string>
<string name="save_password_message" msgid="767344687139195790">"Haluatko selaimen muistavan tämän salasanan?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Leikkaa"</string>
<string name="copy" msgid="2681946229533511987">"Kopioi"</string>
<string name="paste" msgid="5629880836805036433">"Liitä"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Ei mitään liitettävää"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopioi URL-osoite"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Tekstin valinta..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Tekstin valinta"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"Avoin wifi-verkko käytettävissä"</item>
<item quantity="other" msgid="7915895323644292768">"Avoimia wifi-verkkoja käytettävissä"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Wifi-verkko poistettu käytöstä"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Wifi-verkko oli tilapäisesti pois käytöstä huonon yhteyden vuoksi."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Suora wifi-yhteys"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Käynnistä suora wifi-toiminto. Wifi-yhteyspistetoiminto poistetaan käytöstä."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Suoran wifi-yhteyden käynnistäminen epäonnistui"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Suoran wifi-yhteyden muodostuspyyntö osoitteesta <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Hyväksy valitsemalla OK."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Suoran wifi-yhteyden muodostuspyyntö osoitteesta <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Jatka antamalla PIN-koodi."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"WPS-PIN <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> tulee merkitä vertaislaitteeseen <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>, jotta yhteyden muodostamista voidaan jatkaa"</string>
<string name="select_character" msgid="3365550120617701745">"Lisää merkki"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Tuntematon sovellus"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Tekstiviestien lähettäminen"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Kytketty medialaitteena"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Kytketty kamerana"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Kytketty asennusohjelmana"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Liitetty USB-laitteeseen"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Käytä muita USB-vaihtoehtoja koskettamalla"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Alusta USB-tila"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Alusta SD-kortti"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Valitse tili"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Lisää"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Vähennä"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Siirry etusivulle"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Siirry ylös"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Lisää asetuksia"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G-tiedonsiirto pois käytöstä"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobiilitiedonsiirto pois käytöstä"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"ota käyttöön napauttamalla"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Suojausvarmenne"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Varmenne on voimassa."</string>
<string name="issued_to" msgid="454239480274921032">"Varmenteen saaja:"</string>
@@ -1132,10 +1144,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256-tunnistetiedosto"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1-tunnistetiedosto"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Näytä kaikki..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Valitse toiminto"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Jaa seuraavien kautta:"</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Laite lukittu."</string>
</resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index a10b203..2821a9b 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Couper"</string>
<string name="copy" msgid="2681946229533511987">"Copier"</string>
<string name="paste" msgid="5629880836805036433">"Coller"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Presse-papiers vide"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copier l\'URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Sélect. le texte..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Sélection de texte"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Sélectionner un compte"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Augmenter"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Diminuer"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Retour à l\'accueil"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Parcourir vers le haut"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Plus d\'options"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Données 4G désactivées"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Données mobiles désactivées"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"appuyer pour activer"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificat de sécurité"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Ce certificat est valide."</string>
<string name="issued_to" msgid="454239480274921032">"Délivré à :"</string>
@@ -1132,10 +1157,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Empreinte SHA-256 :"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Empreinte SHA-1 :"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Tout afficher..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Sélectionner une activité"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Partager avec..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 72ea506..e36e51a 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Izreži"</string>
<string name="copy" msgid="2681946229533511987">"Kopiraj"</string>
<string name="paste" msgid="5629880836805036433">"Zalijepi"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Ništa za lijepljenje"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopiraj URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Odabir teksta..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Odabir teksta"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplikacija preusmjerena"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> se izvodi sada."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> pokrenuta je prva."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Mjerilo"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Uvijek prikaži"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Ponovno omogući ovo uz Postavke > Aplikacije > Upravljanje aplikacijama."</string>
<string name="smv_application" msgid="295583804361236288">"Aplikacija <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) prekršila je svoje vlastito pravilo StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> prekršio je svoje vlastito pravilo StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Izvodi se <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Šalje se velika količina SMS poruka. Odaberite \"U redu\" za nastavak, ili za prekid slanja odaberite \"Odustani\"."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"U redu"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Odustani"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM kartica uklonjena"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobilna mreža neće biti dostupna sve dok ne vratite SIM karticu."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Gotovo"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM kartica dodana"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Morate ponovno pokrenuti uređaj za pristup mobilnoj mreži."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Ponovno pokreni"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Postavljanje vremena"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Postavi datum"</string>
<string name="date_time_set" msgid="5777075614321087758">"Postavi"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Odaberite račun"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Povećaj"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Smanji"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Kreni na početnu"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Kreni gore"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Više opcija"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G podaci su onemogućeni"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilni podaci su onemogućeni"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"Dotaknite za omogućivanje"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sigurnosni certifikat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Ovaj je certifikat valjan."</string>
<string name="issued_to" msgid="454239480274921032">"Izdano za:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 otisak prsta:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 otisak prsta:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Prikaži sve..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Odaberite aktivnost"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Dijeli sa..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 3a5fd40..3c41460 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Lehetővé teszi az alkalmazások számára, hogy figyeljék a lenyomott billentyűket még másik alkalmazás használata esetén is (például jelszó beírásakor). A normál alkalmazásoknak erre soha nincs szüksége."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"összekapcsolás egy beviteli módszerrel"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Lehetővé teszi a használó számára a beviteli módszer legfelső szintű kezelőfelületéhez való csatlakozást. A normál alkalmazások soha nem használják ezt."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"csatlakozás szövegszolgáltatáshoz"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Lehetővé teszi, hogy a tulajdonos egy szöveges szolgáltatás felső szintjéhez kapcsolódjon (pl. SpellCheckerService). A szokásos alkalmazásokhoz szinte soha nincs szükség rá."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"összekapcsolás háttérképpel"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Lehetővé teszi a használó számára, hogy csatlakozzon egy háttérkép legfelső szintű kezelőfelületéhez. A normál alkalmazásoknak erre soha nincs szüksége."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"csatlakozás modulszolgáltatáshoz"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Lehetővé teszi egy alkalmazás számára, hogy módosítsa a telefonon tárolt böngészési előzményeket és könyvjelzőket. A rosszindulatú alkalmazások felhasználhatják ezt a böngésző adatainak törlésére vagy módosítására."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"ébresztő beállítása az ébresztőórában"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Lehetővé teszi az alkalmazások számára, hogy beállítsanak egy ébresztőt egy telepített ébresztőóra alkalmazásban. Egyes ilyen alkalmazásokban lehet, hogy nem működik ez a funkció."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Hozzáférés az alkalmazás által kezelt hangüzenetekhez"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Lehetővé teszi, hogy az alkalmazás csak azokat a hangüzeneteket tárolja és kérje le, amelyekhez a kapcsolódó szolgáltatás hozzáfér."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"A böngésző helymeghatározási engedélyeinek módosítása"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Lehetővé teszi egy alkalmazás számára, hogy módosítsa a böngésző helymeghatározási engedélyeit. A rosszindulatú alkalmazások kihasználhatják ezt arra, hogy helyadatokat küldjenek tetszőleges webhelyeknek."</string>
<string name="save_password_message" msgid="767344687139195790">"Szeretné, hogy a böngésző megjegyezze a jelszót?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Kivágás"</string>
<string name="copy" msgid="2681946229533511987">"Másolás"</string>
<string name="paste" msgid="5629880836805036433">"Beillesztés"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nincs mit bemásolni"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URL másolása"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Szöveg kijelölése..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Szöveg kijelölése"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Alk. átirányítva"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> éppen fut."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> volt eredetileg elindítva."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Skála"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mindig megjelenik"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Ismételt bekapcsolás a Beállítások > Alkalmazások > Alkalmazások kezelése alatt."</string>
<string name="smv_application" msgid="295583804361236288">"<xliff:g id="APPLICATION">%1$s</xliff:g> alkalmazás (<xliff:g id="PROCESS">%2$s</xliff:g> folyamat) megsértette az általa kényszerített Szigorú üzemmód irányelvet."</string>
<string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> folyamat megsértette az általa kényszerített Szigorú üzemmód irányelvet."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> fut"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Nyílt Wi-Fi hálózat elérhető"</item>
<item quantity="other" msgid="7915895323644292768">"Nyílt Wi-Fi hálózatok elérhetők"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Egy Wi-Fi hálózat le lett tiltva"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"A Wi-Fi hálózat átmenetileg letiltásra került a gyenge kapcsolat miatt."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Wi-Fi Direct indítása. A Wi-Fi kliens/hotspot kikapcsol."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Nem sikerült elindítani a Wi-Fi Direct kapcsolatot"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Wi-Fi Direct kapcsolódási kérés a következőtől: <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Az elfogadáshoz kattintson az OK gombra."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Wi-Fi Direct csatlakoztatási kérés a következőtől: <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Adja meg a PIN kódot a folytatáshoz."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"A(z) <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> WPS PIN kódot kell beírni a partnereszközön (<xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>) a csatlakoztatás folytatásához"</string>
<string name="select_character" msgid="3365550120617701745">"Karakter beszúrása"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Ismeretlen alkalmazás"</string>
<string name="sms_control_title" msgid="7296612781128917719">"SMS-ek küldése"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Nagyszámú SMS-t kíván elküldeni. A folytatáshoz válassza az \"OK\", a küldés leállításához a \"Mégse\" lehetőséget."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Mégse"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM-kártya eltávolítva"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"A mobilhálózat addig nem lesz elérhető, amíg nem cseréli ki a SIM-kártyát."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Kész"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM-kártya hozzáadva"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"A mobilhálózat eléréséhez újra kell indítania eszközét."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Újraindítás"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Idő beállítása"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Dátum beállítása"</string>
<string name="date_time_set" msgid="5777075614321087758">"Beállítás"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Csatlakoztatva médiaeszközként"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Csatlakoztatva kameraként"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Csatlakoztatva telepítőként"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Csatlakoztatva egy USB-kiegészítőhöz"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Érintse meg a további USB-opciókért"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Az USB-tár formázása"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SD-kártya formázása"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Fiók kiválasztása"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Növelés"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Csökkentés"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Ugrás a főoldalra"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Felfele mozgás"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"További lehetőségek"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G adatforgalom letiltva"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobil adatforgalom letiltva"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"koppintson az engedélyezéshez"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Biztonsági tanúsítvány"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"A tanúsítvány érvényes."</string>
<string name="issued_to" msgid="454239480274921032">"Kiállítva a következőnek:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Összes megtekintése..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Tevékenység kiválasztása"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Megosztás..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Az eszköz le van zárva."</string>
</resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 85b8012..66a742f 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Mengizinkan aplikasi melihat tombol yang Anda tekan bahkan ketika berinteraksi dengan aplikasi lain (seperti memasukkan sandi). Tidak pernah diperlukan untuk aplikasi normal."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"mengikat ke metode masukan"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi pada suatu metode masukan. Tidak diperlukan untuk aplikasi normal."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"mengikat ke layanan teks"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi pada suatu layanan teks (mis. SpellCheckerService). Tidak diperlukan untuk aplikasi normal."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"mengikat ke wallpaper"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi dari suatu wallpaper. Tidak diperlukan untuk aplikasi normal."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"mengikat ke layanan widget"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Mengizinkan aplikasi mengubah riwayat atau bookmark Peramban yang tersimpan pada ponsel. Aplikasi hasad dapat menggunakan ini untuk menghapus atau mengubah data Peramban."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"setel alarm di jam alarm"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Perbolehkan aplikasi untuk menyetel alarm di aplikasi jam alarm yang terpasang. Beberapa aplikasi jam alarm tidak dapat menerapkan fitur ini."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Mengakses kotak pesan yang dikelola oleh aplikasi ini"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Memungkinkan aplikasi menyimpan dan mengambil kotak pesan yang hanya dapat diakses oleh layanan terkait."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Ubah izin geolokasi Peramban"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Mengizinkan aplikasi mengubah izin geolokasi Peramban. Aplikasi hasad dapat menggunakan ini untuk mengizinkan pengiriman informasi lokasi ke situs web sembarangan."</string>
<string name="save_password_message" msgid="767344687139195790">"Apakah Anda ingin peramban menyimpan sandi ini?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Potong"</string>
<string name="copy" msgid="2681946229533511987">"Salin"</string>
<string name="paste" msgid="5629880836805036433">"Tempel"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Tidak ada yang disalin"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Salin URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Pilih teks..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Pemilihan teks"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"Jaringan Wi-Fi terbuka tersedia"</item>
<item quantity="other" msgid="7915895323644292768">"Jaringan Wi-Fi terbuka tersedia"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Jaringan Wi-Fi sedang dinonaktifkan"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Untuk sementara jaringan Wi-Fi dinonaktifkan karena sambungan buruk."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Langsung"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Mulai operasi Wi-Fi Langsung. Opsi ini akan mematikan operasi hotspot/klien WiFi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Gagal memulai Wi-Fi Langsung"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Permintaan penyiapan sambungan WiFI Langsung dari <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Klik OK untuk menerima."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Permintaan penyiapan sambungan WiFi Langsung dari <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Masukkan pin untuk melanjutkan."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Pin WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> harus dimasukkan pada perangkat rekan <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> agar penyiapan sambungan dapat dilanjutkan"</string>
<string name="select_character" msgid="3365550120617701745">"Sisipkan huruf"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Aplikasi tidak dikenal"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Mengirim pesan SMS"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Terhubung sebagai perangkat media"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Terhubung sebagai kamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Terhubung sebagai pemasang"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Tersambung ke aksesori USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Sentuh untuk opsi USB lainnya"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Format penyimpanan USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Format kartu SD"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Pilih akun"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Penambahan"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Pengurangan"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navigasi ke beranda"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navigasi naik"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Opsi lainnya"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Data 4G dinonaktifkan"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Data seluler dinonaktifkan"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"ketuk untuk mengaktifkan"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sertifikat keamanan"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Sertifikat ini valid."</string>
<string name="issued_to" msgid="454239480274921032">"Diterbitkan ke:"</string>
@@ -1132,10 +1144,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Sidik jari SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Sidik jari SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Lihat semua..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Pilih aktivitas"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Berbagi dengan..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Perangkat terkunci."</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 147cb70..4137fb7 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Consente il rilevamento da parte delle applicazioni dei tasti premuti anche durante l\'interazione con un\'altra applicazione (come nel caso di inserimento di una password). Non dovrebbe essere mai necessario per le normali applicazioni."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"associaz. a un metodo di inserimento"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Consente l\'associazione all\'interfaccia principale di un metodo di inserimento. Non dovrebbe essere mai necessario per le normali applicazioni."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"associazione a un servizio di testo"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Consente al titolare di collegarsi all\'interfaccia di primo livello di un servizio di testo (ad esempio SpellCheckerService). Non dovrebbe essere mai necessaria per le normali applicazioni."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"associazione a sfondo"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Consente l\'associazione di uno sfondo all\'interfaccia principale. Non dovrebbe mai essere necessario per le normali applicazioni."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"associazione a un servizio widget"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Consente a un\'applicazione di modificare la cronologia o i segnalibri del browser memorizzati sul telefono. Le applicazioni dannose possono sfruttare questa possibilità per cancellare o modificare i dati del browser."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"impostazione allarmi nella sveglia"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Consente all\'applicazione di impostare un allarme in un\'applicazione sveglia installata. Alcune applicazioni sveglia potrebbero non supportare questa funzione."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Accesso ai messaggi vocali gestiti da questa applicazione"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Consente all\'applicazione di memorizzare e recuperare soltanto i messaggi vocali a cui può accedere il suo servizio associato."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Modifica le autorizzazioni di localizzazione geografica del browser"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Consente a un\'applicazione di modificare le autorizzazioni di localizzazione geografica del browser. Le applicazioni dannose possono utilizzare questa autorizzazione per consentire l\'invio di informazioni sulla posizione a siti web arbitrari."</string>
<string name="save_password_message" msgid="767344687139195790">"Memorizzare la password nel browser?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Taglia"</string>
<string name="copy" msgid="2681946229533511987">"Copia"</string>
<string name="paste" msgid="5629880836805036433">"Incolla"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Niente da incollare"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copia URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleziona testo..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selezione testo"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Applicazione reindirizzata"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> è ora in esecuzione."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> già avviata."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Scala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostra sempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Riattiva questa modalità utilizzando Impostazioni > Applicazioni > Gestisci applicazioni."</string>
<string name="smv_application" msgid="295583804361236288">"L\'applicazione <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) ha violato la norma StrictMode autoimposta."</string>
<string name="smv_process" msgid="5120397012047462446">"Il processo <xliff:g id="PROCESS">%1$s</xliff:g> ha violato la norma StrictMode autoimposta."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> in esecuzione"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Rete Wi-Fi aperta disponibile"</item>
<item quantity="other" msgid="7915895323644292768">"Reti Wi-Fi aperte disponibili"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"È stata disattivata una rete Wi-Fi"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Una rete Wi-Fi è stata temporaneamente disattivata a causa di una pessima connessione."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Avvia funzionamento Wi-Fi Direct. Verrà disattivato il funzionamento con hotspot/client Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Impossibile avviare Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Richiesta di configurazione della connessione Wi-Fi Direct da <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Fai clic su OK per accettare."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Richiesta di configurazione della connessione Wi-Fi Direct da <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Inserisci il PIN per continuare."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Per la continuazione della configurazione della connessione è necessario inserire un codice PIN WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> sul dispositivo peer <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>."</string>
<string name="select_character" msgid="3365550120617701745">"Inserisci carattere"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Applicazione sconosciuta"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Invio SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"È in corso l\'invio di numerosi SMS. Seleziona \"OK\" per continuare, oppure \"Annulla\" per interrompere l\'invio."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Annulla"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Scheda SIM rimossa"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"La rete mobile sarà disponibile dopo la sostituzione della scheda SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Fine"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Scheda SIM aggiunta"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Devi riavviare il dispositivo per poter accedere alla rete mobile."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Riavvia"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Imposta ora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Imposta data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Imposta"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Collegato come dispositivo multimediale"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Collegato come fotocamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Collegato come installer"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Collegato a un accessorio USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Tocca per altre opzioni USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formatta archivio USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatta scheda SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Seleziona un account"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Aumenta"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Diminuisci"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Vai alla home page"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Vai in alto"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Altre opzioni"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Dati 4G disattivati"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Dati mobili disattivati"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tocca per attivare"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificato di protezione"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Questo certificato è valido."</string>
<string name="issued_to" msgid="454239480274921032">"Rilasciato a:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Mostra tutto..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Seleziona attività"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Condividi con..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Dispositivo bloccato."</string>
</resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 159af64..873e5bc 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"גזור"</string>
<string name="copy" msgid="2681946229533511987">"העתק"</string>
<string name="paste" msgid="5629880836805036433">"הדבק"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"אין מה להדביק"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"העתק כתובת אתר"</string>
<string name="selectTextMode" msgid="6738556348861347240">"בחר טקסט..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"בחירת טקסט"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"בחר חשבון"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"הוספה"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"הפחתה"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"נווט לדף הבית"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"נווט למעלה"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"אפשרויות נוספות"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"נתוני 4G מושבתים"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"נתונים לנייד מושבתים"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"הקש כדי להפעיל"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"אישור אבטחה"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"אישור זה תקף."</string>
<string name="issued_to" msgid="454239480274921032">"הוקצה ל:"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index c2b6dd2..16266d0 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"別のアプリケーションへの入力(パスワードなど)でもキー入力を監視することをアプリケーションに許可します。通常のアプリケーションではまったく必要ありません。"</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"入力方法に関連付ける"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"入力方法のトップレベルインターフェースに関連付けることを所有者に許可します。通常のアプリケーションにはまったく必要ありません。"</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"テキストサービスにバインド"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"テキストサービス(SpellCheckerServiceなど)のトップレベルインターフェースへのバインドを所有者に許可します。通常のアプリケーションでは不要です。"</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"壁紙にバインド"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"壁紙のトップレベルインターフェースへのバインドを所有者に許可します。通常のアプリケーションでは不要です。"</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"ウィジェットサービスにバインド"</string>
@@ -712,9 +710,9 @@
<string name="autofill_county" msgid="237073771020362891">"郡"</string>
<string name="autofill_island" msgid="4020100875984667025">"島"</string>
<string name="autofill_district" msgid="8400735073392267672">"地区"</string>
- <string name="autofill_department" msgid="5343279462564453309">"県"</string>
+ <string name="autofill_department" msgid="5343279462564453309">"部署"</string>
<string name="autofill_prefecture" msgid="2028499485065800419">"都道府県"</string>
- <string name="autofill_parish" msgid="8202206105468820057">"行政区"</string>
+ <string name="autofill_parish" msgid="8202206105468820057">"教区"</string>
<string name="autofill_area" msgid="3547409050889952423">"地域"</string>
<string name="autofill_emirate" msgid="2893880978835698818">"首長国"</string>
<string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"ブラウザの履歴とブックマークを読み取る"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"携帯電話に保存されているブラウザの履歴やブックマークの修正をアプリケーショに許可します。これにより悪意のあるアプリケーションが、ブラウザのデータを消去または変更する恐れがあります。"</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"アラームの設定"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"インストール済みアラームアプリケーションのアラーム設定をアプリケーションに許可します。この機能が実装されていないアラームアプリケーションもあります。"</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"このアプリケーションで管理されているボイスメールにアクセス"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"関連サービスでアクセス可能なボイスメールのみを保存および取得することをアプリケーションに許可します。"</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"ブラウザの位置情報へのアクセス権を変更"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"ブラウザの位置情報に対するアクセス権の変更をアプリケーションに許可します。この設定では、悪意のあるアプリケーションが任意のウェブサイトに位置情報を送信する可能性があります。"</string>
<string name="save_password_message" msgid="767344687139195790">"このパスワードをブラウザで保存しますか?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"切り取り"</string>
<string name="copy" msgid="2681946229533511987">"コピー"</string>
<string name="paste" msgid="5629880836805036433">"貼り付け"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"クリップボードが空です"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URLをコピー"</string>
<string name="selectTextMode" msgid="6738556348861347240">"テキストを選択..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"テキスト選択"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"アプリのリダイレクト"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g>が実行中です。"</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g>が最初に起動していました。"</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"スケール"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"常に表示"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"[設定]>[アプリケーション]>[アプリケーションの管理]で再度有効にできます。"</string>
<string name="smv_application" msgid="295583804361236288">"アプリケーション<xliff:g id="APPLICATION">%1$s</xliff:g>(プロセス<xliff:g id="PROCESS">%2$s</xliff:g>)でStrictModeポリシー違反がありました。"</string>
<string name="smv_process" msgid="5120397012047462446">"プロセス<xliff:g id="PROCESS">%1$s</xliff:g>でStrictModeポリシー違反がありました。"</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g>を実行中"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Wi-Fiオープンネットワークが利用できます"</item>
<item quantity="other" msgid="7915895323644292768">"Wi-Fiオープンネットワークが利用できます"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Wi-Fiネットワークが無効になりました"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"接続の不具合によりWi-Fiネットワークは一時的に無効になりました。"</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Wi-Fi Directの操作を開始します。これによりWi-Fiクライアント/アクセスポイントの操作がオフになります。"</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Wi-Fi Directを開始できませんでした"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>からのWi-Fi Direct接続設定リクエスト。[OK]をクリックして受け入れます。"</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>からのWi-Fi Direct接続設定リクエスト。PINを入力して続行します。"</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"接続設定を続行するには、ピアデバイス<xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>でWPS PIN <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g>を入力する必要があります"</string>
<string name="select_character" msgid="3365550120617701745">"文字を挿入"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"不明なアプリケーション"</string>
<string name="sms_control_title" msgid="7296612781128917719">"SMSメッセージの送信中"</string>
<string name="sms_control_message" msgid="1289331457999236205">"大量のSMSメッセージを送信しようとしています。[OK]で送信、[キャンセル]で中止します。"</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"キャンセル"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIMカードが取り外されました"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"モバイルネットワークはSIMカードを交換するまで利用できません。"</string>
+ <string name="sim_done_button" msgid="827949989369963775">"完了"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIMカードが追加されました"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"モバイルネットワークにアクセスするには端末を再起動する必要があります。"</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"再起動"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"時刻設定"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"日付設定"</string>
<string name="date_time_set" msgid="5777075614321087758">"設定"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"メディアデバイスとして接続"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"カメラとして接続"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"インストーラとして接続"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"USBアクセサリを接続しました"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"他のUSBオプションをタップしてください"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"USBストレージのフォーマット"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SDカードをフォーマット"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"アカウントを選択"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"増やす"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"減らす"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"ホームへ移動"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"上へ移動"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"その他のオプション"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4Gデータが無効になりました"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"モバイルデータが無効になりました"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"有効にするにはタップしてください"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"セキュリティ証明書"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"証明書は有効です。"</string>
<string name="issued_to" msgid="454239480274921032">"発行先:"</string>
@@ -1132,10 +1135,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256指紋:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1指紋:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"すべて見る..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"操作の選択"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"共有相手..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"端末がロックされています。"</string>
</resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 0c4c4b8..08a13eb 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"애플리케이션이 다른 애플리케이션과 상호작용할 때에도 사용자가 누르는 키(예: 비밀번호 입력)를 볼 수 있도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"입력 방법 연결"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"권한을 가진 프로그램이 입력 방법에 대한 최상위 인터페이스를 사용하도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"텍스트 서비스 연결"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"사용자가 텍스트 서비스(예: SpellCheckerService)의 최상위 인터페이스에 바인딩할 수 있게 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"배경화면 연결"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"권한을 가진 프로그램이 배경화면에 대한 최상위 인터페이스를 사용하도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"위젯 서비스와 연결"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"애플리케이션이 휴대전화에 저장된 브라우저 기록 또는 북마크를 수정할 수 있도록 허용합니다. 이 경우 악성 애플리케이션이 브라우저의 데이터를 지우거나 수정할 수 있습니다."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"알람 시계에 알람 설정"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"실치된 알람 시계 애플리케이션에 알람을 설정하도록 허용합니다. 일부 알람 시계 애플리케이션은 이 기능을 구현하지 않을 수 있습니다."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"이 애플리케이션에서 관리하는 음성사서함에 액세스"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"애플리케이션이 관련 서비스에서 액세스할 수 있는 음성사서함만 저장하고 검색할 수 있도록 합니다."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"브라우저 위치 정보 수정 권한"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"애플리케이션이 브라우저의 위치 정보 권한을 수정할 수 있도록 합니다. 악성 애플리케이션이 이를 사용하여 임의의 웹사이트에 위치 정보를 보낼 수도 있습니다."</string>
<string name="save_password_message" msgid="767344687139195790">"브라우저에 이 비밀번호를 저장하시겠습니까?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"잘라내기"</string>
<string name="copy" msgid="2681946229533511987">"복사"</string>
<string name="paste" msgid="5629880836805036433">"붙여넣기"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"붙여넣을 내용이 없습니다."</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URL 복사"</string>
<string name="selectTextMode" msgid="6738556348861347240">"텍스트 선택..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"텍스트 선택"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"개방형 Wi-Fi 네트워크 사용 가능"</item>
<item quantity="other" msgid="7915895323644292768">"개방형 Wi-Fi 네트워크 사용 가능"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Wi-Fi 네트워크가 사용중지되었습니다."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Wi-Fi 네트워크가 잘못된 연결로 인해 일시적으로 사용중지되었습니다."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Wi-Fi Direct 작업을 시작합니다. 이 작업으로 Wi-Fi 클라이언트/핫스팟 작업이 사용중지됩니다."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Wi-Fi Direct를 시작하지 못했습니다."</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>에서 Wi-Fi Direct 연결 설정을 요청합니다. 수락하려면 확인을 클릭하세요."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>에서 Wi-Fi Direct 연결 설정을 요청합니다. 계속 진행하려면 PIN을 입력하세요."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"연결 설정을 계속하려면 WPS 핀(<xliff:g id="P2P_WPS_PIN">%1$s</xliff:g>)을 피어 기기(<xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>)에 입력해야 합니다."</string>
<string name="select_character" msgid="3365550120617701745">"문자 삽입"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"알 수 없는 애플리케이션"</string>
<string name="sms_control_title" msgid="7296612781128917719">"SMS 메시지를 보내는 중"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"미디어 기기로 연결됨"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"카메라로 연결됨"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"설치 프로그램으로 연결됨"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"USB 액세서리에 연결됨"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"다른 USB 옵션을 보려면 터치하세요."</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"USB 저장소 포맷"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SD 카드 포맷"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"계정 선택"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"올리기"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"줄이기"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"홈 탐색"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"위로 탐색"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"옵션 더보기"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G 데이터 사용중지됨"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"모바일 데이터 사용중지됨"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"사용하려면 누르세요."</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"보안 인증서"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"유효한 인증서입니다."</string>
<string name="issued_to" msgid="454239480274921032">"발급 대상:"</string>
@@ -1134,6 +1146,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"전체 보기..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"활동 선택"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"공유 대상..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"기기 잠김"</string>
</resources>
diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml
index 388eb38..02bb3c8 100644
--- a/core/res/res/values-land/dimens.xml
+++ b/core/res/res/values-land/dimens.xml
@@ -22,7 +22,7 @@
<!-- Default height of a key in the password keyboard for alpha -->
<dimen name="password_keyboard_key_height_alpha">47dip</dimen>
<!-- Default height of a key in the password keyboard for numeric -->
- <dimen name="password_keyboard_key_height_numeric">60dip</dimen>
+ <dimen name="password_keyboard_key_height_numeric">50dip</dimen>
<!-- Default correction for the space key in the password keyboard -->
<dimen name="password_keyboard_spacebar_vertical_correction">2dip</dimen>
<dimen name="preference_widget_width">72dp</dimen>
diff --git a/core/res/res/values-large/themes.xml b/core/res/res/values-large/themes.xml
index 9e3e0bb..871a131 100644
--- a/core/res/res/values-large/themes.xml
+++ b/core/res/res/values-large/themes.xml
@@ -16,6 +16,21 @@
** limitations under the License.
*/
-->
+
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+
+The Holo themes must not be modified in order to pass CTS.
+Many related themes and styles depend on other values defined in this file.
+If you would like to provide custom themes and styles for your device,
+please see themes_device_defaults.xml.
+
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
<resources>
<style name="Theme.Holo.DialogWhenLarge"
parent="@android:style/Theme.Holo.Dialog.MinWidth">
diff --git a/core/res/res/values-large/themes_device_defaults.xml b/core/res/res/values-large/themes_device_defaults.xml
new file mode 100644
index 0000000..52fff5c
--- /dev/null
+++ b/core/res/res/values-large/themes_device_defaults.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+This file contains the themes that are the Device Defaults.
+If you want to edit themes to skin your device, do it here.
+We recommend that you do not edit themes.xml and instead edit
+this file.
+
+Editing this file instead of themes.xml will greatly simplify
+merges for future platform versions and CTS compliance will be
+easier.
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
+<resources>
+ <style name="Theme.DeviceDefault.DialogWhenLarge"
+ parent="@android:style/Theme.DeviceDefault.Dialog.MinWidth">
+ <item name="preferencePanelStyle">@style/PreferencePanel.Dialog</item>
+ </style>
+ <style name="Theme.DeviceDefault.DialogWhenLarge.NoActionBar"
+ parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar.MinWidth">
+ <item name="preferencePanelStyle">@style/PreferencePanel.Dialog</item>
+ </style>
+ <style name="Theme.DeviceDefault.Light.DialogWhenLarge"
+ parent="@android:style/Theme.DeviceDefault.Light.Dialog.MinWidth">
+ </style>
+ <style name="Theme.DeviceDefault.Light.DialogWhenLarge.NoActionBar"
+ parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth">
+ </style>
+</resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 1e18e3c..5dc26d8 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Iškirpti"</string>
<string name="copy" msgid="2681946229533511987">"Kopijuoti"</string>
<string name="paste" msgid="5629880836805036433">"Įklijuoti"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nėra, ką įklijuoti"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopijuoti URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Pasirinkti tekstą..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Teksto pasirinkimas"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Programa nukreipta"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ dabar vykdoma."</string>
<string name="launch_warning_original" msgid="188102023021668683">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ buvo iš pradžių paleista."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Mastelis"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Visada rodyti"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Iš naujo įgalinkite tai apsilankę skiltyje „Nustatymai“ > „Programos“ > „Valdyti programas“."</string>
<string name="smv_application" msgid="295583804361236288">"Programa „<xliff:g id="APPLICATION">%1$s</xliff:g>“ (procesas „<xliff:g id="PROCESS">%2$s</xliff:g>“) pažeidė savo vykdomą „StrictMode“ politiką."</string>
<string name="smv_process" msgid="5120397012047462446">"„<xliff:g id="PROCESS">%1$s</xliff:g>“ procesas pažeidė savo vykdomą „StrictMode“ politiką."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Vykdoma „<xliff:g id="APP">%1$s</xliff:g>“"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Siunčiama daug SMS pranešimų. Pasirinkite „Gerai“, jei norite tęsti, arba „Atšaukti“, jei norite sustabdyti siuntimą."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Gerai"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Atšaukti"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM kortelė pašalinta"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobiliojo ryšio tinklas bus nepasiekiamas, kol pakeisite SIM kortelę."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Atlikta"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM kortelė pridėta"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Kad pasiektumėte mobiliojo ryšio tinklą, turite iš naujo paleisti įrenginį."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Paleisti iš naujo"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Nustatyti laiką"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Nustatyti datą"</string>
<string name="date_time_set" msgid="5777075614321087758">"Nustatyti"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Pasirinkti paskyrą"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Padidinti"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Sumažinti"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Naršyti pagrindinį puslapį"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Naršyti į viršų"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Daugiau parinkčių"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G duomenys neleidžiami"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilieji duomenys neleidžiami"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"jei norite įgalinti, palieskite"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Saugos sertifikatas"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Šis sertifikatas galioja."</string>
<string name="issued_to" msgid="454239480274921032">"Išduota:"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 43d640b..7d845f4 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Ļauj lietojumprogrammām sekot līdzi nospiestajiem taustiņiem, mijiedarbojoties ar citu lietojumprogrammu (piemēram, ievadot paroli). Parastajām lietojumprogrammām nekad nav nepieciešama."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"saistīt ar ievades metodi"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Ļauj īpašniekam saistīt ar ievades metodes augšējā līmeņa saskarni. Parastajām lietojumprogrammām nekad nav nepieciešama."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"saistīt ar īsziņu pakalpojumu"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Ļauj īpašniekam veikt saistīšanu ar īsziņu pakalpojuma augstākā līmeņa interfeisu (piem., SpellCheckerService). Nekad nav nepieciešama parastām lietojumprogrammām."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"saistīt ar tapeti"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Ļauj īpašniekam saistīties ar tapetes augšējā līmeņa saskarni. Parastajās lietojumprogrammās nekad nav nepieciešama."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"saistīt ar logrīka pakalpojumu"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Ļauj lietojumprogrammai pārveidot tālrunī saglabāto pārlūkprogrammas vēsturi un grāmatzīmes. Ļaunprātīgas lietojumprogrammas var to izmantot, lai dzēstu vai pārveidotu pārlūkprogrammas datus."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"iestatīt trauksmi modinātājpulkstenī"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Ļauj lietojumprogrammai iestatīt trauksmi instalētajā modinātājpulksteņa lietojumprogrammā. Dažās modinātājpulksteņu lietojumprogrammās šī funkcija var nebūt īstenojama."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Piekļuve balss pasta ziņojumiem, kas tiek pārvaldīti šajā lietojumprogrammā"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Ļauj lietojumprogrammai glabāt un izgūt tikai tos balss pasta ziņojumus, kuriem var piekļūt no saistītā pakalpojuma."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Pārveidot pārlūkprogrammas ģeogrāfiskās atrašanās vietas atļaujas"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Ļauj lietojumprogrammai pārveidot pārlūkprogrammas ģeogrāfiskās atrašanās vietas atļaujas. Ļaunprātīgas lietojumprogrammas var to izmantot, lai atļautu atrašanās vietas informācijas sūtīšanu uz citām vietnēm."</string>
<string name="save_password_message" msgid="767344687139195790">"Vai vēlaties, lai pārlūkprogrammā tiktu saglabāta šī parole?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Izgriezt"</string>
<string name="copy" msgid="2681946229533511987">"Kopēt"</string>
<string name="paste" msgid="5629880836805036433">"Ielīmēt"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nav ielīmējamu vien."</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopēt URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Atlasīt tekstu..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Teksta atlase"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Lietojumpr. ir novirzīta"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> tagad darbojas."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Sākotnēji tika palaista lietojumprogramma <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Mērogs"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Rādīt vienmēr"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Iespējojiet atkārtoti, izmantojot Iestatījumi > Lietojumprogrammas > Pārvaldīt lietojumprogrammas."</string>
<string name="smv_application" msgid="295583804361236288">"Lietojumprogramma <xliff:g id="APPLICATION">%1$s</xliff:g> (process <xliff:g id="PROCESS">%2$s</xliff:g>) ir pārkāpusi savu pašieviesto StrictMode politiku."</string>
<string name="smv_process" msgid="5120397012047462446">"Process <xliff:g id="PROCESS">%1$s</xliff:g> ir pārkāpis savu pašieviesto StrictMode politiku."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> darbojas"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Ir pieejams atvērts Wi-Fi tīkls"</item>
<item quantity="other" msgid="7915895323644292768">"Ir pieejami atvērti Wi-Fi tīkli."</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Wi-Fi tīkls tika atspējots."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Wi-Fi tīkls tika īslaicīgi atspējots sliktas savienojamības dēļ."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Sākt Wi-Fi Direct darbību. Tiks izslēgta Wi-Fi klienta/tīklāja darbība."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Neizdevās palaist Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Wi-Fi Direct savienojuma iestatīšanas pieprasījums no adreses <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Noklikšķiniet uz Labi, lai apstiprinātu."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Wi-Fi Direct savienojuma iestatīšanas pieprasījums no adreses <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Lai turpinātu, ievadiet PIN."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Lai turpinātu savienojuma iestatīšanu, vienādranga ierīcē <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> ir jāievada WPS PIN <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g>."</string>
<string name="select_character" msgid="3365550120617701745">"Ievietojiet rakstzīmi"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Nezināma lietojumprogramma"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Īsziņu sūtīšana"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Tiek sūtīts liels īsziņu skaits. Atlasiet Labi, lai turpinātu, vai Atcelt, lai apturētu sūtīšanu."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Labi"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Atcelt"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM karte ir izņemta."</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobilo sakaru tīkls nebūs pieejams, līdz nomainīsiet SIM karti."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Gatavs"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM karte ir pievienota."</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Lai piekļūtu mobilo sakaru tīklam, restartējiet ierīci."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Restartēt"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Laika iestatīšana"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Datuma iestatīšana"</string>
<string name="date_time_set" msgid="5777075614321087758">"Iestatīt"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Pievienots kā multivides ierīce"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Pievienots kā kamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Pievienots kā instalēšanas programma"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Ir izveidots savienojums ar USB piederumu."</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Pieskarieties, lai skatītu citas USB opcijas."</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"USB kr. formatēšana"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SD kartes formatēšana"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Atlasīt kontu"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Palielināt"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Samazināt"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Pārvietoties uz sākuma ekrānu"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Pārvietoties augšup"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Vairāk opciju"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G dati ir atspējoti"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilie dati ir atspējoti"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"pieskarieties, lai iespējotu"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Drošības sertifikāts"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Sertifikāts ir derīgs."</string>
<string name="issued_to" msgid="454239480274921032">"Izdots:"</string>
@@ -1132,8 +1135,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 identifikators"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 identifikators:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Skatīt visas"</string>
- <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Darbību atlasīšana"</string>
- <string name="share_action_provider_share_with" msgid="1791316789651185229">"Kopīgot ar..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Darbības atlase"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Koplietot ar..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Ierīce bloķēta"</string>
</resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 3921be9..3625fde 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Membenarkan aplikasi melihat kekunci yang anda tekan walaupun semasa berinteraksi dengan aplikasi lain (seperti memasukkan kata laluan). Seharusnya tidak sekali-kali diperlukan untuk aplikasi biasa."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"terikat kepada kaedah input"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Membenarkan pemegang terikat dengan antara muka peringkat tertinggi bagi kaedah input itu. Tidak sekali-kali diperlukan untuk aplikasi biasa."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"terikat kepada perkhidmatan teks"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Membenarkan pemegang mengikat kepada antara muka tahap tinggi perkhidmatan teks(mis. PerkhidmatanPenyemakEjaan). Tidak seharusnya diperlukan untuk aplikasi biasa."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"terikat pada kertas dinding"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Membenarkan pemegang terikat dengan antara muka peringkat tertinggi bagi kertas dinding. Tidak sekali-kali diperlukan untuk aplikasi biasa."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"terikat kepada perkhidmatan widget"</string>
@@ -726,10 +724,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Membenarkan aplikasi mengubah suai sejarah atau penanda halaman Penyemak Imbas yang disimpan pada telefon anda. Aplikasi berniat jahat boleh menggunakannya untuk memadamkan atau mengubah data Penyemak Imbas anda."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"menetapkan penggera pada jam penggera"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Membenarkan aplikasi menetapkan penggera dalam aplikasi jam penggera yang dipasang. Sesetengah aplikasi jam penggera mungkin tidak melaksanakan ciri ini."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Akses mel suara yang diurus oleh aplikasi ini"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Membenarkan aplikasi menyimpan dan mendapatkan semula mel suara yang boleh diakses oleh perkhidmatan berkaitan sahaja."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Ubah suai kebenaran geolokasi Penyemak Imbas"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Membenarkan aplikasi mengubah suai kebenaran geolokasi Penyemak Imbas. Aplikasi berniat jahat boleh menggunakannya untuk membenarkan penghantaran maklumat lokasi ke sembarangan tapak web."</string>
<string name="save_password_message" msgid="767344687139195790">"Adakah anda mahu penyemak imbas mengingati kata laluan ini?"</string>
@@ -845,7 +841,8 @@
<string name="cut" msgid="3092569408438626261">"Potong"</string>
<string name="copy" msgid="2681946229533511987">"Salin"</string>
<string name="paste" msgid="5629880836805036433">"Tampal"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Tiada apa utk ditmpl"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Salin URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Pilih teks..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Pemilihan teks"</string>
@@ -921,22 +918,14 @@
<item quantity="one" msgid="1634101450343277345">"Rangkaian Wi-Fi terbuka tersedia"</item>
<item quantity="other" msgid="7915895323644292768">"Rangkaian Wi-Fi terbuka tersedia"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Rangkaian Wi-Fi telah dilumpuhkan"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Rangkaian Wi-Fi dilumpuhkan buat sementara waktu kerana sambungan teruk."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Langsung"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Mulakan pengendalian Wi-Fi Langsung. Hal ini akan mematikan pengendalian klien Wi-Fi/titik panas."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Gagal memulakan Wi-Fi Langsung"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Permintaan persediaan sambungan Wi-Fi Langsung dari <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Klik OK untuk menerima."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Permintaan persediaan sambungan Wi-Fi Langsung dari <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Buang pin untuk meneruskan."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Pin WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> perlu dimasukkan pada peranti rakan <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> untuk penyediaan sambungan untuk meneruskan"</string>
<string name="select_character" msgid="3365550120617701745">"Masukkan aksara"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Aplikasi tidak dikenali"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Menghantar mesej SMS"</string>
@@ -985,8 +974,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Disambungkan sebagai peranti media"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Disambungkan sebagai kamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Disambungkan sebagai pemasang"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Disambungkan kepada aksesori USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Sentuh untuk mendapatkan pilihan USB yang lain"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Format storan USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Format kad SD"</string>
@@ -1106,6 +1094,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Pilih akaun"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Kenaikan"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Penyusutan"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navigasi laman utama"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navigasi ke atas"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Lagi pilihan"</string>
@@ -1119,6 +1123,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Data 4G dilumpuhkan"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Data mudah alih dilumpuhkan"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"ketik untuk mendayakan"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sijil keselamatan"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Sijil ini sah."</string>
<string name="issued_to" msgid="454239480274921032">"Dikeluarkan kepada:"</string>
@@ -1134,10 +1146,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Cap jari SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Cap jari SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Lihat semua..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Pilih aktiviti"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Kongsi dengan..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Peranti dikunci."</string>
</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 7db3f31..2eada6e 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Lar applikasjonen overvåke tastetrykk selv når interaksjonen er med et annet program (som å skrive inn et passord). Vanlige applikasjoner bør aldri trenge dette."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"binde til en inndatametode"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Lar applikasjonen binde til toppnivågrensesnittet for en inndatametode. Vanlige applikasjoner bør aldri trenge dette."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"binde til en teksttjeneste"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Gir innehaveren rett til å binde seg til øverste grensesnittnivå for en teksttjeneste (f.eks SpellCheckerService). Bør aldri være nødvendig for normal bruk."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"bind til bakgrunnsbilde"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Lar innehaveren binde det øverste nivået av grensesnittet til en bakgrunnsbilder. Skal ikke være nødvendig for vanlige programmer."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"bind til modultjenste"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Lar applikasjonen endre nettleserens logg og bokmerker lagret på telefonen. Ondsinnede applikasjoner kan bruke dette til å fjerne eller redigere nettleserens data."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"angi alarm i alarmklokke"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Lar programmet angi en alarm i et installert alarmklokkeprogram. Det kan hende at enkelte alarmklokkeprogrammer ikke implementerer denne funksjonen."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Tilgang til talepostmeldinger administrert av denne applikasjonen"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Gir applikasjonen mulighet til å lagre og hente bare talepostmeldinger som den tilhørende tjenesten har tilgang til."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Endre nettleserens tillatelser for geografisk posisjonering"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Tillater programmet å endre nettleserens tillatelser for geografisk posisjonering. Skadelige programmer kan bruke denne funksjonen til å sende posisjonsopplysninger til vilkårlige nettsteder."</string>
<string name="save_password_message" msgid="767344687139195790">"Ønsker du at nettleseren skal huske dette passordet?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Klipp ut"</string>
<string name="copy" msgid="2681946229533511987">"Kopier"</string>
<string name="paste" msgid="5629880836805036433">"Lim inn"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Ingenting å lime inn"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopier URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Marker tekst"</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Merket tekst"</string>
@@ -919,22 +916,14 @@
<item quantity="one" msgid="1634101450343277345">"Åpent trådløsnett i nærheten"</item>
<item quantity="other" msgid="7915895323644292768">"Åpne trådløsnett i nærheten"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Et Wi-Fi-nettverk er deaktivert"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Et Wi-Fi-nettverk er midlertidig deaktivert på grunn av dårlig tilkobling."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Start Wi-Fi Direct-handling. Dette deaktiverer Wi-Fi-klienten og -handlingen."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Kan ikke starte Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Forespørsel om tilkoblingskonfigurasjon for Wi-Fi Direct fra <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Klikk på OK for å godta."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Forespørsel om tilkoblingskonfigurasjon for Wi-Fi Direct fra <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Oppgi personlig kode for å fortsette."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Personlig WPS-kode <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> må må oppgis på mottakerenheten <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> for å fortsette tilkoblingskonfigurasjonen"</string>
<string name="select_character" msgid="3365550120617701745">"Sett inn tegn"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Ukjent applikasjon"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Sender SMS-meldinger"</string>
@@ -983,8 +972,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Tilkoblet som medieenhet"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Tilkoblet som kamera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Tilkoblet som installasjonsprogram"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Koblet til et USB-tilbehør"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Berør for andre USB-alternativer"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formaterer USB-lagring"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatere minnekort"</string>
@@ -1104,6 +1092,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Velg en konto"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Øke"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Senke"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Gå til startsiden"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Gå opp"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Flere alternativer"</string>
@@ -1117,6 +1121,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G-data er deaktivert"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobildata er deaktivert"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"klikk for å aktivere"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Sikkerhetssertifikat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Sertifikatet er gyldig."</string>
<string name="issued_to" msgid="454239480274921032">"Utstedt til:"</string>
@@ -1132,10 +1144,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256-fingeravtrykk"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1-fingeravtrykk"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Se alle"</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Velg aktivitet"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Del med"</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Enheten er låst."</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 52873e1..21ea3bd 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Hiermee kan een app uw toetsaanslagen registreren, zelfs tijdens de interactie met een andere app (zoals de invoer van een wachtwoord). Nooit vereist voor normale apps."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"verbinden aan een invoermethode"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Hiermee staat u de houder toe zich te verbinden met de hoofdinterface van een invoermethode. Nooit vereist voor normale apps."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"koppelen aan een sms-service"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Hiermee kan de gebruiker koppelen met de hoofdinterface van een sms-service (zoals SpellCheckerService). Dit is niet nodig voor normale apps."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"verbinden met een achtergrond"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Hiermee staat u de houder toe zich te verbinden met de hoofdinterface van een achtergrond. Nooit vereist voor normale apps."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"verbinden met een widgetservice"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Hiermee kan een app de op uw telefoon opgeslagen browsergeschiedenis of bladwijzers wijzigen. Schadelijke apps kunnen hiermee uw browsergegevens verwijderen of wijzigen."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"alarm instellen in wekker"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Hiermee kan de app een alarm instellen in een geïnstalleerde wekker-app. Deze functie wordt door sommige wekker-apps niet geïmplementeerd."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Toegang tot voicemails die door deze app worden beheerd"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Hiermee kan de app alleen voicemails opslaan en ophalen waartoe de bijbehorende service toegang heeft."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Geolocatierechten voor browser aanpassen"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Staat een app toe de geolocatierechten van de browser aan te passen. Schadelijke apps kunnen dit gebruiken om locatiegegevens te verzenden naar willekeurige websites."</string>
<string name="save_password_message" msgid="767344687139195790">"Wilt u dat de browser dit wachtwoord onthoudt?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Knippen"</string>
<string name="copy" msgid="2681946229533511987">"Kopiëren"</string>
<string name="paste" msgid="5629880836805036433">"Plakken"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Niets te plakken"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URL kopiëren"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Tekst selecteren..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Tekstselectie"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"App omgeleid"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> is nu actief."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> was het eerst gestart."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Schaal"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Altijd weergeven"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Dit opnieuw inschakelen via \'Instellingen\' > \'Apps\' > \'Apps beheren\'."</string>
<string name="smv_application" msgid="295583804361236288">"De app <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) heeft het zelf afgedwongen StrictMode-beleid geschonden."</string>
<string name="smv_process" msgid="5120397012047462446">"Het proces <xliff:g id="PROCESS">%1$s</xliff:g> heeft het zelf afgedwongen StrictMode-beleid geschonden."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> wordt uitgevoerd"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Open Wi-Fi-netwerk beschikbaar"</item>
<item quantity="other" msgid="7915895323644292768">"Open Wi-Fi-netwerken beschikbaar"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Een Wi-Fi-netwerk is uitgeschakeld"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Een Wi-Fi-netwerk werd wegens slechte connectiviteit tijdelijk uitgeschakeld."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Bewerking van Wi-Fi Direct starten. Hierdoor wordt de bewerking van Wi-Fi-client/hotspot uitgeschakeld."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Wi-Fi Direct starten is mislukt"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Configuratieverzoek voor verbinding met Wi-Fi Direct van <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Klik op \'OK\' om te accepteren."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Configuratieverzoek van <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g> voor verbinding met Wi-Fi Direct. Geef de pincode op om door te gaan."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"WPS-pincode <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> moet worden ingevoerd op peerapparaat <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>, zodat het instellen van de verbinding kan worden voortgezet"</string>
<string name="select_character" msgid="3365550120617701745">"Teken invoegen"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Onbekende app"</string>
<string name="sms_control_title" msgid="7296612781128917719">"SMS-berichten verzenden"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Er wordt een groot aantal SMS-berichten verzonden. Selecteer \'OK\' om door te gaan of \'Annuleren\' om de verzending te stoppen."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Annuleren"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Simkaart verwijderd"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Het mobiele netwerk is niet beschikbaar totdat u de simkaart vervangt."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Gereed"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Simkaart aangesloten"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"U moet uw apparaat opnieuw starten voor toegang tot het mobiele netwerk."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Opnieuw starten"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Tijd instellen"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Datum instellen"</string>
<string name="date_time_set" msgid="5777075614321087758">"Instellen"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Gekoppeld als media-apparaat"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Gekoppeld als camera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Gekoppeld als installatieprogramma"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Aangesloten op een USB-accessoire"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Raak aan voor andere USB-opties"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"USB-opslag formatt."</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SD-kaart formatteren"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Selecteer een account"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Hoger"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Lager"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navigeren naar startpositie"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Omhoog navigeren"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Meer opties"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G-gegevens uitgeschakeld"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobiele gegevens uitgeschakeld"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tik om in te schakelen"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Beveiligingscertificaat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Dit certificaat is geldig."</string>
<string name="issued_to" msgid="454239480274921032">"Uitgegeven voor:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Alle bekijken..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Activiteit selecteren"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Delen met..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Apparaat vergrendeld."</string>
</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index eedf51a..2d99ef0 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Pozwala aplikacjom na śledzenie naciskanych klawiszy, nawet podczas pracy z innym programem (na przykład podczas wpisywania hasła). Nigdy nie powinno być potrzebne normalnym aplikacjom."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"powiązanie ze sposobem wprowadzania tekstu"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Pozwala na powiązanie wybranego sposobu wprowadzania tekstu z interfejsem najwyższego poziomu. To uprawnienie nie powinno być nigdy wymagane przez zwykłe aplikacje."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"powiąż z usługą SMS"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Zezwala posiadaczowi na utworzenie powiązania z interfejsem najwyższego poziomu usługi tekstowej (np. SpellCheckerService). Opcja nie powinna być nigdy potrzebna w przypadku zwykłych aplikacji."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"powiązanie z tapetą"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Umożliwia posiadaczowi powiązać interfejs najwyższego poziomu dla tapety. Nie powinno być nigdy potrzebne w przypadku zwykłych aplikacji."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"powiązanie z usługą widżetów"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Umożliwia aplikacji modyfikowanie historii lub zakładek przeglądarki zapisanych w telefonie. Złośliwe aplikacje mogą używać tej opcji do usuwania lub modyfikowania danych przeglądarki."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"ustaw alarm w budziku"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Umożliwia aplikacji ustawienie alarmu w zainstalowanej aplikacji budzika. W niektórych aplikacjach budzika funkcja ta może nie być zaimplementowana."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Dostęp do wiadomości głosowych zarządzanych przez tę aplikację"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Zezwala aplikacji na przechowywanie i pobieranie tylko tych wiadomości głosowych, do których ma dostęp powiązana z nią usługa."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Modyfikowanie uprawnień przeglądarki dotyczących lokalizacji geograficznej"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Zezwala aplikacji na modyfikowanie uprawnień przeglądarki dotyczących lokalizacji geograficznej. Złośliwe aplikacje mogą używać tej opcji do wysyłania informacji o lokalizacji do dowolnych witryn internetowych."</string>
<string name="save_password_message" msgid="767344687139195790">"Czy chcesz, aby zapamiętać to hasło w przeglądarce?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Wytnij"</string>
<string name="copy" msgid="2681946229533511987">"Kopiuj"</string>
<string name="paste" msgid="5629880836805036433">"Wklej"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Schowek jest pusty"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopiuj adres URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Zaznacz tekst"</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Zaznaczanie tekstu"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplikacja przekierowana"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> jest uruchomiona."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> została pierwotnie uruchomiona."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Skala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Zawsze pokazuj"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Aby włączyć ponownie, skorzystaj z opcji Ustawienia > Aplikacje > Zarządzaj aplikacjami."</string>
<string name="smv_application" msgid="295583804361236288">"Aplikacja <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) naruszyła wymuszone przez siebie zasady StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> naruszył wymuszone przez siebie zasady StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Działa <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Otwórz dostępne sieci Wi-Fi"</item>
<item quantity="other" msgid="7915895323644292768">"Otwórz dostępne sieci Wi-Fi"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Sieć Wi-Fi została wyłączona."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Sieć Wi-Fi została tymczasowo wyłączona z powodu niskiej jakości połączenia."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Rozpocznij pracę w trybie Wi-Fi Direct. Spowoduje to wyłączenie trybu klienta lub punktu dostępu Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Nie można uruchomić Wi-Fi Direct."</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Odebrano żądanie konfiguracji połączenia Wi-Fi Direct z urządzenia <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Kliknij przycisk OK, aby zaakceptować."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Otrzymano żądanie konfiguracji połączenia Wi-Fi Direct z urządzenia <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Wprowadź kod PIN, aby kontynuować."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Aby kontynuować konfigurowanie połączenia, na drugim urządzeniu <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> należy wpisać kod PIN WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g>."</string>
<string name="select_character" msgid="3365550120617701745">"Wstaw znak"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Nieznana aplikacja"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Wysyłanie wiadomości SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Wysyłana jest duża liczba wiadomości SMS. Wybierz „OK”, aby kontynuować, lub „Anuluj”, aby zatrzymać wysyłanie."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Anuluj"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Karta SIM wyjęta"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Sieć komórkowa będzie niedostępna, dopóki nie włożysz w powrotem karty SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Gotowe"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Dodano kartę SIM"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Musisz ponownie uruchomić urządzenie, aby korzystać z sieci komórkowej."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Uruchom ponownie"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Ustaw godzinę"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Ustaw datę"</string>
<string name="date_time_set" msgid="5777075614321087758">"Ustaw"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Podłączono jako urządzenie multimedialne."</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Podłączono jako aparat."</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Podłączono jako nośnik instalacyjny."</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Podłączono akcesorium USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Dotknij, aby wyświetlić inne opcje USB."</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formatuj nośnik USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatuj kartę SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Wybierz konto"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Zwiększ"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Zmniejsz"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Przejdź do strony głównej"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Przejdź wyżej"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Więcej opcji"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Wyłączono transmisję danych 4G"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Wyłączono komórkową transm. danych"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"dotknij, aby włączyć"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certyfikat zabezpieczeń"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Certyfikat jest ważny."</string>
<string name="issued_to" msgid="454239480274921032">"Wystawiony dla:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Pokaż wszystkie"</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Wybierz czynność"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Udostępnij..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Urządzenie zablokowane."</string>
</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index c89577d..cae3318 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Cortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Colar"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nada para colar"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Seleccionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selecção de texto"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplicação redireccionada"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> está agora a ser executado."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> foi originalmente iniciado."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Escala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostrar sempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Reativar modo através das Definições > Aplicações > Gerir aplicações."</string>
<string name="smv_application" msgid="295583804361236288">"A aplicação <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) violou a política StrictMode auto-imposta."</string>
<string name="smv_process" msgid="5120397012047462446">"O processo <xliff:g id="PROCESS">%1$s</xliff:g> violou a política StrictMode auto-imposta."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> em execução"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Está a ser enviado um grande número de mensagens SMS. Seleccione \"OK\" para continuar ou \"Cancelar\" para parar o envio."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Cartão SIM removido"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"A rede de telemóvel só estará disponível quando substituir o cartão SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Concluído"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Cartão SIM adicionado"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"É necessário reiniciar o aparelho para aceder à rede de telemóvel."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reiniciar"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Definir hora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Definir data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Definir"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Seleccionar conta"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Aumentar"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Diminuir"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navegar para página inicial"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navegar para cima"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Mais opções"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Os dados 4G estão desativados"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Os dados móveis estão desativados"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"toque para ativar"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificado de segurança"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Este certificado é válido."</string>
<string name="issued_to" msgid="454239480274921032">"Emitido para:"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 1a7e0a8..8f130a6 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Permite que os aplicativos vejam as teclas que você pressiona, mesmo quando estiver interagindo com outro aplicativo (como ao digitar uma senha). Aplicativos normais não devem precisar disso em momento algum."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"vincular a um método de entrada"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite que o detentor se sujeite à interface de nível superior de um método de entrada. Aplicativos normais não devem precisar disso em momento algum."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"sujeitar-se a um serviço de texto"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Permite que o titular se sujeite à interface de nível superior de um serviço de texto (por exemplo, SpellCheckerService). Não deve ser necessário para aplicativos normais."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"sujeitar-se a um plano de fundo"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite que o detentor se sujeite à interface de nível superior de um plano de fundo. Aplicativos normais não devem precisar disso em momento algum."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"sujeitar-se a um serviço de widget"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Permite que um aplicativo modifique o histórico ou os favoritos do Navegador armazenados no seu telefone. Aplicativos maliciosos podem usar isso para apagar ou modificar os dados do seu Navegador."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"definir alarme no despertador"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Permite que o aplicativo defina um alarme em um aplicativo de despertador instalado. Talvez alguns aplicativos de despertador não implementem esse recurso."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Acessar mensagens de voz gerenciadas por este aplicativo"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Permite que o aplicativo armazene e recupere somente mensagens de voz que seu serviço associado acessa."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Modifique as permissões de geolocalização do seu navegador"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Permite que um aplicativo modifique as permissões de geolocalização do navegador. Aplicativos maliciosos podem usar isso para permitir o envio de informações de localização a sites arbitrários."</string>
<string name="save_password_message" msgid="767344687139195790">"Deseja que o navegador lembre desta senha?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Recortar"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Colar"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nada para colar"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiar URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Selecionar texto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Seleção de texto"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplicativo redirecionado"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> não está em execução."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> foi iniciado."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Escala"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Mostrar sempre"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Reativar em Configurações > Aplicativos > Gerenciar aplicativos."</string>
<string name="smv_application" msgid="295583804361236288">"O aplicativo <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) violou a política StrictMode imposta automaticamente."</string>
<string name="smv_process" msgid="5120397012047462446">"O processo <xliff:g id="PROCESS">%1$s</xliff:g> violou a política StrictMode imposta automaticamente."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> em execução"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Rede Wi-Fi aberta disponível"</item>
<item quantity="other" msgid="7915895323644292768">"Redes Wi-Fi abertas disponíveis"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Uma rede WiFi foi desativada"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Uma rede WiFi foi temporariamente desativada devido a conectividade ruim."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"WiFi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Iniciar a operação do WiFi Direct. Isso desligará a operação do ponto de acesso/cliente WiFi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Falha ao iniciar o WiFi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Solicitação de configuração da conexão do WiFi Direct de <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Clique em OK para aceitar."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Solicitação de configuração da conexão do WiFi Direct de <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Digite o pin para prosseguir."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"É necessário inserir o pin WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> no dispositivo pareado <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> para prosseguir com a configuração da conexão"</string>
<string name="select_character" msgid="3365550120617701745">"Inserir caractere"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Aplicativo desconhecido"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Enviando mensagens SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Muitas mensagens SMS estão sendo enviadas. Selecione \"OK\" para continuar ou \"Cancelar\" para interromper o envio."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Cartão SIM removido"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"A rede móvel estará indisponível até que você substitua o cartão SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Concluído"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Cartão SIM adicionado"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Reinicie o dispositivo para acessar a rede móvel."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reiniciar"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Definir hora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Definir data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Definir"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Conectado como um dispositivo de mídia"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Conectadas como uma câmera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Conectados como um instalador"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Conectado a um acessório USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Toque para obter outras opções USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formatar armaz. USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatar cartão SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Selecione uma conta"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Incremento"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Redução"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navegar na página inicial"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navegar para cima"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Mais opções"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Dados 4G desativados"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Dados móveis desativados"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"toque para ativar"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificado de segurança"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Este certificado é válido."</string>
<string name="issued_to" msgid="454239480274921032">"Emitido para:"</string>
@@ -1132,10 +1135,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Impressão digital SHA-256"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Impressão digital SHA-1"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Ver todos..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Selecionar atividade"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Compartilhar com..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Dispositivo bloqueado."</string>
</resources>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index 4f0e385..8e9b711 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -937,7 +937,7 @@
<string name="cut" msgid="3092569408438626261">"Tagliar ora"</string>
<string name="copy" msgid="2681946229533511987">"Copiar"</string>
<string name="paste" msgid="5629880836805036433">"Encollar"</string>
- <!-- no translation found for pasteDisabled (7259254654641456570) -->
+ <!-- no translation found for replace (8333608224471746584) -->
<skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiar l\'URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Selecziunar text…"</string>
@@ -1245,6 +1245,22 @@
<skip />
<!-- no translation found for number_picker_decrement_button (2576606679160067262) -->
<skip />
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<!-- no translation found for action_bar_home_description (5293600496601490216) -->
<skip />
<!-- no translation found for action_bar_up_description (2237496562952152589) -->
@@ -1271,6 +1287,14 @@
<skip />
<!-- no translation found for data_usage_limit_body (2182247539226163759) -->
<skip />
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<!-- no translation found for ssl_certificate (6510040486049237639) -->
<skip />
<!-- no translation found for ssl_certificate_is_valid (6825263250774569373) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 61a0d7b..cec0e69 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Decupaţi"</string>
<string name="copy" msgid="2681946229533511987">"Copiaţi"</string>
<string name="paste" msgid="5629880836805036433">"Inseraţi"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nimic de inserat"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Copiaţi adresa URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Selectaţi text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Selectare text"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplicaţie redirecţionată"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> funcţionează acum."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> a fost lansată iniţial."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Scară"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Afişaţi întotdeauna"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Reactivaţi această funcţie din Setări > Aplicaţii > Gestionaţi aplicaţii."</string>
<string name="smv_application" msgid="295583804361236288">"Aplicaţia <xliff:g id="APPLICATION">%1$s</xliff:g> (procesul <xliff:g id="PROCESS">%2$s</xliff:g>) a încălcat propria politică StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Procesul <xliff:g id="PROCESS">%1$s</xliff:g> a încălcat propria politică StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Rulează <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"În acest moment se trimit multe mesaje SMS. Selectaţi „OK” pentru a continua sau „Anulaţi” pentru a opri trimiterea."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Anulaţi"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Card SIM eliminat"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Reţea mobilă va fi indisponibilă până la înlocuirea cardului SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Terminat"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Card SIM adăugat"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Trebuie să reporniţi dispozitivul pentru a accesa reţeaua de telefonie mobilă."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reporniţi"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Setaţi ora"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Setaţi data"</string>
<string name="date_time_set" msgid="5777075614321087758">"Setaţi"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Selectaţi un cont"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Incrementaţi"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Decrementaţi"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Navigaţi la ecranul de pornire"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navigaţi în sus"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Mai multe opţiuni"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Datele 4G au fost dezactivate"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Datele mobile au fost dezactiv."</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"atingeţi pentru activare"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificat de securitate"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Certificatul este valid."</string>
<string name="issued_to" msgid="454239480274921032">"Emis către:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Amprentă SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Amprentă SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Afişaţi-le pe toate..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Selectaţi o activitate"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Distribuiţi cu..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index d2907ae..e05039c 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Вырезать"</string>
<string name="copy" msgid="2681946229533511987">"Копировать"</string>
<string name="paste" msgid="5629880836805036433">"Вставить"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Текст для вставки отсутствует"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Копировать URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Выбрать текст..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Выбор текста"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Приложение перенаправлено"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> выполняется."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Изначально было запущено приложение <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Масштаб"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Всегда показывать"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Включите еще раз в меню \"Настройки > Приложения > Управление приложениями\"."</string>
<string name="smv_application" msgid="295583804361236288">"Приложение <xliff:g id="APPLICATION">%1$s</xliff:g> (процесс <xliff:g id="PROCESS">%2$s</xliff:g>) нарушило собственную политику StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Процесс <xliff:g id="PROCESS">%1$s</xliff:g> нарушил собственную политику StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Приложение <xliff:g id="APP">%1$s</xliff:g> запущено"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Отправляется большое количество SMS-сообщений. Нажмите \"ОК\" для продолжения или \"Отмена\" для прекращения отправки."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"ОК"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Отмена"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM-карта удалена"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Мобильная сеть будет недоступна, пока вы не замените SIM-карту."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Готово"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM-карта добавлена"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Для доступа к мобильной сети необходимо перезагрузить устройство."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Перезапуск"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Настройка времени"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Настройка даты"</string>
<string name="date_time_set" msgid="5777075614321087758">"Установить"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Выберите аккаунт"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Увеличить"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Уменьшить"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Перейти на главную"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Перейти вверх"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Ещё"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Передача данных 4G отключена"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Мобильный Интернет отключен"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"Нажмите, чтобы снова включить."</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Сертификат безопасности"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Этот сертификат действителен."</string>
<string name="issued_to" msgid="454239480274921032">"Кому выдан:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Отпечаток SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Отпечаток SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Просмотреть все"</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Выбор действия"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Поделиться с..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 4af1a79..ccd0d56 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Vystrihnúť"</string>
<string name="copy" msgid="2681946229533511987">"Kopírovať"</string>
<string name="paste" msgid="5629880836805036433">"Prilepiť"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Nie je čo vložiť"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Skopírovať adresu URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Vybrať text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Výber textu"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Aplikácia bola presmerov."</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Je spustená aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Pôvodne bola spustená aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Prispôsobiť veľkosť"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Vždy zobraziť"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Toto nastavenie je možné znova povoliť v sekcii Nastavenia > Aplikácie > Správa aplikácií."</string>
<string name="smv_application" msgid="295583804361236288">"Aplikácia <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) porušila svoje vlastné vynútené pravidlá StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> porušil svoje vlastné vynútené pravidlá StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Spustená aplikácia: <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Odosiela sa veľký počet správ SMS. Ak chcete pokračovať, vyberte OK. Ak chcete odosielanie ukončiť, vyberte Zrušiť."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Zrušiť"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Karta SIM bola odobraná"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobilná sieť bude k dispozícii až keď vymeníte kartu SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Hotovo"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Bola pridaná karta SIM"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Ak chcete získať prístup k mobilnej sieti, musíte zariadenie reštartovať."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Reštartovať"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastaviť čas"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastaviť dátum"</string>
<string name="date_time_set" msgid="5777075614321087758">"Nastaviť"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Vybrať účet"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Zvýšenie"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Zníženie"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Prejsť na plochu"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Prejsť na"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Viac možností"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Dátové prenosy 4G zakázané"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilné dátové prenosy zakázané"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"klepnutím povolíte"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certifikát zabezpečenia"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Certifikát je platný."</string>
<string name="issued_to" msgid="454239480274921032">"Vydané pre:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"Digitálny odtlačok SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Digitálny odtlačok SHA-1:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Zobraziť všetko..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Vybrať aktivitu"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Zdieľať s..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 9b45470..40a1118 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Programu dovoljuje spremljanje tipk, ki jih pritisnete med interakcijo z drugim programom (na primer vnos gesla). Navadni programi tega nikoli ne potrebujejo."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"povezovanje z načinom vnosa"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Dovoljuje lastniku, da se poveže z vmesnikom načina vnosa najvišje ravni. Tega nikoli ni treba uporabiti za navadne programe."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"poveži z besedilno storitvijo"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Dovoljuje, da se lastnik poveže z vmesnikom besedilne storitve najvišje ravni (npr. SpellCheckerService). Tega nikoli ni treba uporabiti za navadne programe."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"povezovanje z ozadjem"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Dovoljuje, da se lastnik poveže z vmesnikom ozadja najvišje ravni. Tega nikoli ni treba uporabiti za navadne programe."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"poveži s storitvijo pripomočka"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Programu dovoljuje spreminjanje zgodovine brskalnika ali zaznamkov, shranjenih v telefonu. Zlonamerni programi lahko to uporabijo za brisanje ali spreminjanje podatkov brskalnika."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"nastavitev alarma budilke"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Programu omogoča nastavitev alarma v nameščeni budilki. Nekatere budilke morda ne bodo uporabile te funkcije."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Dostop do glasovne pošte, ki jo upravlja ta program"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Programu omogoča shranjevanje in prejemanje glasovne pošte, do katere lahko dostopa povezana storitev."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Spreminjanje dovoljenj za geolokacijo brskalnika"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Programu dovoljuje spreminjanje dovoljenja brskalnika za geografske lokacije. Zlonamerni programi lahko s tem dovoljenjem dovolijo pošiljanje podatkov o lokaciji poljubnim spletnim mestom."</string>
<string name="save_password_message" msgid="767344687139195790">"Ali želite, da si brskalnik zapomni to geslo?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Izreži"</string>
<string name="copy" msgid="2681946229533511987">"Kopiraj"</string>
<string name="paste" msgid="5629880836805036433">"Prilepi"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Ni elementov za lepljenje"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopiraj URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Izbiranje besedila ..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Izbrano besedilo"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Preusmeritev programa"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> se izvaja."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Prvotno je bil zagnan program <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Lestvica"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Vedno pokaži"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Znova omogočite pri možnosti Nastavitve > Programi > Upravljanje programov."</string>
<string name="smv_application" msgid="295583804361236288">"Program <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) krši svoj samoizvedljivi pravilnik o strogem načinu."</string>
<string name="smv_process" msgid="5120397012047462446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> krši svoj samoizvedljivi pravilnik o strogem načinu."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> se izvaja"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Odpiranje razpoložljivega brezžičnega omrežja"</item>
<item quantity="other" msgid="7915895323644292768">"Odpiranje razpoložljivih brezžičnih omrežij"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Omrežje Wi-Fi je bilo onemogočeno"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Omrežje Wi-Fi je bilo začasno onemogočeno zaradi slabe povezljivosti."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Začnite s postopkom Wi-Fi Direct. S tem bo izklopljen postopek odjemalca/dostopne točke Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Napaka pri zagonu Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Zahteva za nastavitev povezave Wi-Fi Direct z naslova <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Če želite sprejeti, kliknite V redu."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Zahteva za nastavitev povezave Wi-Fi Direct z naslova <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Če želite nadaljevati, vnesite PIN."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Pred začetkom nastavitve povezave morate PIN WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> vnesti v enakovredno napravo <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>"</string>
<string name="select_character" msgid="3365550120617701745">"Vstavljanje znaka"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Neznan program"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Pošiljanje sporočil SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"V pošiljanju je veliko sporočil SMS. Če želite nadaljevati, izberite »V redu«. Če želite pošiljanje ustaviti, izberite »Prekliči«."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"V redu"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Prekliči"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Kartica SIM odstranjena"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mobilno omrežje ne bo na voljo, dokler ne zamenjate kartice SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Dokončano"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Kartica SIM dodana"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Če želite dostopati do mobilnega omrežja, morate znova zagnati napravo."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Vnovičen zagon"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastavi uro"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastavi datum"</string>
<string name="date_time_set" msgid="5777075614321087758">"Nastavi"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Povezan kot predstavnostna naprava"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Povezan kot fotoaparat"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Povezan kot namestitveni program"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Priključen na dodatek USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Dotaknite se, če želite izbrati druge možnosti za USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Formatiranje pomnilnika USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Formatiraj kartico SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Izberite račun"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Povečaj"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Zmanjšaj"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Krmarjenje domov"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Krmarjenje navzgor"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Več možnosti"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Podatki 4G so onemogočeni"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobilni podatki so onemogočeni"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tapnite, če želite omogočiti"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Varnostno potrdilo"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"To potrdilo je veljavno."</string>
<string name="issued_to" msgid="454239480274921032">"Izdano za:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Prikaži vse ..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Izberite dejavnost"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Skupna raba z ..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Naprava zaklenjena."</string>
</resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 4d25343..41ee753 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Исеци"</string>
<string name="copy" msgid="2681946229533511987">"Копирај"</string>
<string name="paste" msgid="5629880836805036433">"Налепи"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Ништа није копирано"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Копирај URL адресу"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Изабери текст..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Избор текста"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Апликација је преусмерена"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Апликација <xliff:g id="APP_NAME">%1$s</xliff:g> је сада покренута."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Првобитно је покренута апликација <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Размера"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Увек приказуј"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Поново ово омогућите у оквиру Подешавања > Апликације > Управљање апликацијама."</string>
<string name="smv_application" msgid="295583804361236288">"Апликација <xliff:g id="APPLICATION">%1$s</xliff:g> (процес <xliff:g id="PROCESS">%2$s</xliff:g>) је прекршила самонаметнуте StrictMode смернице."</string>
<string name="smv_process" msgid="5120397012047462446">"Процес <xliff:g id="PROCESS">%1$s</xliff:g> је прекршио самонаметнуте StrictMode смернице."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Апликација <xliff:g id="APP">%1$s</xliff:g> је покренута"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Шаље се велики број SMS порука. Кликните на „Потврди“ да бисте наставили или на „Откажи“ да бисте зауставили слање."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Потврди"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Откажи"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM картица је уклоњена"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Мобилна мрежа ће бити недоступна док не замените SIM картицу."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Готово"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM картица је додата"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Морате поново да покренете уређај да бисте могли да приступите мобилној мрежи."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Поново покрени"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Подешавање времена"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Подешавање датума"</string>
<string name="date_time_set" msgid="5777075614321087758">"Подеси"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Избор налога"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Повећање"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Смањење"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Кретање до Почетне"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Кретање нагоре"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Још опција"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G подаци су онемогућени"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Подаци мобилне мреже су онемогућени"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"додирните да бисте омогућили"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Безбедносни сертификат"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Овај сертификат је важећи."</string>
<string name="issued_to" msgid="454239480274921032">"Издато за:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 дигитални отисак:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 дигитални отисак:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Прикажи све..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Избор активности"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Дељење са..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 3de0006b..b65ab58 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"Klipp ut"</string>
<string name="copy" msgid="2681946229533511987">"Kopiera"</string>
<string name="paste" msgid="5629880836805036433">"Klistra in"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Inget att klistra in"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopiera webbadress"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Markera text..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Textmarkering"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Programmet omdirigerades"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> körs."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> startades först."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Anpassning"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Visa alltid"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Aktivera igen under Inställningar > Appar > Hantera appar."</string>
<string name="smv_application" msgid="295583804361236288">"Programmet <xliff:g id="APPLICATION">%1$s</xliff:g> (processen <xliff:g id="PROCESS">%2$s</xliff:g>) har brutit mot sin egen StrictMode-policy."</string>
<string name="smv_process" msgid="5120397012047462446">"Processen <xliff:g id="PROCESS">%1$s</xliff:g> har brutit mot sin egen StrictMode-policy."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> körs"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"Flera SMS-meddelanden skickas. Tryck på OK om du vill fortsätta eller på Avbryt om du vill avsluta sändningen."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Avbryt"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM-kortet togs bort"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Det mobila nätverket kommer inte bli tillgängligt förrän du byter SIM-kortet."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Klar"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM-kort lades till"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Du måste starta om enheten för att ansluta till mobilnätet."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Starta om"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Ange tid"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Ange datum"</string>
<string name="date_time_set" msgid="5777075614321087758">"Ställ in"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Välj ett konto"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Öka"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Minska"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Visa startsidan"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Navigera uppåt"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Fler alternativ"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Data via 4G har inaktiverats"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobildata har inaktiverats"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"knacka lätt om du vill aktivera"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Säkerhetscertifikat"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Certifikatet är giltigt."</string>
<string name="issued_to" msgid="454239480274921032">"Utfärdad till:"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index d2c62bf..d329f24 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1117,7 +1117,8 @@
<skip />
<!-- no translation found for paste (5629880836805036433) -->
<skip />
- <string name="pasteDisabled" msgid="7259254654641456570">"Hakuna cha kubandika"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<!-- no translation found for copyUrl (2538211579596067402) -->
<skip />
<string name="selectTextMode" msgid="6738556348861347240">"Chagua maandishi"</string>
@@ -1431,6 +1432,22 @@
<skip />
<!-- no translation found for number_picker_decrement_button (2576606679160067262) -->
<skip />
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<!-- no translation found for action_bar_home_description (5293600496601490216) -->
<skip />
<!-- no translation found for action_bar_up_description (2237496562952152589) -->
@@ -1457,6 +1474,14 @@
<skip />
<!-- no translation found for data_usage_limit_body (2182247539226163759) -->
<skip />
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<!-- no translation found for ssl_certificate (6510040486049237639) -->
<skip />
<!-- no translation found for ssl_certificate_is_valid (6825263250774569373) -->
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 0e1e8c1..dfdf1f4 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"อนุญาตให้แอปพลิเคชันดูปุ่มที่คุณกดแม้ในระหว่างที่ทำงานร่วมกับแอปพลิเคชันอื่น (เช่น ป้อนรหัสผ่าน) ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"เชื่อมโยงกับวิธีป้อนข้อมูล"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"อนุญาตให้ผู้ถือเชื่อมโยงกับอินเทอร์เฟซระดับสูงสุดของวิธีป้อนข้อมูล ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"เชื่อมโยงกับบริการข้อความ"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"อนุญาตให้ผู้ถือเชื่อมโยงกับอินเทอร์เฟซระดับสูงสุดของบริการข้อความ (เช่น บริการเครื่องตรวจตัวสะกด) ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"เชื่อมโยงกับวอลเปเปอร์"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"อนุญาตให้ผู้ถือเชื่อมโยงกับอินเทอร์เฟซระดับสูงสุดของวอลเปเปอร์ ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"เชื่อมโยงกับบริการวิดเจ็ต"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"อนุญาตให้แอปพลิเคชันแก้ไขประวัติหรือบุ๊กมาร์กของเบราว์เซอร์ที่จัดเก็บบนโทรศัพท์ของคุณ แอปพลิเคชันที่เป็นอันตรายอาจใช้วิธีนี้ลบหรือแก้ไขข้อมูลเบราว์เซอร์ของคุณได้"</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"ตั้งเวลาปลุกในนาฬิกาปลุก"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"อนุญาตให้แอปพลิเคชันนี้ตั้งเวลาปลุกในแอปพลิเคชันนาฬิกาปลุกที่ติดตั้งไว้ แอปพลิเคชันนาฬิกาปลุกบางประเภทอาจไม่ใช้คุณลักษณะนี้"</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"เข้าถึงข้อความเสียงที่จัดการโดยแอปพลิเคชันนี้"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"อนุญาตให้แอปพลิเคชันจัดเก็บและเรียกเฉพาะข้อมูลเสียงซึ่งบริการที่เกี่ยวข้องของข้อมูลเสียงสามารถเข้าถึงได้เท่านั้น"</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"แก้ไขการอนุญาตเกี่ยวกับการระบุตำแหน่งทางภูมิศาสตร์ของเบราว์เซอร์"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"อนุญาตให้แอปพลิเคชันแก้ไขการอนุญาตเกี่ยวกับการระบุตำแหน่งทางภูมิศาสตร์ของเบราว์เซอร์ แอปพลิเคชันที่เป็นอันตรายอาจใช้วิธีนี้อนุญาตให้ส่งข้อมูลตำแหน่งไปที่เว็บไซต์อื่นได้โดยพลการ"</string>
<string name="save_password_message" msgid="767344687139195790">"คุณต้องการให้เบราว์เซอร์จำรหัสผ่านนี้หรือไม่"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"ตัด"</string>
<string name="copy" msgid="2681946229533511987">"คัดลอก"</string>
<string name="paste" msgid="5629880836805036433">"วาง"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"ไม่มีสิ่งที่จะวาง"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"คัดลอก URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"เลือกข้อความ..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"การเลือกข้อความ"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"เปลี่ยนเส้นทางแอปพลิเคชัน"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> กำลังทำงานอยู่ในขณะนี้"</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> เปิดใช้ไว้แล้ว"</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"สเกล"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"แสดงเสมอ"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"เปิดใช้งานอีกครั้งด้วยการไปที่การตั้งค่า > แอปพลิเคชัน > จัดการแอปพลิเคชัน"</string>
<string name="smv_application" msgid="295583804361236288">"แอปพลิเคชัน <xliff:g id="APPLICATION">%1$s</xliff:g> (กระบวนการ <xliff:g id="PROCESS">%2$s</xliff:g>) ละเมิดนโยบาย StrictMode ที่บังคับใช้ด้วยตัวเอง"</string>
<string name="smv_process" msgid="5120397012047462446">"กระบวนการ <xliff:g id="PROCESS">%1$s</xliff:g> ละเมิดนโยบาย StrictMode ที่บังคับใช้ด้วยตัวเอง"</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> กำลังทำงาน"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"เปิดเครือข่าย Wi-Fi ที่ใช้งานได้"</item>
<item quantity="other" msgid="7915895323644292768">"เปิดเครือข่าย Wi-Fi ที่ใช้งานได้"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"เครือข่าย Wi-Fi ถูกปิดใช้งาน"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"เครือข่าย Wi-Fi ถูกปิดใช้งานชั่วคราวเนื่องจากปัญหาการเชื่อมต่อ"</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"เริ่มการทำงาน Wi-Fi Direct ซึ่งจะเป็นการปิดการทำงาน Wi-Fi ไคลเอ็นต์/ฮอตสปอต"</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"ไม่สามารถเริ่ม Wi-Fi Direct ได้"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"คำขอการตั้งค่าการเชื่อมต่อ Wi-Fi Direct จาก <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g> คลิก \"ตกลง\" เพื่อยอมรับ"</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"คำขอการตั้งค่าการเชื่อมต่อ Wi-Fi Direct จาก <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g> ป้อน PIN เพื่อดำเนินการต่อ"</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"ต้องป้อน PIN WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> บนอุปกรณ์เพียร์ <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> เพื่อให้การตั้งค่าการเชื่อมต่อดำเนินการต่อ"</string>
<string name="select_character" msgid="3365550120617701745">"ใส่อักขระ"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"ไม่ทราบแอปพลิเคชัน"</string>
<string name="sms_control_title" msgid="7296612781128917719">"กำลังส่งข้อความ SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"กำลังส่งข้อความ SMS จำนวนมาก เลือก \"ตกลง\" เพื่อทำงานต่อหรือ \"ยกเลิก\" เพื่อหยุดส่ง"</string>
<string name="sms_control_yes" msgid="2532062172402615953">"ตกลง"</string>
<string name="sms_control_no" msgid="1715320703137199869">"ยกเลิก"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"นำซิมการ์ดออกแล้ว"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"ไม่สามารถใช้เครือข่ายมือถือได้จนกว่าคุณจะเปลี่ยนซิมการ์ด"</string>
+ <string name="sim_done_button" msgid="827949989369963775">"เสร็จสิ้น"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"เพิ่มซิมการ์ดแล้ว"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"คุณต้องรีสตาร์ทอุปกรณ์ของคุณเพื่อเข้าถึงเครือข่ายมือถือ"</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"รีสตาร์ท"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"ตั้งเวลา"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"ตั้งวันที่"</string>
<string name="date_time_set" msgid="5777075614321087758">"ตั้งค่า"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"เชื่อมต่อเป็นอุปกรณ์สื่อ"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"เชื่อมต่อเป็นกล้องถ่ายรูป"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"เชื่อมต่อเป็นตัวติดตั้ง"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"เชื่อมต่อกับอุปกรณ์ USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"แตะสำหรับตัวเลือก USB อื่นๆ"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"ฟอร์แมตที่เก็บข้อมูล USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"ฟอร์แมตการ์ด SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"เลือกบัญชี"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"การเพิ่ม"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"การลด"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"นำทางไปหน้าแรก"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"นำทางขึ้น"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"ตัวเลือกเพิ่มเติม"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"ปิดใช้งานข้อมูล 4G"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"ปิดใช้งานข้อมูลมือถือ"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"แตะเพื่อเปิดใช้งาน"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"ใบรับรองความปลอดภัย"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"ใบรับรองนี้ใช้งานได้"</string>
<string name="issued_to" msgid="454239480274921032">"ออกให้แก่:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"ดูทั้งหมด..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"เลือกกิจกรรม"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"แบ่งปันกับ..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"ล็อกอุปกรณ์อยู่"</string>
</resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 12c14c3..ef32418 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Pinapayagan ang mga application na panoorin ang mga pinipindot mong key maging kapag nakikipag-ugnay sa isa pang application (gaya ng pagpasok ng password). Hindi dapat na kailanganin kailanman para sa mga normal na application."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"sumailalim sa isang pamamaraan ng pag-input"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Pinapayagan ang holder na sumailalim sa nangungunang antas na interface ng pamamaraan ng pag-input. Hindi dapat kailanmang kailanganin para sa mga normal na application."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"sumailalim sa serbisyo ng teksto"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Binibigyang-daan ang may-ari upang sumailalim sa interface sa nangungunang antas(hal. SpellCheckerService). Hindi dapat kailanman kakailanganin para sa mga normal na application."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"sumailalim sa wallpaper"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Pinapayagan ang holder na sumailalim sa interface na nasa nangungunang antas ng wallpaper. Hindi kailanman dapat na kailanganin para sa mga normal na application."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"itali sa serbisyo ng widget"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Pinapayagan ang isang application na baguhin ang kasaysayan o mga bookmark ng Browser na nakaimbak sa iyong telepono. Magagamit ito ng mga nakakahamak na application upang burahin o baguhin ang iyong data ng Browser."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"itakda ang alarm sa alarm clock"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Pinapayagan ang application na magtakda ng alarm sa isang naka-install na application ng alarm clock. Maaaring hindi ipatupad ng ilang application ng alarm clock ang tampok na ito."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"I-access ang mga voicemail na pinapamahalaan ng application na ito"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Binibigyang-daan ang application upang mag-imbak at bumawi ng mga voicemail na maa-access ng nauugnay na serbisyo nito lamang."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Baguhin ang mga pahintulot ng Browser geolocation"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Pinapayagan ang isang application na baguhin ang mga pahintulot sa geolocation ng Browser. Magagamit ito ng mga nakakahamak na application upang payagan ang pagpapadala ng impormasyon ng lokasyon sa mga hindi saklaw na web site."</string>
<string name="save_password_message" msgid="767344687139195790">"Gusto mo bang tandaan ng browser ang password na ito?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"I-cut"</string>
<string name="copy" msgid="2681946229533511987">"Kopyahin"</string>
<string name="paste" msgid="5629880836805036433">"I-paste"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Walang ipe-paste"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Kopyahin ang URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Pumili ng teksto..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Pagpili ng teksto"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Ni-redirect application"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Tumatakbo na ngayon ang <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Orihinal na nalunsad ang <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Sukat"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Palaging ipakita"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Muling paganahin ang Mga Setting > Mga Application > Pamahalaan ang mga application."</string>
<string name="smv_application" msgid="295583804361236288">"Ang application na <xliff:g id="APPLICATION">%1$s</xliff:g> (prosesong <xliff:g id="PROCESS">%2$s</xliff:g>) ay lumabag sa sarili nitong ipinapatupad na patakarang StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Ang prosesong <xliff:g id="PROCESS">%1$s</xliff:g> ay lumabag sa sarili nitong ipinapatupad na patakarang StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Tumatakbo ang <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Available ang bukas na Wi-Fi network"</item>
<item quantity="other" msgid="7915895323644292768">"Buksan ang mga available na Wi-Fi network"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Hindi pinagana ang isang Wi-Fi network"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Pansamantalang hindi pinagana ang Wi-Fi network dahil sa hindi mahusay na connectivity."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Simulan ang pagpapatakbo ng Wi-Fi Direct. I-o-off nito ang pagpapatakbo ng client/hotspot ng Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Nabigong simulan ang Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Kahilingan sa pag-setup ng koneksyon ng Wi-Fi Direct mula sa <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. I-click ang OK upang tanggapin."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Kahilingan sa pag-setup ng koneksyon ng Wi-Fi Direct ng <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Ilagay ang pin upang magpatuloy."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Kailangang mailagay ang WPS pin <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> sa peer device <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> para magpatuloy ang setup ng koneksyon"</string>
<string name="select_character" msgid="3365550120617701745">"Magpasok ng character"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Hindi kilalang application"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Nagpapadala ng mga SMS na mensahe"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Pinapadala ang malaking bilang ng mga SMS na mensahe. Piliin ang \"OK\" upang magpatuloy, o \"Kanselahin\" upang itigil ang pagpapadala."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Kanselahin"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Naalis ang SIM card"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Hindi magiging available ang mobile network hanggang palitan mo ang SIM card."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Tapos na"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Idinagdag ang SIM card"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Dapat mong i-restart ang iyong device upang ma-access ang mobile network."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"I-restart"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Magtakda ng oras"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Itakda ang petsa"</string>
<string name="date_time_set" msgid="5777075614321087758">"Itakda"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Nakakonekta bilang isang media device"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Nakakonekta bilang isang camera"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Nakakonekta bilang isang installer"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Nakakonekta sa isang USB accessory"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"I-touch para sa mga ibang pagpipilian sa USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"I-format USB storage"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"I-format ang SD card"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Pumili ng account"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Taasan"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Babaan"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Magnabiga sa home"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Magnabiga pataas"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Higit pang mga pagpipilian"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Di pinagana ang data ng 4G"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Di pinagana ang data ng mobile"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"tapikin upang paganahin"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Certificate ng seguridad"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"May-bisa ang certificate na ito."</string>
<string name="issued_to" msgid="454239480274921032">"Ibinigay kay:"</string>
@@ -1133,7 +1136,6 @@
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 na fingerprint:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Tingnan lahat..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Pumili ng aktibidad"</string>
- <string name="share_action_provider_share_with" msgid="1791316789651185229">"Ibahagi sa..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Ibahagi kay..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Naka-lock ang device."</string>
</resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index ca29d65..1b5ea9a 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Uygulamaların, başka bir uygulama ile etkileşim halindeyken (örneğin bir şifre girerken) bile bastığınız tuşları izlemesine izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"bir giriş yöntemine bağla"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Tutucunun bir giriş yönteminin en üst düzey arayüzüne bağlanmasına izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"kısa mesaj hizmetine bağla"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Sahibine, bir metin hizmetinin (ör. SpellCheckerService) en üst düzey arayüzüne bağlama izni verir. Normal uygulamalarda hiçbir zaman gerekmez."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"bir duvar kağıdına tabi kıl"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Hesap sahibine bir duvar kağıdının en üst düzey arayüzüne bağlanma izni verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"bir widget hizmetine bağla"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Uygulamaya telefonunuzda depolanan Tarayıcı geçmişini veya favorileri değiştirme izni verir. Kötü amaçlı uygulamalar bunu Tarayıcı verilerinizi silmek veya değiştirmek için kullanabilir."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"çalar saatte alarm ayarla"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Uygulamanın yüklü bir çalar saat uygulamasında bir alarm ayarlamasına izin verir. Bazı çalar saat uygulamaları bu özelliği kullanmayabilir."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Bu uygulamanın yönettiği sesli mesajlara eriş"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Uygulamaya, yalnızca, ilgili hizmetin erişebildiği sesli mesajları depolama ve alma izni verir."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Tarayıcı\'nın coğrafi konum izinlerini değiştir"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Bir uygulamanın, Tarayıcı\'nın coğrafi konum izinlerini değiştirmesine izin verir. Kötü amaçlı uygulamalar, bu özelliği konum bilgilerini rastgele web sitelerine göndermek için kullanabilir."</string>
<string name="save_password_message" msgid="767344687139195790">"Tarayıcının bu şifreyi anımsamasını istiyor musunuz?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Kes"</string>
<string name="copy" msgid="2681946229533511987">"Kopyala"</string>
<string name="paste" msgid="5629880836805036433">"Yapıştır"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Yapştrlck bir şy yok"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"URL\'yi kopyala"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Metin seç..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Metin seçimi"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Uygulama yönlendirildi"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> şimdi çalışıyor."</string>
<string name="launch_warning_original" msgid="188102023021668683">"İlk olarak <xliff:g id="APP_NAME">%1$s</xliff:g> başlatıldı."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Ölçek"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Her zaman göster"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Bunu Ayarlar > Uygulamalar > Uygulamaları yönet bölümünden yeniden etkinleştirebilirsiniz."</string>
<string name="smv_application" msgid="295583804361236288">"<xliff:g id="APPLICATION">%1$s</xliff:g> uygulaması (<xliff:g id="PROCESS">%2$s</xliff:g> işlemi) kendiliğinden uyguladığı StrictMode politikasını ihlal etti."</string>
<string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> işlemi kendiliğinden uyguladığı StrictMode politikasını ihlal etti."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> çalışıyor"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Kullanılabilir kablosuz ağı aç"</item>
<item quantity="other" msgid="7915895323644292768">"Kullanılabilir kablosuz ağları aç"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Kablosuz ağ devre dışı bırakıldı."</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Kötü bağlantı nedeniyle Kablosuz ağ geçici olarak devre dışı bırakıldı."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Kablosuz Doğrudan Bağlantı"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Kablosuz Doğrudan Bağlantı işlemini başlat. Bu durumda Kablosuz istemci/hotspot işlemi kapatılacak."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Kablosuz Doğrudan Bağlantı başlatılamadı"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g> tarafından gelen Kablosuz Doğrudan Bağlantı kurulum isteği. Kabul etmek için TAMAM\'ı tıklayın."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"<xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g> tarafından gelen Kablosuz Doğrudan Bağlantı kurulumu isteği. Devam etmek için pin girin."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Bağlantı kurulum işleminin devamı için <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> eş cihazında WPS pin <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> girilmelidir."</string>
<string name="select_character" msgid="3365550120617701745">"Karakter ekle"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Bilinmeyen uygulama"</string>
<string name="sms_control_title" msgid="7296612781128917719">"SMS mesajları gönderiliyor"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Çok sayıda SMS mesajı gönderiliyor. Devam etmek için \"Tamam\"ı, göndermeyi durdurmak için \"İptal\"i seçin."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"Tamam"</string>
<string name="sms_control_no" msgid="1715320703137199869">"İptal"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM card çıkarıldı"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"SIM kartı değiştirinceye kadar mobil ağ kullanılamayacak."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Tamamlandı"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM kart eklendi"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Mobil ağa erişmek için cihazınızı yeniden başlatmanız gerekir."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Yeniden başlat"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Saati ayarla"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Tarihi ayarla"</string>
<string name="date_time_set" msgid="5777075614321087758">"Ayarla"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Medya cihazı olarak bağlandı"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Kamera olarak bağlandı"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Yükleyici olarak bağlandı"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"USB aksesuarına bağlandı"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Diğer USB seçenekleri için dokunun"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"USB\'yi biçimlendir"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"SD kartı biçimlendir"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Bir hesap seçin"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Artır"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Azalt"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Ana sayfaya git"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Yukarı git"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Diğer seçenekler"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G verileri devre dışı"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobil veriler devre dışı"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"etkinleştirmek içn hafifçe vurun"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Güvenlik sertifikası"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Bu sertifika geçerli."</string>
<string name="issued_to" msgid="454239480274921032">"Verilen:"</string>
@@ -1132,10 +1135,7 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 parmak izi:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 parmak izi:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Tümünü göster..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Etkinlik seçin"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"Şununla paylaş..."</string>
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Cihaz kilitli."</string>
</resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 5a4a34c..91bd1c4 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Дозволяє програмі переглядати клавіші, які ви натискаєте, навіть під час роботи з іншою програмою (наприклад, під час вводу пароля). Ніколи не потрібний для звичайних програм."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"прив\'яз. до методу введ."</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Дозволяє власнику прив\'язувати до інтерфейсу верхнього рівня методу введення. Ніколи не потрібний для звичайних програм."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"прив’язати до текстової служби"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Дозволяє власникові прив’язувати до інтерфейсу верхнього рівня текстової служби (напр. SpellCheckerService). Ніколи не застосовується для звичайних програм."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"прив\'зати до фон. мал."</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Дозволяє власнику прив\'язувати до інтерфейсу верхнього рівня фон. малюнка. Ніколи не потрібний для звичайних програм."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"прив\'язувати до служби віджетів"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Дозволяє програмі змінювати історію чи закладки переглядача, збережені у вашому тел. Шкідливі програми можуть викор. це, щоб видаляти чи змінювати дані переглядача."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"налашт. сигнал у будильн."</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Дозволяє програмі налаштовувати сигнал у встановленій програмі будильника. У деяких програмах будильника ця функція може не застосовуватися."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Доступ до голосової пошти, якою керує ця програма"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Дозволяє програмі зберігати та відновлювати лише голосову пошту, доступ до якої має пов’язана з нею служба."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Змін. дозволи геогр. місцезн. перегладача"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Дозволяє програмі змін. дозволи географ. місцезн. переглядача. Шкідливі програми можуть використ. це, щоб дозволяти надсилати інф-ю про місцезн. випадковим веб-сайтам."</string>
<string name="save_password_message" msgid="767344687139195790">"Хочете, щоб переглядач запам\'ятав цей пароль?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Виріз."</string>
<string name="copy" msgid="2681946229533511987">"Копіюв."</string>
<string name="paste" msgid="5629880836805036433">"Вставити"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Немає що вставити"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Копіюв. URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Вибрати текст..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Вибір тексту"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Програму переадресовано"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"Зараз працює <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="launch_warning_original" msgid="188102023021668683">"Спочатку було запущено <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Масштаб"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Завжди показувати"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Знову ввімкнути це в розділі Налаштування > Програми > Керування програмами."</string>
<string name="smv_application" msgid="295583804361236288">"Програма <xliff:g id="APPLICATION">%1$s</xliff:g> (процес <xliff:g id="PROCESS">%2$s</xliff:g>) порушила свою самозастосовну політику StrictMode."</string>
<string name="smv_process" msgid="5120397012047462446">"Процес <xliff:g id="PROCESS">%1$s</xliff:g> порушив свою самозастосовну політику StrictMode."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"Працює <xliff:g id="APP">%1$s</xliff:g>"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Відкрита Wi-Fi мережа доступна"</item>
<item quantity="other" msgid="7915895323644292768">"Відкриті Wi-Fi мережі доступні"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Мережа Wi-Fi була вимкнена"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Мережа Wi-Fi була тимчасово вимкнена через погане з’єднання."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Почати операцію Wi-Fi Direct. Це вимкне Wi-Fi-операцію клієнт/точка доступу."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Не вдалося запустити Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Запит на налаштування з’єднання Wi-Fi Direct від пристрою <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Натисніть ОК, щоб прийняти."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Запит на налаштування з’єднання Wi-Fi Direct від пристрою <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Введіть PIN-код, щоб продовжити."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Щоб продовжити процес налаштування з’днання, потрібно ввести PIN-код WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> на пристрої однорангової мережі <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g>."</string>
<string name="select_character" msgid="3365550120617701745">"Вставл-ня символу"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Невідома програма"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Надсил. SMS повідомлень"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Надсил-ся завелика к-сть SMS повідомл. Натисн. \"OK\", щоб продовж, або \"Скасувати\", щоб припин. надсил."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Скасувати"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM-карту вилучено"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Мобільна мережа буде недоступною, поки ви не заміните SIM-карту."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Готово"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM-карту додано"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Щоб отримати доступ до мобільної мережі, потрібно перезапустити пристрій."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Перезапуск"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Установити час"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Установити дату"</string>
<string name="date_time_set" msgid="5777075614321087758">"Устан."</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Під’єднано як носій"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Під’єднано як камеру"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Під’єднано як програму встановлення"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Під’єднано до аксесуара USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Торкніться, щоб побачити інші параметри USB"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Форматув. носій USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Формат. карти SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Вибрати обліковий запис"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Додати"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Відняти"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Перейти на головну"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Перейти вгору"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Інші варіанти"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"Дані 4G вимкнено"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Мобільне передав. даних вимкнено"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"торкніться, щоб увімкнути"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Сертифікат безпеки"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Цей сертифікат дійсний."</string>
<string name="issued_to" msgid="454239480274921032">"Кому видано:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Показати всі..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Вибрати дію"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Надіслати..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Пристрій заблоковано."</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index a754a5c..4205041 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -262,10 +262,8 @@
<string name="permdesc_readInputState" msgid="5132879321450325445">"Cho phép ứng dụng xem các phím bạn nhấn ngay cả khi tương tác với ứng dụng khác (chẳng hạn như nhập mật khẩu). Không cần thiết cho các ứng dụng thông thường."</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"liên kết với phương thức nhập"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Cho phép chủ nhân ràng buộc với giao diện cấp cao nhất của phương thức nhập. Không cần thiết cho các ứng dụng thông thường."</string>
- <!-- no translation found for permlab_bindTextService (7358378401915287938) -->
- <skip />
- <!-- no translation found for permdesc_bindTextService (172508880651909350) -->
- <skip />
+ <string name="permlab_bindTextService" msgid="7358378401915287938">"liên kết với dịch vụ văn bản"</string>
+ <string name="permdesc_bindTextService" msgid="172508880651909350">"Cho phép chủ sở hữu nối kết với giao diện cấp cao nhất của dịch vụ văn bản (ví dụ: SpellCheckerService). Không nên sử dụng cho các ứng dụng thông thường."</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"liên kết với hình nền"</string>
<string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Cho phép chủ nhân ràng buộc với giao diện cấp cao nhất của hình nền. Không cần thiết cho các ứng dụng thông thường."</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"liên kết với dịch vụ tiện ích con"</string>
@@ -724,10 +722,8 @@
<string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Cho phép ứng dụng sửa đổi lịch sử hoặc dấu trang của Trình duyệt được lưu trữ trên điện thoại của bạn. Các ứng dụng độc hại có thể sử dụng quyền này để xoá hoặc sửa đổi dữ liệu Trình duyệt của bạn."</string>
<string name="permlab_setAlarm" msgid="5924401328803615165">"đặt báo thức trong đồng hồ báo thức"</string>
<string name="permdesc_setAlarm" msgid="5966966598149875082">"Cho phép ứng dụng đặt báo thức trong ứng dụng đồng hồ báo thức được cài đặt. Một số ứng dụng đồng hồ báo thức có thể không sử dụng tính năng này."</string>
- <!-- no translation found for permlab_readWriteOwnVoicemail (8861946090046059697) -->
- <skip />
- <!-- no translation found for permdesc_readWriteOwnVoicemail (7343490168272921274) -->
- <skip />
+ <string name="permlab_readWriteOwnVoicemail" msgid="8861946090046059697">"Truy cập thư thoại do ứng dụng này quản lý"</string>
+ <string name="permdesc_readWriteOwnVoicemail" msgid="7343490168272921274">"Cho phép ứng dụng lưu trữ và truy xuất chỉ các thư thoại mà dịch vụ liên quan của nó có thể truy cập."</string>
<string name="permlab_writeGeolocationPermissions" msgid="4715212655598275532">"Sửa đổi quyền về vị trí địa lý của Trình duyệt"</string>
<string name="permdesc_writeGeolocationPermissions" msgid="4011908282980861679">"Cho phép ứng dụng sửa đổi các quyền về vị trí địa lý của Trình duyệt. Các ứng dụng độc hại có thể sử dụng quyền này để cho phép gửi thông tin vị trí đến trang web bất kỳ."</string>
<string name="save_password_message" msgid="767344687139195790">"Bạn có muốn trình duyệt nhớ mật khẩu này không?"</string>
@@ -843,7 +839,8 @@
<string name="cut" msgid="3092569408438626261">"Cắt"</string>
<string name="copy" msgid="2681946229533511987">"Sao chép"</string>
<string name="paste" msgid="5629880836805036433">"Dán"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"Không có gì để dán"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"Sao chép URL"</string>
<string name="selectTextMode" msgid="6738556348861347240">"Chọn văn bản..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"Lựa chọn văn bản"</string>
@@ -880,12 +877,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"Ứng dụng đã được chuyển hướng"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> hiện đang chạy."</string>
<string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> được khởi chạy trước tiên."</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Tỷ lệ"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"Luôn hiển thị"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"Bật lại hộp thoại này bằng Cài đặt > Ứng dụng > Quản lý ứng dụng."</string>
<string name="smv_application" msgid="295583804361236288">"Ứng dụng <xliff:g id="APPLICATION">%1$s</xliff:g> (quá trình <xliff:g id="PROCESS">%2$s</xliff:g>) đã vi phạm chính sách StrictMode tự thi hành của mình."</string>
<string name="smv_process" msgid="5120397012047462446">"Quá trình <xliff:g id="PROCESS">%1$s</xliff:g> đã vi phạm chính sách StrictMode tự thi hành của mình."</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> đang hoạt động"</string>
@@ -919,40 +913,26 @@
<item quantity="one" msgid="1634101450343277345">"Mở mạng Wi-Fi khả dụng"</item>
<item quantity="other" msgid="7915895323644292768">"Mở mạng Wi-Fi khả dụng"</item>
</plurals>
- <!-- no translation found for wifi_watchdog_network_disabled (6398650124751302012) -->
- <skip />
- <!-- no translation found for wifi_watchdog_network_disabled_detailed (4659127251774069612) -->
- <skip />
- <!-- no translation found for wifi_p2p_dialog_title (97611782659324517) -->
- <skip />
- <!-- no translation found for wifi_p2p_turnon_message (2804722042556269129) -->
- <skip />
- <!-- no translation found for wifi_p2p_failed_message (6467545523417622335) -->
- <skip />
- <!-- no translation found for wifi_p2p_pbc_go_negotiation_request_message (3170321684621420428) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_go_negotiation_request_message (5177412094633377308) -->
- <skip />
- <!-- no translation found for wifi_p2p_pin_display_message (2834049169114922902) -->
- <skip />
+ <string name="wifi_watchdog_network_disabled" msgid="6398650124751302012">"Mạng Wi-Fi đã bị vô hiệu"</string>
+ <string name="wifi_watchdog_network_disabled_detailed" msgid="4659127251774069612">"Mạng Wi-Fi đã tạm thời bị vô hiệu do kết nối lỗi."</string>
+ <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+ <string name="wifi_p2p_turnon_message" msgid="2804722042556269129">"Bắt đầu hoạt động Wi-Fi Direct. Điều này sẽ tắt hoạt động của ứng dụng khách/điểm phát sóng Wi-Fi."</string>
+ <string name="wifi_p2p_failed_message" msgid="6467545523417622335">"Không thể khởi động Wi-Fi Direct"</string>
+ <string name="wifi_p2p_pbc_go_negotiation_request_message" msgid="3170321684621420428">"Yêu cầu thiết lập kết nối Wi-Fi Direct từ <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Nhấp vào OK để chấp nhận."</string>
+ <string name="wifi_p2p_pin_go_negotiation_request_message" msgid="5177412094633377308">"Yêu cầu thiết lập Wi-Fi Direct từ <xliff:g id="P2P_DEVICE_ADDRESS">%1$s</xliff:g>. Nhập pin để tiếp tục."</string>
+ <string name="wifi_p2p_pin_display_message" msgid="2834049169114922902">"Cần nhập pin WPS <xliff:g id="P2P_WPS_PIN">%1$s</xliff:g> vào thiết bị ngang hàng <xliff:g id="P2P_CLIENT_ADDRESS">%2$s</xliff:g> để tiếp tục thiết lập kết nối"</string>
<string name="select_character" msgid="3365550120617701745">"Chèn ký tự"</string>
<string name="sms_control_default_app_name" msgid="7630529934366549163">"Ứng dụng không xác định"</string>
<string name="sms_control_title" msgid="7296612781128917719">"Đang gửi tin nhắn SMS"</string>
<string name="sms_control_message" msgid="1289331457999236205">"Một số lượng lớn các tin nhắn SMS đang được gửi. Chọn \"OK\" để tiếp tục hoặc \"Hủy\" để dừng gửi."</string>
<string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
<string name="sms_control_no" msgid="1715320703137199869">"Hủy"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"Đã xóa thẻ SIM"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"Mạng di động sẽ không khả dụng cho đến khi bạn thay thế thẻ SIM."</string>
+ <string name="sim_done_button" msgid="827949989369963775">"Xong"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"Đã thêm thẻ SIM"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"Bạn phải khởi động lại thiết bị của mình để truy cập mạng di động."</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"Khởi động lại"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"Đặt giờ"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"Đặt ngày"</string>
<string name="date_time_set" msgid="5777075614321087758">"Đặt"</string>
@@ -983,8 +963,7 @@
<string name="usb_mtp_notification_title" msgid="3699913097391550394">"Đã kết nối là thiết bị truyền thông"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"Đã kết nối như máy ảnh"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Được kết nối như trình cài đặt"</string>
- <!-- no translation found for usb_accessory_notification_title (7848236974087653666) -->
- <skip />
+ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Đã kết nối với phụ kiện USB"</string>
<string name="usb_notification_message" msgid="4447869605109736382">"Chạm để có các tùy chọn USB khác"</string>
<string name="extmedia_format_title" product="nosdcard" msgid="7980995592595097841">"Định dạng b.nhớ USB"</string>
<string name="extmedia_format_title" product="default" msgid="8663247929551095854">"Định dạng thẻ SD"</string>
@@ -1104,6 +1083,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"Chọn tài khoản"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"Tăng dần"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"Giảm dần"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"Điều hướng về trang chủ"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"Điều hướng lên trên"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"Tùy chọn khác"</string>
@@ -1117,6 +1112,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G dữ liệu bị vô hiệu hóa"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Dữ liệu di động bị vô hiệu hóa"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"chạm để bật"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"Chứng chỉ bảo mật"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Chứng chỉ này hợp lệ."</string>
<string name="issued_to" msgid="454239480274921032">"Cấp cho:"</string>
@@ -1134,6 +1137,5 @@
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"Xem tất cả..."</string>
<string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"Chọn hoạt động"</string>
<string name="share_action_provider_share_with" msgid="1791316789651185229">"Chia sẻ với..."</string>
- <!-- no translation found for status_bar_device_locked (3092703448690669768) -->
- <skip />
+ <string name="status_bar_device_locked" msgid="3092703448690669768">"Thiết bị đã bị khóa."</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 6daa793..f7e9b6f 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"剪切"</string>
<string name="copy" msgid="2681946229533511987">"复制"</string>
<string name="paste" msgid="5629880836805036433">"粘贴"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"剪贴板无内容"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"复制网址"</string>
<string name="selectTextMode" msgid="6738556348861347240">"选择文字..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"文字选择"</string>
@@ -1104,6 +1105,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"选择帐户"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"增加"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"减少"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"导航首页"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"向上导航"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"更多选项"</string>
@@ -1117,6 +1134,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G 数据已停用"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"移动数据已停用"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"点按即可启用"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"安全证书"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"该证书有效。"</string>
<string name="issued_to" msgid="454239480274921032">"颁发给:"</string>
@@ -1132,10 +1157,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 指纹:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 指纹:"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"查看全部..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"选择活动"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"分享活动…"</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 411b24f..bc3817b 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -843,7 +843,8 @@
<string name="cut" msgid="3092569408438626261">"剪下"</string>
<string name="copy" msgid="2681946229533511987">"複製"</string>
<string name="paste" msgid="5629880836805036433">"貼上"</string>
- <string name="pasteDisabled" msgid="7259254654641456570">"沒有可貼上的內容"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<string name="copyUrl" msgid="2538211579596067402">"複製網址"</string>
<string name="selectTextMode" msgid="6738556348861347240">"選取文字..."</string>
<string name="textSelectionCABTitle" msgid="5236850394370820357">"選取文字"</string>
@@ -880,12 +881,9 @@
<string name="launch_warning_title" msgid="8323761616052121936">"應用程式已重新導向"</string>
<string name="launch_warning_replace" msgid="6202498949970281412">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」現在正在執行。"</string>
<string name="launch_warning_original" msgid="188102023021668683">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」原先已啟動。"</string>
- <!-- no translation found for screen_compat_mode_scale (3202955667675944499) -->
- <skip />
- <!-- no translation found for screen_compat_mode_show (4013878876486655892) -->
- <skip />
- <!-- no translation found for screen_compat_mode_hint (2953716574198046484) -->
- <skip />
+ <string name="screen_compat_mode_scale" msgid="3202955667675944499">"比例"</string>
+ <string name="screen_compat_mode_show" msgid="4013878876486655892">"一律顯示"</string>
+ <string name="screen_compat_mode_hint" msgid="2953716574198046484">"如要重新啟用這個模式,請至 [設定] > [應用程式] > [管理應用程式]。"</string>
<string name="smv_application" msgid="295583804361236288">"應用程式 <xliff:g id="APPLICATION">%1$s</xliff:g> (處理程序 <xliff:g id="PROCESS">%2$s</xliff:g>) 已違反其自行強制實施的嚴格模式 (StrictMode) 政策。"</string>
<string name="smv_process" msgid="5120397012047462446">"處理程序 <xliff:g id="PROCESS">%1$s</xliff:g> 已違反其自行強制實施的嚴格模式 (StrictMode) 政策。"</string>
<string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> 執行中"</string>
@@ -941,18 +939,12 @@
<string name="sms_control_message" msgid="1289331457999236205">"即將傳送大量 SMS 簡訊。選取 [確定] 繼續或 [取消] 停止傳送。"</string>
<string name="sms_control_yes" msgid="2532062172402615953">"確定"</string>
<string name="sms_control_no" msgid="1715320703137199869">"取消"</string>
- <!-- no translation found for sim_removed_title (6227712319223226185) -->
- <skip />
- <!-- no translation found for sim_removed_message (2064255102770489459) -->
- <skip />
- <!-- no translation found for sim_done_button (827949989369963775) -->
- <skip />
- <!-- no translation found for sim_added_title (3719670512889674693) -->
- <skip />
- <!-- no translation found for sim_added_message (1209265974048554242) -->
- <skip />
- <!-- no translation found for sim_restart_button (4722407842815232347) -->
- <skip />
+ <string name="sim_removed_title" msgid="6227712319223226185">"SIM 卡已移除"</string>
+ <string name="sim_removed_message" msgid="2064255102770489459">"您必須更換 SIM 卡,否則無法使用行動網路。"</string>
+ <string name="sim_done_button" msgid="827949989369963775">"完成"</string>
+ <string name="sim_added_title" msgid="3719670512889674693">"SIM 卡已新增"</string>
+ <string name="sim_added_message" msgid="1209265974048554242">"您必須重新啟動裝置,才能使用行動網路。"</string>
+ <string name="sim_restart_button" msgid="4722407842815232347">"重新啟動"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"設定時間"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"日期設定"</string>
<string name="date_time_set" msgid="5777075614321087758">"設定"</string>
@@ -1104,6 +1096,22 @@
<string name="choose_account_label" msgid="4191313562041125787">"選取帳戶"</string>
<string name="number_picker_increment_button" msgid="4830170763103463443">"增加"</string>
<string name="number_picker_decrement_button" msgid="2576606679160067262">"減少"</string>
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<string name="action_bar_home_description" msgid="5293600496601490216">"瀏覽首頁"</string>
<string name="action_bar_up_description" msgid="2237496562952152589">"向上瀏覽"</string>
<string name="action_menu_overflow_description" msgid="2295659037509008453">"更多選項"</string>
@@ -1117,6 +1125,14 @@
<string name="data_usage_4g_limit_title" msgid="7636489436819470761">"已停用 4G 數據"</string>
<string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"已停用行動數據"</string>
<string name="data_usage_limit_body" msgid="2182247539226163759">"輕按一下即可啟用"</string>
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<string name="ssl_certificate" msgid="6510040486049237639">"安全性憑證"</string>
<string name="ssl_certificate_is_valid" msgid="6825263250774569373">"憑證有效。"</string>
<string name="issued_to" msgid="454239480274921032">"發佈至:"</string>
@@ -1132,10 +1148,8 @@
<string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 指紋"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 指紋"</string>
<string name="activity_chooser_view_see_all" msgid="180268188117163072">"查看所有活動..."</string>
- <!-- no translation found for activity_chooser_view_dialog_title_default (3325054276356556835) -->
- <skip />
- <!-- no translation found for share_action_provider_share_with (1791316789651185229) -->
- <skip />
+ <string name="activity_chooser_view_dialog_title_default" msgid="3325054276356556835">"選取活動"</string>
+ <string name="share_action_provider_share_with" msgid="1791316789651185229">"分享活動..."</string>
<!-- no translation found for status_bar_device_locked (3092703448690669768) -->
<skip />
</resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index f224e63..3430057 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1117,7 +1117,8 @@
<skip />
<!-- no translation found for paste (5629880836805036433) -->
<skip />
- <string name="pasteDisabled" msgid="7259254654641456570">"Ayikho into yokunamathiselwa"</string>
+ <!-- no translation found for replace (8333608224471746584) -->
+ <skip />
<!-- no translation found for copyUrl (2538211579596067402) -->
<skip />
<string name="selectTextMode" msgid="6738556348861347240">"Khetha umbhalo..."</string>
@@ -1431,6 +1432,22 @@
<skip />
<!-- no translation found for number_picker_decrement_button (2576606679160067262) -->
<skip />
+ <!-- no translation found for checkbox_checked (7222044992652711167) -->
+ <skip />
+ <!-- no translation found for checkbox_not_checked (5174639551134444056) -->
+ <skip />
+ <!-- no translation found for radiobutton_selected (8603599808486581511) -->
+ <skip />
+ <!-- no translation found for radiobutton_not_selected (2908760184307722393) -->
+ <skip />
+ <!-- no translation found for switch_on (551417728476977311) -->
+ <skip />
+ <!-- no translation found for switch_off (7249798614327155088) -->
+ <skip />
+ <!-- no translation found for togglebutton_pressed (4180411746647422233) -->
+ <skip />
+ <!-- no translation found for togglebutton_not_pressed (4495147725636134425) -->
+ <skip />
<!-- no translation found for action_bar_home_description (5293600496601490216) -->
<skip />
<!-- no translation found for action_bar_up_description (2237496562952152589) -->
@@ -1457,6 +1474,14 @@
<skip />
<!-- no translation found for data_usage_limit_body (2182247539226163759) -->
<skip />
+ <!-- no translation found for data_usage_3g_limit_snoozed_title (7026739121138005231) -->
+ <skip />
+ <!-- no translation found for data_usage_4g_limit_snoozed_title (1106562779311209039) -->
+ <skip />
+ <!-- no translation found for data_usage_mobile_limit_snoozed_title (279240572165412168) -->
+ <skip />
+ <!-- no translation found for data_usage_limit_snoozed_body (2932736326652880660) -->
+ <skip />
<!-- no translation found for ssl_certificate (6510040486049237639) -->
<skip />
<!-- no translation found for ssl_certificate_is_valid (6825263250774569373) -->
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index f80f27d..f70319b 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2632,12 +2632,12 @@
<attr name="alignmentMode" />
<!-- When set to true, forces row boundaries to appear in the same order
as row indices.
- The default is false.
+ The default is true.
See {@link android.widget.GridLayout#setRowOrderPreserved(boolean)}.-->
<attr name="rowOrderPreserved" format="boolean" />
<!-- When set to true, forces column boundaries to appear in the same order
as column indices.
- The default is false.
+ The default is true.
See {@link android.widget.GridLayout#setColumnOrderPreserved(boolean)}.-->
<attr name="columnOrderPreserved" format="boolean" />
</declare-styleable>
@@ -3363,18 +3363,6 @@
The default is LEFT | BASELINE.
See {@link android.widget.GridLayout.LayoutParams#setGravity(int)}. -->
<attr name="layout_gravity" />
- <!-- {@deprecated To make a column group lexible, ensure that every component in the
- group defines a horizontal gravity.} -->
- <attr name="layout_columnFlexibility" >
- <enum name="inflexible" value="0" />
- <enum name="canStretch" value="2" />
- </attr>
- <!-- {@deprecated To make a row group flexible, ensure that every component in the
- group defines a vertical gravity.} -->
- <attr name="layout_rowFlexibility" >
- <enum name="inflexible" value="0" />
- <enum name="canStretch" value="2" />
- </attr>
</declare-styleable>
<declare-styleable name="FrameLayout_Layout">
<attr name="layout_gravity" />
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index dd16bd0..847afa0 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -710,6 +710,22 @@
<enum name="preferExternal" value="2" />
</attr>
+ <!-- Extra options for an activity's UI. If specified on the application
+ tag these will be considered defaults for all activities in the
+ application. -->
+ <attr name="uiOptions">
+ <!-- No extra UI options. -->
+ <flag name="none" value="0" />
+ <!-- Split the options menu into a separate bar at the bottom of
+ the screen when severely constrained for horizontal space.
+ (e.g. portrait mode on a phone.) Instead of a small number
+ of action buttons appearing in the action bar at the top
+ of the screen, the action bar will split into the top navigation
+ section and the bottom menu section. Menu items will not be
+ split across the two bars; they will always appear together. -->
+ <flag name="splitActionBarWhenNarrow" value="1" />
+ </attr>
+
<!-- The <code>manifest</code> tag is the root of an
<code>AndroidManifest.xml</code> file,
describing the contents of an Android package (.apk) file. One
@@ -812,6 +828,7 @@
application is running, the user will be informed of this.
@hide -->
<attr name="cantSaveState" format="boolean" />
+ <attr name="uiOptions" />
</declare-styleable>
<!-- The <code>permission</code> tag declares a security permission that can be
@@ -1302,6 +1319,7 @@
<attr name="windowSoftInputMode" />
<attr name="immersive" />
<attr name="hardwareAccelerated" />
+ <attr name="uiOptions" />
</declare-styleable>
<!-- The <code>activity-alias</code> tag declares a new
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 65dce49..73443a0 100755
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -84,6 +84,9 @@
specified for -large and -xlarge configurations. -->
<dimen name="config_prefDialogWidth">320dp</dimen>
+ <!-- Enables or disables fading edges when marquee is enabled in TextView. -->
+ <bool name="config_ui_enableFadingMarquee">true</bool>
+
<!-- Whether dialogs should close automatically when the user touches outside
of them. This should not normally be modified. -->
<bool name="config_closeDialogWhenTouchOutside">false</bool>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index b3e50ea..e534e9b 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -50,12 +50,17 @@
<dimen name="fastscroll_thumb_height">52dp</dimen>
<!-- Min width for a tablet device -->
<dimen name="min_xlarge_screen_width">800dp</dimen>
- <!-- Default height of a key in the password keyboard for alpha -->
+
+ <!-- Default height of a key in the password keyboard for alpha (used by keyguard) -->
<dimen name="password_keyboard_key_height_alpha">56dip</dimen>
- <!-- Default height of a key in the password keyboard for numeric -->
+ <!-- Default height of a key in the password keyboard for numeric (used by keyguard) -->
<dimen name="password_keyboard_key_height_numeric">56dip</dimen>
- <!-- Default correction for the space key in the password keyboard -->
+ <!-- Default correction for the space key in the password keyboard (used by keyguard) -->
<dimen name="password_keyboard_spacebar_vertical_correction">4dip</dimen>
+ <!-- Default horizontal gap between keys in the password keyboard (used by keyguard) -->
+ <dimen name="password_keyboard_horizontalGap">3dip</dimen>
+ <!-- Default vertical gap between keys in the password keyboard (used by keyguard) -->
+ <dimen name="password_keyboard_verticalGap">9dip</dimen>
<!-- Default target placement radius for MultiWaveView -->
<dimen name="multiwaveview_target_placement_radius">135dip</dimen>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 0555d10..f85dd85 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1728,10 +1728,8 @@
<public type="attr" name="layout_row" />
<public type="attr" name="layout_rowSpan" />
- <public type="attr" name="layout_rowFlexibility" />
<public type="attr" name="layout_columnSpan" />
- <public type="attr" name="layout_columnFlexibility" />
<public type="attr" name="actionModeSelectAllDrawable" />
@@ -1785,11 +1783,11 @@
<public type="attr" name="minResizeHeight" />
<public type="attr" name="actionBarWidgetTheme" />
+ <public type="attr" name="uiOptions" />
<public type="style" name="TextAppearance.SuggestionHighlight" />
- <public type="style" name="Theme.Holo.SplitActionBarWhenNarrow" />
- <public type="style" name="Theme.Holo.Light.SplitActionBarWhenNarrow" />
+ <public type="style" name="Theme.Holo.Light.DarkActionBar" />
<public type="style" name="Widget.Holo.Button.Borderless.Small" />
<public type="style" name="Widget.Holo.Light.Button.Borderless.Small" />
<public type="style" name="TextAppearance.Holo.Widget.ActionBar.Title.Inverse" />
@@ -1804,12 +1802,183 @@
<public type="style" name="Widget.Holo.Light.ActionBar.TabView.Inverse" />
<public type="style" name="Widget.Holo.Light.ActionBar.TabText.Inverse" />
<public type="style" name="Widget.Holo.Light.ActionMode.Inverse" />
- <public type="style" name="Theme.Holo.SolidActionBar" />
- <public type="style" name="Theme.Holo.Light.SolidActionBar" />
- <public type="style" name="Theme.Holo.Light.SolidActionBar.Inverse" />
- <public type="style" name="Theme.Holo.SolidActionBar.SplitActionBarWhenNarrow" />
- <public type="style" name="Theme.Holo.Light.SolidActionBar.SplitActionBarWhenNarrow" />
- <public type="style" name="Theme.Holo.Light.SolidActionBar.Inverse.SplitActionBarWhenNarrow" />
+
+ <public type="style" name="Theme.DeviceDefault" />
+ <public type="style" name="Theme.DeviceDefault.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.NoActionBar.Fullscreen" />
+ <public type="style" name="Theme.DeviceDefault.Light" />
+ <public type="style" name="Theme.DeviceDefault.Light.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.Light.NoActionBar.Fullscreen" />
+ <public type="style" name="Theme.DeviceDefault.Dialog" />
+ <public type="style" name="Theme.DeviceDefault.Dialog.MinWidth" />
+ <public type="style" name="Theme.DeviceDefault.Dialog.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.Dialog.NoActionBar.MinWidth" />
+ <public type="style" name="Theme.DeviceDefault.Light.Dialog" />
+ <public type="style" name="Theme.DeviceDefault.Light.Dialog.MinWidth" />
+ <public type="style" name="Theme.DeviceDefault.Light.Dialog.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth" />
+ <public type="style" name="Theme.DeviceDefault.DialogWhenLarge" />
+ <public type="style" name="Theme.DeviceDefault.DialogWhenLarge.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.Light.DialogWhenLarge" />
+ <public type="style" name="Theme.DeviceDefault.Light.DialogWhenLarge.NoActionBar" />
+ <public type="style" name="Theme.DeviceDefault.Panel" />
+ <public type="style" name="Theme.DeviceDefault.Light.Panel" />
+ <public type="style" name="Theme.DeviceDefault.Wallpaper" />
+ <public type="style" name="Theme.DeviceDefault.Wallpaper.NoTitleBar" />
+ <public type="style" name="Theme.DeviceDefault.InputMethod" />
+ <public type="style" name="Theme.DeviceDefault.Light.DarkActionBar" />
+
+ <public type="style" name="Widget.DeviceDefault" />
+ <public type="style" name="Widget.DeviceDefault.Button" />
+ <public type="style" name="Widget.DeviceDefault.Button.Small" />
+ <public type="style" name="Widget.DeviceDefault.Button.Inset" />
+ <public type="style" name="Widget.DeviceDefault.Button.Toggle" />
+ <public type="style" name="Widget.DeviceDefault.Button.Borderless.Small" />
+ <public type="style" name="Widget.DeviceDefault.TextView" />
+ <public type="style" name="Widget.DeviceDefault.AutoCompleteTextView" />
+ <public type="style" name="Widget.DeviceDefault.CompoundButton.CheckBox" />
+ <public type="style" name="Widget.DeviceDefault.ListView.DropDown" />
+ <public type="style" name="Widget.DeviceDefault.EditText" />
+ <public type="style" name="Widget.DeviceDefault.ExpandableListView" />
+ <public type="style" name="Widget.DeviceDefault.GridView" />
+ <public type="style" name="Widget.DeviceDefault.ImageButton" />
+ <public type="style" name="Widget.DeviceDefault.ListView" />
+ <public type="style" name="Widget.DeviceDefault.PopupWindow" />
+ <public type="style" name="Widget.DeviceDefault.ProgressBar" />
+ <public type="style" name="Widget.DeviceDefault.ProgressBar.Horizontal" />
+ <public type="style" name="Widget.DeviceDefault.ProgressBar.Small" />
+ <public type="style" name="Widget.DeviceDefault.ProgressBar.Small.Title" />
+ <public type="style" name="Widget.DeviceDefault.ProgressBar.Large" />
+ <public type="style" name="Widget.DeviceDefault.SeekBar" />
+ <public type="style" name="Widget.DeviceDefault.RatingBar" />
+ <public type="style" name="Widget.DeviceDefault.RatingBar.Indicator" />
+ <public type="style" name="Widget.DeviceDefault.RatingBar.Small" />
+ <public type="style" name="Widget.DeviceDefault.CompoundButton.RadioButton" />
+ <public type="style" name="Widget.DeviceDefault.ScrollView" />
+ <public type="style" name="Widget.DeviceDefault.HorizontalScrollView" />
+ <public type="style" name="Widget.DeviceDefault.Spinner" />
+ <public type="style" name="Widget.DeviceDefault.CompoundButton.Star" />
+ <public type="style" name="Widget.DeviceDefault.TabWidget" />
+ <public type="style" name="Widget.DeviceDefault.WebTextView" />
+ <public type="style" name="Widget.DeviceDefault.WebView" />
+ <public type="style" name="Widget.DeviceDefault.DropDownItem" />
+ <public type="style" name="Widget.DeviceDefault.DropDownItem.Spinner" />
+ <public type="style" name="Widget.DeviceDefault.TextView.SpinnerItem" />
+ <public type="style" name="Widget.DeviceDefault.ListPopupWindow" />
+ <public type="style" name="Widget.DeviceDefault.PopupMenu" />
+ <public type="style" name="Widget.DeviceDefault.ActionButton" />
+ <public type="style" name="Widget.DeviceDefault.ActionButton.Overflow" />
+ <public type="style" name="Widget.DeviceDefault.ActionButton.TextButton" />
+ <public type="style" name="Widget.DeviceDefault.ActionMode" />
+ <public type="style" name="Widget.DeviceDefault.ActionButton.CloseMode" />
+ <public type="style" name="Widget.DeviceDefault.ActionBar" />
+ <public type="style" name="Widget.DeviceDefault.Button.Borderless" />
+ <public type="style" name="Widget.DeviceDefault.Tab" />
+ <public type="style" name="Widget.DeviceDefault.CalendarView" />
+ <public type="style" name="Widget.DeviceDefault.DatePicker" />
+ <public type="style" name="Widget.DeviceDefault.ActionBar.TabView" />
+ <public type="style" name="Widget.DeviceDefault.ActionBar.TabText" />
+ <public type="style" name="Widget.DeviceDefault.ActionBar.TabBar" />
+ <public type="style" name="Widget.DeviceDefault.ActionBar.Solid" />
+ <public type="style" name="Widget.DeviceDefault.Light" />
+ <public type="style" name="Widget.DeviceDefault.Light.Button" />
+ <public type="style" name="Widget.DeviceDefault.Light.Button.Small" />
+ <public type="style" name="Widget.DeviceDefault.Light.Button.Inset" />
+ <public type="style" name="Widget.DeviceDefault.Light.Button.Toggle" />
+ <public type="style" name="Widget.DeviceDefault.Light.Button.Borderless.Small" />
+ <public type="style" name="Widget.DeviceDefault.Light.TextView" />
+ <public type="style" name="Widget.DeviceDefault.Light.AutoCompleteTextView" />
+ <public type="style" name="Widget.DeviceDefault.Light.CompoundButton.CheckBox" />
+ <public type="style" name="Widget.DeviceDefault.Light.ListView.DropDown" />
+ <public type="style" name="Widget.DeviceDefault.Light.EditText" />
+ <public type="style" name="Widget.DeviceDefault.Light.ExpandableListView" />
+ <public type="style" name="Widget.DeviceDefault.Light.GridView" />
+ <public type="style" name="Widget.DeviceDefault.Light.ImageButton" />
+ <public type="style" name="Widget.DeviceDefault.Light.ListView" />
+ <public type="style" name="Widget.DeviceDefault.Light.PopupWindow" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Horizontal" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Small" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Small.Title" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Large" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Small.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ProgressBar.Large.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.SeekBar" />
+ <public type="style" name="Widget.DeviceDefault.Light.RatingBar" />
+ <public type="style" name="Widget.DeviceDefault.Light.RatingBar.Indicator" />
+ <public type="style" name="Widget.DeviceDefault.Light.RatingBar.Small" />
+ <public type="style" name="Widget.DeviceDefault.Light.CompoundButton.RadioButton" />
+ <public type="style" name="Widget.DeviceDefault.Light.ScrollView" />
+ <public type="style" name="Widget.DeviceDefault.Light.HorizontalScrollView" />
+ <public type="style" name="Widget.DeviceDefault.Light.Spinner" />
+ <public type="style" name="Widget.DeviceDefault.Light.CompoundButton.Star" />
+ <public type="style" name="Widget.DeviceDefault.Light.TabWidget" />
+ <public type="style" name="Widget.DeviceDefault.Light.WebTextView" />
+ <public type="style" name="Widget.DeviceDefault.Light.WebView" />
+ <public type="style" name="Widget.DeviceDefault.Light.DropDownItem" />
+ <public type="style" name="Widget.DeviceDefault.Light.DropDownItem.Spinner" />
+ <public type="style" name="Widget.DeviceDefault.Light.TextView.SpinnerItem" />
+ <public type="style" name="Widget.DeviceDefault.Light.ListPopupWindow" />
+ <public type="style" name="Widget.DeviceDefault.Light.PopupMenu" />
+ <public type="style" name="Widget.DeviceDefault.Light.Tab" />
+ <public type="style" name="Widget.DeviceDefault.Light.CalendarView" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionButton" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionButton.Overflow" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionMode" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionButton.CloseMode" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabView" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabText" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabBar" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.Solid" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.Solid.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabBar.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabView.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionBar.TabText.Inverse" />
+ <public type="style" name="Widget.DeviceDefault.Light.ActionMode.Inverse" />
+
+ <public type="style" name="TextAppearance.DeviceDefault" />
+ <public type="style" name="TextAppearance.DeviceDefault.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Large" />
+ <public type="style" name="TextAppearance.DeviceDefault.Large.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Medium" />
+ <public type="style" name="TextAppearance.DeviceDefault.Medium.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Small" />
+ <public type="style" name="TextAppearance.DeviceDefault.Small.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.SearchResult.Title" />
+ <public type="style" name="TextAppearance.DeviceDefault.SearchResult.Subtitle" />
+ <public type="style" name="TextAppearance.DeviceDefault.WindowTitle" />
+ <public type="style" name="TextAppearance.DeviceDefault.DialogWindowTitle" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.Button" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.IconMenu.Item" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.TabWidget" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.TextView" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.TextView.PopupMenu" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.DropDownHint" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.DropDownItem" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.TextView.SpinnerItem" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.EditText" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.PopupMenu" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.PopupMenu.Large" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.PopupMenu.Small" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionBar.Title" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionMode.Title" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionBar.Title.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionMode.Title.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle.Inverse" />
+ <public type="style" name="TextAppearance.DeviceDefault.Widget.ActionBar.Menu" />
+
+ <public type="style" name="DeviceDefault.ButtonBar" />
+ <public type="style" name="DeviceDefault.ButtonBar.AlertDialog" />
+ <public type="style" name="DeviceDefault.SegmentedButton" />
+ <public type="style" name="DeviceDefault.Light.ButtonBar" />
+ <public type="style" name="DeviceDefault.Light.ButtonBar.AlertDialog" />
+ <public type="style" name="DeviceDefault.Light.SegmentedButton" />
<public type="integer" name="status_bar_notification_info_maxnum" />
<public type="string" name="status_bar_notification_info_overflow" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 147fff0..a6c92f2 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2166,6 +2166,14 @@
voicemails that its associated service can access.</string>
<!-- Title of an application permission, listed so the user can choose whether
+ they want to allow the application to do this. [CHAR LIMIT=NONE] -->
+ <string name="permlab_addVoicemail">add voicemail</string>
+ <!-- Description of an application permission, listed so the user can choose whether
+ they want to allow the application to do this. [CHAR LIMIT=NONE] -->
+ <string name="permdesc_addVoicemail">Allows the application to add messages
+ to your voicemail inbox.</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_writeGeolocationPermissions">Modify Browser geolocation permissions</string>
<!-- Description of an application permission, listed so the user can choose whether
@@ -2405,6 +2413,9 @@
<!-- Item on EditText context menu. This action is used to paste from the clipboard into the eidt field -->
<string name="paste">Paste</string>
+ <!-- Text displayed in a popup dialog in TextEdit when the clipboard is empty. 'paste' is used otherwise. [CHAR LIMIT=20] -->
+ <string name="pasteDisabled">Nothing to paste</string>
+
<!-- Item on EditText context menu. This action is used to replace the current word by other suggested words, suggested by the IME or the spell checker -->
<string name="replace">Replace</string>
@@ -2552,6 +2563,19 @@
<!-- Title of the dialog where the user is adjusting the general audio volume -->
<string name="volume_unknown">Volume</string>
+ <!-- Content description for bluetooth volume icon [CHAR LIMIT=100] -->
+ <string name="volume_icon_description_bluetooth">Bluetooth volume. Tap to toggle silent mode.</string>
+ <!-- Content description for ringer volume icon [CHAR LIMIT=100] -->
+ <string name="volume_icon_description_ringer">Ringtone volume. Tap to toggle silent mode.</string>
+ <!-- Content description for in-call volume icon [CHAR LIMIT=100] -->
+ <string name="volume_icon_description_incall">Call volume. Tap to toggle silent mode.</string>
+ <!-- Content description for media volume icon [CHAR LIMIT=100] -->
+ <string name="volume_icon_description_media">Media volume. Tap to toggle silent mode.</string>
+ <!-- Content description for notification volume icon [CHAR LIMIT=100] -->
+ <string name="volume_icon_description_notification">Notification volume. Tap to toggle silent mode.</string>
+ <!-- Content description for volume settings expansion button [CHAR LIMIT=100] -->
+ <string name="volume_panel_more_description">Tap to show more audio stream volumes.</string>
+
<!-- Ringtone picker strings --> <skip />
<!-- Choice in the ringtone picker. If chosen, the default ringtone will be used. -->
<string name="ringtone_default">Default ringtone</string>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 5aa47b7..21f1cef 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -14,6 +14,20 @@
limitations under the License.
-->
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+
+The Holo themes must not be modified in order to pass CTS.
+Many related themes and styles depend on other values defined in this file.
+If you would like to provide custom themes and styles for your device,
+please see styles_device_defaults.xml.
+
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
<resources>
<!-- Global Theme Styles -->
<eat-comment />
@@ -95,19 +109,6 @@
<item name="windowExitAnimation">@anim/dialog_exit</item>
</style>
- <!-- Standard animations for hiding and showing the status bar. -->
- <style name="Animation.StatusBar">
- <item name="windowEnterAnimation">@anim/status_bar_enter</item>
- <item name="windowExitAnimation">@anim/status_bar_exit</item>
- </style>
-
- <!-- {@hide} -->
- <style name="Animation.StatusBar.IntruderAlert"
- parent="@android:style/Animation.StatusBar">
- <item name="android:windowEnterAnimation">@anim/priority_alert_enter</item>
- <item name="android:windowExitAnimation">@anim/priority_alert_exit</item>
- </style>
-
<!-- Standard animations for a translucent window or activity. This
style is <em>not<em> used by default for the translucent theme
(since translucent activities are a special case that have no
diff --git a/core/res/res/values/styles_device_defaults.xml b/core/res/res/values/styles_device_defaults.xml
new file mode 100644
index 0000000..7f1891e
--- /dev/null
+++ b/core/res/res/values/styles_device_defaults.xml
@@ -0,0 +1,741 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+This file contains the themes that are the Device Defaults.
+If you want to edit styles to skin your device, do it here.
+We recommend that you do not edit styles.xml and instead edit
+this file.
+
+Editing this file instead of styles.xml will greatly simplify
+merges for future platform versions and CTS compliance will be
+easier.
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
+<resources>
+ <!-- Widget Styles -->
+ <style name="Widget.DeviceDefault" parent="Widget.Holo" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button" parent="Widget.Holo.Button" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button.Small" parent="Widget.Holo.Button.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button.Inset" parent="Widget.Holo.Button.Inset" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button.Toggle" parent="Widget.Holo.Button.Toggle" >
+
+ </style>
+ <style name="Widget.DeviceDefault.TextView" parent="Widget.Holo.TextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.AutoCompleteTextView" parent="Widget.Holo.AutoCompleteTextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.CompoundButton.CheckBox" parent="Widget.Holo.CompoundButton.CheckBox" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ListView.DropDown" parent="Widget.Holo.ListView.DropDown" >
+
+ </style>
+ <style name="Widget.DeviceDefault.EditText" parent="Widget.Holo.EditText" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ExpandableListView" parent="Widget.Holo.ExpandableListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.GridView" parent="Widget.Holo.GridView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ImageButton" parent="Widget.Holo.ImageButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ListView" parent="Widget.Holo.ListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.PopupWindow" parent="Widget.Holo.PopupWindow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar" parent="Widget.Holo.ProgressBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Horizontal" parent="Widget.Holo.ProgressBar.Horizontal" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Small" parent="Widget.Holo.ProgressBar.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Small.Title" parent="Widget.Holo.ProgressBar.Small.Title" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Large" parent="Widget.Holo.ProgressBar.Large" >
+
+ </style>
+ <style name="Widget.DeviceDefault.SeekBar" parent="Widget.Holo.SeekBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.RatingBar" parent="Widget.Holo.RatingBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.RatingBar.Indicator" parent="Widget.Holo.RatingBar.Indicator" >
+
+ </style>
+ <style name="Widget.DeviceDefault.RatingBar.Small" parent="Widget.Holo.RatingBar.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.CompoundButton.RadioButton" parent="Widget.Holo.CompoundButton.RadioButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ScrollView" parent="Widget.Holo.ScrollView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.HorizontalScrollView" parent="Widget.Holo.HorizontalScrollView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Spinner" parent="Widget.Holo.Spinner" >
+
+ </style>
+ <style name="Widget.DeviceDefault.CompoundButton.Star" parent="Widget.Holo.CompoundButton.Star" >
+
+ </style>
+ <style name="Widget.DeviceDefault.TabWidget" parent="Widget.Holo.TabWidget" >
+
+ </style>
+ <style name="Widget.DeviceDefault.WebTextView" parent="Widget.Holo.WebTextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.WebView" parent="Widget.Holo.WebView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.DropDownItem" parent="Widget.Holo.DropDownItem" >
+
+ </style>
+ <style name="Widget.DeviceDefault.DropDownItem.Spinner" parent="Widget.Holo.DropDownItem.Spinner" >
+
+ </style>
+ <style name="Widget.DeviceDefault.TextView.SpinnerItem" parent="Widget.Holo.TextView.SpinnerItem" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ListPopupWindow" parent="Widget.Holo.ListPopupWindow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.PopupMenu" parent="Widget.Holo.PopupMenu" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionButton" parent="Widget.Holo.ActionButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionButton.Overflow" parent="Widget.Holo.ActionButton.Overflow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionButton.TextButton" parent="Widget.Holo.ActionButton.TextButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionMode" parent="Widget.Holo.ActionMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionButton.CloseMode" parent="Widget.Holo.ActionButton.CloseMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionBar" parent="Widget.Holo.ActionBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button.Borderless" parent="Widget.Holo.Button.Borderless" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Tab" parent="Widget.Holo.Tab" >
+
+ </style>
+ <style name="Widget.DeviceDefault.CalendarView" parent="Widget.Holo.CalendarView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.DatePicker" parent="Widget.Holo.DatePicker" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionBar.TabView" parent="Widget.Holo.ActionBar.TabView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionBar.TabText" parent="Widget.Holo.ActionBar.TabText" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionBar.TabBar" parent="Widget.Holo.ActionBar.TabBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.ActionBar.Solid" parent="Widget.Holo.ActionBar.Solid" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Button.Borderless.Small" parent="Widget.Holo.Button.Borderless.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.AbsListView" parent="Widget.Holo.AbsListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Spinner.DropDown.ActionBar" parent="Widget.Holo.Spinner.DropDown.ActionBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.PopupWindow.ActionMode" parent="Widget.Holo.PopupWindow.ActionMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.CompoundButton.Switch" parent="Widget.Holo.CompoundButton.Switch">
+
+ </style>
+ <style name="Widget.DeviceDefault.EditText.NumberPickerInputText" parent="Widget.Holo.EditText.NumberPickerInputText">
+
+ </style>
+ <style name="Widget.DeviceDefault.ExpandableListView.White" parent="Widget.Holo.ExpandableListView.White">
+
+ </style>
+ <style name="Widget.DeviceDefault.Gallery" parent="Widget.Holo.Gallery">
+
+ </style>
+ <style name="Widget.DeviceDefault.GestureOverlayView" parent="Widget.Holo.GestureOverlayView">
+
+ </style>
+ <style name="Widget.DeviceDefault.ImageButton.NumberPickerDownButton" parent="Widget.Holo.ImageButton.NumberPickerDownButton">
+
+ </style>
+ <style name="Widget.DeviceDefault.ImageButton.NumberPickerUpButton" parent="Widget.Holo.ImageButton.NumberPickerUpButton">
+
+ </style>
+ <style name="Widget.DeviceDefault.ImageWell" parent="Widget.Holo.ImageWell">
+
+ </style>
+ <style name="Widget.DeviceDefault.KeyboardView" parent="Widget.Holo.KeyboardView">
+
+ </style>
+ <style name="Widget.DeviceDefault.ListView.White" parent="Widget.Holo.ListView.White">
+
+ </style>
+ <style name="Widget.DeviceDefault.NumberPicker" parent="Widget.Holo.NumberPicker">
+
+ </style>
+ <style name="Widget.DeviceDefault.PreferenceFrameLayout" parent="Widget.Holo.PreferenceFrameLayout">
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Inverse" parent="Widget.Holo.ProgressBar.Inverse">
+
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Large.Inverse" parent="Widget.Holo.ProgressBar.Large.Inverse">
+
+ </style>
+ <style name="Widget.DeviceDefault.ProgressBar.Small.Inverse" parent="Widget.Holo.ProgressBar.Small.Inverse">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadge.WindowLarge" parent="Widget.Holo.QuickContactBadge.WindowLarge">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadge.WindowMedium" parent="Widget.Holo.QuickContactBadge.WindowMedium">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadge.WindowSmall" parent="Widget.Holo.QuickContactBadge.WindowSmall">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowLarge" parent="Widget.Holo.QuickContactBadgeSmall.WindowLarge">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowMedium" parent="Widget.Holo.QuickContactBadgeSmall.WindowMedium">
+
+ </style>
+ <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowSmall" parent="Widget.Holo.QuickContactBadgeSmall.WindowSmall">
+
+ </style>
+ <style name="Widget.DeviceDefault.Spinner.DropDown" parent="Widget.Holo.Spinner.DropDown">
+
+ </style>
+ <style name="Widget.DeviceDefault.StackView" parent="Widget.Holo.StackView">
+
+ </style>
+ <style name="Widget.DeviceDefault.TextSelectHandle" parent="Widget.Holo.TextSelectHandle">
+
+ </style>
+ <style name="Widget.DeviceDefault.TextSuggestionsPopupWindow" parent="Widget.Holo.TextSuggestionsPopupWindow">
+
+ </style>
+ <style name="Widget.DeviceDefault.TextView.ListSeparator" parent="Widget.Holo.TextView.ListSeparator">
+
+ </style>
+ <style name="Widget.DeviceDefault.TimePicker" parent="Widget.Holo.TimePicker">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light" parent="Widget.Holo.Light" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button" parent="Widget.Holo.Light.Button" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button.Small" parent="Widget.Holo.Light.Button.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button.Inset" parent="Widget.Holo.Light.Button.Inset" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button.Toggle" parent="Widget.Holo.Light.Button.Toggle" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TextView" parent="Widget.Holo.Light.TextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.AutoCompleteTextView" parent="Widget.Holo.Light.AutoCompleteTextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.CompoundButton.CheckBox" parent="Widget.Holo.Light.CompoundButton.CheckBox" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ListView.DropDown" parent="Widget.Holo.Light.ListView.DropDown" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.EditText" parent="Widget.Holo.Light.EditText" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ExpandableListView" parent="Widget.Holo.Light.ExpandableListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.GridView" parent="Widget.Holo.Light.GridView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ImageButton" parent="Widget.Holo.Light.ImageButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ListView" parent="Widget.Holo.Light.ListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.PopupWindow" parent="Widget.Holo.Light.PopupWindow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar" parent="Widget.Holo.Light.ProgressBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Horizontal" parent="Widget.Holo.Light.ProgressBar.Horizontal" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Small" parent="Widget.Holo.Light.ProgressBar.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Title" parent="Widget.Holo.Light.ProgressBar.Small.Title" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Large" parent="Widget.Holo.Light.ProgressBar.Large" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Inverse" parent="Widget.Holo.Light.ProgressBar.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Inverse" parent="Widget.Holo.Light.ProgressBar.Small.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ProgressBar.Large.Inverse" parent="Widget.Holo.Light.ProgressBar.Large.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.SeekBar" parent="Widget.Holo.Light.SeekBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.RatingBar" parent="Widget.Holo.Light.RatingBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.RatingBar.Indicator" parent="Widget.Holo.Light.RatingBar.Indicator" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.RatingBar.Small" parent="Widget.Holo.Light.RatingBar.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.CompoundButton.RadioButton" parent="Widget.Holo.Light.CompoundButton.RadioButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ScrollView" parent="Widget.Holo.Light.ScrollView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.HorizontalScrollView" parent="Widget.Holo.Light.HorizontalScrollView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Spinner" parent="Widget.Holo.Light.Spinner" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.CompoundButton.Star" parent="Widget.Holo.Light.CompoundButton.Star" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TabWidget" parent="Widget.Holo.Light.TabWidget" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.WebTextView" parent="Widget.Holo.Light.WebTextView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.WebView" parent="Widget.Holo.Light.WebView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.DropDownItem" parent="Widget.Holo.Light.DropDownItem" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.DropDownItem.Spinner" parent="Widget.Holo.Light.DropDownItem.Spinner" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TextView.SpinnerItem" parent="Widget.Holo.Light.TextView.SpinnerItem" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ListPopupWindow" parent="Widget.Holo.Light.ListPopupWindow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.PopupMenu" parent="Widget.Holo.Light.PopupMenu" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Tab" parent="Widget.Holo.Light.Tab" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.CalendarView" parent="Widget.Holo.Light.CalendarView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button.Borderless.Small" parent="Widget.Holo.Light.Button.Borderless.Small" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionButton" parent="Widget.Holo.Light.ActionButton" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionButton.Overflow" parent="Widget.Holo.Light.ActionButton.Overflow" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionMode" parent="Widget.Holo.Light.ActionMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionButton.CloseMode" parent="Widget.Holo.Light.ActionButton.CloseMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar" parent="Widget.Holo.Light.ActionBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabView" parent="Widget.Holo.Light.ActionBar.TabView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabText" parent="Widget.Holo.Light.ActionBar.TabText" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabBar" parent="Widget.Holo.Light.ActionBar.TabBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.Solid" parent="Widget.Holo.Light.ActionBar.Solid" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.Solid.Inverse" parent="Widget.Holo.Light.ActionBar.Solid.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabBar.Inverse" parent="Widget.Holo.Light.ActionBar.TabBar.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabView.Inverse" parent="Widget.Holo.Light.ActionBar.TabView.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionBar.TabText.Inverse" parent="Widget.Holo.Light.ActionBar.TabText.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ActionMode.Inverse" parent="Widget.Holo.Light.ActionMode.Inverse" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.AbsListView" parent="Widget.Holo.Light.AbsListView" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Spinner.DropDown.ActionBar" parent="Widget.Holo.Light.Spinner.DropDown.ActionBar" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.PopupWindow.ActionMode" parent="Widget.Holo.Light.PopupWindow.ActionMode" >
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Button.Borderless" parent="Widget.Holo.Light.Button.Borderless">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.DatePicker" parent="Widget.Holo.Light.DatePicker">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.EditText.NumberPickerInputText" parent="Widget.Holo.Light.EditText.NumberPickerInputText">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ExpandableListView.White" parent="Widget.Holo.Light.ExpandableListView.White">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Gallery" parent="Widget.Holo.Light.Gallery">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.GestureOverlayView" parent="Widget.Holo.Light.GestureOverlayView">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ImageButton.NumberPickerDownButton" parent="Widget.Holo.Light.ImageButton.NumberPickerDownButton">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ImageButton.NumberPickerUpButton" parent="Widget.Holo.Light.ImageButton.NumberPickerUpButton">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ImageWell" parent="Widget.Holo.Light.ImageWell">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.ListView.White" parent="Widget.Holo.Light.ListView.White">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.NumberPicker" parent="Widget.Holo.Light.NumberPicker">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.Spinner.DropDown" parent="Widget.Holo.Light.Spinner.DropDown">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TextView.ListSeparator" parent="Widget.Holo.Light.TextView.ListSeparator">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TimePicker" parent="Widget.Holo.Light.TimePicker">
+
+ </style>
+ <style name="Widget.DeviceDefault.Light.TextSuggestionsPopupWindow" parent="Widget.Holo.Light.TextSuggestionsPopupWindow">
+
+ </style>
+
+
+ <!-- Text Appearance Styles -->
+ <style name="TextAppearance.DeviceDefault" parent="TextAppearance.Holo" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Inverse" parent="TextAppearance.Holo.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Large" parent="TextAppearance.Holo.Large" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Large.Inverse" parent="TextAppearance.Holo.Large.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Medium" parent="TextAppearance.Holo.Medium" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Medium.Inverse" parent="TextAppearance.Holo.Medium.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Small" parent="TextAppearance.Holo.Small" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Small.Inverse" parent="TextAppearance.Holo.Small.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.SearchResult.Title" parent="TextAppearance.Holo.SearchResult.Title" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.SearchResult.Subtitle" parent="TextAppearance.Holo.SearchResult.Subtitle" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget" parent="TextAppearance.Holo.Widget" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.Button" parent="TextAppearance.Holo.Widget.Button" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.IconMenu.Item" parent="TextAppearance.Holo.Widget.IconMenu.Item" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.TabWidget" parent="TextAppearance.Holo.Widget.TabWidget" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.TextView" parent="TextAppearance.Holo.Widget.TextView" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.TextView.PopupMenu" parent="TextAppearance.Holo.Widget.TextView.PopupMenu" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.DropDownHint" parent="TextAppearance.Holo.Widget.DropDownHint" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.DropDownItem" parent="TextAppearance.Holo.Widget.DropDownItem" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.TextView.SpinnerItem" parent="TextAppearance.Holo.Widget.TextView.SpinnerItem" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.EditText" parent="TextAppearance.Holo.Widget.EditText" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.PopupMenu" parent="TextAppearance.Holo.Widget.PopupMenu" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Large" parent="TextAppearance.Holo.Widget.PopupMenu.Large" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Small" parent="TextAppearance.Holo.Widget.PopupMenu.Small" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title" parent="TextAppearance.Holo.Widget.ActionBar.Title" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle" parent="TextAppearance.Holo.Widget.ActionBar.Subtitle" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title" parent="TextAppearance.Holo.Widget.ActionMode.Title" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle" parent="TextAppearance.Holo.Widget.ActionMode.Subtitle" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.WindowTitle" parent="TextAppearance.Holo.WindowTitle" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.DialogWindowTitle" parent="TextAppearance.Holo.DialogWindowTitle" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title.Inverse" parent="TextAppearance.Holo.Widget.ActionBar.Title.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title.Inverse" parent="TextAppearance.Holo.Widget.ActionMode.Title.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.Holo.Widget.ActionMode.Subtitle.Inverse" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Menu" parent="TextAppearance.Holo.Widget.ActionBar.Menu" >
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light" parent="TextAppearance.Holo.Light">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Inverse" parent="TextAppearance.Holo.Light.Inverse">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Large" parent="TextAppearance.Holo.Light.Large">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Large.Inverse" parent="TextAppearance.Holo.Light.Large.Inverse">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Medium" parent="TextAppearance.Holo.Light.Medium">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Medium.Inverse" parent="TextAppearance.Holo.Light.Medium.Inverse">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.SearchResult.Subtitle" parent="TextAppearance.Holo.Light.SearchResult.Subtitle">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.SearchResult.Title" parent="TextAppearance.Holo.Light.SearchResult.Title">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Small" parent="TextAppearance.Holo.Light.Small">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Small.Inverse" parent="TextAppearance.Holo.Light.Small.Inverse">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Widget.Button" parent="TextAppearance.Holo.Light.Widget.Button">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Large" parent="TextAppearance.Holo.Light.Widget.PopupMenu.Large">
+
+ </style>
+ <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Small" parent="TextAppearance.Holo.Light.Widget.PopupMenu.Small">
+
+ </style>
+
+
+ <!-- Preference Styles -->
+ <style name="Preference.DeviceDefault" parent="Preference.Holo">
+
+ </style>
+ <style name="Preference.DeviceDefault.Category" parent="Preference.Holo.Category">
+
+ </style>
+ <style name="Preference.DeviceDefault.CheckBoxPreference" parent="Preference.Holo.CheckBoxPreference">
+
+ </style>
+ <style name="Preference.DeviceDefault.DialogPreference" parent="Preference.Holo.DialogPreference">
+
+ </style>
+ <style name="Preference.DeviceDefault.DialogPreference.EditTextPreference" parent="Preference.Holo.DialogPreference.EditTextPreference">
+
+ </style>
+ <style name="Preference.DeviceDefault.DialogPreference.YesNoPreference" parent="Preference.Holo.DialogPreference.YesNoPreference">
+
+ </style>
+ <style name="Preference.DeviceDefault.Information" parent="Preference.Holo.Information">
+
+ </style>
+ <style name="Preference.DeviceDefault.PreferenceScreen" parent="Preference.Holo.PreferenceScreen">
+
+ </style>
+ <style name="Preference.DeviceDefault.RingtonePreference" parent="Preference.Holo.RingtonePreference">
+
+ </style>
+ <style name="Preference.DeviceDefault.SwitchPreference" parent="Preference.Holo.SwitchPreference">
+
+ </style>
+
+
+ <!-- AlertDialog Styles -->
+ <style name="AlertDialog.DeviceDefault" parent="AlertDialog.Holo">
+
+ </style>
+ <style name="AlertDialog.DeviceDefault.Light" parent="AlertDialog.DeviceDefault.Light" >
+
+ </style>
+
+
+ <!-- Animation Styles -->
+ <style name="Animation.DeviceDefault.Activity" parent="Animation.Holo.Activity">
+
+ </style>
+ <style name="Animation.DeviceDefault.Dialog" parent="Animation.Holo.Dialog">
+
+ </style>
+
+
+ <!-- DialogWindowTitle Styles -->
+ <style name="DialogWindowTitle.DeviceDefault" parent="DialogWindowTitle.Holo">
+
+ </style>
+ <style name="DialogWindowTitle.DeviceDefault.Light" parent="DialogWindowTitle.Holo.Light">
+
+ </style>
+
+
+ <!-- WindowTitle Styles -->
+ <style name="WindowTitle.DeviceDefault" parent="WindowTitle.Holo">
+
+ </style>
+ <style name="WindowTitleBackground.DeviceDefault" parent="WindowTitleBackground.Holo">
+
+ </style>
+
+
+ <!-- Other Styles -->
+ <style name="DeviceDefault.ButtonBar" parent="Holo.ButtonBar" >
+
+ </style>
+ <style name="DeviceDefault.ButtonBar.AlertDialog" parent="Holo.ButtonBar.AlertDialog" >
+
+ </style>
+ <style name="DeviceDefault.SegmentedButton" parent="Holo.SegmentedButton" >
+
+ </style>
+ <style name="DeviceDefault.Light.ButtonBar" parent="Holo.Light.ButtonBar" >
+
+ </style>
+ <style name="DeviceDefault.Light.ButtonBar.AlertDialog" parent="Holo.Light.ButtonBar.AlertDialog" >
+
+ </style>
+ <style name="DeviceDefault.Light.SegmentedButton" parent="Holo.Light.SegmentedButton" >
+
+ </style>
+</resources>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 3e7c5ca..615a37d 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -14,6 +14,20 @@
limitations under the License.
-->
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+
+The Holo themes must not be modified in order to pass CTS.
+Many related themes and styles depend on other values defined in this file.
+If you would like to provide custom themes and styles for your device,
+please see themes_device_defaults.xml.
+
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
<resources>
<!-- The default system theme. This is the theme used for activities
that have not explicitly set their own theme.
@@ -1207,7 +1221,7 @@
<item name="windowNoTitle">false</item>
<item name="windowFullscreen">false</item>
<item name="windowIsFloating">false</item>
- <item name="windowContentOverlay">@null</item>
+ <item name="android:windowContentOverlay">@android:drawable/ab_solid_shadow_holo</item>
<item name="windowShowWallpaper">false</item>
<item name="windowTitleStyle">@android:style/WindowTitle.Holo</item>
<item name="windowTitleSize">25dip</item>
@@ -1337,7 +1351,7 @@
<item name="actionBarTabTextStyle">@style/Widget.Holo.Light.ActionBar.TabText</item>
<item name="actionModeStyle">@style/Widget.Holo.Light.ActionMode</item>
<item name="actionModeCloseButtonStyle">@style/Widget.Holo.Light.ActionButton.CloseMode</item>
- <item name="actionBarStyle">@android:style/Widget.Holo.Light.ActionBar</item>
+ <item name="android:actionBarStyle">@android:style/Widget.Holo.Light.ActionBar.Solid</item>
<item name="actionBarSize">@dimen/action_bar_default_height</item>
<item name="actionModePopupWindowStyle">@android:style/Widget.Holo.Light.PopupWindow.ActionMode</item>
<item name="actionBarWidgetTheme">@null</item>
@@ -1384,22 +1398,10 @@
</style>
- <!-- Variant of the holographic (dark) theme that has a solid (opaque) action bar. -->
- <style name="Theme.Holo.SolidActionBar">
- <item name="android:actionBarStyle">@android:style/Widget.Holo.ActionBar.Solid</item>
- <item name="android:windowContentOverlay">@android:drawable/ab_solid_shadow_holo</item>
- </style>
-
- <!-- Variant of the holographic (light) theme that has a solid (opaque) action bar. -->
- <style name="Theme.Holo.Light.SolidActionBar">
- <item name="android:actionBarStyle">@android:style/Widget.Holo.Light.ActionBar.Solid</item>
- <item name="android:windowContentOverlay">@android:drawable/ab_solid_shadow_holo</item>
- </style>
-
<!-- Variant of the holographic (light) theme that has a solid (opaque) action bar
with an inverse color profile. The dark action bar sharply stands out against
the light content. -->
- <style name="Theme.Holo.Light.SolidActionBar.Inverse">
+ <style name="Theme.Holo.Light.DarkActionBar">
<item name="android:windowContentOverlay">@android:drawable/title_bar_shadow</item>
<item name="android:actionBarStyle">@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse</item>
<item name="actionBarWidgetTheme">@android:style/Theme.Holo</item>
@@ -1427,30 +1429,6 @@
<item name="actionModeWebSearchDrawable">@android:drawable/ic_menu_search_holo_dark</item>
</style>
- <!-- Variant of the holographic (dark) theme that has a solid
- (opaque) action bar. The action bar will split across both
- the top and bottom of the screen when the screen is
- especially constrained for horizontal space. -->
- <style name="Theme.Holo.SolidActionBar.SplitActionBarWhenNarrow">
- <item name="android:windowSplitActionBar">@android:bool/split_action_bar_is_narrow</item>
- </style>
-
- <!-- Variant of the holographic (light) theme that has a solid
- (opaque) action bar. The action bar will split across both
- the top and bottom of the screen when the screen is
- especially constrained for horizontal space. -->
- <style name="Theme.Holo.Light.SolidActionBar.SplitActionBarWhenNarrow">
- <item name="android:windowSplitActionBar">@android:bool/split_action_bar_is_narrow</item>
- </style>
-
- <!-- Variant of the holographic (light) theme that has a solid (opaque) action bar
- with an inverse color profile. The dark action bar sharply stands out against
- the light content. The action bar will split across both the top and bottom of
- the screen when the screen is especially constrained for horizontal space. -->
- <style name="Theme.Holo.Light.SolidActionBar.Inverse.SplitActionBarWhenNarrow">
- <item name="android:windowSplitActionBar">@android:bool/split_action_bar_is_narrow</item>
- </style>
-
<!-- Variant of the holographic (dark) theme with no action bar. -->
<style name="Theme.Holo.NoActionBar">
<item name="android:windowActionBar">false</item>
@@ -1654,18 +1632,4 @@
<style name="Theme.Holo.Wallpaper.NoTitleBar">
<item name="android:windowNoTitle">true</item>
</style>
-
- <!-- Variant of the holographic (dark) theme with an action bar that
- splits across the top and bottom of the activity when constrained
- for horizontal space. -->
- <style name="Theme.Holo.SplitActionBarWhenNarrow">
- <item name="android:windowSplitActionBar">@android:bool/split_action_bar_is_narrow</item>
- </style>
-
- <!-- Variant of the holographic (light) theme with an action bar that
- splits across the top and bottom of the activity when constrained
- for horizontal space. -->
- <style name="Theme.Holo.Light.SplitActionBarWhenNarrow">
- <item name="android:windowSplitActionBar">@android:bool/split_action_bar_is_narrow</item>
- </style>
</resources>
diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml
new file mode 100644
index 0000000..bf6329d
--- /dev/null
+++ b/core/res/res/values/themes_device_defaults.xml
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+
+<!--
+===============================================================
+ PLEASE READ
+===============================================================
+This file contains the themes that are the Device Defaults.
+If you want to edit themes to skin your device, do it here.
+We recommend that you do not edit themes.xml and instead edit
+this file.
+
+Editing this file instead of themes.xml will greatly simplify
+merges for future platform versions and CTS compliance will be
+easier.
+===============================================================
+ PLEASE READ
+===============================================================
+ -->
+<resources>
+ <style name="Theme.DeviceDefault" parent="Theme.Holo" >
+ <!-- Text styles -->
+ <item name="textAppearance">@android:style/TextAppearance.DeviceDefault</item>
+ <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Inverse</item>
+
+ <item name="textAppearanceLarge">@android:style/TextAppearance.DeviceDefault.Large</item>
+ <item name="textAppearanceMedium">@android:style/TextAppearance.DeviceDefault.Medium</item>
+ <item name="textAppearanceSmall">@android:style/TextAppearance.DeviceDefault.Small</item>
+ <item name="textAppearanceLargeInverse">@android:style/TextAppearance.DeviceDefault.Large.Inverse</item>
+ <item name="textAppearanceMediumInverse">@android:style/TextAppearance.DeviceDefault.Medium.Inverse</item>
+ <item name="textAppearanceSmallInverse">@android:style/TextAppearance.DeviceDefault.Small.Inverse</item>
+ <item name="textAppearanceSearchResultTitle">@android:style/TextAppearance.DeviceDefault.SearchResult.Title</item>
+ <item name="textAppearanceSearchResultSubtitle">@android:style/TextAppearance.DeviceDefault.SearchResult.Subtitle</item>
+
+ <item name="textAppearanceButton">@android:style/TextAppearance.DeviceDefault.Widget.Button</item>
+
+ <item name="textAppearanceLargePopupMenu">@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large</item>
+ <item name="textAppearanceSmallPopupMenu">@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small</item>
+
+ <!-- Button styles -->
+ <item name="buttonStyle">@android:style/Widget.DeviceDefault.Button</item>
+
+ <item name="buttonStyleSmall">@android:style/Widget.DeviceDefault.Button.Small</item>
+ <item name="buttonStyleInset">@android:style/Widget.DeviceDefault.Button.Inset</item>
+
+ <item name="buttonStyleToggle">@android:style/Widget.DeviceDefault.Button.Toggle</item>
+ <item name="switchStyle">@android:style/Widget.DeviceDefault.CompoundButton.Switch</item>
+
+ <item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Button.Borderless</item>
+
+ <item name="listSeparatorTextViewStyle">@android:style/Widget.DeviceDefault.TextView.ListSeparator</item>
+
+ <!-- Window attributes -->
+ <item name="windowTitleStyle">@android:style/WindowTitle.DeviceDefault</item>
+ <item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground.DeviceDefault</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Activity</item>
+
+ <!-- Dialog attributes -->
+ <item name="alertDialogStyle">@android:style/AlertDialog.DeviceDefault</item>
+ <item name="dialogTheme">@android:style/Theme.DeviceDefault.Dialog</item>
+ <item name="alertDialogTheme">@android:style/Theme.DeviceDefault.Dialog.Alert</item>
+
+ <!-- Text selection handle attributes -->
+ <item name="textSelectHandleWindowStyle">@android:style/Widget.DeviceDefault.TextSelectHandle</item>
+ <item name="textSuggestionsWindowStyle">@android:style/Widget.DeviceDefault.TextSuggestionsPopupWindow</item>
+
+ <!-- Widget styles -->
+ <item name="absListViewStyle">@android:style/Widget.DeviceDefault.AbsListView</item>
+ <item name="autoCompleteTextViewStyle">@android:style/Widget.DeviceDefault.AutoCompleteTextView</item>
+ <item name="checkboxStyle">@android:style/Widget.DeviceDefault.CompoundButton.CheckBox</item>
+ <item name="dropDownListViewStyle">@android:style/Widget.DeviceDefault.ListView.DropDown</item>
+ <item name="editTextStyle">@android:style/Widget.DeviceDefault.EditText</item>
+ <item name="expandableListViewStyle">@android:style/Widget.DeviceDefault.ExpandableListView</item>
+ <item name="expandableListViewWhiteStyle">@android:style/Widget.DeviceDefault.ExpandableListView.White</item>
+ <item name="galleryStyle">@android:style/Widget.DeviceDefault.Gallery</item>
+ <item name="gestureOverlayViewStyle">@android:style/Widget.DeviceDefault.GestureOverlayView</item>
+ <item name="gridViewStyle">@android:style/Widget.DeviceDefault.GridView</item>
+ <item name="imageButtonStyle">@android:style/Widget.DeviceDefault.ImageButton</item>
+ <item name="imageWellStyle">@android:style/Widget.DeviceDefault.ImageWell</item>
+ <item name="listViewStyle">@android:style/Widget.DeviceDefault.ListView</item>
+ <item name="listViewWhiteStyle">@android:style/Widget.DeviceDefault.ListView.White</item>
+ <item name="popupWindowStyle">@android:style/Widget.DeviceDefault.PopupWindow</item>
+ <item name="progressBarStyle">@android:style/Widget.DeviceDefault.ProgressBar</item>
+ <item name="progressBarStyleHorizontal">@android:style/Widget.DeviceDefault.ProgressBar.Horizontal</item>
+ <item name="progressBarStyleSmall">@android:style/Widget.DeviceDefault.ProgressBar.Small</item>
+ <item name="progressBarStyleSmallTitle">@android:style/Widget.DeviceDefault.ProgressBar.Small.Title</item>
+ <item name="progressBarStyleLarge">@android:style/Widget.DeviceDefault.ProgressBar.Large</item>
+ <item name="progressBarStyleInverse">@android:style/Widget.DeviceDefault.ProgressBar.Inverse</item>
+ <item name="progressBarStyleSmallInverse">@android:style/Widget.DeviceDefault.ProgressBar.Small.Inverse</item>
+ <item name="progressBarStyleLargeInverse">@android:style/Widget.DeviceDefault.ProgressBar.Large.Inverse</item>
+ <item name="seekBarStyle">@android:style/Widget.DeviceDefault.SeekBar</item>
+ <item name="ratingBarStyle">@android:style/Widget.DeviceDefault.RatingBar</item>
+ <item name="ratingBarStyleIndicator">@android:style/Widget.DeviceDefault.RatingBar.Indicator</item>
+ <item name="ratingBarStyleSmall">@android:style/Widget.DeviceDefault.RatingBar.Small</item>
+ <item name="radioButtonStyle">@android:style/Widget.DeviceDefault.CompoundButton.RadioButton</item>
+ <item name="scrollViewStyle">@android:style/Widget.DeviceDefault.ScrollView</item>
+ <item name="horizontalScrollViewStyle">@android:style/Widget.DeviceDefault.HorizontalScrollView</item>
+ <item name="dropDownSpinnerStyle">@android:style/Widget.DeviceDefault.Spinner.DropDown</item>
+ <item name="starStyle">@android:style/Widget.DeviceDefault.CompoundButton.Star</item>
+ <item name="tabWidgetStyle">@android:style/Widget.DeviceDefault.TabWidget</item>
+ <item name="textViewStyle">@android:style/Widget.DeviceDefault.TextView</item>
+ <item name="webTextViewStyle">@android:style/Widget.DeviceDefault.WebTextView</item>
+ <item name="webViewStyle">@android:style/Widget.DeviceDefault.WebView</item>
+ <item name="dropDownItemStyle">@android:style/Widget.DeviceDefault.DropDownItem</item>
+ <item name="spinnerDropDownItemStyle">@android:style/Widget.DeviceDefault.DropDownItem.Spinner</item>
+ <item name="spinnerItemStyle">@android:style/Widget.DeviceDefault.TextView.SpinnerItem</item>
+ <item name="dropDownHintAppearance">@android:style/TextAppearance.DeviceDefault.Widget.DropDownHint</item>
+ <item name="keyboardViewStyle">@android:style/Widget.DeviceDefault.KeyboardView</item>
+ <item name="quickContactBadgeStyleWindowSmall">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowSmall</item>
+ <item name="quickContactBadgeStyleWindowMedium">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowMedium</item>
+ <item name="quickContactBadgeStyleWindowLarge">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowLarge</item>
+ <item name="quickContactBadgeStyleSmallWindowSmall">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowSmall</item>
+ <item name="quickContactBadgeStyleSmallWindowMedium">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowMedium</item>
+ <item name="quickContactBadgeStyleSmallWindowLarge">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowLarge</item>
+ <item name="listPopupWindowStyle">@android:style/Widget.DeviceDefault.ListPopupWindow</item>
+ <item name="popupMenuStyle">@android:style/Widget.DeviceDefault.PopupMenu</item>
+ <item name="stackViewStyle">@android:style/Widget.DeviceDefault.StackView</item>
+
+ <!-- Preference styles -->
+ <item name="preferenceScreenStyle">@android:style/Preference.DeviceDefault.PreferenceScreen</item>
+ <item name="preferenceCategoryStyle">@android:style/Preference.DeviceDefault.Category</item>
+ <item name="preferenceStyle">@android:style/Preference.DeviceDefault</item>
+ <item name="preferenceInformationStyle">@android:style/Preference.DeviceDefault.Information</item>
+ <item name="checkBoxPreferenceStyle">@android:style/Preference.DeviceDefault.CheckBoxPreference</item>
+ <item name="switchPreferenceStyle">@android:style/Preference.DeviceDefault.SwitchPreference</item>
+ <item name="yesNoPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference.YesNoPreference</item>
+ <item name="dialogPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference</item>
+ <item name="editTextPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference.EditTextPreference</item>
+ <item name="ringtonePreferenceStyle">@android:style/Preference.DeviceDefault.RingtonePreference</item>
+
+ <!-- Action bar styles -->
+ <item name="actionDropDownStyle">@android:style/Widget.DeviceDefault.Spinner.DropDown.ActionBar</item>
+ <item name="actionButtonStyle">@android:style/Widget.DeviceDefault.ActionButton</item>
+ <item name="actionOverflowButtonStyle">@android:style/Widget.DeviceDefault.ActionButton.Overflow</item>
+ <item name="actionBarTabStyle">@style/Widget.DeviceDefault.ActionBar.TabView</item>
+ <item name="actionBarTabBarStyle">@style/Widget.DeviceDefault.ActionBar.TabBar</item>
+ <item name="actionBarTabTextStyle">@style/Widget.DeviceDefault.ActionBar.TabText</item>
+ <item name="actionModeStyle">@style/Widget.DeviceDefault.ActionMode</item>
+ <item name="actionModeCloseButtonStyle">@style/Widget.DeviceDefault.ActionButton.CloseMode</item>
+ <item name="actionBarStyle">@android:style/Widget.DeviceDefault.ActionBar</item>
+ <item name="actionModePopupWindowStyle">@android:style/Widget.DeviceDefault.PopupWindow.ActionMode</item>
+
+ <item name="buttonBarStyle">@android:style/DeviceDefault.ButtonBar</item>
+ <item name="segmentedButtonStyle">@android:style/DeviceDefault.SegmentedButton</item>
+
+ <item name="searchDialogTheme">@style/Theme.DeviceDefault.SearchBar</item>
+
+ <!-- PreferenceFrameLayout attributes -->
+ <item name="preferenceFrameLayoutStyle">@android:style/Widget.DeviceDefault.PreferenceFrameLayout</item>
+
+ <!-- NumberPicker styles-->
+ <item name="numberPickerUpButtonStyle">@style/Widget.DeviceDefault.ImageButton.NumberPickerUpButton</item>
+ <item name="numberPickerDownButtonStyle">@style/Widget.DeviceDefault.ImageButton.NumberPickerDownButton</item>
+ <item name="numberPickerInputTextStyle">@style/Widget.DeviceDefault.EditText.NumberPickerInputText</item>
+ <item name="numberPickerStyle">@style/Widget.DeviceDefault.NumberPicker</item>
+
+ <!-- CalendarView style-->
+ <item name="calendarViewStyle">@style/Widget.DeviceDefault.CalendarView</item>
+
+ <!-- TimePicker style -->
+ <item name="timePickerStyle">@style/Widget.DeviceDefault.TimePicker</item>
+
+ <!-- DatePicker style -->
+ <item name="datePickerStyle">@style/Widget.DeviceDefault.DatePicker</item>
+ </style>
+ <style name="Theme.DeviceDefault.NoActionBar" parent="Theme.Holo.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.NoActionBar.Fullscreen" parent="Theme.Holo.NoActionBar.Fullscreen" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light" parent="Theme.Holo.Light" >
+ <!-- Text styles -->
+ <item name="textAppearance">@android:style/TextAppearance.DeviceDefault.Light</item>
+ <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Light.Inverse</item>
+
+ <item name="textAppearanceLarge">@android:style/TextAppearance.DeviceDefault.Light.Large</item>
+ <item name="textAppearanceMedium">@android:style/TextAppearance.DeviceDefault.Light.Medium</item>
+ <item name="textAppearanceSmall">@android:style/TextAppearance.DeviceDefault.Light.Small</item>
+ <item name="textAppearanceLargeInverse">@android:style/TextAppearance.DeviceDefault.Light.Large.Inverse</item>
+ <item name="textAppearanceMediumInverse">@android:style/TextAppearance.DeviceDefault.Light.Medium.Inverse</item>
+ <item name="textAppearanceSmallInverse">@android:style/TextAppearance.DeviceDefault.Light.Small.Inverse</item>
+ <item name="textAppearanceSearchResultTitle">@android:style/TextAppearance.DeviceDefault.Light.SearchResult.Title</item>
+ <item name="textAppearanceSearchResultSubtitle">@android:style/TextAppearance.DeviceDefault.Light.SearchResult.Subtitle</item>
+
+ <item name="textAppearanceButton">@android:style/TextAppearance.DeviceDefault.Light.Widget.Button</item>
+
+ <item name="textAppearanceLargePopupMenu">@android:style/TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Large</item>
+ <item name="textAppearanceSmallPopupMenu">@android:style/TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Small</item>
+
+ <!-- Button styles -->
+ <item name="buttonStyle">@android:style/Widget.DeviceDefault.Light.Button</item>
+
+ <item name="buttonStyleSmall">@android:style/Widget.DeviceDefault.Light.Button.Small</item>
+ <item name="buttonStyleInset">@android:style/Widget.DeviceDefault.Light.Button.Inset</item>
+
+ <item name="buttonStyleToggle">@android:style/Widget.DeviceDefault.Light.Button.Toggle</item>
+
+ <item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Light.Button.Borderless</item>
+
+ <item name="listSeparatorTextViewStyle">@android:style/Widget.DeviceDefault.Light.TextView.ListSeparator</item>
+
+ <item name="windowTitleStyle">@android:style/WindowTitle.DeviceDefault</item>
+ <item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground.DeviceDefault</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Activity</item>
+
+ <!-- Dialog attributes -->
+ <item name="alertDialogStyle">@android:style/AlertDialog.DeviceDefault.Light</item>
+ <item name="dialogTheme">@android:style/Theme.DeviceDefault.Light.Dialog</item>
+ <item name="alertDialogTheme">@android:style/Theme.DeviceDefault.Light.Dialog.Alert</item>
+
+ <!-- Text selection handle attributes -->
+ <item name="textSelectHandleWindowStyle">@android:style/Widget.DeviceDefault.TextSelectHandle</item>
+ <item name="textSuggestionsWindowStyle">@android:style/Widget.DeviceDefault.Light.TextSuggestionsPopupWindow</item>
+
+ <!-- Widget styles -->
+ <item name="absListViewStyle">@android:style/Widget.DeviceDefault.Light.AbsListView</item>
+ <item name="autoCompleteTextViewStyle">@android:style/Widget.DeviceDefault.Light.AutoCompleteTextView</item>
+ <item name="checkboxStyle">@android:style/Widget.DeviceDefault.Light.CompoundButton.CheckBox</item>
+ <item name="dropDownListViewStyle">@android:style/Widget.DeviceDefault.ListView.DropDown</item>
+ <item name="editTextStyle">@android:style/Widget.DeviceDefault.Light.EditText</item>
+ <item name="expandableListViewStyle">@android:style/Widget.DeviceDefault.Light.ExpandableListView</item>
+ <item name="expandableListViewWhiteStyle">@android:style/Widget.DeviceDefault.Light.ExpandableListView.White</item>
+ <item name="galleryStyle">@android:style/Widget.DeviceDefault.Light.Gallery</item>
+ <item name="gestureOverlayViewStyle">@android:style/Widget.DeviceDefault.Light.GestureOverlayView</item>
+ <item name="gridViewStyle">@android:style/Widget.DeviceDefault.Light.GridView</item>
+ <item name="imageButtonStyle">@android:style/Widget.DeviceDefault.Light.ImageButton</item>
+ <item name="imageWellStyle">@android:style/Widget.DeviceDefault.Light.ImageWell</item>
+ <item name="listViewStyle">@android:style/Widget.DeviceDefault.Light.ListView</item>
+ <item name="listViewWhiteStyle">@android:style/Widget.DeviceDefault.Light.ListView.White</item>
+ <item name="popupWindowStyle">@android:style/Widget.DeviceDefault.Light.PopupWindow</item>
+ <item name="progressBarStyle">@android:style/Widget.DeviceDefault.Light.ProgressBar</item>
+ <item name="progressBarStyleHorizontal">@android:style/Widget.DeviceDefault.Light.ProgressBar.Horizontal</item>
+ <item name="progressBarStyleSmall">@android:style/Widget.DeviceDefault.Light.ProgressBar.Small</item>
+ <item name="progressBarStyleSmallTitle">@android:style/Widget.DeviceDefault.Light.ProgressBar.Small.Title</item>
+ <item name="progressBarStyleLarge">@android:style/Widget.DeviceDefault.Light.ProgressBar.Large</item>
+ <item name="progressBarStyleInverse">@android:style/Widget.DeviceDefault.Light.ProgressBar.Inverse</item>
+ <item name="progressBarStyleSmallInverse">@android:style/Widget.DeviceDefault.Light.ProgressBar.Small.Inverse</item>
+ <item name="progressBarStyleLargeInverse">@android:style/Widget.DeviceDefault.Light.ProgressBar.Large.Inverse</item>
+ <item name="seekBarStyle">@android:style/Widget.DeviceDefault.Light.SeekBar</item>
+ <item name="ratingBarStyle">@android:style/Widget.DeviceDefault.Light.RatingBar</item>
+ <item name="ratingBarStyleIndicator">@android:style/Widget.DeviceDefault.Light.RatingBar.Indicator</item>
+ <item name="ratingBarStyleSmall">@android:style/Widget.DeviceDefault.Light.RatingBar.Small</item>
+ <item name="radioButtonStyle">@android:style/Widget.DeviceDefault.Light.CompoundButton.RadioButton</item>
+ <item name="scrollViewStyle">@android:style/Widget.DeviceDefault.Light.ScrollView</item>
+ <item name="horizontalScrollViewStyle">@android:style/Widget.DeviceDefault.Light.HorizontalScrollView</item>
+ <item name="dropDownSpinnerStyle">@android:style/Widget.DeviceDefault.Light.Spinner.DropDown</item>
+ <item name="starStyle">@android:style/Widget.DeviceDefault.Light.CompoundButton.Star</item>
+ <item name="tabWidgetStyle">@android:style/Widget.DeviceDefault.Light.TabWidget</item>
+ <item name="textViewStyle">@android:style/Widget.DeviceDefault.Light.TextView</item>
+ <item name="webTextViewStyle">@android:style/Widget.DeviceDefault.Light.WebTextView</item>
+ <item name="webViewStyle">@android:style/Widget.DeviceDefault.Light.WebView</item>
+ <item name="dropDownItemStyle">@android:style/Widget.DeviceDefault.Light.DropDownItem</item>
+ <item name="spinnerDropDownItemStyle">@android:style/Widget.DeviceDefault.Light.DropDownItem.Spinner</item>
+ <item name="spinnerItemStyle">@android:style/Widget.DeviceDefault.TextView.SpinnerItem</item>
+ <item name="dropDownHintAppearance">@android:style/TextAppearance.DeviceDefault.Widget.DropDownHint</item>
+ <item name="keyboardViewStyle">@android:style/Widget.DeviceDefault.KeyboardView</item>
+ <item name="quickContactBadgeStyleWindowSmall">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowSmall</item>
+ <item name="quickContactBadgeStyleWindowMedium">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowMedium</item>
+ <item name="quickContactBadgeStyleWindowLarge">@android:style/Widget.DeviceDefault.QuickContactBadge.WindowLarge</item>
+ <item name="quickContactBadgeStyleSmallWindowSmall">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowSmall</item>
+ <item name="quickContactBadgeStyleSmallWindowMedium">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowMedium</item>
+ <item name="quickContactBadgeStyleSmallWindowLarge">@android:style/Widget.DeviceDefault.QuickContactBadgeSmall.WindowLarge</item>
+ <item name="listPopupWindowStyle">@android:style/Widget.DeviceDefault.Light.ListPopupWindow</item>
+ <item name="popupMenuStyle">@android:style/Widget.DeviceDefault.Light.PopupMenu</item>
+ <item name="stackViewStyle">@android:style/Widget.DeviceDefault.StackView</item>
+
+ <!-- Preference styles -->
+ <item name="preferenceScreenStyle">@android:style/Preference.DeviceDefault.PreferenceScreen</item>
+ <item name="preferenceCategoryStyle">@android:style/Preference.DeviceDefault.Category</item>
+ <item name="preferenceStyle">@android:style/Preference.DeviceDefault</item>
+ <item name="preferenceInformationStyle">@android:style/Preference.DeviceDefault.Information</item>
+ <item name="checkBoxPreferenceStyle">@android:style/Preference.DeviceDefault.CheckBoxPreference</item>
+ <item name="switchPreferenceStyle">@android:style/Preference.DeviceDefault.SwitchPreference</item>
+ <item name="yesNoPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference.YesNoPreference</item>
+ <item name="dialogPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference</item>
+ <item name="editTextPreferenceStyle">@android:style/Preference.DeviceDefault.DialogPreference.EditTextPreference</item>
+ <item name="ringtonePreferenceStyle">@android:style/Preference.DeviceDefault.RingtonePreference</item>
+
+ <!-- Action bar styles -->
+ <item name="actionDropDownStyle">@android:style/Widget.DeviceDefault.Light.Spinner.DropDown.ActionBar</item>
+ <item name="actionButtonStyle">@android:style/Widget.DeviceDefault.Light.ActionButton</item>
+ <item name="actionOverflowButtonStyle">@android:style/Widget.DeviceDefault.Light.ActionButton.Overflow</item>
+ <item name="actionBarTabStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabView</item>
+ <item name="actionBarTabBarStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabBar</item>
+ <item name="actionBarTabTextStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabText</item>
+ <item name="actionModeStyle">@style/Widget.DeviceDefault.Light.ActionMode</item>
+ <item name="actionModeCloseButtonStyle">@style/Widget.DeviceDefault.Light.ActionButton.CloseMode</item>
+ <item name="actionBarStyle">@android:style/Widget.DeviceDefault.Light.ActionBar</item>
+ <item name="actionModePopupWindowStyle">@android:style/Widget.DeviceDefault.Light.PopupWindow.ActionMode</item>
+
+ <item name="buttonBarStyle">@android:style/DeviceDefault.Light.ButtonBar</item>
+ <item name="segmentedButtonStyle">@android:style/DeviceDefault.Light.SegmentedButton</item>
+
+ <item name="searchDialogTheme">@style/Theme.DeviceDefault.Light.SearchBar</item>
+
+ <!-- NumberPicker attributes and styles-->
+ <item name="numberPickerUpButtonStyle">@style/Widget.DeviceDefault.Light.ImageButton.NumberPickerUpButton</item>
+ <item name="numberPickerDownButtonStyle">@style/Widget.DeviceDefault.Light.ImageButton.NumberPickerDownButton</item>
+ <item name="numberPickerInputTextStyle">@style/Widget.DeviceDefault.Light.EditText.NumberPickerInputText</item>
+ <item name="numberPickerStyle">@style/Widget.DeviceDefault.Light.NumberPicker</item>
+
+ <!-- CalendarView style-->
+ <item name="calendarViewStyle">@style/Widget.DeviceDefault.Light.CalendarView</item>
+
+ <!-- TimePicker style -->
+ <item name="timePickerStyle">@style/Widget.DeviceDefault.Light.TimePicker</item>
+
+ <!-- DatePicker style -->
+ <item name="datePickerStyle">@style/Widget.DeviceDefault.Light.DatePicker</item>
+ </style>
+ <style name="Theme.DeviceDefault.Light.NoActionBar" parent="Theme.Holo.Light.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.NoActionBar.Fullscreen" parent="Theme.Holo.Light.NoActionBar.Fullscreen" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Dialog" parent="Theme.Holo.Dialog" >
+ <item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item>
+
+ <item name="android:buttonBarStyle">@android:style/DeviceDefault.ButtonBar.AlertDialog</item>
+ <item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Button.Borderless.Small</item>
+
+ <item name="textAppearance">@android:style/TextAppearance.DeviceDefault</item>
+ <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Inverse</item>
+ </style>
+ <style name="Theme.DeviceDefault.Dialog.MinWidth" parent="Theme.Holo.Dialog.MinWidth" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Dialog.NoActionBar" parent="Theme.Holo.Dialog.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Dialog.NoActionBar.MinWidth" parent="Theme.Holo.Dialog.NoActionBar.MinWidth" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.Dialog" parent="Theme.Holo.Light.Dialog" >
+ <item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item>
+ <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item>
+
+ <item name="android:buttonBarStyle">@android:style/DeviceDefault.Light.ButtonBar.AlertDialog</item>
+ <item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Light.Button.Borderless.Small</item>
+
+ <item name="textAppearance">@android:style/TextAppearance.DeviceDefault.Light</item>
+ <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Light.Inverse</item>
+ </style>
+ <style name="Theme.DeviceDefault.Light.Dialog.MinWidth" parent="Theme.Holo.Light.Dialog.MinWidth" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar" parent="Theme.Holo.Light.Dialog.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth" parent="Theme.Holo.Light.Dialog.NoActionBar.MinWidth" >
+
+ </style>
+ <style name="Theme.DeviceDefault.DialogWhenLarge" parent="Theme.Holo.DialogWhenLarge" >
+
+ </style>
+ <style name="Theme.DeviceDefault.DialogWhenLarge.NoActionBar" parent="Theme.Holo.DialogWhenLarge.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.DialogWhenLarge" parent="Theme.Holo.Light.DialogWhenLarge" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.DialogWhenLarge.NoActionBar" parent="Theme.Holo.Light.DialogWhenLarge.NoActionBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Panel" parent="Theme.Holo.Panel" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.Panel" parent="Theme.Holo.Light.Panel" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Wallpaper" parent="Theme.Holo.Wallpaper" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Wallpaper.NoTitleBar" parent="Theme.Holo.Wallpaper.NoTitleBar" >
+
+ </style>
+ <style name="Theme.DeviceDefault.InputMethod" parent="Theme.Holo.InputMethod" >
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.DarkActionBar" parent="Theme.Holo.Light.DarkActionBar" >
+ <item name="android:actionBarStyle">@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse</item>
+
+ <item name="actionDropDownStyle">@android:style/Widget.DeviceDefault.Spinner.DropDown.ActionBar</item>
+ <item name="actionButtonStyle">@android:style/Widget.DeviceDefault.ActionButton</item>
+ <item name="actionOverflowButtonStyle">@android:style/Widget.DeviceDefault.ActionButton.Overflow</item>
+ <item name="actionBarTabStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabView.Inverse</item>
+ <item name="actionBarTabBarStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabBar.Inverse</item>
+ <item name="actionBarTabTextStyle">@style/Widget.DeviceDefault.Light.ActionBar.TabText.Inverse</item>
+ <item name="actionModeStyle">@style/Widget.DeviceDefault.Light.ActionMode.Inverse</item>
+ <item name="actionModeCloseButtonStyle">@style/Widget.DeviceDefault.ActionButton.CloseMode</item>
+ <item name="actionModePopupWindowStyle">@android:style/Widget.DeviceDefault.PopupWindow.ActionMode</item>
+
+ </style>
+
+ <style name="Theme.DeviceDefault.Dialog.Alert" parent="Theme.Holo.Dialog.Alert">
+ <item name="windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault</item>
+ </style>
+ <style name="Theme.DeviceDefault.Light.Dialog.Alert" parent="Theme.DeviceDefault.Light.Dialog.Alert">
+ <item name="windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item>
+ </style>
+ <style name="Theme.DeviceDefault.SearchBar" parent="Theme.DeviceDefault.SearchBar">
+
+ </style>
+ <style name="Theme.DeviceDefault.Light.SearchBar" parent="Theme.DeviceDefault.Light.SearchBar">
+
+ </style>
+</resources>
diff --git a/core/res/res/xml-land/password_kbd_qwerty.xml b/core/res/res/xml-land/password_kbd_qwerty.xml
index fd8bd49..988f9ff 100755
--- a/core/res/res/xml-land/password_kbd_qwerty.xml
+++ b/core/res/res/xml-land/password_kbd_qwerty.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
index 9ff6fd7..4941946d 100755
--- a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty.xml b/core/res/res/xml-mdpi/password_kbd_qwerty.xml
index 82a7c75..265d7dc 100755
--- a/core/res/res/xml-mdpi/password_kbd_qwerty.xml
+++ b/core/res/res/xml-mdpi/password_kbd_qwerty.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
index 9fff3cc..7379f69 100755
--- a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml-xlarge/password_kbd_numeric.xml b/core/res/res/xml-xlarge/password_kbd_numeric.xml
index 0253122..3745672 100755
--- a/core/res/res/xml-xlarge/password_kbd_numeric.xml
+++ b/core/res/res/xml-xlarge/password_kbd_numeric.xml
@@ -19,7 +19,8 @@
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="33.33%p"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_numeric"
>
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty.xml b/core/res/res/xml-xlarge/password_kbd_qwerty.xml
index 1009c9a..76b6019 100755
--- a/core/res/res/xml-xlarge/password_kbd_qwerty.xml
+++ b/core/res/res/xml-xlarge/password_kbd_qwerty.xml
@@ -22,8 +22,8 @@
android:keyWidth="8.272%p"
keyboardHeight="@dimen/password_keyboard_height"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
- android:horizontalGap="0px"
- android:verticalGap="0px">
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap">
<Row android:keyWidth="8.272%p">
<Key android:keyLabel="Tab"
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
index cbf17c3..35c3142 100755
--- a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
@@ -22,8 +22,8 @@
android:keyWidth="8.272%p"
keyboardHeight="@dimen/password_keyboard_height"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
- android:horizontalGap="0px"
- android:verticalGap="0px">
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap">
<Row android:keyWidth="8.272%p">
<Key android:keyLabel="Tab"
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols.xml b/core/res/res/xml-xlarge/password_kbd_symbols.xml
index a58a023..106dd6e 100755
--- a/core/res/res/xml-xlarge/password_kbd_symbols.xml
+++ b/core/res/res/xml-xlarge/password_kbd_symbols.xml
@@ -22,8 +22,8 @@
android:keyWidth="8.272%p"
keyboardHeight="@dimen/password_keyboard_height"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
- android:horizontalGap="0px"
- android:verticalGap="0px">
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap">
<Row android:keyWidth="8.272%p">
<Key android:keyLabel="Tab"
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
index 9d9acf5..1233f78 100755
--- a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
+++ b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha">
<Row android:keyWidth="8.272%p"
diff --git a/core/res/res/xml/password_kbd_extension.xml b/core/res/res/xml/password_kbd_extension.xml
index f3fa57b..e8d61fe 100755
--- a/core/res/res/xml/password_kbd_extension.xml
+++ b/core/res/res/xml/password_kbd_extension.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml
index 2270b8a..2fd5aa0 100755
--- a/core/res/res/xml/password_kbd_numeric.xml
+++ b/core/res/res/xml/password_kbd_numeric.xml
@@ -19,7 +19,8 @@
-->
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="33.33%p"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_numeric"
>
diff --git a/core/res/res/xml/password_kbd_popup_template.xml b/core/res/res/xml/password_kbd_popup_template.xml
index 9b853e2..9fcac2c 100644
--- a/core/res/res/xml/password_kbd_popup_template.xml
+++ b/core/res/res/xml/password_kbd_popup_template.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
</Keyboard>
diff --git a/core/res/res/xml/password_kbd_qwerty.xml b/core/res/res/xml/password_kbd_qwerty.xml
index 0a35040..dfe581e 100755
--- a/core/res/res/xml/password_kbd_qwerty.xml
+++ b/core/res/res/xml/password_kbd_qwerty.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml/password_kbd_qwerty_shifted.xml b/core/res/res/xml/password_kbd_qwerty_shifted.xml
index 9e9db81..1366c58 100755
--- a/core/res/res/xml/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml/password_kbd_qwerty_shifted.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml/password_kbd_symbols.xml b/core/res/res/xml/password_kbd_symbols.xml
index 9a94930..5876b0d 100755
--- a/core/res/res/xml/password_kbd_symbols.xml
+++ b/core/res/res/xml/password_kbd_symbols.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/res/res/xml/password_kbd_symbols_shift.xml b/core/res/res/xml/password_kbd_symbols_shift.xml
index a972eb2..ee83544 100755
--- a/core/res/res/xml/password_kbd_symbols_shift.xml
+++ b/core/res/res/xml/password_kbd_symbols_shift.xml
@@ -20,8 +20,8 @@
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
+ android:horizontalGap="@dimen/password_keyboard_horizontalGap"
+ android:verticalGap="@dimen/password_keyboard_verticalGap"
android:keyHeight="@dimen/password_keyboard_key_height_alpha"
>
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index 5d28ef7..6c87c3b 100755
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -3114,6 +3114,13 @@
PackageInfo.INSTALL_LOCATION_UNSPECIFIED);
}
+ @LargeTest
+ public void testInstallNonexistentFile() {
+ int retCode = PackageManager.INSTALL_FAILED_INVALID_URI;
+ File invalidFile = new File("/nonexistent-file.apk");
+ invokeInstallPackageFail(Uri.fromFile(invalidFile), 0, retCode);
+ }
+
/*---------- Recommended install location tests ----*/
/*
* TODO's
diff --git a/drm/common/IDrmManagerService.cpp b/drm/common/IDrmManagerService.cpp
index 986f32c..0b76a36 100644
--- a/drm/common/IDrmManagerService.cpp
+++ b/drm/common/IDrmManagerService.cpp
@@ -808,7 +808,9 @@
LOGV("BnDrmManagerService::onTransact :INSTALL_DRM_ENGINE");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- status_t status = installDrmEngine(data.readInt32(), data.readString8());
+ const int uniqueId = data.readInt32();
+ const String8 engineFile = data.readString8();
+ status_t status = installDrmEngine(uniqueId, engineFile);
reply->writeInt32(status);
return DRM_NO_ERROR;
@@ -822,7 +824,8 @@
const int uniqueId = data.readInt32();
const String8 path = data.readString8();
- DrmConstraints* drmConstraints = getConstraints(uniqueId, &path, data.readInt32());
+ DrmConstraints* drmConstraints
+ = getConstraints(uniqueId, &path, data.readInt32());
if (NULL != drmConstraints) {
//Filling DRM Constraints contents
@@ -948,7 +951,9 @@
const int uniqueId = data.readInt32();
//Filling DRM info Request
- DrmInfoRequest* drmInfoRequest = new DrmInfoRequest(data.readInt32(), data.readString8());
+ const int infoType = data.readInt32();
+ const String8 mimeType = data.readString8();
+ DrmInfoRequest* drmInfoRequest = new DrmInfoRequest(infoType, mimeType);
const int size = data.readInt32();
for (int index = 0; index < size; ++index) {
@@ -1021,7 +1026,9 @@
LOGV("BnDrmManagerService::onTransact :GET_ORIGINAL_MIMETYPE");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- const String8 originalMimeType = getOriginalMimeType(data.readInt32(), data.readString8());
+ const int uniqueId = data.readInt32();
+ const String8 path = data.readString8();
+ const String8 originalMimeType = getOriginalMimeType(uniqueId, path);
reply->writeString8(originalMimeType);
return DRM_NO_ERROR;
@@ -1032,8 +1039,10 @@
LOGV("BnDrmManagerService::onTransact :GET_DRM_OBJECT_TYPE");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- const int drmObjectType
- = getDrmObjectType(data.readInt32(), data.readString8(), data.readString8());
+ const int uniqueId = data.readInt32();
+ const String8 path = data.readString8();
+ const String8 mimeType = data.readString8();
+ const int drmObjectType = getDrmObjectType(uniqueId, path, mimeType);
reply->writeInt32(drmObjectType);
return DRM_NO_ERROR;
@@ -1044,8 +1053,10 @@
LOGV("BnDrmManagerService::onTransact :CHECK_RIGHTS_STATUS");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- const int result
- = checkRightsStatus(data.readInt32(), data.readString8(), data.readInt32());
+ const int uniqueId = data.readInt32();
+ const String8 path = data.readString8();
+ const int action = data.readInt32();
+ const int result = checkRightsStatus(uniqueId, path, action);
reply->writeInt32(result);
return DRM_NO_ERROR;
@@ -1061,9 +1072,10 @@
DecryptHandle handle;
readDecryptHandleFromParcelData(&handle, data);
+ const int action = data.readInt32();
+ const bool reserve = static_cast<bool>(data.readInt32());
const status_t status
- = consumeRights(uniqueId, &handle, data.readInt32(),
- static_cast<bool>(data.readInt32()));
+ = consumeRights(uniqueId, &handle, action, reserve);
reply->writeInt32(status);
clearDecryptHandle(&handle);
@@ -1080,8 +1092,10 @@
DecryptHandle handle;
readDecryptHandleFromParcelData(&handle, data);
+ const int playbackStatus = data.readInt32();
+ const int64_t position = data.readInt64();
const status_t status
- = setPlaybackStatus(uniqueId, &handle, data.readInt32(), data.readInt64());
+ = setPlaybackStatus(uniqueId, &handle, playbackStatus, position);
reply->writeInt32(status);
clearDecryptHandle(&handle);
@@ -1093,11 +1107,13 @@
LOGV("BnDrmManagerService::onTransact :VALIDATE_ACTION");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- bool result = validateAction(
- data.readInt32(),
- data.readString8(),
- data.readInt32(),
- ActionDescription(data.readInt32(), data.readInt32()));
+ const int uniqueId = data.readInt32();
+ const String8 path = data.readString8();
+ const int action = data.readInt32();
+ const int outputType = data.readInt32();
+ const int configuration = data.readInt32();
+ bool result = validateAction(uniqueId, path, action,
+ ActionDescription(outputType, configuration));
reply->writeInt32(result);
return DRM_NO_ERROR;
@@ -1108,7 +1124,9 @@
LOGV("BnDrmManagerService::onTransact :REMOVE_RIGHTS");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- const status_t status = removeRights(data.readInt32(), data.readString8());
+ int uniqueId = data.readInt32();
+ String8 path = data.readString8();
+ const status_t status = removeRights(uniqueId, path);
reply->writeInt32(status);
return DRM_NO_ERROR;
@@ -1130,7 +1148,9 @@
LOGV("BnDrmManagerService::onTransact :OPEN_CONVERT_SESSION");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- const int convertId = openConvertSession(data.readInt32(), data.readString8());
+ const int uniqueId = data.readInt32();
+ const String8 mimeType = data.readString8();
+ const int convertId = openConvertSession(uniqueId, mimeType);
reply->writeInt32(convertId);
return DRM_NO_ERROR;
@@ -1176,8 +1196,10 @@
LOGV("BnDrmManagerService::onTransact :CLOSE_CONVERT_SESSION");
CHECK_INTERFACE(IDrmManagerService, data, reply);
- DrmConvertedStatus* drmConvertedStatus
- = closeConvertSession(data.readInt32(), data.readInt32());
+ const int uniqueId = data.readInt32();
+ const int convertId = data.readInt32();
+ DrmConvertedStatus* drmConvertedStatus
+ = closeConvertSession(uniqueId, convertId);
if (NULL != drmConvertedStatus) {
//Filling Drm Converted Ststus
@@ -1241,8 +1263,10 @@
const int uniqueId = data.readInt32();
const int fd = data.readFileDescriptor();
+ const off64_t offset = data.readInt64();
+ const off64_t length = data.readInt64();
DecryptHandle* handle
- = openDecryptSession(uniqueId, fd, data.readInt64(), data.readInt64());
+ = openDecryptSession(uniqueId, fd, offset, length);
if (NULL != handle) {
writeDecryptHandleToParcelData(handle, reply);
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 40d54bb..3fc6463 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -567,6 +567,7 @@
canvas.setBitmap(bitmap);
canvas.drawBitmap(source, srcR, dstR, paint);
+ canvas.setBitmap(null);
return bitmap;
}
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 962f22c..163bd4a 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -349,6 +349,18 @@
mCompatScaling = paint.mCompatScaling;
mInvCompatScaling = paint.mInvCompatScaling;
mBidiFlags = paint.mBidiFlags;
+ hasShadow = paint.hasShadow;
+ mColorFilter = paint.mColorFilter;
+ mMaskFilter = paint.mMaskFilter;
+ mPathEffect = paint.mPathEffect;
+ mRasterizer = paint.mRasterizer;
+ mShader = paint.mShader;
+ mTypeface = paint.mTypeface;
+ mXfermode = paint.mXfermode;
+ shadowColor = paint.shadowColor;
+ shadowDx = paint.shadowDx;
+ shadowDy = paint.shadowDy;
+ shadowRadius = paint.shadowRadius;
}
/** Restores the paint to its default settings. */
@@ -1932,7 +1944,11 @@
@Override
protected void finalize() throws Throwable {
- finalizer(mNativePaint);
+ try {
+ finalizer(mNativePaint);
+ } finally {
+ super.finalize();
+ }
}
private static native int native_init();
diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java
index 1647ff3..d62fd67 100644
--- a/graphics/java/android/graphics/SurfaceTexture.java
+++ b/graphics/java/android/graphics/SurfaceTexture.java
@@ -187,6 +187,25 @@
return nativeGetTimestamp();
}
+ /**
+ * release() frees all the buffers and puts the SurfaceTexture into the
+ * 'abandoned' state. Once put in this state the SurfaceTexture can never
+ * leave it. When in the 'abandoned' state, all methods of the
+ * ISurfaceTexture interface will fail with the NO_INIT error.
+ *
+ * Note that while calling this method causes all the buffers to be freed
+ * from the perspective of the the SurfaceTexture, if there are additional
+ * references on the buffers (e.g. if a buffer is referenced by a client or
+ * by OpenGL ES as a texture) then those buffer will remain allocated.
+ *
+ * Always call this method when you are done with SurfaceTexture. Failing
+ * to do so may delay resource deallocation for a significant amount of
+ * time.
+ */
+ public void release() {
+ nativeRelease();
+ }
+
protected void finalize() throws Throwable {
try {
nativeFinalize();
@@ -232,6 +251,7 @@
private native void nativeSetDefaultBufferSize(int width, int height);
private native void nativeUpdateTexImage();
private native int nativeGetQueuedCount();
+ private native void nativeRelease();
/*
* We use a class initializer to allow the native code to cache some
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 7e03e1c..87421b1 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -20,18 +20,16 @@
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.Shader;
-import android.graphics.BitmapShader;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.Gravity;
-import android.view.View;
-
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp
index 4f51f03..1a036ee 100644
--- a/libs/gui/SurfaceTexture.cpp
+++ b/libs/gui/SurfaceTexture.cpp
@@ -910,6 +910,7 @@
Mutex::Autolock lock(mMutex);
freeAllBuffers();
mAbandoned = true;
+ mCurrentTextureBuf.clear();
mDequeueCondition.signal();
}
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 9bf3de8..9acf99b 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -44,9 +44,11 @@
///////////////////////////////////////////////////////////////////////////////
Font::Font(FontRenderer* state, uint32_t fontId, float fontSize,
- int flags, uint32_t italicStyle, uint32_t scaleX) :
+ int flags, uint32_t italicStyle, uint32_t scaleX,
+ SkPaint::Style style, uint32_t strokeWidth) :
mState(state), mFontId(fontId), mFontSize(fontSize),
- mFlags(flags), mItalicStyle(italicStyle), mScaleX(scaleX) {
+ mFlags(flags), mItalicStyle(italicStyle), mScaleX(scaleX),
+ mStyle(style), mStrokeWidth(mStrokeWidth) {
}
@@ -283,19 +285,22 @@
}
Font* Font::create(FontRenderer* state, uint32_t fontId, float fontSize,
- int flags, uint32_t italicStyle, uint32_t scaleX) {
+ int flags, uint32_t italicStyle, uint32_t scaleX,
+ SkPaint::Style style, uint32_t strokeWidth) {
Vector<Font*> &activeFonts = state->mActiveFonts;
for (uint32_t i = 0; i < activeFonts.size(); i++) {
Font* font = activeFonts[i];
if (font->mFontId == fontId && font->mFontSize == fontSize &&
font->mFlags == flags && font->mItalicStyle == italicStyle &&
- font->mScaleX == scaleX) {
+ font->mScaleX == scaleX && font->mStyle == style &&
+ (style == SkPaint::kFill_Style || font->mStrokeWidth == strokeWidth)) {
return font;
}
}
- Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle, scaleX);
+ Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle,
+ scaleX, style, strokeWidth);
activeFonts.push(newFont);
return newFont;
}
@@ -690,7 +695,11 @@
uint32_t italicStyle = *(uint32_t*) &skewX;
const float scaleXFloat = paint->getTextScaleX();
uint32_t scaleX = *(uint32_t*) &scaleXFloat;
- mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle, scaleX);
+ SkPaint::Style style = paint->getStyle();
+ const float strokeWidthFloat = paint->getStrokeWidth();
+ uint32_t strokeWidth = *(uint32_t*) &strokeWidthFloat;
+ mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle,
+ scaleX, style, strokeWidth);
const float maxPrecacheFontSize = 40.0f;
bool isNewFont = currentNumFonts != mActiveFonts.size();
diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h
index 24ed6fa..1922812 100644
--- a/libs/hwui/FontRenderer.h
+++ b/libs/hwui/FontRenderer.h
@@ -82,7 +82,8 @@
* Creates a new font associated with the specified font state.
*/
static Font* create(FontRenderer* state, uint32_t fontId, float fontSize,
- int flags, uint32_t italicStyle, uint32_t scaleX);
+ int flags, uint32_t italicStyle, uint32_t scaleX, SkPaint::Style style,
+ uint32_t strokeWidth);
protected:
friend class FontRenderer;
@@ -128,7 +129,7 @@
};
Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle,
- uint32_t scaleX);
+ uint32_t scaleX, SkPaint::Style style, uint32_t strokeWidth);
// Cache of glyphs
DefaultKeyedVector<glyph_t, CachedGlyphInfo*> mCachedGlyphs;
@@ -157,6 +158,8 @@
int mFlags;
uint32_t mItalicStyle;
uint32_t mScaleX;
+ SkPaint::Style mStyle;
+ uint32_t mStrokeWidth;
};
///////////////////////////////////////////////////////////////////////////////
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 7258e11..731d1f3 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -1646,7 +1646,8 @@
IAudioService service = getService();
try {
status = service.requestAudioFocus(streamType, durationHint, mICallBack,
- mAudioFocusDispatcher, getIdForAudioFocusListener(l));
+ mAudioFocusDispatcher, getIdForAudioFocusListener(l),
+ mContext.getPackageName() /* package name */);
} catch (RemoteException e) {
Log.e(TAG, "Can't call requestAudioFocus() from AudioService due to "+e);
}
@@ -1682,7 +1683,9 @@
* in the application manifest.
*/
public void registerMediaButtonEventReceiver(ComponentName eventReceiver) {
- //TODO enforce the rule about the receiver being declared in the manifest
+ if (eventReceiver == null) {
+ return;
+ }
IAudioService service = getService();
try {
service.registerMediaButtonEventReceiver(eventReceiver);
@@ -1697,6 +1700,9 @@
* that was registered with {@link #registerMediaButtonEventReceiver(ComponentName)}.
*/
public void unregisterMediaButtonEventReceiver(ComponentName eventReceiver) {
+ if (eventReceiver == null) {
+ return;
+ }
IAudioService service = getService();
try {
service.unregisterMediaButtonEventReceiver(eventReceiver);
@@ -1706,6 +1712,126 @@
}
/**
+ * @hide
+ * Registers the remote control client for providing information to display on the remotes.
+ * @param eventReceiver identifier of a {@link android.content.BroadcastReceiver}
+ * that will receive the media button intent, and associated with the remote control
+ * client. This method has no effect if
+ * {@link #registerMediaButtonEventReceiver(ComponentName)} hasn't been called
+ * with the same eventReceiver, or if
+ * {@link #unregisterMediaButtonEventReceiver(ComponentName)} has been called.
+ * @param rcClient the client associated with the event receiver, responsible for providing
+ * the information to display on the remote control.
+ */
+ public void registerRemoteControlClient(ComponentName eventReceiver,
+ IRemoteControlClient rcClient) {
+ if (eventReceiver == null) {
+ return;
+ }
+ IAudioService service = getService();
+ try {
+ service.registerRemoteControlClient(eventReceiver, rcClient,
+ // used to match media button event receiver and audio focus
+ mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Dead object in registerRemoteControlClient"+e);
+ }
+ }
+
+ /**
+ * @hide
+ * @param eventReceiver
+ */
+ public void unregisterRemoteControlClient(ComponentName eventReceiver) {
+ if (eventReceiver == null) {
+ return;
+ }
+ IAudioService service = getService();
+ try {
+ // unregistering a IRemoteControlClient is equivalent to setting it to null
+ service.registerRemoteControlClient(eventReceiver, null, mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Dead object in unregisterRemoteControlClient"+e);
+ }
+ }
+
+ /**
+ * @hide
+ * Definitions of constants to be used in {@link android.media.IRemoteControlClient}.
+ */
+ public final class RemoteControlParameters {
+ public final static int PLAYSTATE_STOPPED = 1;
+ public final static int PLAYSTATE_PAUSED = 2;
+ public final static int PLAYSTATE_PLAYING = 3;
+ public final static int PLAYSTATE_FAST_FORWARDING = 4;
+ public final static int PLAYSTATE_REWINDING = 5;
+ public final static int PLAYSTATE_SKIPPING_FORWARDS = 6;
+ public final static int PLAYSTATE_SKIPPING_BACKWARDS = 7;
+ public final static int PLAYSTATE_BUFFERING = 8;
+
+ public final static int FLAG_KEY_MEDIA_PREVIOUS = 1 << 0;
+ public final static int FLAG_KEY_MEDIA_REWIND = 1 << 1;
+ public final static int FLAG_KEY_MEDIA_PLAY = 1 << 2;
+ public final static int FLAG_KEY_MEDIA_PLAY_PAUSE = 1 << 3;
+ public final static int FLAG_KEY_MEDIA_PAUSE = 1 << 4;
+ public final static int FLAG_KEY_MEDIA_STOP = 1 << 5;
+ public final static int FLAG_KEY_MEDIA_FAST_FORWARD = 1 << 6;
+ public final static int FLAG_KEY_MEDIA_NEXT = 1 << 7;
+ }
+
+ /**
+ * @hide
+ * Broadcast intent action indicating that the displays on the remote controls
+ * should be updated because a new remote control client is now active. If there is no
+ * {@link #EXTRA_REMOTE_CONTROL_CLIENT}, the remote control display should be cleared
+ * because there is no valid client to supply it with information.
+ *
+ * @see #EXTRA_REMOTE_CONTROL_CLIENT
+ */
+ public static final String REMOTE_CONTROL_CLIENT_CHANGED =
+ "android.media.REMOTE_CONTROL_CLIENT_CHANGED";
+
+ /**
+ * @hide
+ * The IRemoteControlClient monotonically increasing generation counter.
+ *
+ * @see #REMOTE_CONTROL_CLIENT_CHANGED_ACTION
+ */
+ public static final String EXTRA_REMOTE_CONTROL_CLIENT =
+ "android.media.EXTRA_REMOTE_CONTROL_CLIENT";
+
+ /**
+ * @hide
+ * FIXME to be changed to address Neel's comments
+ * Force a refresh of the remote control client associated with the event receiver.
+ * @param eventReceiver
+ */
+ public void refreshRemoteControlDisplay(ComponentName eventReceiver) {
+ IAudioService service = getService();
+ try {
+ service.refreshRemoteControlDisplay(eventReceiver);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Dead object in refreshRemoteControlDisplay"+e);
+ }
+ }
+
+ /**
+ * @hide
+ * FIXME API to be used by implementors of remote controls, not a candidate for SDK
+ */
+ public void registerRemoteControlObserver() {
+
+ }
+
+ /**
+ * @hide
+ * FIXME API to be used by implementors of remote controls, not a candidate for SDK
+ */
+ public void unregisterRemoteControlObserver() {
+
+ }
+
+ /**
* @hide
* Reload audio settings. This method is called by Settings backup
* agent when audio settings are restored and causes the AudioService
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 682560a..cd55b0e 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -55,6 +55,7 @@
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
+import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -113,6 +114,8 @@
private static final int MSG_SET_FORCE_USE = 10;
private static final int MSG_PERSIST_MEDIABUTTONRECEIVER = 11;
private static final int MSG_BT_HEADSET_CNCT_FAILED = 12;
+ private static final int MSG_RCDISPLAY_CLEAR = 13;
+ private static final int MSG_RCDISPLAY_UPDATE = 14;
private static final int BTA2DP_DOCK_TIMEOUT_MILLIS = 8000;
// Timeout for connection to bluetooth headset service
@@ -184,7 +187,7 @@
AudioSystem.STREAM_RING, // STREAM_RING
AudioSystem.STREAM_MUSIC, // STREAM_MUSIC
AudioSystem.STREAM_ALARM, // STREAM_ALARM
- AudioSystem.STREAM_NOTIFICATION, // STREAM_NOTIFICATION
+ AudioSystem.STREAM_RING, // STREAM_NOTIFICATION
AudioSystem.STREAM_BLUETOOTH_SCO, // STREAM_BLUETOOTH_SCO
AudioSystem.STREAM_SYSTEM, // STREAM_SYSTEM_ENFORCED
AudioSystem.STREAM_VOICE_CALL, // STREAM_DTMF
@@ -239,9 +242,6 @@
*/
private int mVibrateSetting;
- /** @see System#NOTIFICATIONS_USE_RING_VOLUME */
- private int mNotificationsUseRingVolume;
-
// Broadcast receiver for device connections intent broadcasts
private final BroadcastReceiver mReceiver = new AudioServiceBroadcastReceiver();
@@ -371,7 +371,9 @@
// Register for media button intent broadcasts.
intentFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
- intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
+ // Workaround for bug on priority setting
+ //intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
+ intentFilter.setPriority(Integer.MAX_VALUE);
context.registerReceiver(mMediaButtonReceiver, intentFilter);
// Register for phone state monitoring
@@ -451,16 +453,6 @@
System.MUTE_STREAMS_AFFECTED,
((1 << AudioSystem.STREAM_MUSIC)|(1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_SYSTEM)));
- if (mVoiceCapable) {
- mNotificationsUseRingVolume = System.getInt(cr,
- Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1);
- } else {
- mNotificationsUseRingVolume = 1;
- }
-
- if (mNotificationsUseRingVolume == 1) {
- STREAM_VOLUME_ALIAS[AudioSystem.STREAM_NOTIFICATION] = AudioSystem.STREAM_RING;
- }
// Each stream will read its own persisted settings
// Broadcast the sticky intent
@@ -885,7 +877,8 @@
requestAudioFocus(AudioManager.STREAM_RING,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, cb,
null /* IAudioFocusDispatcher allowed to be null only for this clientId */,
- IN_VOICE_COMM_FOCUS_ID /*clientId*/);
+ IN_VOICE_COMM_FOCUS_ID /*clientId*/,
+ "system");
}
}
@@ -897,7 +890,8 @@
requestAudioFocus(AudioManager.STREAM_RING,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, cb,
null /* IAudioFocusDispatcher allowed to be null only for this clientId */,
- IN_VOICE_COMM_FOCUS_ID /*clientId*/);
+ IN_VOICE_COMM_FOCUS_ID /*clientId*/,
+ "system");
}
// if exiting call
else if (newMode == AudioSystem.MODE_NORMAL) {
@@ -2155,6 +2149,33 @@
persistMediaButtonReceiver( (ComponentName) msg.obj );
break;
+ case MSG_RCDISPLAY_CLEAR:
+ Log.i(TAG, "Clear remote control display");
+ Intent clearIntent = new Intent(AudioManager.REMOTE_CONTROL_CLIENT_CHANGED);
+ // no extra means no IRemoteControlClient, which is a request to clear
+ clearIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+ mContext.sendBroadcast(clearIntent);
+ break;
+
+ case MSG_RCDISPLAY_UPDATE:
+ synchronized(mCurrentRcLock) {
+ if (mCurrentRcClientRef.get() == null) {
+ // the remote control display owner has changed between the
+ // the message to update the display was sent, and the time it
+ // gets to be processed (now)
+ } else {
+ mCurrentRcClientGen++;
+ Log.i(TAG, "Display/update remote control ");
+ Intent rcClientIntent = new Intent(
+ AudioManager.REMOTE_CONTROL_CLIENT_CHANGED);
+ rcClientIntent.putExtra(AudioManager.EXTRA_REMOTE_CONTROL_CLIENT,
+ mCurrentRcClientGen);
+ rcClientIntent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+ mContext.sendBroadcast(rcClientIntent);
+ }
+ }
+ break;
+
case MSG_BT_HEADSET_CNCT_FAILED:
resetBluetoothSco();
break;
@@ -2168,8 +2189,6 @@
super(new Handler());
mContentResolver.registerContentObserver(Settings.System.getUriFor(
Settings.System.MODE_RINGER_STREAMS_AFFECTED), false, this);
- mContentResolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.NOTIFICATIONS_USE_RING_VOLUME), false, this);
}
@Override
@@ -2193,29 +2212,6 @@
mRingerModeAffectedStreams = ringerModeAffectedStreams;
setRingerModeInt(getRingerMode(), false);
}
-
- int notificationsUseRingVolume = Settings.System.getInt(mContentResolver,
- Settings.System.NOTIFICATIONS_USE_RING_VOLUME,
- 1);
- if (mVoiceCapable) {
- if (notificationsUseRingVolume != mNotificationsUseRingVolume) {
- mNotificationsUseRingVolume = notificationsUseRingVolume;
- if (mNotificationsUseRingVolume == 1) {
- STREAM_VOLUME_ALIAS[AudioSystem.STREAM_NOTIFICATION] = AudioSystem.STREAM_RING;
- mStreamStates[AudioSystem.STREAM_NOTIFICATION].setVolumeIndexSettingName(
- System.VOLUME_SETTINGS[AudioSystem.STREAM_RING]);
- } else {
- STREAM_VOLUME_ALIAS[AudioSystem.STREAM_NOTIFICATION] = AudioSystem.STREAM_NOTIFICATION;
- mStreamStates[AudioSystem.STREAM_NOTIFICATION].setVolumeIndexSettingName(
- System.VOLUME_SETTINGS[AudioSystem.STREAM_NOTIFICATION]);
- // Persist notification volume volume as it was not persisted while aliased to ring volume
- // and persist with no delay as there might be registered observers of the persisted
- // notification volume.
- sendMsg(mAudioHandler, MSG_PERSIST_VOLUME, AudioSystem.STREAM_NOTIFICATION,
- SENDMSG_REPLACE, 1, 1, mStreamStates[AudioSystem.STREAM_NOTIFICATION], 0);
- }
- }
- }
}
}
}
@@ -2567,23 +2563,25 @@
private static class FocusStackEntry {
public int mStreamType = -1;// no stream type
- public boolean mIsTransportControlReceiver = false;
public IAudioFocusDispatcher mFocusDispatcher = null;
public IBinder mSourceRef = null;
public String mClientId;
public int mFocusChangeType;
+ public String mPackageName;
+ public int mCallingUid;
public FocusStackEntry() {
}
- public FocusStackEntry(int streamType, int duration, boolean isTransportControlReceiver,
- IAudioFocusDispatcher afl, IBinder source, String id) {
+ public FocusStackEntry(int streamType, int duration,
+ IAudioFocusDispatcher afl, IBinder source, String id, String pn, int uid) {
mStreamType = streamType;
- mIsTransportControlReceiver = isTransportControlReceiver;
mFocusDispatcher = afl;
mSourceRef = source;
mClientId = id;
mFocusChangeType = duration;
+ mPackageName = pn;
+ mCallingUid = uid;
}
}
@@ -2600,13 +2598,15 @@
while(stackIterator.hasNext()) {
FocusStackEntry fse = stackIterator.next();
pw.println(" source:" + fse.mSourceRef + " -- client: " + fse.mClientId
- + " -- duration: " +fse.mFocusChangeType);
+ + " -- duration: " + fse.mFocusChangeType
+ + " -- uid: " + fse.mCallingUid);
}
}
}
/**
* Helper function:
+ * Called synchronized on mAudioFocusLock
* Remove a focus listener from the focus stack.
* @param focusListenerToRemove the focus listener
* @param signal if true and the listener was at the top of the focus stack, i.e. it was holding
@@ -2621,6 +2621,10 @@
if (signal) {
// notify the new top of the stack it gained focus
notifyTopOfAudioFocusStack();
+ // there's a new top of the stack, let the remote control know
+ synchronized(mRCStack) {
+ checkUpdateRemoteControlDisplay();
+ }
}
} else {
// focus is abandoned by a client that's not at the top of the stack,
@@ -2639,6 +2643,7 @@
/**
* Helper function:
+ * Called synchronized on mAudioFocusLock
* Remove focus listeners from the focus stack for a particular client.
*/
private void removeFocusStackEntryForClient(IBinder cb) {
@@ -2658,6 +2663,10 @@
// we removed an entry at the top of the stack:
// notify the new top of the stack it gained focus.
notifyTopOfAudioFocusStack();
+ // there's a new top of the stack, let the remote control know
+ synchronized(mRCStack) {
+ checkUpdateRemoteControlDisplay();
+ }
}
}
@@ -2700,7 +2709,7 @@
/** @see AudioManager#requestAudioFocus(IAudioFocusDispatcher, int, int) */
public int requestAudioFocus(int mainStreamType, int focusChangeHint, IBinder cb,
- IAudioFocusDispatcher fd, String clientId) {
+ IAudioFocusDispatcher fd, String clientId, String callingPackageName) {
Log.i(TAG, " AudioFocus requestAudioFocus() from " + clientId);
// the main stream type for the audio focus request is currently not used. It may
// potentially be used to handle multiple stream type-dependent audio focuses.
@@ -2743,8 +2752,13 @@
removeFocusStackEntry(clientId, false);
// push focus requester at the top of the audio focus stack
- mFocusStack.push(new FocusStackEntry(mainStreamType, focusChangeHint, false, fd, cb,
- clientId));
+ mFocusStack.push(new FocusStackEntry(mainStreamType, focusChangeHint, fd, cb,
+ clientId, callingPackageName, Binder.getCallingUid()));
+
+ // there's a new top of the stack, let the remote control know
+ synchronized(mRCStack) {
+ checkUpdateRemoteControlDisplay();
+ }
}//synchronized(mAudioFocusLock)
// handle the potential premature death of the new holder of the focus
@@ -2831,19 +2845,100 @@
}
}
- private static class RemoteControlStackEntry {
- public ComponentName mReceiverComponent;// always non null
- // TODO implement registration expiration?
- //public int mRegistrationTime;
+ private final static Object mCurrentRcLock = new Object();
+ /**
+ * The one remote control client to be polled for display information.
+ * This object is never null, but its reference might.
+ * Access protected by mCurrentRcLock.
+ */
+ private static SoftReference<IRemoteControlClient> mCurrentRcClientRef =
+ new SoftReference<IRemoteControlClient>(null);
- public RemoteControlStackEntry() {
- }
+ /**
+ * A monotonically increasing generation counter for mCurrentRcClientRef.
+ * Only accessed with a lock on mCurrentRcLock.
+ */
+ private static int mCurrentRcClientGen = 0;
- public RemoteControlStackEntry(ComponentName r) {
- mReceiverComponent = r;
+ /**
+ * Returns the current remote control client.
+ * @param rcClientId the counter value that matches the extra
+ * {@link AudioManager#EXTRA_REMOTE_CONTROL_CLIENT} in the
+ * {@link AudioManager#REMOTE_CONTROL_CLIENT_CHANGED} event
+ * @return the current IRemoteControlClient from which information to display on the remote
+ * control can be retrieved, or null if rcClientId doesn't match the current generation
+ * counter.
+ */
+ public static IRemoteControlClient getRemoteControlClient(int rcClientId) {
+ synchronized(mCurrentRcLock) {
+ if (rcClientId == mCurrentRcClientGen) {
+ return mCurrentRcClientRef.get();
+ } else {
+ return null;
+ }
}
}
+ /**
+ * Inner class to monitor remote control client deaths, and remove the client for the
+ * remote control stack if necessary.
+ */
+ private class RcClientDeathHandler implements IBinder.DeathRecipient {
+ private IBinder mCb; // To be notified of client's death
+ private ComponentName mRcEventReceiver;
+
+ RcClientDeathHandler(IBinder cb, ComponentName eventReceiver) {
+ mCb = cb;
+ mRcEventReceiver = eventReceiver;
+ }
+
+ public void binderDied() {
+ Log.w(TAG, " RemoteControlClient died");
+ // remote control client died, make sure the displays don't use it anymore
+ // by setting its remote control client to null
+ registerRemoteControlClient(mRcEventReceiver, null, null/*ignored*/);
+ }
+
+ public IBinder getBinder() {
+ return mCb;
+ }
+ }
+
+ private static class RemoteControlStackEntry {
+ /** the target for the ACTION_MEDIA_BUTTON events */
+ public ComponentName mReceiverComponent;// always non null
+ public String mCallingPackageName;
+ public int mCallingUid;
+
+ /** provides access to the information to display on the remote control */
+ public SoftReference<IRemoteControlClient> mRcClientRef;
+ public RcClientDeathHandler mRcClientDeathHandler;
+
+ public RemoteControlStackEntry(ComponentName r) {
+ mReceiverComponent = r;
+ mCallingUid = -1;
+ mRcClientRef = new SoftReference<IRemoteControlClient>(null);
+ }
+
+ public void unlinkToRcClientDeath() {
+ if ((mRcClientDeathHandler != null) && (mRcClientDeathHandler.mCb != null)) {
+ try {
+ mRcClientDeathHandler.mCb.unlinkToDeath(mRcClientDeathHandler, 0);
+ } catch (java.util.NoSuchElementException e) {
+ // not much we can do here
+ Log.e(TAG, "Encountered " + e + " in unlinkToRcClientDeath()");
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * The stack of remote control event receivers.
+ * Code sections and methods that modify the remote control event receiver stack are
+ * synchronized on mRCStack, but also BEFORE on mFocusLock as any change in either
+ * stack, audio focus or RC, can lead to a change in the remote control display
+ */
private Stack<RemoteControlStackEntry> mRCStack = new Stack<RemoteControlStackEntry>();
/**
@@ -2855,8 +2950,10 @@
synchronized(mRCStack) {
Iterator<RemoteControlStackEntry> stackIterator = mRCStack.iterator();
while(stackIterator.hasNext()) {
- RemoteControlStackEntry fse = stackIterator.next();
- pw.println(" receiver:" + fse.mReceiverComponent);
+ RemoteControlStackEntry rcse = stackIterator.next();
+ pw.println(" receiver: " + rcse.mReceiverComponent +
+ " -- client: " + rcse.mRcClientRef.get() +
+ " -- uid: " + rcse.mCallingUid);
}
}
}
@@ -2909,6 +3006,7 @@
ComponentName receiverComponentName = ComponentName.unflattenFromString(receiverName);
registerMediaButtonEventReceiver(receiverComponentName);
}
+ // upon restoring (e.g. after boot), do we want to refresh all remotes?
}
/**
@@ -2921,14 +3019,20 @@
return;
}
Iterator<RemoteControlStackEntry> stackIterator = mRCStack.iterator();
+ RemoteControlStackEntry rcse = null;
+ boolean wasInsideStack = false;
while(stackIterator.hasNext()) {
- RemoteControlStackEntry rcse = (RemoteControlStackEntry)stackIterator.next();
+ rcse = (RemoteControlStackEntry)stackIterator.next();
if(rcse.mReceiverComponent.equals(newReceiver)) {
+ wasInsideStack = true;
stackIterator.remove();
break;
}
}
- mRCStack.push(new RemoteControlStackEntry(newReceiver));
+ if (!wasInsideStack) {
+ rcse = new RemoteControlStackEntry(newReceiver);
+ }
+ mRCStack.push(rcse);
// post message to persist the default media button receiver
mAudioHandler.sendMessage( mAudioHandler.obtainMessage(
@@ -2950,13 +3054,88 @@
}
}
+ /**
+ * Helper function:
+ * Called synchronized on mRCStack
+ */
+ private boolean isCurrentRcController(ComponentName eventReceiver) {
+ if (!mRCStack.empty() && mRCStack.peek().mReceiverComponent.equals(eventReceiver)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Helper function:
+ * Called synchronized on mRCStack
+ */
+ private void clearRemoteControlDisplay() {
+ synchronized(mCurrentRcLock) {
+ mCurrentRcClientRef.clear();
+ }
+ mAudioHandler.sendMessage( mAudioHandler.obtainMessage(MSG_RCDISPLAY_CLEAR) );
+ }
+
+ /**
+ * Helper function:
+ * Called synchronized on mRCStack
+ * mRCStack.empty() is false
+ */
+ private void updateRemoteControlDisplay() {
+ RemoteControlStackEntry rcse = mRCStack.peek();
+ // this is where we enforce opt-in for information display on the remote controls
+ // with the new AudioManager.registerRemoteControlClient() API
+ if (rcse.mRcClientRef.get() == null) {
+ // FIXME remove log before release: this warning will be displayed for every AF change
+ Log.w(TAG, "Can't update remote control display with null remote control client");
+ clearRemoteControlDisplay();
+ return;
+ }
+ synchronized(mCurrentRcLock) {
+ mCurrentRcClientRef = rcse.mRcClientRef;
+ }
+ mAudioHandler.sendMessage( mAudioHandler.obtainMessage(MSG_RCDISPLAY_UPDATE, 0, 0, rcse) );
+ }
+
+ /**
+ * Helper function:
+ * Called synchronized on mFocusLock, then mRCStack
+ * Check whether the remote control display should be updated, triggers the update if required
+ */
+ private void checkUpdateRemoteControlDisplay() {
+ // determine whether the remote control display should be refreshed
+ // if either stack is empty, there is a mismatch, so clear the RC display
+ if (mRCStack.isEmpty() || mFocusStack.isEmpty()) {
+ clearRemoteControlDisplay();
+ return;
+ }
+ // if the top of the two stacks belong to different packages, there is a mismatch, clear
+ if ((mRCStack.peek().mCallingPackageName != null)
+ && (mFocusStack.peek().mPackageName != null)
+ && !(mRCStack.peek().mCallingPackageName.compareTo(
+ mFocusStack.peek().mPackageName) == 0)) {
+ clearRemoteControlDisplay();
+ return;
+ }
+ // if the audio focus didn't originate from the same Uid as the one in which the remote
+ // control information will be retrieved, clear
+ if (mRCStack.peek().mCallingUid != mFocusStack.peek().mCallingUid) {
+ clearRemoteControlDisplay();
+ return;
+ }
+ // refresh conditions were verified: update the remote controls
+ updateRemoteControlDisplay();
+ }
/** see AudioManager.registerMediaButtonEventReceiver(ComponentName eventReceiver) */
public void registerMediaButtonEventReceiver(ComponentName eventReceiver) {
Log.i(TAG, " Remote Control registerMediaButtonEventReceiver() for " + eventReceiver);
- synchronized(mRCStack) {
- pushMediaButtonReceiver(eventReceiver);
+ synchronized(mAudioFocusLock) {
+ synchronized(mRCStack) {
+ pushMediaButtonReceiver(eventReceiver);
+ checkUpdateRemoteControlDisplay();
+ }
}
}
@@ -2964,11 +3143,74 @@
public void unregisterMediaButtonEventReceiver(ComponentName eventReceiver) {
Log.i(TAG, " Remote Control unregisterMediaButtonEventReceiver() for " + eventReceiver);
- synchronized(mRCStack) {
- removeMediaButtonReceiver(eventReceiver);
+ synchronized(mAudioFocusLock) {
+ synchronized(mRCStack) {
+ boolean topOfStackWillChange = isCurrentRcController(eventReceiver);
+ removeMediaButtonReceiver(eventReceiver);
+ if (topOfStackWillChange) {
+ checkUpdateRemoteControlDisplay();
+ }
+ }
}
}
+ /** see AudioManager.registerRemoteControlClient(ComponentName eventReceiver, ...) */
+ public void registerRemoteControlClient(ComponentName eventReceiver,
+ IRemoteControlClient rcClient, String callingPackageName) {
+ synchronized(mAudioFocusLock) {
+ synchronized(mRCStack) {
+ // store the new display information
+ Iterator<RemoteControlStackEntry> stackIterator = mRCStack.iterator();
+ while(stackIterator.hasNext()) {
+ RemoteControlStackEntry rcse = stackIterator.next();
+ if(rcse.mReceiverComponent.equals(eventReceiver)) {
+ // already had a remote control client?
+ if (rcse.mRcClientDeathHandler != null) {
+ // stop monitoring the old client's death
+ rcse.unlinkToRcClientDeath();
+ }
+ // save the new remote control client
+ rcse.mRcClientRef = new SoftReference<IRemoteControlClient>(rcClient);
+ rcse.mCallingPackageName = callingPackageName;
+ rcse.mCallingUid = Binder.getCallingUid();
+ if (rcClient == null) {
+ break;
+ }
+ // monitor the new client's death
+ IBinder b = rcClient.asBinder();
+ RcClientDeathHandler rcdh =
+ new RcClientDeathHandler(b, rcse.mReceiverComponent);
+ try {
+ b.linkToDeath(rcdh, 0);
+ } catch (RemoteException e) {
+ // remote control client is DOA, disqualify it
+ Log.w(TAG, "registerRemoteControlClient() has a dead client " + b);
+ rcse.mRcClientRef.clear();
+ }
+ rcse.mRcClientDeathHandler = rcdh;
+ break;
+ }
+ }
+ // if the eventReceiver is at the top of the stack
+ // then check for potential refresh of the remote controls
+ if (isCurrentRcController(eventReceiver)) {
+ checkUpdateRemoteControlDisplay();
+ }
+ }
+ }
+ }
+
+ /** see AudioManager.refreshRemoteControlDisplay(ComponentName er) */
+ public void refreshRemoteControlDisplay(ComponentName eventReceiver) {
+ synchronized(mAudioFocusLock) {
+ synchronized(mRCStack) {
+ // only refresh if the eventReceiver is at the top of the stack
+ if (isCurrentRcController(eventReceiver)) {
+ checkUpdateRemoteControlDisplay();
+ }
+ }
+ }
+ }
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index e3bd7b4..1a05f152 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -18,6 +18,9 @@
import android.content.ComponentName;
import android.media.IAudioFocusDispatcher;
+import android.media.IRemoteControlClient;
+import android.net.Uri;
+import android.os.Bundle;
/**
* {@hide}
@@ -77,7 +80,7 @@
boolean isBluetoothScoOn();
int requestAudioFocus(int mainStreamType, int durationHint, IBinder cb, IAudioFocusDispatcher l,
- String clientId);
+ String clientId, String callingPackageName);
int abandonAudioFocus(IAudioFocusDispatcher l, String clientId);
@@ -87,6 +90,11 @@
void unregisterMediaButtonEventReceiver(in ComponentName eventReceiver);
+ void registerRemoteControlClient(in ComponentName eventReceiver,
+ in IRemoteControlClient rcClient, in String callingPackageName);
+
+ void refreshRemoteControlDisplay(in ComponentName eventReceiver);
+
void startBluetoothSco(IBinder cb);
void stopBluetoothSco(IBinder cb);
diff --git a/media/java/android/media/IRemoteControlClient.aidl b/media/java/android/media/IRemoteControlClient.aidl
new file mode 100644
index 0000000..a49371c
--- /dev/null
+++ b/media/java/android/media/IRemoteControlClient.aidl
@@ -0,0 +1,76 @@
+/*
+ * 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 android.media;
+
+import android.graphics.Bitmap;
+
+/**
+ * {@hide}
+ */
+interface IRemoteControlClient
+{
+ /**
+ * Called by a remote control to retrieve a String of information to display.
+ * @param field the identifier for a metadata field to retrieve. Valid values are
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_ALBUM},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_ALBUMARTIST},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_TITLE},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_ARTIST},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_AUTHOR},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_CD_TRACK_NUMBER},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_COMPILATION},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_COMPOSER},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_DATE},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_DISC_NUMBER},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_DURATION},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_GENRE},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_TITLE},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_WRITER},
+ * {@link android.media.MediaMetadataRetriever#METADATA_KEY_YEAR}.
+ * @return null if the given field is not supported, or the String matching the metadata field.
+ */
+ String getMetadataString(int field);
+
+ /**
+ * Returns the current playback state.
+ * @return one of the following values:
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_STOPPED},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_PAUSED},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_PLAYING},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_FAST_FORWARDING},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_REWINDING},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_SKIPPING_FORWARDS},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_SKIPPING_BACKWARDS},
+ * {@link android.media.AudioManager.RemoteControl#PLAYSTATE_BUFFERING}.
+ */
+ int getPlaybackState();
+
+ /**
+ * Returns the flags for the media transport control buttons this client supports.
+ * @see {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_PREVIOUS},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_REWIND},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_PLAY},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_PLAY_PAUSE},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_PAUSE},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_STOP},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_FAST_FORWARD},
+ * {@link android.media.AudioManager.RemoteControl#FLAG_KEY_MEDIA_NEXT}
+ */
+ int getTransportControlFlags();
+
+ Bitmap getAlbumArt(int width, int height);
+}
diff --git a/media/java/android/media/ThumbnailUtils.java b/media/java/android/media/ThumbnailUtils.java
index 7c181ee..078d4af 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -387,6 +387,7 @@
if (recycle) {
source.recycle();
}
+ c.setBitmap(null);
return b2;
}
float bitmapWidthF = source.getWidth();
diff --git a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
index 6b0fb12..5bfdcdb 100644
--- a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
+++ b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
@@ -3761,6 +3761,7 @@
final Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(tempBitmap, new Rect(0, 0, newWidth, newHeight),
new Rect(0, 0, width, height), sResizePaint);
+ canvas.setBitmap(null);
}
if (tempBitmap != null) {
@@ -3837,6 +3838,7 @@
final Canvas canvas = new Canvas(bitmaps[i]);
canvas.drawBitmap(tempBitmap, new Rect(0, 0, newWidth, newHeight),
new Rect(0, 0, width, height), sResizePaint);
+ canvas.setBitmap(null);
}
}
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
index 73cc7e2..f0cc1fe 100755
--- a/media/java/android/media/videoeditor/MediaImageItem.java
+++ b/media/java/android/media/videoeditor/MediaImageItem.java
@@ -1008,6 +1008,7 @@
srcBitmap.getHeight()),
new Rect(0, 0, (int)bitmapWidth,
(int)bitmapHeight), sResizePaint);
+ canvas.setBitmap(null);
/**
* Release the source bitmap
*/
diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java
index 131f5f0..d159df2 100755
--- a/media/java/android/media/videoeditor/OverlayFrame.java
+++ b/media/java/android/media/videoeditor/OverlayFrame.java
@@ -420,6 +420,7 @@
}
overlayCanvas.drawBitmap(overlayBitmap, srcRect, destRect, sResizePaint);
+ overlayCanvas.setBitmap(null);
/*
* Write to the dest file
diff --git a/media/libmedia/IMediaPlayer.cpp b/media/libmedia/IMediaPlayer.cpp
index 76a8a91..52885d2 100644
--- a/media/libmedia/IMediaPlayer.cpp
+++ b/media/libmedia/IMediaPlayer.cpp
@@ -352,7 +352,9 @@
} break;
case SET_VOLUME: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
- reply->writeInt32(setVolume(data.readFloat(), data.readFloat()));
+ float leftVolume = data.readFloat();
+ float rightVolume = data.readFloat();
+ reply->writeInt32(setVolume(leftVolume, rightVolume));
return NO_ERROR;
} break;
case INVOKE: {
@@ -367,7 +369,9 @@
} break;
case GET_METADATA: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
- const status_t retcode = getMetadata(data.readInt32(), data.readInt32(), reply);
+ bool update_only = static_cast<bool>(data.readInt32());
+ bool apply_filter = static_cast<bool>(data.readInt32());
+ const status_t retcode = getMetadata(update_only, apply_filter, reply);
reply->setDataPosition(0);
reply->writeInt32(retcode);
reply->setDataPosition(0);
diff --git a/media/libstagefright/AACExtractor.cpp b/media/libstagefright/AACExtractor.cpp
index 4203b6e..a5a6b64 100644
--- a/media/libstagefright/AACExtractor.cpp
+++ b/media/libstagefright/AACExtractor.cpp
@@ -92,7 +92,7 @@
size_t frameSize = 0;
uint8_t syncword[2];
- if (source->readAt(0, &syncword, 2) != 2) {
+ if (source->readAt(offset, &syncword, 2) != 2) {
return 0;
}
if ((syncword[0] != 0xff) || ((syncword[1] & 0xf6) != 0xf0)) {
diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp
index 5bbed5d..92e84c2 100644
--- a/media/libstagefright/MP3Extractor.cpp
+++ b/media/libstagefright/MP3Extractor.cpp
@@ -407,6 +407,8 @@
int64_t seekTimeUs;
ReadOptions::SeekMode mode;
+ bool seekCBR = false;
+
if (options != NULL && options->getSeekTo(&seekTimeUs, &mode)) {
int64_t actualSeekTimeUs = seekTimeUs;
if (mSeeker == NULL
@@ -421,6 +423,7 @@
mCurrentTimeUs = seekTimeUs;
mCurrentPos = mFirstFramePos + seekTimeUs * bitrate / 8000000;
+ seekCBR = true;
} else {
mCurrentTimeUs = actualSeekTimeUs;
}
@@ -454,6 +457,13 @@
&& GetMPEGAudioFrameSize(
header, &frame_size, &sample_rate, NULL,
&bitrate, &num_samples)) {
+
+ // re-calculate mCurrentTimeUs because we might have called Resync()
+ if (seekCBR) {
+ mCurrentTimeUs = (mCurrentPos - mFirstFramePos) * 8000 / bitrate;
+ mBasisTimeUs = mCurrentTimeUs;
+ }
+
break;
}
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index ac73351..a4f3922 100755
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -976,11 +976,6 @@
video_def->nFrameWidth = width;
video_def->nFrameHeight = height;
video_def->xFramerate = 0; // No need for output port
- // FIXME:
- // Revmoe this workaround after work is done.
- if (!strncmp(mComponentName, "OMX.TI.DUCATI1", 14)) {
- video_def->xFramerate = (frameRate << 16);
- }
video_def->nBitrate = bitRate; // Q16 format
video_def->eCompressionFormat = compressionFormat;
video_def->eColorFormat = OMX_COLOR_FormatUnused;
diff --git a/media/libstagefright/tests/SurfaceMediaSource_test.cpp b/media/libstagefright/tests/SurfaceMediaSource_test.cpp
index dc6f2c9..5b32b68 100644
--- a/media/libstagefright/tests/SurfaceMediaSource_test.cpp
+++ b/media/libstagefright/tests/SurfaceMediaSource_test.cpp
@@ -57,6 +57,7 @@
protected:
virtual void SetUp() {
+ android::ProcessState::self()->startThreadPool();
mSMS = new SurfaceMediaSource(mYuvTexWidth, mYuvTexHeight);
mSMS->setSynchronousMode(true);
mSTC = new SurfaceTextureClient(mSMS);
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
index 0b0d0ce..369a067 100755
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
@@ -16,24 +16,33 @@
package com.android.mediaframeworktest;
+import android.media.EncoderCapabilities.AudioEncoderCap;
+import android.media.EncoderCapabilities.VideoEncoderCap;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.test.InstrumentationTestRunner;
import android.test.InstrumentationTestSuite;
import com.android.mediaframeworktest.stress.MediaRecorderStressTest;
+import java.util.List;
import junit.framework.TestSuite;
public class MediaRecorderStressTestRunner extends InstrumentationTestRunner {
- // Default recorder settings
+ public static List<VideoEncoderCap> videoEncoders = MediaProfileReader.getVideoEncoders();
+ public static List<AudioEncoderCap> audioEncoders = MediaProfileReader.getAudioEncoders();
+
+ //Get the first capability as the default
+ public static VideoEncoderCap videoEncoder = videoEncoders.get(0);
+ public static AudioEncoderCap audioEncoder = audioEncoders.get(0);
+
public static int mIterations = 100;
- public static int mVideoEncoder = MediaRecorder.VideoEncoder.H263;
- public static int mAudioEncdoer = MediaRecorder.AudioEncoder.AMR_NB;
- public static int mFrameRate = 20;
- public static int mVideoWidth = 352;
- public static int mVideoHeight = 288;
- public static int mBitRate = 100;
+ public static int mVideoEncoder = videoEncoder.mCodec;
+ public static int mAudioEncdoer = audioEncoder.mCodec;
+ public static int mFrameRate = videoEncoder.mMaxFrameRate;
+ public static int mVideoWidth = videoEncoder.mMaxFrameWidth;
+ public static int mVideoHeight = videoEncoder.mMaxFrameHeight;
+ public static int mBitRate = audioEncoder.mMaxBitRate;
public static boolean mRemoveVideo = true;
public static int mDuration = 10000;
diff --git a/opengl/java/android/opengl/GLSurfaceView.java b/opengl/java/android/opengl/GLSurfaceView.java
index 3f547fd..4c7f84e 100644
--- a/opengl/java/android/opengl/GLSurfaceView.java
+++ b/opengl/java/android/opengl/GLSurfaceView.java
@@ -1073,6 +1073,15 @@
return gl;
}
+ public void purgeBuffers() {
+ mEgl.eglMakeCurrent(mEglDisplay,
+ EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE,
+ EGL10.EGL_NO_CONTEXT);
+ mEgl.eglMakeCurrent(mEglDisplay,
+ mEglSurface, mEglSurface,
+ mEglContext);
+ }
+
/**
* Display the current render surface.
* @return false if the context has been lost.
@@ -1415,6 +1424,7 @@
if (LOG_RENDERER) {
Log.w("GLThread", "onSurfaceChanged(" + w + ", " + h + ")");
}
+ mEglHelper.purgeBuffers();
mRenderer.onSurfaceChanged(gl, w, h);
sizeChanged = false;
}
diff --git a/packages/BackupRestoreConfirmation/res/layout/confirm_backup.xml b/packages/BackupRestoreConfirmation/res/layout/confirm_backup.xml
index 3668b8c..7dfa53e 100644
--- a/packages/BackupRestoreConfirmation/res/layout/confirm_backup.xml
+++ b/packages/BackupRestoreConfirmation/res/layout/confirm_backup.xml
@@ -18,10 +18,20 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="16dp" >
+
+ <ScrollView
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:layout_width="match_parent">
+ <LinearLayout
+ android:orientation="vertical"
android:layout_height="wrap_content"
- android:padding="16dp" >
+ android:layout_width="match_parent">
<TextView android:id="@+id/confirm_text"
android:layout_width="match_parent"
@@ -63,13 +73,21 @@
android:layout_marginLeft="30dp"
android:layout_below="@id/enc_password"
android:layout_marginBottom="30dp" />
+ </LinearLayout>
+ </ScrollView>
+
+ <LinearLayout android:orientation="horizontal"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_gravity="bottom">
<Button android:id="@+id/button_allow"
android:filterTouchesWhenObscured="true"
android:text="@string/allow_backup_button_label"
android:layout_below="@id/package_name"
android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ android:layout_width="0dp"
+ android:layout_weight="1" />
<Button android:id="@+id/button_deny"
android:text="@string/deny_backup_button_label"
@@ -77,6 +95,9 @@
android:layout_toRightOf="@id/button_allow"
android:layout_alignTop="@id/button_allow"
android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ android:layout_width="0dp"
+ android:layout_weight="1" />
-</RelativeLayout>
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/packages/BackupRestoreConfirmation/res/layout/confirm_restore.xml b/packages/BackupRestoreConfirmation/res/layout/confirm_restore.xml
index 38fcc496..4927cbb 100644
--- a/packages/BackupRestoreConfirmation/res/layout/confirm_restore.xml
+++ b/packages/BackupRestoreConfirmation/res/layout/confirm_restore.xml
@@ -18,65 +18,86 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:padding="16dp" >
-
- <TextView android:id="@+id/confirm_text"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="30dp"
- android:text="@string/restore_confirm_text" />
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="16dp" >
- <TextView android:id="@+id/password_desc"
- android:layout_below="@id/confirm_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="10dp"
- android:text="@string/current_password_text" />
+ <ScrollView
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:layout_width="match_parent">
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent">
- <EditText android:id="@+id/password"
- android:layout_below="@id/password_desc"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="30dp"
- android:password="true" />
+ <TextView android:id="@+id/confirm_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:text="@string/restore_confirm_text" />
- <TextView android:id="@+id/enc_password_desc"
- android:layout_below="@id/password"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="10dp"
- android:text="@string/restore_enc_password_text" />
+ <TextView android:id="@+id/password_desc"
+ android:layout_below="@id/confirm_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:text="@string/current_password_text" />
- <EditText android:id="@+id/enc_password"
- android:layout_below="@id/enc_password_desc"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="30dp"
- android:password="true" />
+ <EditText android:id="@+id/password"
+ android:layout_below="@id/password_desc"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:password="true" />
- <TextView android:id="@+id/package_name"
- android:layout_width="match_parent"
- android:layout_height="20dp"
- android:layout_marginLeft="30dp"
- android:layout_below="@id/enc_password"
- android:layout_marginBottom="30dp" />
+ <TextView android:id="@+id/enc_password_desc"
+ android:layout_below="@id/password"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:text="@string/restore_enc_password_text" />
- <Button android:id="@+id/button_allow"
- android:filterTouchesWhenObscured="true"
- android:text="@string/allow_restore_button_label"
- android:layout_below="@id/package_name"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ <EditText android:id="@+id/enc_password"
+ android:layout_below="@id/enc_password_desc"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:password="true" />
- <Button android:id="@+id/button_deny"
- android:text="@string/deny_restore_button_label"
- android:layout_below="@id/package_name"
- android:layout_toRightOf="@id/button_allow"
- android:layout_alignTop="@id/button_allow"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ <TextView android:id="@+id/package_name"
+ android:layout_width="match_parent"
+ android:layout_height="20dp"
+ android:layout_marginLeft="30dp"
+ android:layout_below="@id/enc_password"
+ android:layout_marginBottom="10dp" />
+ </LinearLayout>
+ </ScrollView>
-</RelativeLayout>
+ <LinearLayout android:orientation="horizontal"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_gravity="bottom">
+
+ <Button android:id="@+id/button_allow"
+ android:filterTouchesWhenObscured="true"
+ android:text="@string/allow_restore_button_label"
+ android:layout_below="@id/package_name"
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:layout_weight="1" />
+
+ <Button android:id="@+id/button_deny"
+ android:text="@string/deny_restore_button_label"
+ android:layout_below="@id/package_name"
+ android:layout_toRightOf="@id/button_allow"
+ android:layout_alignTop="@id/button_allow"
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:layout_weight="1" />
+
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index 626cc86..eae6112 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -38,8 +38,7 @@
import android.os.StatFs;
import android.app.IntentService;
import android.util.DisplayMetrics;
-import android.util.Log;
-import android.util.Pair;
+import android.util.Slog;
import java.io.File;
import java.io.FileInputStream;
@@ -47,11 +46,6 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
import android.os.FileUtils;
import android.provider.Settings;
@@ -120,29 +114,39 @@
public PackageInfoLite getMinimalPackageInfo(final Uri fileUri, int flags, long threshold) {
PackageInfoLite ret = new PackageInfoLite();
if (fileUri == null) {
- Log.i(TAG, "Invalid package uri " + fileUri);
+ Slog.i(TAG, "Invalid package uri " + fileUri);
ret.recommendedInstallLocation = PackageHelper.RECOMMEND_FAILED_INVALID_APK;
return ret;
}
String scheme = fileUri.getScheme();
if (scheme != null && !scheme.equals("file")) {
- Log.w(TAG, "Falling back to installing on internal storage only");
+ Slog.w(TAG, "Falling back to installing on internal storage only");
ret.recommendedInstallLocation = PackageHelper.RECOMMEND_INSTALL_INTERNAL;
return ret;
}
String archiveFilePath = fileUri.getPath();
DisplayMetrics metrics = new DisplayMetrics();
metrics.setToDefaults();
+
PackageParser.PackageLite pkg = PackageParser.parsePackageLite(archiveFilePath, 0);
if (pkg == null) {
- Log.w(TAG, "Failed to parse package");
- ret.recommendedInstallLocation = PackageHelper.RECOMMEND_FAILED_INVALID_APK;
+ Slog.w(TAG, "Failed to parse package");
+
+ final File apkFile = new File(archiveFilePath);
+ if (!apkFile.exists()) {
+ ret.recommendedInstallLocation = PackageHelper.RECOMMEND_FAILED_INVALID_URI;
+ } else {
+ ret.recommendedInstallLocation = PackageHelper.RECOMMEND_FAILED_INVALID_APK;
+ }
+
return ret;
}
ret.packageName = pkg.packageName;
ret.installLocation = pkg.installLocation;
+
ret.recommendedInstallLocation = recommendAppInstallLocation(pkg.installLocation,
archiveFilePath, flags, threshold);
+
return ret;
}
@@ -150,20 +154,28 @@
public boolean checkInternalFreeStorage(Uri packageUri, long threshold)
throws RemoteException {
final File apkFile = new File(packageUri.getPath());
- return isUnderInternalThreshold(apkFile, threshold);
+ try {
+ return isUnderInternalThreshold(apkFile, threshold);
+ } catch (FileNotFoundException e) {
+ return true;
+ }
}
@Override
public boolean checkExternalFreeStorage(Uri packageUri) throws RemoteException {
final File apkFile = new File(packageUri.getPath());
- return isUnderExternalThreshold(apkFile);
+ try {
+ return isUnderExternalThreshold(apkFile);
+ } catch (FileNotFoundException e) {
+ return true;
+ }
}
public ObbInfo getObbInfo(String filename) {
try {
return ObbScanner.getObbInfo(filename);
} catch (IOException e) {
- Log.d(TAG, "Couldn't get OBB info for " + filename);
+ Slog.d(TAG, "Couldn't get OBB info for " + filename);
return null;
}
}
@@ -221,7 +233,7 @@
// Make sure the sdcard is mounted.
String status = Environment.getExternalStorageState();
if (!status.equals(Environment.MEDIA_MOUNTED)) {
- Log.w(TAG, "Make sure sdcard is mounted.");
+ Slog.w(TAG, "Make sure sdcard is mounted.");
return null;
}
@@ -229,75 +241,81 @@
String codePath = packageURI.getPath();
File codeFile = new File(codePath);
- // Native files we need to copy to the container.
- List<Pair<ZipEntry, String>> nativeFiles = new ArrayList<Pair<ZipEntry, String>>();
-
// Calculate size of container needed to hold base APK.
- final int sizeMb = calculateContainerSize(codeFile, nativeFiles);
+ int sizeMb;
+ try {
+ sizeMb = calculateContainerSize(codeFile);
+ } catch (FileNotFoundException e) {
+ Slog.w(TAG, "File does not exist when trying to copy " + codeFile.getPath());
+ return null;
+ }
// Create new container
- String newCachePath = null;
+ final String newCachePath;
if ((newCachePath = PackageHelper.createSdDir(sizeMb, newCid, key, Process.myUid())) == null) {
- Log.e(TAG, "Failed to create container " + newCid);
- return null;
- }
- if (localLOGV)
- Log.i(TAG, "Created container for " + newCid + " at path : " + newCachePath);
- File resFile = new File(newCachePath, resFileName);
- if (!FileUtils.copyFile(new File(codePath), resFile)) {
- Log.e(TAG, "Failed to copy " + codePath + " to " + resFile);
- // Clean up container
- PackageHelper.destroySdDir(newCid);
+ Slog.e(TAG, "Failed to create container " + newCid);
return null;
}
- try {
- ZipFile zipFile = new ZipFile(codeFile);
+ if (localLOGV) {
+ Slog.i(TAG, "Created container for " + newCid + " at path : " + newCachePath);
+ }
- File sharedLibraryDir = new File(newCachePath, LIB_DIR_NAME);
- sharedLibraryDir.mkdir();
-
- final int N = nativeFiles.size();
- for (int i = 0; i < N; i++) {
- final Pair<ZipEntry, String> entry = nativeFiles.get(i);
-
- InputStream is = zipFile.getInputStream(entry.first);
- try {
- File destFile = new File(sharedLibraryDir, entry.second);
- if (!FileUtils.copyToFile(is, destFile)) {
- throw new IOException("Couldn't copy native binary "
- + entry.first.getName() + " to " + entry.second);
- }
- } finally {
- is.close();
- }
+ final File resFile = new File(newCachePath, resFileName);
+ if (FileUtils.copyFile(new File(codePath), resFile)) {
+ if (localLOGV) {
+ Slog.i(TAG, "Copied " + codePath + " to " + resFile);
}
- } catch (IOException e) {
- Log.e(TAG, "Couldn't copy native file to container", e);
+ } else {
+ Slog.e(TAG, "Failed to copy " + codePath + " to " + resFile);
+ // Clean up container
PackageHelper.destroySdDir(newCid);
return null;
}
- if (localLOGV) Log.i(TAG, "Copied " + codePath + " to " + resFile);
+ final File sharedLibraryDir = new File(newCachePath, LIB_DIR_NAME);
+ if (sharedLibraryDir.mkdir()) {
+ int ret = NativeLibraryHelper.copyNativeBinariesIfNeededLI(codeFile, sharedLibraryDir);
+ if (ret != PackageManager.INSTALL_SUCCEEDED) {
+ Slog.e(TAG, "Could not copy native libraries to " + sharedLibraryDir.getPath());
+ PackageHelper.destroySdDir(newCid);
+ return null;
+ }
+ } else {
+ Slog.e(TAG, "Could not create native lib directory: " + sharedLibraryDir.getPath());
+ PackageHelper.destroySdDir(newCid);
+ return null;
+ }
+
if (!PackageHelper.finalizeSdDir(newCid)) {
- Log.e(TAG, "Failed to finalize " + newCid + " at path " + newCachePath);
+ Slog.e(TAG, "Failed to finalize " + newCid + " at path " + newCachePath);
// Clean up container
PackageHelper.destroySdDir(newCid);
+ return null;
}
- if (localLOGV) Log.i(TAG, "Finalized container " + newCid);
+
+ if (localLOGV) {
+ Slog.i(TAG, "Finalized container " + newCid);
+ }
+
if (PackageHelper.isContainerMounted(newCid)) {
- if (localLOGV) Log.i(TAG, "Unmounting " + newCid +
- " at path " + newCachePath);
+ if (localLOGV) {
+ Slog.i(TAG, "Unmounting " + newCid + " at path " + newCachePath);
+ }
+
// Force a gc to avoid being killed.
Runtime.getRuntime().gc();
PackageHelper.unMountSdDir(newCid);
} else {
- if (localLOGV) Log.i(TAG, "Container " + newCid + " not mounted");
+ if (localLOGV) {
+ Slog.i(TAG, "Container " + newCid + " not mounted");
+ }
}
+
return newCachePath;
}
- public static boolean copyToFile(InputStream inputStream, FileOutputStream out) {
+ private static boolean copyToFile(InputStream inputStream, FileOutputStream out) {
try {
byte[] buffer = new byte[4096];
int bytesRead;
@@ -306,12 +324,12 @@
}
return true;
} catch (IOException e) {
- Log.i(TAG, "Exception : " + e + " when copying file");
+ Slog.i(TAG, "Exception : " + e + " when copying file");
return false;
}
}
- public static boolean copyToFile(File srcFile, FileOutputStream out) {
+ private static boolean copyToFile(File srcFile, FileOutputStream out) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream(srcFile);
@@ -323,7 +341,7 @@
}
}
- private boolean copyFile(Uri pPackageURI, FileOutputStream outStream) {
+ private boolean copyFile(Uri pPackageURI, FileOutputStream outStream) {
String scheme = pPackageURI.getScheme();
if (scheme == null || scheme.equals("file")) {
final File srcPackageFile = new File(pPackageURI.getPath());
@@ -331,7 +349,7 @@
// destination file in order to eliminate a window where the package directory
// scanner notices the new package file but it's not completely copied yet.
if (!copyToFile(srcPackageFile, outStream)) {
- Log.e(TAG, "Couldn't copy file: " + srcPackageFile);
+ Slog.e(TAG, "Couldn't copy file: " + srcPackageFile);
return false;
}
} else if (scheme.equals("content")) {
@@ -339,28 +357,31 @@
try {
fd = getContentResolver().openFileDescriptor(pPackageURI, "r");
} catch (FileNotFoundException e) {
- Log.e(TAG, "Couldn't open file descriptor from download service. Failed with exception " + e);
+ Slog.e(TAG,
+ "Couldn't open file descriptor from download service. Failed with exception "
+ + e);
return false;
}
if (fd == null) {
- Log.e(TAG, "Couldn't open file descriptor from download service (null).");
+ Slog.e(TAG, "Couldn't open file descriptor from download service (null).");
return false;
} else {
if (localLOGV) {
- Log.v(TAG, "Opened file descriptor from download service.");
+ Slog.i(TAG, "Opened file descriptor from download service.");
}
ParcelFileDescriptor.AutoCloseInputStream
dlStream = new ParcelFileDescriptor.AutoCloseInputStream(fd);
// We copy the source package file to a temp file and then rename it to the
// destination file in order to eliminate a window where the package directory
- // scanner notices the new package file but it's not completely copied yet.
+ // scanner notices the new package file but it's not completely
+ // cop
if (!copyToFile(dlStream, outStream)) {
- Log.e(TAG, "Couldn't copy " + pPackageURI + " to temp file.");
+ Slog.e(TAG, "Couldn't copy " + pPackageURI + " to temp file.");
return false;
}
}
} else {
- Log.e(TAG, "Package URI is not 'file:' or 'content:' - " + pPackageURI);
+ Slog.e(TAG, "Package URI is not 'file:' or 'content:' - " + pPackageURI);
return false;
}
return true;
@@ -434,12 +455,20 @@
boolean fitsOnInternal = false;
if (checkBoth || prefer == PREFER_INTERNAL) {
- fitsOnInternal = isUnderInternalThreshold(apkFile, threshold);
+ try {
+ fitsOnInternal = isUnderInternalThreshold(apkFile, threshold);
+ } catch (FileNotFoundException e) {
+ return PackageHelper.RECOMMEND_FAILED_INVALID_URI;
+ }
}
boolean fitsOnSd = false;
if (!emulated && (checkBoth || prefer == PREFER_EXTERNAL)) {
- fitsOnSd = isUnderExternalThreshold(apkFile);
+ try {
+ fitsOnSd = isUnderExternalThreshold(apkFile);
+ } catch (FileNotFoundException e) {
+ return PackageHelper.RECOMMEND_FAILED_INVALID_URI;
+ }
}
if (prefer == PREFER_INTERNAL) {
@@ -473,8 +502,20 @@
}
}
- private boolean isUnderInternalThreshold(File apkFile, long threshold) {
+ /**
+ * Measure a file to see if it fits within the free space threshold.
+ *
+ * @param apkFile file to check
+ * @param threshold byte threshold to compare against
+ * @return true if file fits under threshold
+ * @throws FileNotFoundException when APK does not exist
+ */
+ private boolean isUnderInternalThreshold(File apkFile, long threshold)
+ throws FileNotFoundException {
final long size = apkFile.length();
+ if (size == 0 && !apkFile.exists()) {
+ throw new FileNotFoundException();
+ }
final StatFs internalStats = new StatFs(Environment.getDataDirectory().getPath());
final long availInternalSize = (long) internalStats.getAvailableBlocks()
@@ -484,12 +525,19 @@
}
- private boolean isUnderExternalThreshold(File apkFile) {
+ /**
+ * Measure a file to see if it fits in the external free space.
+ *
+ * @param apkFile file to check
+ * @return true if file fits
+ * @throws IOException when file does not exist
+ */
+ private boolean isUnderExternalThreshold(File apkFile) throws FileNotFoundException {
if (Environment.isExternalStorageEmulated()) {
return false;
}
- final int sizeMb = calculateContainerSize(apkFile, null);
+ final int sizeMb = calculateContainerSize(apkFile);
final int availSdMb;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
@@ -508,10 +556,14 @@
*
* @param apkFile file from which to calculate size
* @return size in megabytes (2^20 bytes)
+ * @throws FileNotFoundException when file does not exist
*/
- private int calculateContainerSize(File apkFile, List<Pair<ZipEntry, String>> outFiles) {
+ private int calculateContainerSize(File apkFile) throws FileNotFoundException {
// Calculate size of container needed to hold base APK.
long sizeBytes = apkFile.length();
+ if (sizeBytes == 0 && !apkFile.exists()) {
+ throw new FileNotFoundException();
+ }
// Check all the native files that need to be copied and add that to the
// container size.
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index c61da4e..12dbdf9 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -67,7 +67,7 @@
<string name="def_desk_undock_sound" translatable="false">/system/media/audio/ui/Undock.ogg</string>
<string name="def_car_dock_sound" translatable="false">/system/media/audio/ui/Dock.ogg</string>
<string name="def_car_undock_sound" translatable="false">/system/media/audio/ui/Undock.ogg</string>
- <integer name="def_lockscreen_sounds_enabled">0</integer>
+ <integer name="def_lockscreen_sounds_enabled">1</integer>
<string name="def_lock_sound" translatable="false">/system/media/audio/ui/Lock.ogg</string>
<string name="def_unlock_sound" translatable="false">/system/media/audio/ui/Unlock.ogg</string>
@@ -129,4 +129,8 @@
<!-- Default for Settings.System.POINTER_SPEED -->
<integer name="def_pointer_speed">0</integer>
+ <!-- Default for DTMF tones enabled -->
+ <bool name="def_dtmf_tones_enabled">true</bool>
+ <!-- Default for UI touch sounds enabled -->
+ <bool name="def_sound_effects_enabled">true</bool>
</resources>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 7fecc9c..f527447 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -63,7 +63,7 @@
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
// is properly propagated through your change. Not doing so will result in a loss of user
// settings.
- private static final int DATABASE_VERSION = 68;
+ private static final int DATABASE_VERSION = 69;
private Context mContext;
@@ -862,34 +862,29 @@
}
if (upgradeVersion == 66) {
- // This upgrade makes sure that MODE_RINGER_STREAMS_AFFECTED and
- // NOTIFICATIONS_USE_RING_VOLUME settings are set according to device voice capability
- db.beginTransaction();
- try {
- int ringerModeAffectedStreams = (1 << AudioManager.STREAM_RING) |
- (1 << AudioManager.STREAM_NOTIFICATION) |
- (1 << AudioManager.STREAM_SYSTEM) |
- (1 << AudioManager.STREAM_SYSTEM_ENFORCED);
- if (!mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_voice_capable)) {
- ringerModeAffectedStreams |= (1 << AudioManager.STREAM_MUSIC);
-
- db.execSQL("DELETE FROM system WHERE name='"
- + Settings.System.NOTIFICATIONS_USE_RING_VOLUME + "'");
- db.execSQL("INSERT INTO system ('name', 'value') values ('"
- + Settings.System.NOTIFICATIONS_USE_RING_VOLUME + "', '1')");
- }
- db.execSQL("DELETE FROM system WHERE name='"
- + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'");
- db.execSQL("INSERT INTO system ('name', 'value') values ('"
- + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '"
- + String.valueOf(ringerModeAffectedStreams) + "')");
- db.setTransactionSuccessful();
- } finally {
- db.endTransaction();
- }
- upgradeVersion = 67;
- }
+ // This upgrade makes sure that MODE_RINGER_STREAMS_AFFECTED is set
+ // according to device voice capability
+ db.beginTransaction();
+ try {
+ int ringerModeAffectedStreams = (1 << AudioManager.STREAM_RING) |
+ (1 << AudioManager.STREAM_NOTIFICATION) |
+ (1 << AudioManager.STREAM_SYSTEM) |
+ (1 << AudioManager.STREAM_SYSTEM_ENFORCED);
+ if (!mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_voice_capable)) {
+ ringerModeAffectedStreams |= (1 << AudioManager.STREAM_MUSIC);
+ }
+ db.execSQL("DELETE FROM system WHERE name='"
+ + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'");
+ db.execSQL("INSERT INTO system ('name', 'value') values ('"
+ + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '"
+ + String.valueOf(ringerModeAffectedStreams) + "')");
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ }
+ upgradeVersion = 67;
+ }
if (upgradeVersion == 67) {
// New setting to enable touch exploration.
@@ -909,6 +904,26 @@
upgradeVersion = 68;
}
+ if (upgradeVersion == 68) {
+ // Enable all system sounds by default
+ db.beginTransaction();
+ SQLiteStatement stmt = null;
+ try {
+ stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)"
+ + " VALUES(?,?);");
+ loadDefaultHapticSettings(stmt);
+ loadUISoundEffectsSettings(stmt);
+ db.execSQL("DELETE FROM system WHERE name='"
+ + Settings.System.NOTIFICATIONS_USE_RING_VOLUME + "'");
+ stmt.close();
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ if (stmt != null)
+ stmt.close();
+ }
+ upgradeVersion = 69;
+ }
// *** Remember to update DATABASE_VERSION above!
@@ -1284,21 +1299,12 @@
loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 0);
loadSetting(stmt, Settings.Secure.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_AUTO);
-
+
loadUISoundEffectsSettings(stmt);
-
+
loadBooleanSetting(stmt, Settings.System.VIBRATE_IN_SILENT,
R.bool.def_vibrate_in_silent);
- // Set notification volume to follow ringer volume by default
- if (mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_voice_capable)) {
- loadBooleanSetting(stmt, Settings.System.NOTIFICATIONS_USE_RING_VOLUME,
- R.bool.def_notifications_use_ring_volume);
- } else {
- loadSetting(stmt, Settings.System.NOTIFICATIONS_USE_RING_VOLUME, "1");
- }
-
loadIntegerSetting(stmt, Settings.System.POINTER_SPEED,
R.integer.def_pointer_speed);
@@ -1312,6 +1318,12 @@
R.integer.def_power_sounds_enabled);
loadStringSetting(stmt, Settings.System.LOW_BATTERY_SOUND,
R.string.def_low_battery_sound);
+ loadBooleanSetting(stmt, Settings.System.DTMF_TONE_WHEN_DIALING,
+ R.bool.def_dtmf_tones_enabled);
+ loadBooleanSetting(stmt, Settings.System.SOUND_EFFECTS_ENABLED,
+ R.bool.def_sound_effects_enabled);
+ loadBooleanSetting(stmt, Settings.System.HAPTIC_FEEDBACK_ENABLED,
+ R.bool.def_haptic_feedback);
loadIntegerSetting(stmt, Settings.System.DOCK_SOUNDS_ENABLED,
R.integer.def_dock_sounds_enabled);
diff --git a/core/res/res/anim/priority_alert_enter.xml b/packages/SystemUI/res/anim/priority_alert_enter.xml
similarity index 100%
rename from core/res/res/anim/priority_alert_enter.xml
rename to packages/SystemUI/res/anim/priority_alert_enter.xml
diff --git a/core/res/res/anim/priority_alert_exit.xml b/packages/SystemUI/res/anim/priority_alert_exit.xml
similarity index 100%
rename from core/res/res/anim/priority_alert_exit.xml
rename to packages/SystemUI/res/anim/priority_alert_exit.xml
diff --git a/core/res/res/anim/status_bar_enter.xml b/packages/SystemUI/res/anim/status_bar_enter.xml
similarity index 87%
rename from core/res/res/anim/status_bar_enter.xml
rename to packages/SystemUI/res/anim/status_bar_enter.xml
index 1a1dc9b..f1c1301 100644
--- a/core/res/res/anim/status_bar_enter.xml
+++ b/packages/SystemUI/res/anim/status_bar_enter.xml
@@ -18,7 +18,8 @@
*/
-->
-<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@interpolator/decelerate_quad">
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:interpolator/decelerate_quad">
<translate android:fromYDelta="-75%" android:toYDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
diff --git a/core/res/res/anim/status_bar_exit.xml b/packages/SystemUI/res/anim/status_bar_exit.xml
similarity index 88%
rename from core/res/res/anim/status_bar_exit.xml
rename to packages/SystemUI/res/anim/status_bar_exit.xml
index 1f71090..46462e2 100644
--- a/core/res/res/anim/status_bar_exit.xml
+++ b/packages/SystemUI/res/anim/status_bar_exit.xml
@@ -18,7 +18,8 @@
*/
-->
-<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@interpolator/accelerate_quad">
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:interpolator/accelerate_quad">
<translate android:fromYDelta="0" android:toYDelta="-75%"
android:startOffset="100" android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_normal.png
new file mode 100644
index 0000000..d17aae6
--- /dev/null
+++ b/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_normal.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png
new file mode 100644
index 0000000..5a89d76
--- /dev/null
+++ b/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_normal.9.png
deleted file mode 100644
index b7ad39c..0000000
--- a/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_pressed.9.png
deleted file mode 100644
index c93bd8c..0000000
--- a/packages/SystemUI/res/drawable-hdpi/notify_panel_clock_bg_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/notify_panel_notify_bg.9.png b/packages/SystemUI/res/drawable-hdpi/notify_panel_notify_bg.9.png
deleted file mode 100644
index 1680887..0000000
--- a/packages/SystemUI/res/drawable-hdpi/notify_panel_notify_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_ticker_tile.png b/packages/SystemUI/res/drawable-hdpi/status_bar_ticker_tile.png
index 772f77d..3b826a9 100644
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_ticker_tile.png
+++ b/packages/SystemUI/res/drawable-hdpi/status_bar_ticker_tile.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_veto_normal.png b/packages/SystemUI/res/drawable-hdpi/status_bar_veto_normal.png
deleted file mode 100644
index 90b4baf..0000000
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_veto_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_veto_pressed.png b/packages/SystemUI/res/drawable-hdpi/status_bar_veto_pressed.png
deleted file mode 100644
index bc7034a..0000000
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_veto_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_normal.9.png
new file mode 100644
index 0000000..002a663
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_pressed.9.png
new file mode 100644
index 0000000..399d62e
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_clock_bg_pressed.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-hdpi/notify_panel_notify_bg.9.png b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_notify_bg.9.png
new file mode 100644
index 0000000..7385ecc
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-hdpi/notify_panel_notify_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_normal.9.png
new file mode 100644
index 0000000..5a880e75
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_pressed.9.png
new file mode 100644
index 0000000..489163d
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_clock_bg_pressed.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-mdpi/notify_panel_notify_bg.9.png b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_notify_bg.9.png
new file mode 100644
index 0000000..78900a1
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-mdpi/notify_panel_notify_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_normal.9.png
new file mode 100644
index 0000000..37e7791
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_pressed.9.png
new file mode 100644
index 0000000..66fa4a8
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_clock_bg_pressed.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_notify_bg.9.png b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_notify_bg.9.png
new file mode 100644
index 0000000..11e36ab
--- /dev/null
+++ b/packages/SystemUI/res/drawable-large-xhdpi/notify_panel_notify_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_normal.png
new file mode 100644
index 0000000..9490833
--- /dev/null
+++ b/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_normal.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png
new file mode 100644
index 0000000..0ff3efd
--- /dev/null
+++ b/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_normal.9.png
deleted file mode 100644
index 2dcb659..0000000
--- a/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_pressed.9.png
deleted file mode 100644
index e7ed68b..0000000
--- a/packages/SystemUI/res/drawable-mdpi/notify_panel_clock_bg_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/notify_panel_notify_bg.9.png b/packages/SystemUI/res/drawable-mdpi/notify_panel_notify_bg.9.png
deleted file mode 100644
index e346167..0000000
--- a/packages/SystemUI/res/drawable-mdpi/notify_panel_notify_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_ticker_tile.png b/packages/SystemUI/res/drawable-mdpi/status_bar_ticker_tile.png
index 0eb71d0..9999598 100644
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_ticker_tile.png
+++ b/packages/SystemUI/res/drawable-mdpi/status_bar_ticker_tile.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_veto_normal.png b/packages/SystemUI/res/drawable-mdpi/status_bar_veto_normal.png
deleted file mode 100644
index 90b4baf..0000000
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_veto_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_veto_pressed.png b/packages/SystemUI/res/drawable-mdpi/status_bar_veto_pressed.png
deleted file mode 100644
index bc7034a..0000000
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_veto_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_normal.png
new file mode 100644
index 0000000..6455423
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_normal.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png
new file mode 100644
index 0000000..bfa8bb4
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_ticker_tile.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_ticker_tile.png
new file mode 100644
index 0000000..6585ad6
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xhdpi/status_bar_ticker_tile.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/status_bar_veto.xml b/packages/SystemUI/res/drawable/ic_notify_clear.xml
similarity index 75%
rename from packages/SystemUI/res/drawable/status_bar_veto.xml
rename to packages/SystemUI/res/drawable/ic_notify_clear.xml
index 6e1b681..9c432b2 100644
--- a/packages/SystemUI/res/drawable/status_bar_veto.xml
+++ b/packages/SystemUI/res/drawable/ic_notify_clear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -15,7 +15,7 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/status_bar_veto_pressed" />
- <item android:drawable="@drawable/status_bar_veto_normal" />
+ <item android:state_pressed="true"
+ android:drawable="@drawable/ic_notify_clear_pressed" />
+ <item android:drawable="@drawable/ic_notify_clear_normal" />
</selector>
-
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar.xml b/packages/SystemUI/res/layout-sw600dp/status_bar.xml
index a204f17..55e57ab 100644
--- a/packages/SystemUI/res/layout-sw600dp/status_bar.xml
+++ b/packages/SystemUI/res/layout-sw600dp/status_bar.xml
@@ -35,6 +35,18 @@
android:clipChildren="false"
>
+ <ImageView android:id="@+id/clear_all_button"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_alignParentRight="true"
+ android:layout_marginTop="1dp"
+ android:layout_marginRight="20dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:src="@drawable/ic_notify_clear"
+ android:visibility="invisible"
+ />
+
<!-- notification icons & panel access -->
<include layout="@layout/status_bar_notification_area"
android:layout_width="wrap_content"
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
index 72519fb..9f11e08 100644
--- a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
+++ b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
@@ -22,7 +22,6 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="right"
- android:background="@drawable/notify_panel_bg_protect_tiled"
>
<RelativeLayout
@@ -31,12 +30,12 @@
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
- android:layout_marginBottom="-27dip"
+ android:layout_marginBottom="8dp"
>
<include layout="@layout/status_bar_notification_panel_title"
- android:layout_width="471dp"
- android:layout_height="465dp"
+ android:layout_width="478dp"
+ android:layout_height="224dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
/>
@@ -45,11 +44,11 @@
android:id="@+id/content_frame"
android:background="@drawable/notify_panel_notify_bg"
android:layout_height="wrap_content"
- android:layout_width="447dp"
+ android:layout_width="478dp"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
- android:layout_marginTop="352dp"
+ android:layout_marginTop="178dp"
>
<ScrollView
android:id="@+id/notification_scroller"
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 6670eff..0cfcae1 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -47,19 +47,13 @@
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="?android:attr/textColorSecondary"
/>
- <TextView android:id="@+id/clear_all_button"
+ <ImageView android:id="@+id/clear_all_button"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_gravity="center_vertical"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="1dp"
- android:textSize="14sp"
- android:textColor="#ff000000"
- android:text="@string/status_bar_clear_all_button"
- style="?android:attr/buttonStyle"
android:paddingLeft="15dp"
android:paddingRight="15dp"
- android:background="@drawable/btn_default_small"
+ android:src="@drawable/ic_notify_clear"
/>
</LinearLayout>
@@ -91,29 +85,6 @@
android:text="@string/status_bar_no_notifications_title"
/>
- <TextView android:id="@+id/ongoingTitle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/title_bar_portrait"
- android:paddingLeft="5dp"
- android:textAppearance="@style/TextAppearance.StatusBar.Title"
- android:text="@string/status_bar_ongoing_events_title"
- />
- <com.android.systemui.statusbar.policy.NotificationRowLayout
- android:id="@+id/ongoingItems"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- systemui:rowHeight="@dimen/notification_height"
- />
-
- <TextView android:id="@+id/latestTitle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/title_bar_portrait"
- android:paddingLeft="5dp"
- android:textAppearance="@style/TextAppearance.StatusBar.Title"
- android:text="@string/status_bar_latest_events_title"
- />
<com.android.systemui.statusbar.policy.NotificationRowLayout
android:id="@+id/latestItems"
android:layout_width="match_parent"
diff --git a/packages/SystemUI/res/layout/status_bar_notification_row.xml b/packages/SystemUI/res/layout/status_bar_notification_row.xml
index aff6a6e..ca584ab 100644
--- a/packages/SystemUI/res/layout/status_bar_notification_row.xml
+++ b/packages/SystemUI/res/layout/status_bar_notification_row.xml
@@ -3,15 +3,13 @@
android:layout_height="@dimen/notification_height"
>
- <ImageButton
+ <Button
android:id="@+id/veto"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="-80dp"
- android:src="@drawable/status_bar_veto"
- android:scaleType="center"
android:background="@null"
android:paddingRight="8dp"
android:paddingLeft="8dp"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 116d6a0..9fbce5f 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -83,7 +83,7 @@
<skip />
<!-- no translation found for screenshot_saving_toast (8592630119048713208) -->
<skip />
- <!-- no translation found for screenshot_failed_toast (655180965533683356) -->
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
<skip />
<!-- no translation found for usb_preference_title (6551050377388882787) -->
<skip />
@@ -99,6 +99,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -187,4 +189,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 740fb2a..46e57e2 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -83,7 +83,7 @@
<skip />
<!-- no translation found for screenshot_saving_toast (8592630119048713208) -->
<skip />
- <!-- no translation found for screenshot_failed_toast (655180965533683356) -->
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
<skip />
<!-- no translation found for usb_preference_title (6551050377388882787) -->
<skip />
@@ -99,6 +99,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -187,4 +189,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ar-large/strings.xml b/packages/SystemUI/res/values-ar-large/strings.xml
index 3f3ac96..e706028 100644
--- a/packages/SystemUI/res/values-ar-large/strings.xml
+++ b/packages/SystemUI/res/values-ar-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"محو الكل"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"لا يوجد اتصال بالإنترنت"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi متصل"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"جارٍ البحث عن GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"تم تعيين الموقع بواسطة GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"إيقاف التنبيهات"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"انقر هنا لإعادة تشغيل التنبيهات."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 5b1d492..9451ca6 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"محو"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"عدم الإزعاج"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"إظهار التنبيهات"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"إزالة"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"فحص"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ليس هناك أي تنبيهات"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"مستمر"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"التنبيهات"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"تكبير/تصغير التوافق"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"عند تصميم تطبيق لشاشة أصغر، سيظهر عنصر تحكم في التكبير/التصغير بجوار الساعة."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"تم حفظ لقطة الشاشة إلى المعرض."</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"تعذر حفظ لقطة الشاشة."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"خيارات نقل الملفات عبر USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"تحميل كمشغل وسائط (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"تحميل ككاميرا (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"تثبيت تطبيق Android File Transfer لـ Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"رجوع"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"الصفحة الرئيسية"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"القائمة"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"زر تبديل طريقة الإدخال."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"زر تكبير/تصغير للتوافق."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"استخدام التكبير/التصغير لتحويل شاشة صغيرة إلى شاشة أكبر"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"تم توصيل البلوتوث."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"تم فصل البلوتوث."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"ليست هناك بطارية مركبة."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"إشارة البطارية تتكون من شريط واحد."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"إشارة البطارية تتكون من شريطين."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"إشارة البطارية تتكون من ثلاثة أشرطة."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"إشارة البطارية كاملة."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"ليست هناك إشارة بالهاتف."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"إشارة الهاتف تتكون من شريط واحد."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"إشارة الهاتف تتكون من شريطين."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"إشارة الهاتف تتكون من ثلاثة أشرطة."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"إشارة الهاتف كاملة."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"لا تتوفر بيانات."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"إشارة البيانات تتكون من شريط واحد."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"إشارة البيانات تتكون من شريطين."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"إشارة البيانات تتكون من ثلاثة أشرطة."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"إشارة البيانات كاملة."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"ليست هناك إشارة WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"إشارة WiFi تتكون من شريط واحد."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"إشارة WiFi تتكون من شريطين."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"إشارة WiFi تتكون من ثلاثة أشرطة."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"إشارة WiFi كاملة."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"ليست هناك بطاقة SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ربط البلوتوث."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"وضع الطائرة."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"مستوى البطارية <xliff:g id="NUMBER">%d</xliff:g> في المائة."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"زر الإعدادات."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"زر التنبيهات."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"إزالة التنبيه."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"تم تمكين GPS."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"الحصول على GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"تم تمكين المبرقة الكاتبة."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"رنين مع الاهتزاز."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"رنين صامت."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-bg-large/strings.xml b/packages/SystemUI/res/values-bg-large/strings.xml
index 5563be4..5af2f99 100644
--- a/packages/SystemUI/res/values-bg-large/strings.xml
+++ b/packages/SystemUI/res/values-bg-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Изчистване"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Няма връзка с интернет"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi: има връзка"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Търси се GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Местоположението е зададено от GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Известията са изключени"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Докоснете тук, за да включите отново известията."</string>
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 4890c0d..6e23d5f 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Промяна на мащаба за съвместимост"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Когато дадено приложение е създадено за по-малък екран, до часовника ще се покаже управление за промяна на мащаба."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Екранната снимка е запазена в галерията"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Екранната снимка не можа да бъде запазена"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Опции за пренос на файлове чрез USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Свързване като медиен плейър (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Свързване като камера (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ca-large/strings.xml b/packages/SystemUI/res/values-ca-large/strings.xml
index 876dae2..d78e758 100644
--- a/packages/SystemUI/res/values-ca-large/strings.xml
+++ b/packages/SystemUI/res/values-ca-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Esborra-ho"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"No hi ha connexió a Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi: connectada"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"S\'està cercant un GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"S\'ha establert la ubicació per GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificacions desactivades"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Pica aquí per tornar a activar les notificacions."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 417987c..3be5349 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom de compatibilitat"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Quan una aplicació s\'hagi dissenyat per a una pantalla més petita, apareixerà un control de zoom al costat del rellotge."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Captura de pantalla desada a la galeria"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"No es pot desar la captura de pantalla"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opcions transf. fitxers USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Munta com a reproductor multimèdia (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Munta com a càmera (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-cs-large/strings.xml b/packages/SystemUI/res/values-cs-large/strings.xml
index 0ec142e..ef575da 100644
--- a/packages/SystemUI/res/values-cs-large/strings.xml
+++ b/packages/SystemUI/res/values-cs-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Smazat vše"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Bez internetu"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi: připojeno"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Vyhledávání satelitů GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Poloha nastavena pomocí GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Oznámení jsou vypnuta"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Chcete-li oznámení znovu zapnout, klepněte sem."</string>
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 7544876..115abd5 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilní přiblížení"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Pokud je aplikace navržena pro menší obrazovku, zobrazí se vedle hodin ovládací prvek přiblížení."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Snímek obrazovky byl uložen do Galerie"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Snímek obrazovky se nepodařilo uložit"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Možnosti přenosu souborů pomocí rozhraní USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Připojit jako přehrávač médií (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Připojit jako fotoaparát (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-da-large/strings.xml b/packages/SystemUI/res/values-da-large/strings.xml
index 116751e..eb2bc94 100644
--- a/packages/SystemUI/res/values-da-large/strings.xml
+++ b/packages/SystemUI/res/values-da-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Ryd alt"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Ingen internetforb."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi er forbundet"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Søger efter GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Placeringen er angivet ved hjælp af GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Meddelelser: fra"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tryk her for at slå meddelelser til igen."</string>
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 89c6b64..ea67460 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ryd"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Forstyr ikke"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Vis meddelelser"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Fjern"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspicer"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ingen meddelelser"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"I gang"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meddelelser"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilitetszoom"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Når en app er udviklet til en mindre skærm, vises der en zoomfunktion ved uret."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Skærmbilledet gemmes i Galleri"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Skærmbilledet kunne ikke gemmes"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Muligheder for USB-filoverførsel"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Isæt som en medieafspiller (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Isæt som et kamera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Installer appen Android File Transfer Manager til Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Tilbage"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Startside"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Skift indtastningsmetode-knappen."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Knap for kompatibilitetszoom."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoom mindre til større skærm."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth tilsluttet."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth afbrudt."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Intet batteri."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Batteri en bjælke."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Batteri to bjælker."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Batteri tre bjælker."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Batteri fuldt."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Ingen telefon."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon en bjælke."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon to bjælker."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon tre bjælker."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Telefonsignal fuldt."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Ingen data."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data en bjælke."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data to bjælker."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tre bjælker."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasignal fuldt."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Ingen Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi en bjælke."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi to bjælker."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi tre bjælker."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signal fuldt."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Intet SIM-kort."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-netdeling."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flytilstand."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteri <xliff:g id="NUMBER">%d</xliff:g> procent."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Knappen Indstillinger."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Knappen Meddelelser."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Fjern meddelelse."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS aktiveret."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS samler data."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter aktiveret."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Ringervibration."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ringeren er lydløs."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-de-large/strings.xml b/packages/SystemUI/res/values-de-large/strings.xml
index 5f8c1d8..68d80a6 100644
--- a/packages/SystemUI/res/values-de-large/strings.xml
+++ b/packages/SystemUI/res/values-de-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Löschen"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Keine Internetverbindung"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"WLAN verbunden"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"GPS wird gesucht..."</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Standort durch GPS festgelegt"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Benachrichtigungen aus"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tippen Sie hier, um die Benachrichtigungen wieder zu aktivieren."</string>
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index dc68c22..cc06c26 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilitätszoom"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Wenn eine App für einen kleineren Bildschirm ausgelegt ist, wird ein Zoom-Steuerelement neben der Uhr angezeigt."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Screenshot in Galerie gespeichert"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Screenshot konnte nicht gespeichert werden."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB-Dateiübertragungsoptionen"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Als Medienplayer (MTP) bereitstellen"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Als Kamera (PTP) bereitstellen"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-el-large/strings.xml b/packages/SystemUI/res/values-el-large/strings.xml
index a4f4ac2..57d4b1e 100644
--- a/packages/SystemUI/res/values-el-large/strings.xml
+++ b/packages/SystemUI/res/values-el-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Εκκαθ. όλων"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Χωρ. σύνδ. στο Διαδ."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi συνδεδεμένο"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Αναζήτηση για GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Ρύθμιση τοποθεσίας με GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Ειδοποιήσεις ανενεργές"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Πατήστε εδώ για να ενεργοποιήσετε ξανά τις ειδοποιήσεις."</string>
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 29d84cb..8609c24 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Εκκαθάριση"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Μην ενοχλείτε"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Εμφάνιση ειδοποιήσεων"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Κατάργηση"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Επιθεώρηση"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Δεν υπάρχουν ειδοποιήσεις"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Εν εξελίξει"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ειδοποιήσεις"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Ζουμ για συμβατότητα"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Όταν μια εφαρμογή έχει σχεδιαστεί για προβολή σε μικρότερη οθόνη, δίπλα από το ρολόι θα εμφανιστεί ένα στοιχείο ελέγχου ζουμ."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Το στιγμιότυπο οθόνης αποθηκεύτηκε στη συλλογή"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Δεν ήταν δυνατή η αποθήκευση του στιγμιοτύπου οθόνης"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Επιλογές μεταφοράς αρχείων μέσω USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Προσάρτηση ως μονάδας αναπαραγωγής μέσων (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Προσάρτηση ως κάμερας (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Εγκατάσταση της εφαρμογής μεταφοράς αρχείων Android για Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Πίσω"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Αρχική σελίδα"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Μενού"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Κουμπί εναλλαγής μεθόδου εισόδου"</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Κουμπί ζουμ συμβατότητας."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Ζουμ από μικρότερη σε μεγαλύτερη οθόνη."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Το Bluetooth είναι συνδεδεμένο."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Το Bluetooth αποσυνδέθηκε."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Δεν υπάρχει μπαταρία."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Μία γραμμή μπαταρίας."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Δύο γραμμές μπαταρίας."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Τρεις γραμμές μπαταρίας."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Πλήρης μπαταρία."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Δεν υπάρχει τηλέφωνο."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Μία γραμμή τηλεφώνου."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Δύο γραμμές τηλεφώνου."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Τρεις γραμμές μπαταρίας."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Σήμα τηλεφώνου πλήρες."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Δεν υπάρχουν δεδομένα."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Μία γραμμή δεδομένων."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Δύο γραμμές δεδομένων."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Τρεις γραμμές δεδομένων."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Πλήρες σήμα δεδομένων."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Δεν υπάρχει WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Μία γραμμή WiFi."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Δύο γραμμές WiFi."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Τρεις γραμμές WiFi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Πλήρες σήμα WiFi."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Δεν υπάρχει SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Σύνδεση Bluetooth"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Λειτουργία πτήσης."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Μπαταρία <xliff:g id="NUMBER">%d</xliff:g> %."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Κουμπί ρυθμίσεων."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Κουμπί ειδοοποιήσεων"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Κατάργηση ειδοποίησης."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"Το GPS ενεργοποιήθηκε."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Ανάκτηση GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Το TeleTypewriter ενεργοποιήθηκε."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Δόνηση ειδοποίησης ήχου"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ήχος ειδοποίησης: Αθόρυβο."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB-large/strings.xml b/packages/SystemUI/res/values-en-rGB-large/strings.xml
index aec6899..5f7df68 100644
--- a/packages/SystemUI/res/values-en-rGB-large/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Clear all"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"No Internet connection"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi connected"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Searching for GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Location set by GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notifications off"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tap here to turn notifications back on."</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 2d8c737..8e8734a 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Clear"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Do not disturb"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Show notifications"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Remove"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspect"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No notifications"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ongoing"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Compatibility Zoom"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"When an app was designed for a smaller screen, a zoom control will appear by the clock."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Screenshot saved to Gallery"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Could not save screenshot"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB file transfer options"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Mount as a media player (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Mount as a camera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Install Android File Transfer application for Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Back"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Switch input method button."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Compatibility zoom button."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoom smaller to larger screen."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth connected."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth disconnected."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"No battery."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Battery one bar."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Battery two bars."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Battery three bars."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Battery full."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"No phone."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Phone one bar."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Phone two bars."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Phone three bars."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Phone signal full."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"No data."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data one bar."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data two bars."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data three bars."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Data signal full."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"No Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi one bar."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi two bars."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi three bars."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi signal full."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"No SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Airplane mode"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Battery <xliff:g id="NUMBER">%d</xliff:g> per cent."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Settings button."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Notifications button."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Remove notification."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS enabled."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS acquiring."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter enabled."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Ringer vibrate."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ringer silent."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-es-large/strings.xml b/packages/SystemUI/res/values-es-large/strings.xml
index ba5d28a..31a82e5 100644
--- a/packages/SystemUI/res/values-es-large/strings.xml
+++ b/packages/SystemUI/res/values-es-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Borrar todo"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Sin conexión a Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Con conexión Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Buscando GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Ubicación definida por GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificaciones desactivadas"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Toca aquí para volver a activar las notificaciones."</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS-large/strings.xml b/packages/SystemUI/res/values-es-rUS-large/strings.xml
index 0969d1d..3f96e87 100644
--- a/packages/SystemUI/res/values-es-rUS-large/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Borrar todas"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Sin conexión a Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi conectado"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Buscando GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"La ubicación se estableció por GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificaciones desactivadas"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Toca aquí para volver a activar las notificaciones."</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 7ce69b6..224eec8 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"No molestar"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Mostrar notificaciones"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Eliminar"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspeccionar"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No hay notificaciones"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Continuo"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificaciones"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom de compatibilidad"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Cuando una aplicación fue diseñada para una pantalla más pequeña, aparece un control de zoom junto al reloj."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Captura de pantalla guardada en la Galería"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"No se pudo guardar la captura de pantalla."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opciones de transferencia de archivos por USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Activar como reproductor de medios (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Activar como cámara (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Instalar la aplicación para transferir archivos de Android para Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Atrás"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Página principal"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menú"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Botón Cambiar método de entrada"</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Botón de zoom de compatibilidad"</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoom de pantalla más pequeña a más grande"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth conectado"</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth desconectado"</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"No hay batería."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Una barra de batería"</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Dos barras de batería"</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Tres barras de batería"</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Batería completa"</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"No hay teléfono."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Una barra de teléfono"</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Dos barras de teléfono"</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Tres barras de teléfono"</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Señal de teléfono completa"</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"No hay datos."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Una barra de datos"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dos barras de datos"</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tres barras de datos"</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Señal de datos completa"</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"No hay WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Una barra de WiFi"</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Dos barras de WiFi"</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Tres barras de WiFi"</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Señal de WiFi completa"</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"No hay tarjeta SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Anclaje a red Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avión"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Batería <xliff:g id="NUMBER">%d</xliff:g> por ciento"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Botón de configuración"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Botón de notificaciones"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Eliminar notificación"</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS habilitado"</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Adquisición de GPS"</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter habilitado"</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Timbre vibrar"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Timbre silencio"</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 1ee4fed..8149989 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom de compatibilidad"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Si la aplicación se ha diseñado para una pantalla más pequeña, aparecerá un control de zoom junto al reloj."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Captura de pantalla guardada en la galería"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"No se ha podido guardar la captura de pantalla."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opciones de transferencia de archivos por USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Activar como reproductor de medios (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Activar como cámara (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fa-large/strings.xml b/packages/SystemUI/res/values-fa-large/strings.xml
index 25a54dc..3d01dde 100644
--- a/packages/SystemUI/res/values-fa-large/strings.xml
+++ b/packages/SystemUI/res/values-fa-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"پاک کردن همه موارد"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"اتصال اینترنتی وجود ندارد"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi متصل شد"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"جستجو برای GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"مکان تنظیم شده توسط GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"اعلان ها خاموش"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"برای روشن کردن مجدد اعلان ها، اینجا را ضربه بزنید."</string>
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index dbdcbb6..e9a3a82 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"بزرگنمایی سازگاری"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"اگر یک برنامه برای صفحه کوچک تری طراحی شده باشد، یک کنترل بزرگنمایی توسط ساعت نشان داده می شود."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"تصویر از صفحه در گالری ذخیره شد"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"ذخیره تصویر صفحه ممکن نیست"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"گزینه های انتقال فایل USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"نصب به عنوان دستگاه پخش رسانه (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"تصب به عنوان دوربین (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fi-large/strings.xml b/packages/SystemUI/res/values-fi-large/strings.xml
index 1f87ef5..20efe2c 100644
--- a/packages/SystemUI/res/values-fi-large/strings.xml
+++ b/packages/SystemUI/res/values-fi-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Tyhjennä kaikki"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Ei internetyhteyttä"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wifi yhdistetty"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Haetaan GPS-yhteyttä"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Sijainti määritetty GPS:n avulla"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Ilmoitukset pois käytöstä"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Ota ilmoitukset uudelleen käyttöön napauttamalla tätä."</string>
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index bef79a5..02c7986 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Tyhjennä"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Varattu"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Näytä ilmoitukset"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Poista"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Tarkasta"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ei ilmoituksia"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Käynnissä olevat"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ilmoitukset"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Yhteensopivuustilan zoomaus"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Jos sovellus on suunniteltu pienemmälle näytölle, kellon viereen tulee näkyviin zoomaussäädin."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Kuvakaappaus on tallennettu galleriaan"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Kuvakaappausta ei voitu tallentaa"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB-tiedostonsiirtoasetukset"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Käytä mediasoittimena (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Käytä kamerana (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Asenna Android File Transfer -sovellus Macille"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Takaisin"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Aloitusruutu"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Valikko"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Vaihda syöttötapapainiketta."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Yhteensopivuus-zoomauspainike."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoomaa pienemmältä suuremmalle ruudulle."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth yhdistetty."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth-yhteys katkaistu."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Ei akkua."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Akun virta - yksi palkki."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Akun virta - kaksi palkkia."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Akun virta - kolme palkkia."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Akku täynnä."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Katvealueella."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Puhelinverkkosignaali - yksi palkki."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Puhelinverkkosignaali - kaksi palkkia."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Puhelinverkkosignaali - kolme palkkia."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Vahva puhelinverkkosignaali."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Ei tietoja."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Datasignaali - yksi palkki"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Datasignaali - kaksi palkkia"</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Datasignaali - kolme palkkia"</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Vahva datasignaali."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Ei wifi-yhteyttä."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wifi-signaali - yksi palkki."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wifi-signaali - kaksi palkkia."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wifi-signaali - kolme palkkia."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Vahva wifi-signaali."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3,5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wifi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ei SIM-korttia."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internetyhteyden jakaminen Bluetoothin kautta"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lentokonetila"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Akun virta <xliff:g id="NUMBER">%d</xliff:g> prosenttia."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Asetukset-painike."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Ilmoitukset-painike."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Poista ilmoitus."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS käytössä."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Haetaan GPS-signaalia."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter käytössä."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Soittoääni: värinä."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Soittoääni: äänetön."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr-large/strings.xml b/packages/SystemUI/res/values-fr-large/strings.xml
index f8dd55e..ee130df 100644
--- a/packages/SystemUI/res/values-fr-large/strings.xml
+++ b/packages/SystemUI/res/values-fr-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Tout effacer"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Aucune connexion"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Connecté au Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Recherche de GPS en cours"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Position définie par GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notifications désactivées"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Appuyez ici pour réactiver les notifications."</string>
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 9815664..3669340 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom de compatibilité"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Si une application a été conçue pour un écran plus petit, une commande de zoom s\'affiche à côté de l\'horloge."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Capture d\'écran enregistrée dans la galerie."</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Impossible d\'enregistrer la capture d\'écran."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Options transfert fichiers USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Installer en tant que lecteur multimédia (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Installer en tant qu\'appareil photo (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hr-large/strings.xml b/packages/SystemUI/res/values-hr-large/strings.xml
index f3a59b2..5033dab 100644
--- a/packages/SystemUI/res/values-hr-large/strings.xml
+++ b/packages/SystemUI/res/values-hr-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Obriši sve"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Nema internetske veze"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi povezan"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Traženje GPS-a"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokaciju utvrdio GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Obavijesti isključene"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Dotaknite ovdje da biste ponovo uključili obavijesti."</string>
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 45d2edc..b5b033c 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilni zum"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Kada je aplikacija dizajnirana za manji zaslon, kontrole zumiranja prikazuju se pored sata."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Snimak zaslona spremljen u Galeriju"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Ne mogu spremiti snimak zaslona"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opcije USB prijenosa datoteka"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Učitaj kao media player (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Učitaj kao fotoaparat (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hu-large/strings.xml b/packages/SystemUI/res/values-hu-large/strings.xml
index 1d2fd66..d9493cf 100644
--- a/packages/SystemUI/res/values-hu-large/strings.xml
+++ b/packages/SystemUI/res/values-hu-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Össz.törl."</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Nincs internetkapcs."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi csatlakozva"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"GPS keresése"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"A GPS beállította a helyet"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Értesítések kikapcsolva"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Itt érintse meg az értesítések bekapcsolásához."</string>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 468b875..cae8707 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Törlés"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Ne zavarjanak"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Értesítések megjelenítése"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Eltávolítás"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Vizsgálat"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nincs értesítés"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Folyamatban van"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Értesítések"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilitás -- nagyítás/kicsinyítés"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Ha egy alkalmazást kisebb képernyőre terveztek, akkor a nagyítás/kicsinyítés vezérlője az óra mellett jelenik meg."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Képernyőkép mentve a galériába"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Nem sikerült menteni a képernyőképet"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB-fájlátvitel beállításai"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Csatlakoztatás médialejátszóként (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Csatlakoztatás kameraként (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Android fájlátviteli alkalmazás telepítése Machez"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Vissza"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Főoldal"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menü"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Beviteli mód váltása gomb."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Kompatibilitási zoom gomb."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Kicsinyítsen a nagyobb képernyőhöz."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth csatlakoztatva."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth leválasztva."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Nincs akkumulátor."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Akkumulátor egy sáv."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Akkumulátor két sáv."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Akkumulátor három sáv."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Akkumulátor feltöltve."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Nincs telefon."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon egy sáv."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon két sáv."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon három sáv."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Telefonjel megtelt."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Nincsenek adatok."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Adat egy sáv."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Adatok két sáv."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Adatok három sáv."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Adatjel megtelt."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Nincs Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi egy sáv."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi két sáv."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi három sáv."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi jel megtelt."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nincs SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth megosztása."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Repülőgép üzemmód."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Akkumulátor <xliff:g id="NUMBER">%d</xliff:g> százalék."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Beállítások gomb."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Értesítések gomb."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Értesítés eltávolítása."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS engedélyezve."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS lekérése."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Távgépíró engedélyezve."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Csengő rezeg."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Csengő néma."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-in-large/strings.xml b/packages/SystemUI/res/values-in-large/strings.xml
index ac58c58..e09a646 100644
--- a/packages/SystemUI/res/values-in-large/strings.xml
+++ b/packages/SystemUI/res/values-in-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Hapus semua"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Tidak ada sambungan internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi tersambung"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Menelusuri GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokasi yang disetel oleh GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Pemberitahuan mati"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Ketuk di sini untuk menghidupkan pemberitahuan lagi."</string>
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 9da6e73..957c7e9 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Bersihkan"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Jangan ganggu"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Tampilkan pemberitahuan"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Hapus"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Memeriksa"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Tidak ada pemberitahuan"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Berkelanjutan"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Pemberitahuan"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom Kompatibilitas"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Saat apl dirancang untuk layar yang lebih kecil, kontrol zoom akan tampil di dekat jam."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Tangkapan layar disimpan ke Galeri"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Tidak dapat menyimpan tangkapan layar"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opsi transfer berkas USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Pasang sebagai pemutar media (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Pasang sebagai kamera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Pasang aplikasi Transfer Berkas Android untuk Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Kembali"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Beranda"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Tombol beralih metode masukan."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Tombol perbesar/perkecil kompatibilitas."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Perkecil untuk layar yang lebih besar."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth tersambung."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth terputus."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Tidak ada baterai."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Baterai satu batang."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Baterai dua batang."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Baterai tiga batang."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Baterai penuh."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Tidak dapat melakukan panggilan."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Ponsel satu batang."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Ponsel dua batang."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Ponsel tiga batang."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Sinyal ponsel penuh."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Tidak ada data yang diterima."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data satu batang."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data dua batang."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tiga batang."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinyal data penuh."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Tidak ada WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wifi satu batang."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"WiFi dua batang."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi tiga batang."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinyal WiFi penuh."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Tidak ada SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Penambatan bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode pesawat."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterai <xliff:g id="NUMBER">%d</xliff:g> persen."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Tombol setelan."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Tombol pemberitahuan."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Hapus pemberitahuan."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS diaktifkan."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Memperoleh GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter diaktifkan."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Pendering bergetar."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Pendering senyap."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-it-large/strings.xml b/packages/SystemUI/res/values-it-large/strings.xml
index 18ccd07..7a2a9bc 100644
--- a/packages/SystemUI/res/values-it-large/strings.xml
+++ b/packages/SystemUI/res/values-it-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Cancella"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Nessuna connessione"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi connesso"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Ricerca del GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Posizione stabilita dal GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notifiche disattivate"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tocca qui per riattivare le notifiche."</string>
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 476f190..1a5404e 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Cancella"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Non disturbare"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Mostra notifiche"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Rimuovi"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Esamina"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nessuna notifica"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"In corso"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifiche"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom compatibilità"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Se un\'applicazione è stata progettata per uno schermo più piccolo, accanto all\'orologio viene visualizzato un controllo dello zoom."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Screenshot salvato nella galleria"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Impossibile salvare lo screenshot"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opzioni trasferimento file USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Monta come lettore multimediale (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Monta come videocamera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Installa l\'applicazione Android File Transfer per Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Indietro"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Pulsante per cambiare metodo di immissione."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Pulsante zoom compatibilità."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoom inferiore per schermo più grande."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth collegato."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth scollegato."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Nessuna batteria."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Batteria: una barra."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Batteria: due barre."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Batteria: tre barre."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Batteria carica."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Nessun telefono."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefono: una barra."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefono: due barre."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefono: tre barre."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Massimo segnale telefonico."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Nessun dato presente."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Dati: una barra."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dati: due barre."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dati: tre barre."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Massimo segnale dati."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Nessun segnale Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi: una barra."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi: due barre."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi: tre barre."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Massimo segnale Wi-Fi."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nessuna SIM presente."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Tethering Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modalità aereo."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteria: <xliff:g id="NUMBER">%d</xliff:g>%."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Pulsante Impostazioni."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Pulsante per le notifiche."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Rimuovi la notifica."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS abilitato."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Acquisizione GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Telescrivente abilitata."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Suoneria vibrazione."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Suoneria silenziosa."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-iw-large/strings.xml b/packages/SystemUI/res/values-iw-large/strings.xml
index 4aba093..0c288c3 100644
--- a/packages/SystemUI/res/values-iw-large/strings.xml
+++ b/packages/SystemUI/res/values-iw-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"נקה הכל"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"אין חיבור לאינטרנט"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi מחובר"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"מחפש GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"מיקום מוגדר על ידי GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"מצב התראות כבוי"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"הקש כאן כדי להפעיל מחדש את ההתראות."</string>
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 4552f23..92293abb 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"שינוי מרחק מתצוגה לתאימות"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"כאשר יישום מיועד למסך קטן יותר, פקד של מרחק מתצוגה יופיע ליד השעון."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"צילום המסך נשמר בגלריה"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"לא ניתן לשמור את צילום המסך"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"אפשרויות העברת קבצים ב-USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"טען כנגן מדיה (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"טען כמצלמה (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ja-large/strings.xml b/packages/SystemUI/res/values-ja-large/strings.xml
index 087320e..f38b84c 100644
--- a/packages/SystemUI/res/values-ja-large/strings.xml
+++ b/packages/SystemUI/res/values-ja-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"すべて消去"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"インターネット未接続"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi接続済み"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"GPSで検索中"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"GPSにより現在地が設定されました"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"通知OFF"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"通知を再度ONにするにはここをタップします。"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index abee692..1446099 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"通知を消去"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"通知を非表示"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"通知を表示"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"削除"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"検査"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"通知なし"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"実行中"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string>
@@ -62,103 +60,83 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"互換ズーム"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"より小型の画面向けのアプリの場合は、ズームコントロールが時計のそばに表示されます。"</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"スクリーンショットがギャラリーに保存されました"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"スクリーンショットを保存できませんでした"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USBファイル転送オプション"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"メディアプレーヤー(MTP)としてマウント"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"カメラ(PTP)としてマウント"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Mac版Android File Transferアプリのインストール"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"戻る"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"ホーム"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"メニュー"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"入力方法の切り替えボタン。"</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"互換ズームボタン。"</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"小さい画面から大きい画面にズームします。"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetoothに接続済みです。"</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetoothが切断されました。"</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"電池: なし"</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"電池: レベル1"</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"電池: レベル2"</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"電池: レベル3"</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"電池: フル"</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"電波状態: なし"</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"電波状態: レベル1"</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"電波状態: レベル2"</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"電波状態: レベル3"</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"電波状態: フル"</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"データ信号: なし"</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"データ信号: レベル1"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"データ信号: レベル2"</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"データ信号: レベル3"</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"データ信号: フル"</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Wi-Fi信号: なし"</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi信号: レベル1"</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi信号: レベル2"</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi信号: レベル3"</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi信号: フル"</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"EDGE"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIMがありません。"</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetoothテザリング。"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"機内モード。"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"電池: <xliff:g id="NUMBER">%d</xliff:g>パーセント"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"設定ボタン。"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"通知ボタン。"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"通知を削除します。"</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPSが有効です。"</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS取得中です。"</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"テレタイプライターが有効です。"</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"バイブレーション着信。"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"マナーモード着信。"</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
- <skip />
+
+ <!-- in Japanese the day of week should follow the date -->
+ <string name="status_bar_date_formatter">%2$s\n%1$s</string>
+
</resources>
diff --git a/packages/SystemUI/res/values-ko-large/strings.xml b/packages/SystemUI/res/values-ko-large/strings.xml
index 97c4467..fb5efd7 100644
--- a/packages/SystemUI/res/values-ko-large/strings.xml
+++ b/packages/SystemUI/res/values-ko-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"모두 지우기"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"인터넷에 연결되지 않음"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi 연결됨"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"GPS 검색 중"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"GPS에서 위치 설정"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"알림 사용 안함"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"알림을 다시 사용하려면 여기를 터치하세요."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index c34f0e4..8abc288 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"지우기"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"응답 거부"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"알림 표시"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"삭제"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"조사"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"알림 없음"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"진행 중"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"알림"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"호환성 확대/축소"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"앱이 작은 화면에 맞도록 설계된 경우 시계 옆에 확대/축소 컨트롤이 표시됩니다."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"캡쳐화면이 갤러리에 저장되었습니다."</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"캡쳐화면을 저장하지 못했습니다."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB 파일 전송 옵션"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"미디어 플레이어로 마운트(MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"카메라로 마운트(PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Mac용 Android 파일 전송 애플리케이션 설치"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"뒤로"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"홈"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"메뉴"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"입력 방법 버튼을 전환합니다."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"호환성 확대/축소 버튼"</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"작은 화면을 큰 화면으로 확대합니다."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"블루투스가 연결되었습니다."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"블루투스 연결이 끊어졌습니다."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"배터리 없음"</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"배터리 막대가 하나입니다."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"배터리 막대가 두 개입니다."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"배터리 막대가 세 개입니다."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"배터리 충전이 완료되었습니다."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"휴대전화 없음"</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"휴대전화 신호 막대가 하나입니다."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"휴대전화 신호 막대가 두 개입니다."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"휴대전화 신호 막대가 세 개입니다."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"휴대전화의 신호가 강합니다."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"데이터가 없습니다."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"데이터 신호 막대가 하나입니다."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"데이터 신호 막대가 두 개입니다."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"데이터 신호 막대가 세 개입니다."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"데이터 신호가 강합니다."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"WiFi 없음"</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"WiFi 신호 막대가 하나입니다."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"WiFi 신호 막대가 두 개입니다."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi 신호 막대가 세 개입니다."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 신호가 강합니다."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM 없음"</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"블루투스 테더링"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"비행기 모드"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"배터리 <xliff:g id="NUMBER">%d</xliff:g>퍼센트"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"설정 버튼"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"알림 버튼"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"알림을 삭제합니다."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS를 사용합니다."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS 가져오는 중"</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"전신 타자기 사용"</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"벨소리 장치 진동"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"벨소리 장치 무음"</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-lt-large/strings.xml b/packages/SystemUI/res/values-lt-large/strings.xml
index 73906ea..fad3f18 100644
--- a/packages/SystemUI/res/values-lt-large/strings.xml
+++ b/packages/SystemUI/res/values-lt-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Išv. viską"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Nėra interneto r."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Pris. prie „Wi-Fi“"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Ieškoma GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"GPS nustatyta vieta"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Pranešimai išjungti"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Jei norite įjungti pranešimus, palieskite čia."</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 040c74d..aae9a98 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Suderinamumo mastelio keitimas"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Kai programa bus pritaikyta mažesniam ekranui, mastelio keitimo valdiklis bus parodytas šalia laikrodžio."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Ekrano kopija išsaugota galerijoje"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Nepavyko išsaugoti ekrano kopijos"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB failo perdavimo parinktys"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Įmontuoti kaip medijos grotuvą (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Įmontuoti kaip fotoaparatą (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-lv-large/strings.xml b/packages/SystemUI/res/values-lv-large/strings.xml
index 24c8a45..750168c 100644
--- a/packages/SystemUI/res/values-lv-large/strings.xml
+++ b/packages/SystemUI/res/values-lv-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Notīr.visu"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Nav interneta sav."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Izv. sav. ar Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Notiek GPS meklēšana..."</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"GPS iestatītā atrašanās vieta"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Paziņojumi ir izslēgti."</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Pieskarieties šeit, lai atkal ieslēgtu paziņojumus."</string>
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 4c9b4b4..6a42ba1 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Notīrīt"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Netraucēt"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Rādīt paziņojumus"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Noņemšana"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Apskatīt"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nav paziņojumu"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Notiekošs"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Paziņojumi"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Saderības tālummaiņa"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Ja lietotne ir paredzēta mazākam ekrānam, blakus pulkstenim tiks parādīta tālummaiņas vadīkla."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Ekrānuzņēmums ir saglabāts galerijā."</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Nevarēja saglabāt ekrānuzņēmumu."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB failu pārsūtīšanas opcijas"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Pievienot kā multivides atskaņotāju (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Pievienot kā kameru (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Instalēt Android failu pārsūt. liet. Mac datoram"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Atpakaļ"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Sākums"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Izvēlne"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Ievades metodes maiņas poga"</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Saderības tālummaiņas poga"</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Veikt tālummaiņu no mazāka ekrāna uz lielāku"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth savienojums ir izveidots."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth savienojums ir pārtraukts."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Nav akumulatora."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Akumulators: viena josla"</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Akumulators: divas joslas"</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Akumulators: trīs joslas"</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Pilna piekļuve akumulatoram"</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Nav tālruņa."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Tālrunis: viena josla"</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Tālrunis: divas joslas"</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Tālrunis: trīs joslas"</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Pilna piekļuve tālruņa signālam"</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Nav datu."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Dati: viena josla"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dati: divas joslas"</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dati: trīs joslas"</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Pilna piekļuve datu signālam"</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Nav Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi: viena josla"</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi: divas joslas"</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi: trīs joslas"</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Pilna piekļuve Wi-Fi signālam"</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"EDGE"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nav SIM kartes."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth piesaiste"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lidmašīnas režīms"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Akumulators: <xliff:g id="NUMBER">%d</xliff:g> procenti"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Iestatījumu poga"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Paziņojumu poga"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Noņemt paziņojumu"</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS ir iespējots."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS iegūšana"</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Teletaips ir iespējots."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Zvana signāls — vibrācija"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zvana signāls — kluss"</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ms-large/strings.xml b/packages/SystemUI/res/values-ms-large/strings.xml
index 4897656..bdb5e7e 100644
--- a/packages/SystemUI/res/values-ms-large/strings.xml
+++ b/packages/SystemUI/res/values-ms-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Ksgkn smua"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Tiada smbg Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi disambungkan"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Mencari GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokasi ditetapkan oleh GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Pemberitahuan dimatikan"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Ketik di sini untuk menghidupkan kembali pemberitahuan."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index eef7926..eafa653 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Pdm bersih"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Jangan ganggu"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Tunjukkan pemberitahuan"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Alih keluar"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Periksa"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Tiada pemberitahuan"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Sedang berlangsung"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Pemberitahuan"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Keserasian Zum"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Apabila apl direka untuk skrin yang lebih kecil, kawalan zum akan muncul di tepi jam."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Tangkapan skrin disimpan ke Galeri"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Tidak boleh menyimpan tangkapan skrin"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Pilihan pemindahan fail USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Lekapkan sebagai pemain media (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Lekapkan sebagai kamera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Pasang aplikasi Pemindahan Fail Android untuk Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Kembali"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Laman Utama"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Butang tukar kaedah masukan."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Butang zum keserasian."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Skrin zum lebih kecil kepada lebih besar."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth disambungkan."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth diputuskan sambungan."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Tiada bateri."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Bateri satu bar."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Bateri dua bar."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Bateri tiga bar."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Bateri penuh."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Tiada telefon."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon satu bar."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon dua bar."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon tiga bar."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Isyarat telefon penuh."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Tiada data."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data satu bar."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data dua bar."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tiga bar."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Isyarat data penuh."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Tiada WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"WiFi satu bar."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"WiFi dua bar."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi tiga bar."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Isyarat WiFi penuh."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Tiada SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Penambatan Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mod pesawat"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateri <xliff:g id="NUMBER">%d</xliff:g> peratus."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Butang tetapan."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Butang pemberitahuan."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Alih keluar pemberitahuan."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS didayakan."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS sedang mendapatkan."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Mesin Teletaip didayakan."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Pendering bergetar."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Pendering senyap."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-nb-large/strings.xml b/packages/SystemUI/res/values-nb-large/strings.xml
index 053abd4..09e6443 100644
--- a/packages/SystemUI/res/values-nb-large/strings.xml
+++ b/packages/SystemUI/res/values-nb-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Tøm alle"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Ingen Internett-tilkobling"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi tilkoblet"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Søker etter GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Posisjon angitt av GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Varslinger er deaktivert"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Trykk her for å aktivere varslinger på nytt."</string>
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 589a6ab..10743e5 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Fjern"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Ikke forstyrr"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Vis varslinger"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Fjern"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspiser"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ingen varslinger"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Aktiviteter"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Varslinger"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilitets-zooming"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Når en app er utformet for en mindre skjerm, vises det en zoomkontroll ved klokken."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Skjermdump ble lagret i galleriet"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Lagring av skjermdump mislyktes"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Altern. for USB-filoverføring"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Sett inn som mediespiller (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Sett inn som kamera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Installer Android File Transfer for Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Tilbake"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Startside"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Meny"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Bytt knapp for inndatametode."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Zoomknapp for kompatibilitet."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Zoom mindre til større skjerm."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth er tilkoblet."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth frakoblet."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Uten batteri."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Batteri – én stolpe."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Batteri – to stolper."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Batteri – tre stolper."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Batteri er fullt."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Ingen telefon."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon – én stolpe."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon – to stolper."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon – tre stolper."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Telefonsignal er fullt."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Ingen data."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data – én stolpe"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data – to stolper."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data – tre stolper."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasignal er fullt."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Ingen Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi – én stolpe."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi – to stolper."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi – tre stolper."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi-signal er fullt."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Uten SIM"</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-tilknytning"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flymodus."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteri – <xliff:g id="NUMBER">%d</xliff:g> prosent."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Innstillinger-knapp."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Varslingsknapp."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Fjern varsling."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS aktivert."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Henting av GPS-signal."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter aktivert."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Vibreringsmodus."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Stille modus."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-nl-large/strings.xml b/packages/SystemUI/res/values-nl-large/strings.xml
index cc2147c..4e55664 100644
--- a/packages/SystemUI/res/values-nl-large/strings.xml
+++ b/packages/SystemUI/res/values-nl-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Alles wissen"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Geen internetverbinding"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Verbonden via Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Zoeken naar GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Locatie bepaald met GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Meldingen uit"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tik hier om meldingen weer in te schakelen."</string>
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index ab44aafe..c3afe27 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wissen"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Niet storen"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Meldingen weergeven"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Verwijderen"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspecteren"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Geen meldingen"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Actief"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meldingen"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Compatibiliteitszoom"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Wanneer een app is ontworpen voor een kleiner scherm, wordt naast de klok een zoomknop weergegeven."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Schermafbeelding is opgeslagen in de galerij"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Schermafbeelding is niet opgeslagen"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opties voor USB-bestandsoverdracht"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Koppelen als mediaspeler (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Koppelen als camera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Applicatie Android File Transfer voor Mac installeren"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Terug"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Startpagina"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Knop voor wijzigen invoermethode."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Knop voor compatibiliteitszoom."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Kleiner scherm uitzoomen naar groter scherm."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth-verbinding ingesteld."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth-verbinding verbroken."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Geen accu."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Accu: één streepje."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Accu: twee streepjes."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Accu: drie streepjes."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Accu is vol."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Geen telefoonsignaal."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefoon: één streepje."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefoon: twee streepjes."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefoon: drie streepjes."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Telefoonsignaal is op volledige sterkte."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Geen gegevens."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Gegevens: één streepje."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Gegevens: twee streepjes."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Gegevens: drie streepjes."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Gegevenssignaal is op volledige sterkte."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Geen Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Wi-Fi: één streepje."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi: twee streepjes."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Wi-Fi: drie streepjes."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signaal is op volledige sterkte."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Geen simkaart."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-tethering."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Vliegmodus."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Accu: <xliff:g id="NUMBER">%d</xliff:g> procent."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"De knop \'Instellingen\'."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Knop voor meldingen."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Melding verwijderen."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS ingeschakeld."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Verbinding maken met GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter ingeschakeld."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Belsoftware trilt."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Belsoftware stil."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pl-large/strings.xml b/packages/SystemUI/res/values-pl-large/strings.xml
index d81e030..9070c83 100644
--- a/packages/SystemUI/res/values-pl-large/strings.xml
+++ b/packages/SystemUI/res/values-pl-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Wyczyść"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Brak połączenia internetowego"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi: połączono"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Wyszukiwanie sygnału GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokalizacja ustawiona wg GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Powiadomienia wyłączone"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Dotknij tutaj, aby z powrotem włączyć powiadomienia."</string>
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 977ba60..184ae8d 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wyczyść"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Nie przeszkadzać"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Pokaż powiadomienia"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Usuń"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Sprawdź"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Brak powiadomień"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Bieżące"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Powiadomienia"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Powiększenie w trybie zgodności"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Jeśli aplikacja została przystosowana do mniejszego ekranu, obok zegara zostanie wyświetlony element sterujący powiększeniem."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Zrzut ekranu został zapisany w galerii."</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Nie można zapisać zrzutu ekranu."</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB – opcje przesyłania plików"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Podłącz jako odtwarzacz multimedialny (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Podłącz jako aparat (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Zainstaluj aplikację Android File Transfer dla Mac OS"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Wróć"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Ekran główny"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Przycisk przełączania metody wprowadzania."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Przycisk powiększenia na potrzeby zgodności."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Powiększa mniejszy ekran na większy."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth podłączony."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth rozłączony."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Brak baterii."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Bateria: jeden pasek."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Bateria: dwa paski."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Bateria: trzy paski."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Bateria naładowana."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Brak sygnału telefonu."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon: jeden pasek."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon: dwa paski."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon: trzy paski."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Sygnał telefonu: pełny."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Brak danych."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Jeden pasek sygnału danych."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dane: dwa paski."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dane: trzy paski."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Pełna moc sygnału danych."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Brak Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Sieć Wi-Fi: jeden pasek."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Sieć Wi-Fi: dwa paski."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Sieć Wi-Fi: trzy paski."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Pełna moc sygnału Wi-Fi."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Brak karty SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Powiązanie Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Tryb samolotowy."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateria <xliff:g id="NUMBER">%d</xliff:g> procent."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Przycisk Ustawienia."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Przycisk powiadomień."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Usuń powiadomienie."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS włączony."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Pobieranie danych GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Dalekopis (TTY) włączony."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Dzwonek z wibracjami."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Dzwonek wyciszony."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt-large/strings.xml b/packages/SystemUI/res/values-pt-large/strings.xml
index 92615fd..654b3c6 100644
--- a/packages/SystemUI/res/values-pt-large/strings.xml
+++ b/packages/SystemUI/res/values-pt-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Limpar tudo"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Sem conexão à Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Conectado à Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Buscando GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Localização definida por GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificações desativadas"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Toque aqui para ativar as notificações novamente."</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT-large/strings.xml b/packages/SystemUI/res/values-pt-rPT-large/strings.xml
index 5ceeae2..6fa5af3 100644
--- a/packages/SystemUI/res/values-pt-rPT-large/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Limpar td"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Sem ligação internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi ligado"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"A procurar GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Localização definida por GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificações desativadas"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Toque aqui para voltar a ativar as notificações."</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 2c6d283..ae3ce7e 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Compatibilidade de zoom"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Sempre que uma aplicação tiver sido concebida para ecrãs mais pequenos, aparecerá um controlo de zoom junto ao relógio."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Captura de ecrã guardada na Galeria"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Não foi possível guardar a captura de ecrã"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opções de transm. de fich. USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Montar como leitor de multimédia (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Montar como câmara (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 29aa510..681455a 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Não perturbe"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Mostrar notificações"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Remover"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Inspecionar"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em andamento"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom em modo de compatibilidade"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Quando um aplicativo é desenvolvido para uma tela menor, um controle de zoom é exibido perto do relógio."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"A captura de tela foi salva na Galeria"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Não foi possível salvar a captura de tela"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opções transf. arq. por USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Conectar como media player (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Montar como uma câmera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Instalar aplic. Android File Transfer para Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Voltar"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Página inicial"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Alterar botão do método de entrada."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Compatibilidade do botão de zoom."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Aumentar a tela com zoom."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth conectado."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth desconectado."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Sem bateria."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Uma barra de bateria."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Duas barras de bateria."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Três barras de bateria."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Bateria cheia."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Sem telefone."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Uma barra de sinal do telefone."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Duas barras de sinal do telefone."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Três barras de sinal do telefone."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Sinal do telefone cheio."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Nenhum dado."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Uma barra de sinal de dados."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Duas barras de sinal de dados."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Três barras de sinal de dados."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinal de dados cheio."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Sem WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Uma barra de sinal WiFi."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Duas barras de sinal WiFi."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Três barras de sinal WiFi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinal do WiFi cheio."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Sem SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Vínculo Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo para avião."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateria em <xliff:g id="NUMBER">%d</xliff:g>%."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Botão Configurações."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Botão de notificação."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Remover notificação."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS ativado."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Aquisição de GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTYpewriter ativado."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Vibrar campainha."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Campainha silenciosa."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml
index b2c8b50..cd6b41a 100644
--- a/packages/SystemUI/res/values-rm/strings.xml
+++ b/packages/SystemUI/res/values-rm/strings.xml
@@ -93,7 +93,7 @@
<skip />
<!-- no translation found for screenshot_saving_toast (8592630119048713208) -->
<skip />
- <!-- no translation found for screenshot_failed_toast (655180965533683356) -->
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
<skip />
<!-- no translation found for usb_preference_title (6551050377388882787) -->
<skip />
@@ -109,6 +109,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -197,4 +199,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ro-large/strings.xml b/packages/SystemUI/res/values-ro-large/strings.xml
index 55b2b3e..d4983bc 100644
--- a/packages/SystemUI/res/values-ro-large/strings.xml
+++ b/packages/SystemUI/res/values-ro-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Şterg. tot"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Fără conex. internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi conectat"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Se caută GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Locaţie setată prin GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Notificările sunt dezactivate"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Apăsaţi aici pentru a reactiva notificările."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 5128088..add141c 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom de compatibilitate"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Atunci când o aplicaţie a fost concepută pentru un ecran mai mic, o comandă pentru mărire/micşorare va apărea alături de ceas."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Captura de ecran a fost salvată în Galerie"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Captura de ecran nu a putut fi salvată"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opţiuni pentru transferul de fişiere prin USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Montaţi ca player media (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Montaţi drept cameră foto (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ru-large/strings.xml b/packages/SystemUI/res/values-ru-large/strings.xml
index bafb97f..79e80a6 100644
--- a/packages/SystemUI/res/values-ru-large/strings.xml
+++ b/packages/SystemUI/res/values-ru-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Очистить все"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Нет подключения к Интернету"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi подключено"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Поиск GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Местоположение установлено с помощью GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Уведомления отключены"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Нажмите здесь, чтобы снова включить уведомления."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 2f22ab4..eee42e2 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Масштаб и совместимость"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Если приложение рассчитано на экран меньших размеров, рядом с часами появятся средства масштабирования."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Скриншот сохранен в галерее"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Не удалось сохранить скриншот"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Параметры передачи через USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Подключить как мультимедийный проигрыватель (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Установить как камеру (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sk-large/strings.xml b/packages/SystemUI/res/values-sk-large/strings.xml
index 8de74a1..ccf7543 100644
--- a/packages/SystemUI/res/values-sk-large/strings.xml
+++ b/packages/SystemUI/res/values-sk-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Vymazať všetko"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Bez prip. na Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi: pripojené"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Vyhľadávanie satelitov GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Poloha nastavená pomocou GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Upozornenia sú vypnuté"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Klepnutím sem upozornenia znova povolíte."</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 9701572..946f426 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Kompatibilné priblíženie"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Ak je aplikácia navrhnutá pre menšiu obrazovku, zobrazí sa vedľa hodín ovládací prvok priblíženia."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Snímka obrazovky bola uložená do Galérie"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Snímku obrazovky sa nepodarilo uložiť"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Možnosti prenosu súborov USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Pripojiť ako prehrávač médií (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Pripojiť ako fotoaparát (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sl-large/strings.xml b/packages/SystemUI/res/values-sl-large/strings.xml
index d4c7e61..3790716 100644
--- a/packages/SystemUI/res/values-sl-large/strings.xml
+++ b/packages/SystemUI/res/values-sl-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Izbriši vse"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Ni internetne pov."</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi povezan"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Iskanje GPS-a"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokacija nastavljena z GPS-om"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Obvestila so izklopljena"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Tapnite tukaj, da spet vklopite obvestila."</string>
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 2b89f88..bb2781d 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Počisti"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Ne moti"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Pokaži obvestila"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Odstrani"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Preverite"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ni obvestil"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Trenutno"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Obvestila"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Povečava združljivosti"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Če je program izdelan za manjše zaslone, se ob uri pokaže kontrolnik za povečavo."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Posnetek zaslona je shranjen v galerijo"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Posnetka zaslona ni bilo mogoče shraniti"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Možnosti prenosa datotek prek USB-ja"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Vpni kot predvajalnik (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Vpni kot fotoaparat (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Namestite program Android File Transfer za Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Nazaj"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Domača stran"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Meni"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Gumb za preklo načina vnosa."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Gumb povečave za združljivost."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Povečava manjšega na večji zaslon."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Povezava Bluetooth vzpostavljena."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Povezava Bluetooth prekinjena."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Ni baterije."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Baterija z eno črtico."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Baterija z dvema črticama."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Baterija s tremi črticami."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Baterija je polna."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Ni telefona."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon z eno črtico."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon z dvema črticama."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon s tremi črticami."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Signal telefona je poln."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Ni podatkov."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Podatkovni signal z eno črtico."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Podatki z dvema črticama."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Podatki s tremi črticami."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Podatkovni signal poln."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Ni povezave Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"WiFi z eno črtico."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Wi-Fi z dvema črticama."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi s tremi črticami."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Signal Wi-Fi poln."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ni kartice SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internet prek Bluetootha."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Način za letalo."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterija <xliff:g id="NUMBER">%d</xliff:g> odstotkov."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Gumb za nastavitve."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Gumb za obvestila."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Odstranite obvestilo."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS omogočen."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Pridobivanje GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter omogočen."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Zvonjenje z vibriranjem."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zvonjenje izklopljeno."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sr-large/strings.xml b/packages/SystemUI/res/values-sr-large/strings.xml
index 3080a90..37b03d1 100644
--- a/packages/SystemUI/res/values-sr-large/strings.xml
+++ b/packages/SystemUI/res/values-sr-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Обриши све"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Нема интернет везе"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi је повезан"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Тражи се GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Локацију је подесио GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Обавештења су искључена"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Додирните овде да бисте поново укључили обавештења."</string>
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index fcd612f..8d1721c 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Компатибилно зумирање"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Када је апликација намењена мањем екрану, контрола зумирања приказује се поред сата."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Снимак екрана је сачуван у Галерији"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Није могуће сачувати снимак екрана"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Опције USB преноса датотека"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Прикључи као медија плејер (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Прикључи као камеру (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sv-large/strings.xml b/packages/SystemUI/res/values-sv-large/strings.xml
index b978cb9..ddea0d4 100644
--- a/packages/SystemUI/res/values-sv-large/strings.xml
+++ b/packages/SystemUI/res/values-sv-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Rensa alla"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Ingen anslutning"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi-ansluten"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Sökning efter GPS pågår"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Platsen har identifierats av GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Meddelanden inaktiverade"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Knacka lätt här om du vill aktivera meddelanden igen."</string>
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 6f3b2bb..5f81255 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom i kompatibilitetsläge"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"När en app är anpassad för en mindre skärm visas ett zoomreglage vid klockan."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Skärmdumpen sparades i galleriet"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Det gick inte att spara skärmdumpen"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Överföringsalternativ"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Montera som mediaspelare (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Montera som kamera (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 450157c..e944ced 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -83,7 +83,7 @@
<skip />
<!-- no translation found for screenshot_saving_toast (8592630119048713208) -->
<skip />
- <!-- no translation found for screenshot_failed_toast (655180965533683356) -->
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
<skip />
<!-- no translation found for usb_preference_title (6551050377388882787) -->
<skip />
@@ -99,6 +99,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -187,4 +189,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-th-large/strings.xml b/packages/SystemUI/res/values-th-large/strings.xml
index 1158f81..76bd846 100644
--- a/packages/SystemUI/res/values-th-large/strings.xml
+++ b/packages/SystemUI/res/values-th-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"ล้างทั้งหมด"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"ไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"เชื่อมต่อ Wi-Fi แล้ว"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"กำลังค้นหา GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"ตำแหน่งที่กำหนดโดย GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"การแจ้งเตือนปิดอยู่"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"แตะที่นี่เพื่อเปิดการแจ้งเตือนอีกครั้ง"</string>
</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index a5315c6..2be5544 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"ล้างข้อมูล"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"ห้ามรบกวน"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"แสดงการแจ้งเตือน"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"นำออก"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"ตรวจสอบ"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ไม่มีการแจ้งเตือน"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"ดำเนินอยู่"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"การแจ้งเตือน"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"ความเข้ากันได้ของการย่อ/ขยาย"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"สำหรับแอปพลิเคชันที่ออกแบบมาสำหรับหน้าจอขนาดเล็ก ตัวควบคุมการย่อ/ขยายจะปรากฏขึ้นข้างนาฬิกา"</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"บันทึกภาพหน้าจอในแกลเลอรีแล้ว"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"ไม่สามารถบันทึกภาพหน้าจอ"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"ตัวเลือกการถ่ายโอนไฟล์ USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"ต่อเชื่อมเป็นโปรแกรมเล่นสื่อ (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"ต่อเชื่อมเป็นกล้องถ่ายรูป (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"ติดตั้งแอปพลิเคชัน Android File Transfer ของ Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"ย้อนกลับ"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"หน้าแรก"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"เมนู"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ปุ่มสลับวิธีการป้อนข้อมูล"</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"ปุ่มซูมที่ใช้งานร่วมกันได้"</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"ซูมหน้าจอให้มีขนาดใหญ่ขึ้น"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"เชื่อมต่อบลูทูธอยู่"</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ไม่ได้เชื่อมต่อบลูทูธ"</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"ไม่มีแบตเตอรี่"</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"แบตเตอรี่หนึ่งขีด"</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"แบตเตอรี่สองขีด"</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"แบตเตอรี่สามขีด"</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"แบตเตอรี่เต็ม"</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"ไม่มีสัญญาณ"</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"สัญญาณโทรศัพท์หนึ่งขีด"</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"สัญญาณโทรศัพท์สองขีด"</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"สัญญาณโทรศัพท์สามขีด"</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"สัญญาณโทรศัพท์เต็ม"</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"ไม่มีข้อมูล"</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"สัญญาณข้อมูลหนึ่งขีด"</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"สัญญาณข้อมูลสองขีด"</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"สัญญาณข้อมูลสามขีด"</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"สัญญาณข้อมูลเต็ม"</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"ไม่มี Wi-Fi"</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"สัญญาณ Wi-Fi หนึ่งขีด"</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"สัญญาณ Wi-Fi สองขีด"</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"สัญญาณ Wi-Fi สามขีด"</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"สัญญาณ Wi-Fi เต็ม"</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"EDGE"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Wi-Fi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"ไม่มีซิมการ์ด"</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"การปล่อยสัญญาณบลูทูธ"</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"โหมดใช้งานบนเครื่องบิน"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"แบตเตอรี่ <xliff:g id="NUMBER">%d</xliff:g> เปอร์เซ็นต์"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"ปุ่มการตั้งค่า"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"ปุ่มแจ้งเตือน"</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"นำการแจ้งเตือนออก"</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"เปิดใช้งาน GPS อยู่"</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"การดึงข้อมูล GPS"</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"เปิดใช้งาน TeleTypewriter อยู่"</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"เสียงเรียกเข้าแบบสั่น"</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"เสียงเรียกเข้าแบบปิดเสียง"</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-tl-large/strings.xml b/packages/SystemUI/res/values-tl-large/strings.xml
index 5049fb2..821121f 100644
--- a/packages/SystemUI/res/values-tl-large/strings.xml
+++ b/packages/SystemUI/res/values-tl-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"I-clear"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Wala koneksyon net"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Konektado ang Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Naghahanap ng GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Lokasyong itinatakda ng GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Naka-off ang mga notification"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Mag-tap dito upang i-on muli ang mga notification."</string>
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index d44f82e..736231d 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"I-clear"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Huwag gambalain"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Magpakita ng notification"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Alisin"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Siyasatin"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Walang mga notification"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Nagpapatuloy"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Mga Notification"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Zoom sa Pagiging Tugma"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Kapag nakadisenyo ang isang app para sa mas maliit na screen, isang kontrol ng zoom ang lalabas sa may orasan."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Na-save ang screenshot sa Gallery"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Hindi ma-save ang screenshot"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Opsyon paglipat ng USB file"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"I-mount bilang isang media player (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"I-mount bilang camera (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"I-install Android File Transfer para sa Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Bumalik"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Ilipat ang button ng pamamaraan ng pag-input."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Button ng zoom ng compatibility."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Mag-zoom nang mas maliit sa mas malaking screen."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Nakakonekta ang Bluetooth."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Nadiskonekta ang Bluetooth."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Walang baterya."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Baterya isang bar."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Baterya dalawang bar."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Baterya tatlong bar."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Puno na ang baterya."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Walang telepono."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telepono isang bar."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telepono dalawang bar."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telepono tatlong bar."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Puno ang signal ng telepono."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Walang data."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data isang bar."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data dalawang bar."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tatlong bar."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Puno ang signal ng data."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Walang WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"WiFi isang bar."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"WiFi dalawang bar."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"WiFi tatlong bar."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Puno ang signal ng WiFi."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Walang SIM."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Pag-tether ng Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Airplane mode"</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterya <xliff:g id="NUMBER">%d</xliff:g> (na) porsyento."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Button ng mga setting."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Button ng mga notification."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Alisin ang notification."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"Pinagana ang GPS."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Nag-a-acquire ang GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Pinagana ang TeleTypewriter."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Naka-vibrate ang ringer."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Naka-silent ang ringer."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-tr-large/strings.xml b/packages/SystemUI/res/values-tr-large/strings.xml
index f38e962..8149970 100644
--- a/packages/SystemUI/res/values-tr-large/strings.xml
+++ b/packages/SystemUI/res/values-tr-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Tümü temzl"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"İnternet bağlantısı yok"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Kablosuz bağlandı"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"GPS aranıyor"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Konum GPS ile belirlendi"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Bildirimler kapalı"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Bildirimleri tekrar açmak için buraya hafifçe vurun."</string>
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 308c434..6028181 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Temizle"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Rahatsız etmeyin"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Bildirimleri göster"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Kaldır"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Araştır"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Bildirim yok"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Sürüyor"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Bildirimler"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Uyumluluk Zum\'u"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Uygulama küçük bir ekran için tasarlanmışsa saatin yanında bir yakınlaştırma denetimi görünür."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Ekran görüntüsü Galeri\'ye kaydedildi"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Ekran görüntüsü kaydedilemedi"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB dosya aktarım seçenekleri"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Medya oynatıcı olarak ekle (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Kamera olarak ekle (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Mac için Android Dosya Aktarımı uygulamasını yükle"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Geri"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Ana Sayfa"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Menü"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Giriş yöntemini değiştirme düğmesi."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Uyumluluk yakınlaştırma düğmesi."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Daha büyük ekrana daha küçük yakınlaştır."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth bağlandı."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth bağlantısı kesildi."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Pil yok."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Pil gücü bir çubuk."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Pil gücü iki çubuk."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Pil gücü üç çubuk."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Pil tam dolu."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Telefon sinyali yok."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Telefon sinyali bir çubuk."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Telefon sinyali iki çubuk."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Telefon sinyali üç çubuk."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Telefon sinyali tam."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Veri yok."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Veri sinyali bir çubuk."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Veri sinyali iki çubuk."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Veri sinyali üç çubuk."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Veri sinyali tam."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Kablosuz sinyali yok"</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Kablosuz sinyali bir çubuk."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Kablosuz sinyali iki çubuk."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Kablosuz sinyali üç çubuk."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Kablosuz sinyali tam."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"Kablosuz"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM kart yok."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Uçak modu."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Pil yüzdesi: <xliff:g id="NUMBER">%d</xliff:g>"</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Ayarlar düğmesi"</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Bildirim düğmesi."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Bildirimi kaldır."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS etkin."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS alınıyor."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter etkin."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Zil programı titreşim."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zil programı sessiz."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-uk-large/strings.xml b/packages/SystemUI/res/values-uk-large/strings.xml
index 367dd5c..5cf696e 100644
--- a/packages/SystemUI/res/values-uk-large/strings.xml
+++ b/packages/SystemUI/res/values-uk-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Очист. все"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Немає з’єднання"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi під’єднано"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Виконується пошук за допомогою GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Місцезнаходження встановлено за допомогою GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Сповіщення вимкнено"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Торкніться тут, щоб знову ввімкнути сповіщення."</string>
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 6687d0c..d1ec471 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Очист."</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Не турбувати"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Показувати сповіщення"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Видалити"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Перевірити"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Немає сповіщень"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Поточні"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Сповіщення"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Елемент керування масштабом для сумісності"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Якщо програму призначено для менших екранів, елемент керування масштабом буде відображатися біля годинника."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Знімок екрана збережено в Галереї"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Неможливо зберегти знімок екрана"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Парам.передав.файлів через USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Підключити як медіапрогравач (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Підключити як камеру (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Установити програму Android File Transfer для Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Домашня сторінка"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Меню"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Кнопка перемикання методу введення."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Кнопка масштабування сумісності."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Збільшення екрана."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth під’єднано."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth від’єднано."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Немає заряду батареї."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Одна смужка заряду батареї."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Дві смужки заряду батареї."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Три смужки заряду баратеї."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Повний заряд батареї."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Немає сигналу телефону."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Одна смужка сигналу телефону."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Дві смужки сигналу телефону."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Три смужки сигналу телефону."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Максимальний сигнал телефону."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Немає сигналу даних."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Одна смужка сигналу даних."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Дві смужки сигналу даних."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Три смужки сигналу даних."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Максимальний сигнал даних."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Немає сигналу Wi-Fi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Одна смужка сигналу WiFi."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Дві смужки сигналу WiFi."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Три смужки сигналу WiFi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Максимальний сигнал Wi-Fi."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Немає SIM-карти."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Прив’язка Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Режим польоту."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"Відсотків батареї: <xliff:g id="NUMBER">%d</xliff:g>."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Кнопка налаштувань."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Кнопка сповіщень."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Видалити сповіщення."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS увімкнено."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Отримання GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Телетайп увімкнено."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Дзвінок на вібросигналі."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Дзвінок беззвучний."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-vi-large/strings.xml b/packages/SystemUI/res/values-vi-large/strings.xml
index 569d70f..bb2393d 100644
--- a/packages/SystemUI/res/values-vi-large/strings.xml
+++ b/packages/SystemUI/res/values-vi-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"Xóa tất cả"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"Không có k.nối Internet"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Đã kết nối Wi-Fi"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"Đang tìm kiếm GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"Vị trí đặt bởi GPS"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"Tắt thông báo"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"Chạm vào đây để bật lại thông báo."</string>
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 5bca34b..1ec6fd6 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -23,10 +23,8 @@
<string name="status_bar_clear_all_button" msgid="7774721344716731603">"Xoá"</string>
<string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"Không làm phiền"</string>
<string name="status_bar_please_disturb_button" msgid="3345398298841572813">"Hiển thị thông báo"</string>
- <!-- no translation found for status_bar_recent_remove_item_title (6561944127804037619) -->
- <skip />
- <!-- no translation found for status_bar_recent_inspect_item_title (4906947311448880529) -->
- <skip />
+ <string name="status_bar_recent_remove_item_title" msgid="6561944127804037619">"Xóa"</string>
+ <string name="status_bar_recent_inspect_item_title" msgid="4906947311448880529">"Kiểm tra"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Không có thông báo nào"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Đang diễn ra"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Thông báo"</string>
@@ -62,103 +60,79 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"Thu phóng tương thích"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"Khi ứng dụng được thiết kế cho một màn hình nhỏ hơn, điều khiển thu phóng sẽ xuất hiện bên cạnh đồng hồ."</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"Đã lưu ảnh chụp màn hình vào Thư viện"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"Không thể lưu ảnh chụp màn hình"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"Tùy chọn truyền tệp USB"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Gắn như một trình phát đa phương tiện (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"Gắn như một máy ảnh (PTP)"</string>
<string name="installer_cd_button_title" msgid="8485631662288445893">"Cài đặt ứng dụng Truyền tệp của Android dành cho Mac"</string>
- <!-- no translation found for accessibility_back (567011538994429120) -->
+ <string name="accessibility_back" msgid="567011538994429120">"Quay lại"</string>
+ <string name="accessibility_home" msgid="8217216074895377641">"Trang chủ"</string>
+ <string name="accessibility_menu" msgid="316839303324695949">"Trình đơn"</string>
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
<skip />
- <!-- no translation found for accessibility_home (8217216074895377641) -->
+ <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Nút chuyển phương thức nhập."</string>
+ <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Nút thu phóng khả năng tương thích."</string>
+ <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Thu phóng màn hình lớn hơn hoặc nhỏ hơn."</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Đã kết nối bluetooth."</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth bị ngắt kết nối."</string>
+ <string name="accessibility_no_battery" msgid="358343022352820946">"Không có pin."</string>
+ <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Mức pin một vạch."</string>
+ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Mức pin hai vạch."</string>
+ <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Mức pin ba vạch."</string>
+ <string name="accessibility_battery_full" msgid="8909122401720158582">"Mức pin đầy."</string>
+ <string name="accessibility_no_phone" msgid="4894708937052611281">"Không có điện thoại nào."</string>
+ <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Tín hiệu điện thoại một vạch."</string>
+ <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Tín hiệu điện thoại hai vạch."</string>
+ <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Tín hiệu điện thoại ba vạch."</string>
+ <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Tín hiệu điện thoại đầy đủ."</string>
+ <string name="accessibility_no_data" msgid="4791966295096867555">"Không có dữ liệu."</string>
+ <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Tín hiệu dữ liệu một vạch."</string>
+ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Tín hiệu dữ liệu hai vạch."</string>
+ <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tín hiệu dữ liệu ba vạch."</string>
+ <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Tín hiệu dữ liệu đầy đủ."</string>
+ <string name="accessibility_no_wifi" msgid="4017628918351949575">"Không có WiFi."</string>
+ <string name="accessibility_wifi_one_bar" msgid="1914343229091303434">"Tín hiệu WiFi một vạch."</string>
+ <string name="accessibility_wifi_two_bars" msgid="7869150535859760698">"Tín hiệu WiFi hai vạch."</string>
+ <string name="accessibility_wifi_three_bars" msgid="2665319332961356254">"Tín hiệu WiFi ba vạch."</string>
+ <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Tín hiệu WiFi đầy đủ."</string>
+ <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+ <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+ <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+ <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+ <string name="accessibility_data_connection_wifi" msgid="1127208787254436420">"WiFi"</string>
+ <string name="accessibility_no_sim" msgid="8274017118472455155">"Không có SIM nào."</string>
+ <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Chia sẻ kết nối Bluetooth."</string>
+ <string name="accessibility_airplane_mode" msgid="834748999790763092">"Chế độ trên máy bay."</string>
+ <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> phần trăm pin."</string>
+ <string name="accessibility_settings_button" msgid="7913780116850379698">"Nút cài đặt."</string>
+ <string name="accessibility_notifications_button" msgid="2933903195211483438">"Nút thông báo."</string>
+ <string name="accessibility_remove_notification" msgid="4883990503785778699">"Xóa thông báo."</string>
+ <string name="accessibility_gps_enabled" msgid="3511469499240123019">"Đã bật GPS."</string>
+ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Giành được GPS."</string>
+ <string name="accessibility_tty_enabled" msgid="4613200365379426561">"Đã bật TeleTypewriter."</string>
+ <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Chuông rung."</string>
+ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Chuông im lặng."</string>
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
<skip />
- <!-- no translation found for accessibility_menu (316839303324695949) -->
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
<skip />
- <!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
<skip />
- <!-- no translation found for accessibility_compatibility_zoom_example (4220687294564945780) -->
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_connected (2707027633242983370) -->
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
<skip />
- <!-- no translation found for accessibility_bluetooth_disconnected (7416648669976870175) -->
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
<skip />
- <!-- no translation found for accessibility_no_battery (358343022352820946) -->
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
<skip />
- <!-- no translation found for accessibility_battery_one_bar (7774887721891057523) -->
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
<skip />
- <!-- no translation found for accessibility_battery_two_bars (8500650438735009973) -->
- <skip />
- <!-- no translation found for accessibility_battery_three_bars (2302983330865040446) -->
- <skip />
- <!-- no translation found for accessibility_battery_full (8909122401720158582) -->
- <skip />
- <!-- no translation found for accessibility_no_phone (4894708937052611281) -->
- <skip />
- <!-- no translation found for accessibility_phone_one_bar (687699278132664115) -->
- <skip />
- <!-- no translation found for accessibility_phone_two_bars (8384905382804815201) -->
- <skip />
- <!-- no translation found for accessibility_phone_three_bars (8521904843919971885) -->
- <skip />
- <!-- no translation found for accessibility_phone_signal_full (6471834868580757898) -->
- <skip />
- <!-- no translation found for accessibility_no_data (4791966295096867555) -->
- <skip />
- <!-- no translation found for accessibility_data_one_bar (1415625833238273628) -->
- <skip />
- <!-- no translation found for accessibility_data_two_bars (6166018492360432091) -->
- <skip />
- <!-- no translation found for accessibility_data_three_bars (9167670452395038520) -->
- <skip />
- <!-- no translation found for accessibility_data_signal_full (2708384608124519369) -->
- <skip />
- <!-- no translation found for accessibility_no_wifi (4017628918351949575) -->
- <skip />
- <!-- no translation found for accessibility_wifi_one_bar (1914343229091303434) -->
- <skip />
- <!-- no translation found for accessibility_wifi_two_bars (7869150535859760698) -->
- <skip />
- <!-- no translation found for accessibility_wifi_three_bars (2665319332961356254) -->
- <skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_gprs (1606477224486747751) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3g (8628562305003568260) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_3.5g (8664845609981692001) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_4g (7741000750630089612) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_cdma (6132648193978823023) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_edge (4477457051631979278) -->
- <skip />
- <!-- no translation found for accessibility_data_connection_wifi (1127208787254436420) -->
- <skip />
- <!-- no translation found for accessibility_no_sim (8274017118472455155) -->
- <skip />
- <!-- no translation found for accessibility_bluetooth_tether (4102784498140271969) -->
- <skip />
- <!-- no translation found for accessibility_airplane_mode (834748999790763092) -->
- <skip />
- <!-- no translation found for accessibility_battery_level (7451474187113371965) -->
- <skip />
- <!-- no translation found for accessibility_settings_button (7913780116850379698) -->
- <skip />
- <!-- no translation found for accessibility_notifications_button (2933903195211483438) -->
- <skip />
- <!-- no translation found for accessibility_remove_notification (4883990503785778699) -->
- <skip />
- <!-- no translation found for accessibility_gps_enabled (3511469499240123019) -->
- <skip />
- <!-- no translation found for accessibility_gps_acquiring (8959333351058967158) -->
- <skip />
- <!-- no translation found for accessibility_tty_enabled (4613200365379426561) -->
- <skip />
- <!-- no translation found for accessibility_ringer_vibrate (666585363364155055) -->
- <skip />
- <!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN-large/strings.xml b/packages/SystemUI/res/values-zh-rCN-large/strings.xml
index fcd4dbc..2eccba9 100644
--- a/packages/SystemUI/res/values-zh-rCN-large/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"全部清除"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"未连接互联网"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi 已连接"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"正在搜索 GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"已通过 GPS 确定位置"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"通知功能已停用"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"点按此处可重新启用通知功能。"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index dfab6d7..5ffaaab 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"兼容性缩放"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"如果应用程序是针对较小屏幕设计的,则时钟旁会显示缩放控件。"</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"屏幕截图已保存到“图库”"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"无法保存屏幕截图"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB 文件传输选项"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"作为媒体播放器 (MTP) 装载"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"作为摄像头 (PTP) 装载"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW-large/strings.xml b/packages/SystemUI/res/values-zh-rTW-large/strings.xml
index aba7453..bf1c0a0 100644
--- a/packages/SystemUI/res/values-zh-rTW-large/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW-large/strings.xml
@@ -20,10 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="status_bar_clear_all_button" msgid="4661583896803349732">"全部清除"</string>
- <string name="status_bar_settings_signal_meter_disconnected" msgid="383145178755329067">"沒有網際網路連線"</string>
- <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="2535465294437586528">"Wi-Fi 已連線"</string>
- <string name="gps_notification_searching_text" msgid="4467935186864208249">"正在搜尋 GPS"</string>
- <string name="gps_notification_found_text" msgid="6270628388918822956">"GPS 已定位"</string>
<string name="notifications_off_title" msgid="1860117696034775851">"關閉通知"</string>
<string name="notifications_off_text" msgid="1439152806320786912">"輕按這裡即可重新開啟通知。"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 854d89d..032df88 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -62,7 +62,8 @@
<string name="compat_mode_help_header" msgid="7020175705401506719">"相容性縮放"</string>
<string name="compat_mode_help_body" msgid="4946726776359270040">"執行專為較小螢幕設計的應用程式時,系統會在時鐘旁顯示縮放控制項。"</string>
<string name="screenshot_saving_toast" msgid="8592630119048713208">"螢幕擷取畫面已儲存至圖片庫"</string>
- <string name="screenshot_failed_toast" msgid="655180965533683356">"無法儲存螢幕擷取畫面"</string>
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
+ <skip />
<string name="usb_preference_title" msgid="6551050377388882787">"USB 檔案傳輸選項"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"掛接為媒體播放器 (MTP)"</string>
<string name="use_ptp_button_title" msgid="7517127540301625751">"掛接為相機 (PTP)"</string>
@@ -73,6 +74,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -161,4 +164,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 05268bf..a114b69 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -83,7 +83,7 @@
<skip />
<!-- no translation found for screenshot_saving_toast (8592630119048713208) -->
<skip />
- <!-- no translation found for screenshot_failed_toast (655180965533683356) -->
+ <!-- no translation found for screenshot_failed_toast (1990979819772906912) -->
<skip />
<!-- no translation found for usb_preference_title (6551050377388882787) -->
<skip />
@@ -99,6 +99,8 @@
<skip />
<!-- no translation found for accessibility_menu (316839303324695949) -->
<skip />
+ <!-- no translation found for accessibility_recent (3027675523629738534) -->
+ <skip />
<!-- no translation found for accessibility_ime_switch_button (5032926134740456424) -->
<skip />
<!-- no translation found for accessibility_compatibility_zoom_button (8461115318742350699) -->
@@ -187,4 +189,24 @@
<skip />
<!-- no translation found for accessibility_ringer_silent (9061243307939135383) -->
<skip />
+ <!-- no translation found for data_usage_disabled_dialog_3g_title (5257833881698644687) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_4g_title (4789143363492682629) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_mobile_title (1046047248844821202) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_title (2086815304858964954) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog (6524467913290900042) -->
+ <skip />
+ <!-- no translation found for data_usage_disabled_dialog_enable (7729772039208664606) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_disconnected (1940231521274147771) -->
+ <skip />
+ <!-- no translation found for status_bar_settings_signal_meter_wifi_nossid (6557486452774597820) -->
+ <skip />
+ <!-- no translation found for gps_notification_searching_text (8574247005642736060) -->
+ <skip />
+ <!-- no translation found for gps_notification_found_text (4619274244146446464) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index b02015d..ba1aea3 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -57,4 +57,7 @@
<!-- opacity at which Notification icons will be drawn in the status bar -->
<item type="dimen" name="status_bar_icon_drawing_alpha">40%</item>
+
+ <!-- gap on either side of status bar notification icons -->
+ <dimen name="status_bar_icon_padding">0dp</dimen>
</resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 2b3118d..03b82fd 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -41,8 +41,9 @@
<!-- Title shown in recents popup for inspecting an application's properties -->
<string name="status_bar_recent_inspect_item_title">Inspect</string>
-
-
+ <!-- For formatting day of week and date in DateView. Day of week precedes date by default,
+ but this may be overridden on a per-locale basis if necessary. -->
+ <string name="status_bar_date_formatter">%1$s\n%2$s</string>
<!-- The label in the bar at the top of the status bar when there are no notifications
showing. [CHAR LIMIT=40]-->
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 91a8855..ad236b7 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -52,4 +52,15 @@
<item name="android:windowExitAnimation">@*android:anim/shrink_fade_out_from_bottom</item>
</style>
+ <!-- Standard animations for hiding and showing the status bar. -->
+ <style name="Animation.StatusBar">
+ <item name="android:windowEnterAnimation">@anim/status_bar_enter</item>
+ <item name="android:windowExitAnimation">@anim/status_bar_exit</item>
+ </style>
+
+ <style name="Animation.StatusBar.IntruderAlert">
+ <item name="android:windowEnterAnimation">@anim/priority_alert_enter</item>
+ <item name="android:windowExitAnimation">@anim/priority_alert_exit</item>
+ </style>
+
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index c896046..d74b548 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -501,6 +501,7 @@
new RectF(mGlowBitmapPaddingLeftPx, mGlowBitmapPaddingTopPx,
outBitmap.getWidth() - mGlowBitmapPaddingRightPx,
outBitmap.getHeight() - mGlowBitmapPaddingBottomPx), paint);
+ canvas.setBitmap(null);
}
return outBitmap;
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index 3a47e6e..fc21929 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -294,6 +294,7 @@
c.rotate(360f - degrees);
c.translate(-dims[0] / 2, -dims[1] / 2);
c.drawBitmap(mScreenBitmap, 0, 0, null);
+ c.setBitmap(null);
mScreenBitmap = ss;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java
index 918d5a3..61da1f5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java
@@ -119,7 +119,8 @@
PixelFormat.RGBX_8888);
lp.gravity = getStatusBarGravity();
lp.setTitle("StatusBar");
- // TODO lp.windowAnimations = R.style.Animation_StatusBar;
+ lp.packageName = mContext.getPackageName();
+ lp.windowAnimations = R.style.Animation_StatusBar;
WindowManagerImpl.getDefault().addView(sb, lp);
if (SPEW) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ExpandedView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ExpandedView.java
index 51fc7c2..3276e1f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ExpandedView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ExpandedView.java
@@ -16,16 +16,9 @@
package com.android.systemui.statusbar.phone;
-import android.animation.LayoutTransition;
import android.content.Context;
import android.util.AttributeSet;
-import android.view.Display;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.WindowManager;
import android.widget.LinearLayout;
-import android.util.Slog;
-
public class ExpandedView extends LinearLayout {
PhoneStatusBar mService;
@@ -38,8 +31,6 @@
@Override
protected void onFinishInflate() {
super.onFinishInflate();
-
- setLayerType(LAYER_TYPE_HARDWARE, null);
}
/** We want to shrink down to 0, and ignore the background. */
@@ -49,7 +40,7 @@
}
@Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
int height = bottom - top;
if (height != mPrevHeight) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java
index f6aa159..20215bd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/IconMerger.java
@@ -44,14 +44,15 @@
mMoreView = new StatusBarIconView(context, "more", null);
mMoreView.set(mMoreIcon);
- addView(mMoreView, 0, new LinearLayout.LayoutParams(mIconSize, mIconSize));
+ super.addView(mMoreView, 0, new LinearLayout.LayoutParams(mIconSize, mIconSize));
+ }
+
+ public void addView(StatusBarIconView v, int index, LinearLayout.LayoutParams p) {
+ super.addView(v, index+1, p);
}
public void addView(StatusBarIconView v, int index) {
- if (index == 0) {
- throw new RuntimeException("Attempt to put view before the more view: " + v);
- }
- addView(v, index, new LinearLayout.LayoutParams(mIconSize, mIconSize));
+ super.addView(v, index+1, new LinearLayout.LayoutParams(mIconSize, mIconSize));
}
@Override
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 f8ceb8f..7bb8277 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -16,12 +16,10 @@
package com.android.systemui.statusbar.phone;
-import android.app.Service;
import android.app.ActivityManagerNative;
import android.app.Dialog;
import android.app.Notification;
import android.app.PendingIntent;
-import android.app.Service;
import android.app.StatusBarManager;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -30,8 +28,10 @@
import android.content.res.Resources;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
+import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
@@ -64,16 +64,12 @@
import android.widget.RemoteViews;
import android.widget.ScrollView;
import android.widget.TextView;
-import android.widget.FrameLayout;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Set;
import com.android.internal.statusbar.StatusBarIcon;
-import com.android.internal.statusbar.StatusBarIconList;
import com.android.internal.statusbar.StatusBarNotification;
import com.android.systemui.R;
@@ -114,7 +110,9 @@
LocationController mLocationController;
NetworkController mNetworkController;
- int mIconSize;
+ int mNaturalBarHeight = -1;
+ int mIconSize = -1;
+ int mIconHPadding = -1;
Display mDisplay;
IWindowManager mWindowManager;
@@ -138,17 +136,14 @@
View mExpandedContents;
// top bar
TextView mNoNotificationsTitle;
- TextView mClearButton;
+ View mClearButton;
// drag bar
CloseDragHandle mCloseView;
- // ongoing
- NotificationData mOngoing = new NotificationData();
- TextView mOngoingTitle;
- ViewGroup mOngoingItems;
- // latest
- NotificationData mLatest = new NotificationData();
- TextView mLatestTitle;
- ViewGroup mLatestItems;
+
+ // all notifications
+ NotificationData mNotificationData = new NotificationData();
+ ViewGroup mPile;
+
// position
int[] mPositionTmp = new int[2];
boolean mExpanded;
@@ -186,7 +181,6 @@
boolean mAnimating;
long mCurAnimationTime;
- float mDisplayHeight;
float mAnimY;
float mAnimVel;
float mAnimAccel;
@@ -201,6 +195,8 @@
// tracking calls to View.setSystemUiVisibility()
int mSystemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE;
+ final Point mDisplaySize = new Point();
+
private class ExpandedDialog extends Dialog {
ExpandedDialog(Context context) {
super(context, com.android.internal.R.style.Theme_Light_NoTitleBar);
@@ -246,6 +242,9 @@
Resources res = context.getResources();
+ mDisplay.getSize(mDisplaySize);
+ loadDimens();
+
mIconSize = res.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_icon_size);
ExpandedView expanded = (ExpandedView)View.inflate(context,
@@ -299,19 +298,13 @@
mExpandedDialog = new ExpandedDialog(context);
mExpandedView = expanded;
mExpandedContents = expanded.findViewById(R.id.notificationLinearLayout);
- mOngoingTitle = (TextView)expanded.findViewById(R.id.ongoingTitle);
- mOngoingItems = (ViewGroup)expanded.findViewById(R.id.ongoingItems);
- mLatestTitle = (TextView)expanded.findViewById(R.id.latestTitle);
- mLatestItems = (ViewGroup)expanded.findViewById(R.id.latestItems);
+ mPile = (ViewGroup)expanded.findViewById(R.id.latestItems);
mNoNotificationsTitle = (TextView)expanded.findViewById(R.id.noNotificationsTitle);
- mClearButton = (TextView)expanded.findViewById(R.id.clear_all_button);
+ mClearButton = expanded.findViewById(R.id.clear_all_button);
mClearButton.setOnClickListener(mClearButtonListener);
mScrollView = (ScrollView)expanded.findViewById(R.id.scroll);
mNotificationLinearLayout = expanded.findViewById(R.id.notificationLinearLayout);
- mOngoingTitle.setVisibility(View.GONE);
- mLatestTitle.setVisibility(View.GONE);
-
mTicker = new MyTicker(context, sb);
TickerView tickerView = (TickerView)sb.findViewById(R.id.tickerText);
@@ -512,7 +505,8 @@
lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
lp.y += height * 1.5; // FIXME
lp.setTitle("IntruderAlert");
- lp.windowAnimations = com.android.internal.R.style.Animation_StatusBar_IntruderAlert;
+ lp.packageName = mContext.getPackageName();
+ lp.windowAnimations = R.style.Animation_StatusBar_IntruderAlert;
WindowManagerImpl.getDefault().addView(mIntruderAlertView, lp);
}
@@ -563,7 +557,7 @@
View button = mIntruderAlertView.findViewById(R.id.intruder_alert_content);
button.setOnClickListener(
- new Launcher(notification.notification.contentIntent,
+ new NotificationClicker(notification.notification.contentIntent,
notification.pkg, notification.tag, notification.id));
// 2. Animate mIntruderAlertView in
@@ -594,25 +588,20 @@
}
public void updateNotification(IBinder key, StatusBarNotification notification) {
- Slog.d(TAG, "updateNotification key=" + key + " notification=" + notification);
+ if (DEBUG) Slog.d(TAG, "updateNotification(" + key + " -> " + notification + ")");
- NotificationData oldList;
- NotificationData.Entry oldEntry = mOngoing.findByKey(key);
- if (oldEntry != null) {
- oldList = mOngoing;
- } else {
- oldEntry = mLatest.findByKey(key);
- if (oldEntry == null) {
- Slog.w(TAG, "updateNotification for unknown key: " + key);
- return;
- }
- oldList = mLatest;
+ final NotificationData.Entry oldEntry = mNotificationData.findByKey(key);
+ if (oldEntry == null) {
+ Slog.w(TAG, "updateNotification for unknown key: " + key);
+ return;
}
+
final StatusBarNotification oldNotification = oldEntry.notification;
final RemoteViews oldContentView = oldNotification.notification.contentView;
final RemoteViews contentView = notification.notification.contentView;
+
if (DEBUG) {
Slog.d(TAG, "old notification: when=" + oldNotification.notification.when
+ " ongoing=" + oldNotification.isOngoing()
@@ -637,8 +626,8 @@
boolean orderUnchanged = notification.notification.when==oldNotification.notification.when
&& notification.priority == oldNotification.priority;
// priority now encompasses isOngoing()
- boolean isLastAnyway = rowParent.indexOfChild(oldEntry.row) == rowParent.getChildCount()-1;
- if (contentsUnchanged && (orderUnchanged || isLastAnyway)) {
+ boolean isFirstAnyway = rowParent.indexOfChild(oldEntry.row) == 0;
+ if (contentsUnchanged && (orderUnchanged || isFirstAnyway)) {
if (DEBUG) Slog.d(TAG, "reusing notification for key: " + key);
oldEntry.notification = notification;
try {
@@ -647,7 +636,7 @@
// update the contentIntent
final PendingIntent contentIntent = notification.notification.contentIntent;
if (contentIntent != null) {
- oldEntry.content.setOnClickListener(new Launcher(contentIntent,
+ oldEntry.content.setOnClickListener(new NotificationClicker(contentIntent,
notification.pkg, notification.tag, notification.id));
} else {
oldEntry.content.setOnClickListener(null);
@@ -655,7 +644,8 @@
// Update the icon.
final StatusBarIcon ic = new StatusBarIcon(notification.pkg,
notification.notification.icon, notification.notification.iconLevel,
- notification.notification.number, notification.notification.tickerText);
+ notification.notification.number,
+ notification.notification.tickerText);
if (!oldEntry.icon.set(ic)) {
handleNotificationError(key, notification, "Couldn't update icon: " + ic);
return;
@@ -664,12 +654,9 @@
if (notification.notification.largeIcon != null) {
oldEntry.largeIcon.setImageBitmap(notification.notification.largeIcon);
} else {
- if (oldEntry.largeIcon != null) {
- oldEntry.largeIcon.getLayoutParams().width = 0;
- oldEntry.largeIcon.setVisibility(View.INVISIBLE);
- }
+ oldEntry.largeIcon.getLayoutParams().width = 0;
+ oldEntry.largeIcon.setVisibility(View.INVISIBLE);
}
-
}
catch (RuntimeException e) {
// It failed to add cleanly. Log, and remove the view from the panel.
@@ -709,15 +696,6 @@
}
}
- private int chooseIconIndex(boolean isOngoing, int viewIndex) {
- final int latestSize = mLatest.size();
- if (isOngoing) {
- return latestSize + (mOngoing.size() - viewIndex);
- } else {
- return latestSize - viewIndex;
- }
- }
-
@Override
protected void onConfigurationChanged(Configuration newConfig) {
updateRecentsPanel();
@@ -774,7 +752,7 @@
content.setOnFocusChangeListener(mFocusChangeListener);
PendingIntent contentIntent = n.contentIntent;
if (contentIntent != null) {
- content.setOnClickListener(new Launcher(contentIntent, notification.pkg,
+ content.setOnClickListener(new NotificationClicker(contentIntent, notification.pkg,
notification.tag, notification.id));
} else {
content.setOnClickListener(null);
@@ -801,82 +779,232 @@
}
StatusBarIconView addNotificationViews(IBinder key, StatusBarNotification notification) {
- NotificationData list;
- ViewGroup parent;
- final boolean isOngoing = notification.isOngoing();
- if (isOngoing) {
- list = mOngoing;
- parent = mOngoingItems;
- } else {
- list = mLatest;
- parent = mLatestItems;
+ if (DEBUG) {
+ Slog.d(TAG, "addNotificationViews(key=" + key + ", notification=" + notification);
}
- // Construct the expanded view.
- final View[] views = makeNotificationView(notification, parent);
- if (views == null) {
- handleNotificationError(key, notification, "Couldn't expand RemoteViews for: "
- + notification);
- return null;
- }
- final View row = views[0];
- final View content = views[1];
- final View expanded = views[2];
// Construct the icon.
final StatusBarIconView iconView = new StatusBarIconView(mContext,
notification.pkg + "/0x" + Integer.toHexString(notification.id),
notification.notification);
- final StatusBarIcon ic = new StatusBarIcon(notification.pkg, notification.notification.icon,
- notification.notification.iconLevel, notification.notification.number,
+ iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+
+ final StatusBarIcon ic = new StatusBarIcon(notification.pkg,
+ notification.notification.icon,
+ notification.notification.iconLevel,
+ notification.notification.number,
notification.notification.tickerText);
if (!iconView.set(ic)) {
- handleNotificationError(key, notification, "Coulding create icon: " + ic);
+ handleNotificationError(key, notification, "Couldn't create icon: " + ic);
return null;
}
- // Add the expanded view.
- final int viewIndex = list.add(key, notification, row, content, expanded, iconView);
- parent.addView(row, viewIndex);
- // Add the icon.
- final int iconIndex = chooseIconIndex(isOngoing, viewIndex);
- mNotificationIcons.addView(iconView, iconIndex);
+ // Construct the expanded view.
+ NotificationData.Entry entry = new NotificationData.Entry(key, notification, iconView);
+ if (!inflateViews(entry, mPile)) {
+ handleNotificationError(key, notification, "Couldn't expand RemoteViews for: "
+ + notification);
+ return null;
+ }
+
+ // Add the expanded view and icon.
+ int pos = mNotificationData.add(entry);
+ if (DEBUG) {
+ Slog.d(TAG, "addNotificationViews: added at " + pos);
+ }
+ updateNotificationIcons();
+
return iconView;
}
- StatusBarNotification removeNotificationViews(IBinder key) {
- NotificationData.Entry entry = mOngoing.remove(key);
- if (entry == null) {
- entry = mLatest.remove(key);
- if (entry == null) {
- Slog.w(TAG, "removeNotification for unknown key: " + key);
- return null;
+ private void loadNotificationShade() {
+ int N = mNotificationData.size();
+
+ ArrayList<View> toShow = new ArrayList<View>();
+
+ for (int i=0; i<N; i++) {
+ View row = mNotificationData.get(N-i-1).row;
+ toShow.add(row);
+ }
+
+ ArrayList<View> toRemove = new ArrayList<View>();
+ for (int i=0; i<mPile.getChildCount(); i++) {
+ View child = mPile.getChildAt(i);
+ if (!toShow.contains(child)) {
+ toRemove.add(child);
}
}
+
+ for (View remove : toRemove) {
+ mPile.removeView(remove);
+ }
+
+ for (int i=0; i<toShow.size(); i++) {
+ View v = toShow.get(i);
+ if (v.getParent() == null) {
+ mPile.addView(v, 0); // the notification shade has newest at the top
+ }
+ }
+ }
+
+ private void reloadAllNotificationIcons() {
+ if (mNotificationIcons == null) return;
+ mNotificationIcons.removeAllViews();
+ updateNotificationIcons();
+ }
+
+ private void updateNotificationIcons() {
+ loadNotificationShade();
+
+ final LinearLayout.LayoutParams params
+ = new LinearLayout.LayoutParams(mIconSize + 2*mIconHPadding, mNaturalBarHeight);
+
+ int N = mNotificationData.size();
+
+ if (DEBUG) {
+ Slog.d(TAG, "refreshing icons: " + N + " notifications, mNotificationIcons=" + mNotificationIcons);
+ }
+
+ ArrayList<View> toShow = new ArrayList<View>();
+
+ for (int i=0; i<N; i++) {
+ toShow.add(mNotificationData.get(N-i-1).icon);
+ }
+
+ ArrayList<View> toRemove = new ArrayList<View>();
+ for (int i=0; i<mNotificationIcons.getChildCount(); i++) {
+ View child = mNotificationIcons.getChildAt(i);
+ if (!toShow.contains(child)) {
+ toRemove.add(child);
+ }
+ }
+
+ for (View remove : toRemove) {
+ mNotificationIcons.removeView(remove);
+ }
+
+ for (int i=0; i<toShow.size(); i++) {
+ View v = toShow.get(i);
+ if (v.getParent() == null) {
+ mNotificationIcons.addView(v, i, params);
+ }
+ }
+ }
+
+ void workAroundBadLayerDrawableOpacity(View v) {
+ LayerDrawable d = (LayerDrawable)v.getBackground();
+ if (d == null) return;
+ v.setBackgroundDrawable(null);
+ d.setOpacity(PixelFormat.TRANSLUCENT);
+ v.setBackgroundDrawable(d);
+ }
+
+ private boolean inflateViews(NotificationData.Entry entry, ViewGroup parent) {
+ StatusBarNotification sbn = entry.notification;
+ RemoteViews remoteViews = sbn.notification.contentView;
+ if (remoteViews == null) {
+ return false;
+ }
+
+ // create the row view
+ LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ View row = inflater.inflate(R.layout.status_bar_notification_row, parent, false);
+ workAroundBadLayerDrawableOpacity(row);
+ View vetoButton = row.findViewById(R.id.veto);
+ if (entry.notification.isClearable()) {
+ final String _pkg = sbn.pkg;
+ final String _tag = sbn.tag;
+ final int _id = sbn.id;
+ vetoButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ try {
+ mBarService.onNotificationClear(_pkg, _tag, _id);
+ } catch (RemoteException ex) {
+ // system process is dead if we're here.
+ }
+ }
+ });
+ } else {
+ if ((sbn.notification.flags & Notification.FLAG_ONGOING_EVENT) == 0) {
+ vetoButton.setVisibility(View.INVISIBLE);
+ vetoButton.setContentDescription("VETO");
+ } else {
+ vetoButton.setVisibility(View.GONE);
+ }
+ }
+ vetoButton.setContentDescription(mContext.getString(
+ R.string.accessibility_remove_notification));
+
+ // the large icon
+ ImageView largeIcon = (ImageView)row.findViewById(R.id.large_icon);
+ if (sbn.notification.largeIcon != null) {
+ largeIcon.setImageBitmap(sbn.notification.largeIcon);
+ largeIcon.setContentDescription(sbn.notification.tickerText);
+ } else {
+ largeIcon.getLayoutParams().width = 0;
+ largeIcon.setVisibility(View.INVISIBLE);
+ }
+ largeIcon.setContentDescription(sbn.notification.tickerText);
+
+ // bind the click event to the content area
+ ViewGroup content = (ViewGroup)row.findViewById(R.id.content);
+ // XXX: update to allow controls within notification views
+ content.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
+// content.setOnFocusChangeListener(mFocusChangeListener);
+ PendingIntent contentIntent = sbn.notification.contentIntent;
+ if (contentIntent != null) {
+ content.setOnClickListener(new NotificationClicker(contentIntent,
+ sbn.pkg, sbn.tag, sbn.id));
+ } else {
+ content.setOnClickListener(null);
+ }
+
+ View expanded = null;
+ Exception exception = null;
+ try {
+ expanded = remoteViews.apply(mContext, content);
+ }
+ catch (RuntimeException e) {
+ exception = e;
+ }
+ if (expanded == null) {
+ final String ident = sbn.pkg + "/0x" + Integer.toHexString(sbn.id);
+ Slog.e(TAG, "couldn't inflate view for notification " + ident, exception);
+ return false;
+ } else {
+ content.addView(expanded);
+ row.setDrawingCacheEnabled(true);
+ }
+
+ entry.row = row;
+ entry.content = content;
+ entry.expanded = expanded;
+ entry.largeIcon = largeIcon;
+
+ return true;
+ }
+
+ StatusBarNotification removeNotificationViews(IBinder key) {
+ NotificationData.Entry entry = mNotificationData.remove(key);
+ if (entry == null) {
+ Slog.w(TAG, "removeNotification for unknown key: " + key);
+ return null;
+ }
// Remove the expanded view.
- ((ViewGroup)entry.row.getParent()).removeView(entry.row);
- // Remove the icon.
- ((ViewGroup)entry.icon.getParent()).removeView(entry.icon);
+ ViewGroup rowParent = (ViewGroup)entry.row.getParent();
+ if (rowParent != null) rowParent.removeView(entry.row);
+ updateNotificationIcons();
return entry.notification;
}
private void setAreThereNotifications() {
- boolean ongoing = mOngoing.hasVisibleItems();
- boolean latest = mLatest.hasVisibleItems();
+ mClearButton.setVisibility(mNotificationData.hasClearableItems()
+ ? View.VISIBLE
+ : View.INVISIBLE);
- // (no ongoing notifications are clearable)
- if (mLatest.hasClearableItems()) {
- mClearButton.setVisibility(View.VISIBLE);
- } else {
- mClearButton.setVisibility(View.INVISIBLE);
- }
-
- mOngoingTitle.setVisibility(ongoing ? View.VISIBLE : View.GONE);
- mLatestTitle.setVisibility(latest ? View.VISIBLE : View.GONE);
-
- if (ongoing || latest) {
- mNoNotificationsTitle.setVisibility(View.GONE);
- } else {
- mNoNotificationsTitle.setVisibility(View.VISIBLE);
- }
+ mNoNotificationsTitle.setVisibility(mNotificationData.size() > 0
+ ? View.GONE
+ : View.VISIBLE);
}
@@ -1021,7 +1149,7 @@
if (mAnimating) {
y = (int)mAnimY;
} else {
- y = mDisplay.getHeight()-1;
+ y = mDisplaySize.y-1;
}
// Let the fling think that we're open so it goes in the right direction
// and doesn't try to re-open the windowshade.
@@ -1077,7 +1205,7 @@
if (SPEW) Slog.d(TAG, "doAnimation before mAnimY=" + mAnimY);
incrementAnim();
if (SPEW) Slog.d(TAG, "doAnimation after mAnimY=" + mAnimY);
- if (mAnimY >= mDisplay.getHeight()-1) {
+ if (mAnimY >= mDisplaySize.y-1) {
if (SPEW) Slog.d(TAG, "Animation completed to expanded state.");
mAnimating = false;
updateExpandedViewPos(EXPANDED_FULL_OPEN);
@@ -1163,7 +1291,6 @@
void performFling(int y, float vel, boolean always) {
mAnimatingReveal = false;
- mDisplayHeight = mDisplay.getHeight();
mAnimY = y;
mAnimVel = vel;
@@ -1173,7 +1300,7 @@
if (mExpanded) {
if (!always && (
vel > 200.0f
- || (y > (mDisplayHeight-25) && vel > -200.0f))) {
+ || (y > (mDisplaySize.y-25) && vel > -200.0f))) {
// We are expanded, but they didn't move sufficiently to cause
// us to retract. Animate back to the expanded position.
mAnimAccel = 2000.0f;
@@ -1191,7 +1318,7 @@
} else {
if (always || (
vel > 200.0f
- || (y > (mDisplayHeight/2) && vel > -200.0f))) {
+ || (y > (mDisplaySize.y/2) && vel > -200.0f))) {
// We are collapsed, and they moved enough to allow us to
// expand. Animate in the notifications.
mAnimAccel = 2000.0f;
@@ -1243,14 +1370,14 @@
mViewDelta = mAbsPos[1] + mTrackingView.getHeight() - y;
}
if ((!mExpanded && y < hitSize) ||
- (mExpanded && y > (mDisplay.getHeight()-hitSize))) {
+ (mExpanded && y > (mDisplaySize.y-hitSize))) {
// We drop events at the edge of the screen to make the windowshade come
// down by accident less, especially when pushing open a device with a keyboard
// that rotates (like g1 and droid)
int x = (int)event.getRawX();
final int edgeBorder = mEdgeBorder;
- if (x >= edgeBorder && x < mDisplay.getWidth() - edgeBorder) {
+ if (x >= edgeBorder && x < mDisplaySize.x - edgeBorder) {
prepareTracking(y, !mExpanded);// opening if we're not already fully visible
mVelocityTracker.addMovement(event);
}
@@ -1339,13 +1466,17 @@
@Override
public void setHardKeyboardStatus(boolean available, boolean enabled) { }
- private class Launcher implements View.OnClickListener {
+ public NotificationClicker makeClicker(PendingIntent intent, String pkg, String tag, int id) {
+ return new NotificationClicker(intent, pkg, tag, id);
+ }
+
+ private class NotificationClicker implements View.OnClickListener {
private PendingIntent mIntent;
private String mPkg;
private String mTag;
private int mId;
- Launcher(PendingIntent intent, String pkg, String tag, int id) {
+ NotificationClicker(PendingIntent intent, String pkg, String tag, int id) {
mIntent = intent;
mPkg = pkg;
mTag = tag;
@@ -1494,19 +1625,15 @@
+ ", mAnimAccel=" + mAnimAccel);
pw.println(" mCurAnimationTime=" + mCurAnimationTime
+ " mAnimLastTime=" + mAnimLastTime);
- pw.println(" mDisplayHeight=" + mDisplayHeight
- + " mAnimatingReveal=" + mAnimatingReveal
+ pw.println(" mAnimatingReveal=" + mAnimatingReveal
+ " mViewDelta=" + mViewDelta);
- pw.println(" mDisplayHeight=" + mDisplayHeight);
+ pw.println(" mDisplaySize=" + mDisplaySize);
pw.println(" mExpandedParams: " + mExpandedParams);
pw.println(" mExpandedView: " + viewInfo(mExpandedView));
pw.println(" mExpandedDialog: " + mExpandedDialog);
pw.println(" mTrackingParams: " + mTrackingParams);
pw.println(" mTrackingView: " + viewInfo(mTrackingView));
- pw.println(" mOngoingTitle: " + viewInfo(mOngoingTitle));
- pw.println(" mOngoingItems: " + viewInfo(mOngoingItems));
- pw.println(" mLatestTitle: " + viewInfo(mLatestTitle));
- pw.println(" mLatestItems: " + viewInfo(mLatestItems));
+ pw.println(" mPile: " + viewInfo(mPile));
pw.println(" mNoNotificationsTitle: " + viewInfo(mNoNotificationsTitle));
pw.println(" mCloseView: " + viewInfo(mCloseView));
pw.println(" mTickerView: " + viewInfo(mTickerView));
@@ -1592,17 +1719,13 @@
void onTrackingViewAttached() {
WindowManager.LayoutParams lp;
int pixelFormat;
- Drawable bg;
/// ---------- Expanded View --------------
pixelFormat = PixelFormat.TRANSLUCENT;
- final int disph = mDisplay.getHeight();
lp = mExpandedDialog.getWindow().getAttributes();
- lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
- lp.height = getExpandedHeight();
lp.x = 0;
- mTrackingPosition = lp.y = -disph; // sufficiently large negative
+ mTrackingPosition = lp.y = mDisplaySize.y; // sufficiently large negative
lp.type = WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
lp.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
@@ -1612,9 +1735,9 @@
lp.format = pixelFormat;
lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
lp.setTitle("StatusBarExpanded");
- mExpandedDialog.getWindow().setAttributes(lp);
- mExpandedDialog.getWindow().setFormat(pixelFormat);
mExpandedParams = lp;
+ updateExpandedSize();
+ mExpandedDialog.getWindow().setFormat(pixelFormat);
mExpandedDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
mExpandedDialog.setContentView(mExpandedView,
@@ -1622,7 +1745,6 @@
ViewGroup.LayoutParams.MATCH_PARENT));
mExpandedDialog.getWindow().setBackgroundDrawable(null);
mExpandedDialog.show();
- FrameLayout hack = (FrameLayout)mExpandedView.getParent();
}
void setDateViewVisibility(boolean visible, int anim) {
@@ -1639,6 +1761,20 @@
}
}
+ void updateExpandedInvisiblePosition() {
+ if (mTrackingView != null) {
+ mTrackingPosition = -mDisplaySize.y;
+ if (mTrackingParams != null) {
+ mTrackingParams.y = mTrackingPosition;
+ WindowManagerImpl.getDefault().updateViewLayout(mTrackingView, mTrackingParams);
+ }
+ }
+ if (mExpandedParams != null) {
+ mExpandedParams.y = -mDisplaySize.y;
+ mExpandedDialog.getWindow().setAttributes(mExpandedParams);
+ }
+ }
+
void updateExpandedViewPos(int expandedPosition) {
if (SPEW) {
Slog.d(TAG, "updateExpandedViewPos before expandedPosition=" + expandedPosition
@@ -1647,22 +1783,12 @@
}
int h = mStatusBarView.getHeight();
- int disph = mDisplay.getHeight();
+ int disph = mDisplaySize.y;
// If the expanded view is not visible, make sure they're still off screen.
// Maybe the view was resized.
if (!mExpandedVisible) {
- if (mTrackingView != null) {
- mTrackingPosition = -disph;
- if (mTrackingParams != null) {
- mTrackingParams.y = mTrackingPosition;
- WindowManagerImpl.getDefault().updateViewLayout(mTrackingView, mTrackingParams);
- }
- }
- if (mExpandedParams != null) {
- mExpandedParams.y = -disph;
- mExpandedDialog.getWindow().setAttributes(mExpandedParams);
- }
+ updateExpandedInvisiblePosition();
return;
}
@@ -1687,14 +1813,21 @@
WindowManagerImpl.getDefault().updateViewLayout(mTrackingView, mTrackingParams);
if (mExpandedParams != null) {
- mCloseView.getLocationInWindow(mPositionTmp);
- final int closePos = mPositionTmp[1];
+ if (mCloseView.getWindowVisibility() == View.VISIBLE) {
+ mCloseView.getLocationInWindow(mPositionTmp);
+ final int closePos = mPositionTmp[1];
- mExpandedContents.getLocationInWindow(mPositionTmp);
- final int contentsBottom = mPositionTmp[1] + mExpandedContents.getHeight();
+ mExpandedContents.getLocationInWindow(mPositionTmp);
+ final int contentsBottom = mPositionTmp[1] + mExpandedContents.getHeight();
- mExpandedParams.y = pos + mTrackingView.getHeight()
- - (mTrackingParams.height-closePos) - contentsBottom;
+ mExpandedParams.y = pos + mTrackingView.getHeight()
+ - (mTrackingParams.height-closePos) - contentsBottom;
+ } else {
+ // If the tracking view is not yet visible, then we can't have
+ // a good value of the close view location. We need to wait for
+ // it to be visible to do a layout.
+ mExpandedParams.y = -mDisplaySize.y;
+ }
int max = h;
if (mExpandedParams.y > max) {
mExpandedParams.y = max;
@@ -1730,14 +1863,24 @@
}
}
- int getExpandedHeight() {
- return mDisplay.getHeight() - mStatusBarView.getHeight() - mCloseView.getHeight();
+ int getExpandedHeight(int disph) {
+ return disph - mStatusBarView.getHeight() - mCloseView.getHeight();
}
- void updateExpandedHeight() {
- if (mExpandedView != null) {
- mExpandedParams.height = getExpandedHeight();
- mExpandedDialog.getWindow().setAttributes(mExpandedParams);
+ void updateDisplaySize() {
+ mDisplay.getSize(mDisplaySize);
+ updateExpandedSize();
+ }
+
+ void updateExpandedSize() {
+ if (mExpandedDialog != null) {
+ mExpandedParams.width = mDisplaySize.x;
+ mExpandedParams.height = getExpandedHeight(mDisplaySize.y);
+ if (!mExpandedVisible) {
+ updateExpandedInvisiblePosition();
+ } else {
+ mExpandedDialog.getWindow().setAttributes(mExpandedParams);
+ }
}
}
@@ -1855,11 +1998,32 @@
final Context context = mContext;
final Resources res = context.getResources();
- mClearButton.setText(context.getText(R.string.status_bar_clear_all_button));
- mOngoingTitle.setText(context.getText(R.string.status_bar_ongoing_events_title));
- mLatestTitle.setText(context.getText(R.string.status_bar_latest_events_title));
+ if (mClearButton instanceof TextView) {
+ ((TextView)mClearButton).setText(context.getText(R.string.status_bar_clear_all_button));
+ }
mNoNotificationsTitle.setText(context.getText(R.string.status_bar_no_notifications_title));
+ loadDimens();
+ }
+
+ protected void loadDimens() {
+ final Resources res = mContext.getResources();
+
+ mNaturalBarHeight = res.getDimensionPixelSize(
+ com.android.internal.R.dimen.status_bar_height);
+
+ int newIconSize = res.getDimensionPixelSize(
+ com.android.internal.R.dimen.status_bar_icon_size);
+ int newIconHPadding = res.getDimensionPixelSize(
+ R.dimen.status_bar_icon_padding);
+
+ if (newIconHPadding != mIconHPadding || newIconSize != mIconSize) {
+// Slog.d(TAG, "size=" + newIconSize + " padding=" + newIconHPadding);
+ mIconHPadding = newIconHPadding;
+ mIconSize = newIconSize;
+ //reloadAllNotificationIcons(); // reload the tray
+ }
+
mEdgeBorder = res.getDimensionPixelSize(R.dimen.status_bar_edge_ignore);
if (false) Slog.v(TAG, "updateResources");
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index c2390e8..db6907c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -77,6 +77,7 @@
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
+ mService.updateDisplaySize();
boolean nightMode = (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
== Configuration.UI_MODE_NIGHT_YES;
if (mNightMode != nightMode) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrackingView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrackingView.java
index fd32a3d..fc0f332 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrackingView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrackingView.java
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.phone;
import android.content.Context;
+import android.os.Handler;
import android.util.AttributeSet;
import android.view.Display;
import android.view.KeyEvent;
@@ -29,6 +30,7 @@
PhoneStatusBar mService;
boolean mTracking;
int mStartX, mStartY;
+ Handler mHandler = new Handler();
public TrackingView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -39,7 +41,6 @@
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
- mService.updateExpandedHeight();
}
@Override
@@ -60,4 +61,16 @@
super.onAttachedToWindow();
mService.onTrackingViewAttached();
}
+
+ @Override
+ protected void onWindowVisibilityChanged(int visibility) {
+ super.onWindowVisibilityChanged(visibility);
+ if (visibility == VISIBLE) {
+ mHandler.post(new Runnable() {
+ @Override public void run() {
+ mService.updateExpandedViewPos(PhoneStatusBar.EXPANDED_LEAVE_ALONE);
+ }
+ });
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
index 6ab03e1..a171514 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
@@ -28,6 +28,8 @@
import android.view.View;
import android.view.ViewParent;
+import com.android.systemui.R;
+
import java.util.Date;
public final class DateView extends TextView {
@@ -90,7 +92,7 @@
Date now = new Date();
CharSequence dow = DateFormat.format("EEEE", now);
CharSequence date = DateFormat.getMediumDateFormat(getContext()).format(now);
- setText(dow + "\n" + date);
+ setText(context.getString(R.string.status_bar_date_formatter, dow, date));
}
private boolean isVisible() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
index 90234c7..2a0dfb5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
@@ -324,7 +324,14 @@
if (child.getVisibility() == GONE) {
continue;
}
- final int thisRowHeight = (int)(child.getAlpha() * mRowHeight);
+ float alpha = child.getAlpha();
+ if (alpha > 1.0f) {
+ if (DEBUG) {
+ Slog.w(TAG, "alpha=" + alpha + " > 1!!! " + child);
+ }
+ alpha = 1f;
+ }
+ final int thisRowHeight = (int)(alpha * mRowHeight);
if (DEBUG) {
Slog.d(TAG, String.format(
"laying out child #%d: (0, %d, %d, %d) h=%d",
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
index a316e4b..74dbfef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
@@ -49,6 +49,7 @@
Rect mContentArea = new Rect();
View mSettingsView;
ViewGroup mContentParent;
+ TabletStatusBar mBar;
// amount to slide mContentParent down by when mContentFrame is missing
float mContentFrameMissingTranslation;
@@ -63,6 +64,10 @@
super(context, attrs, defStyle);
}
+ public void setBar(TabletStatusBar b) {
+ mBar = b;
+ }
+
@Override
public void onFinishInflate() {
super.onFinishInflate();
@@ -202,15 +207,16 @@
;
set.setDuration(200);
- if (!showing) {
- set.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator _a) {
+ set.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator _a) {
+ if (!showing) {
mContentFrame.setVisibility(View.GONE);
mContentFrame.setAlpha(1f);
}
- });
- }
+ updateClearButton();
+ }
+ });
set.start();
}
@@ -247,12 +253,23 @@
removeSettingsView();
}
}
+ updateClearButton();
updatePanelModeButtons();
}
});
a.start();
}
+ public void updateClearButton() {
+ if (mBar != null) {
+ final boolean showX
+ = (isShowing()
+ && mNotificationScroller.getVisibility() == View.VISIBLE
+ && mNotificationCount > 0);
+ mBar.getClearButton().setVisibility(showX ? View.VISIBLE : View.INVISIBLE);
+ }
+ }
+
public void updatePanelModeButtons() {
final boolean settingsVisible = (mSettingsView != null);
mSettingsButton.setVisibility(!settingsVisible ? View.VISIBLE : View.INVISIBLE);
@@ -294,11 +311,11 @@
AnimatorSet mContentAnim;
// should group this into a multi-property animation
- final static int OPEN_DURATION = 136;
- final static int CLOSE_DURATION = 250;
+ final static int OPEN_DURATION = 300;
+ final static int CLOSE_DURATION = 300;
// the panel will start to appear this many px from the end
- final int HYPERSPACE_OFFRAMP = 100;
+ final int HYPERSPACE_OFFRAMP = 200;
Choreographer() {
}
@@ -306,10 +323,6 @@
void createAnimation(boolean appearing) {
// mVisible: previous state; appearing: new state
- View root = findViewById(R.id.panel_root);
- Animator bgAnim = ObjectAnimator.ofInt(root.getBackground(), "alpha",
- mVisible ? 255 : 0, appearing ? 255 : 0);
-
float start, end;
// 0: on-screen
@@ -347,7 +360,6 @@
mContentAnim = new AnimatorSet();
mContentAnim
.play(fadeAnim)
- .with(bgAnim)
.with(posAnim)
;
mContentAnim.setDuration((DEBUG?10:1)*(appearing ? OPEN_DURATION : CLOSE_DURATION));
@@ -363,6 +375,9 @@
mContentAnim.start();
mVisible = appearing;
+
+ // we want to start disappearing promptly
+ if (!mVisible) updateClearButton();
}
public void onAnimationCancel(Animator animation) {
@@ -376,6 +391,9 @@
}
mContentParent.setLayerType(View.LAYER_TYPE_NONE, null);
mContentAnim = null;
+
+ // we want to show the X lazily
+ if (mVisible) updateClearButton();
}
public void onAnimationRepeat(Animator animation) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index c6e546e..dc7e3137 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -122,6 +122,7 @@
View mNotificationTrigger;
NotificationIconArea mNotificationIconArea;
ViewGroup mNavigationArea;
+ View mClearButton;
boolean mNotificationDNDMode;
NotificationData.Entry mNotificationDNDDummyEntry;
@@ -187,6 +188,7 @@
// Notification Panel
mNotificationPanel = (NotificationPanel)View.inflate(context,
R.layout.status_bar_notification_panel, null);
+ mNotificationPanel.setBar(this);
mNotificationPanel.show(false, false);
mNotificationPanel.setOnTouchListener(
new TouchOutsideListener(MSG_CLOSE_NOTIFICATION_PANEL, mNotificationPanel));
@@ -451,6 +453,10 @@
// the more notifications icon
mNotificationIconArea = (NotificationIconArea)sb.findViewById(R.id.notificationIcons);
+ // the "X" that appears in place of the clock when the panel is showing notifications
+ mClearButton = sb.findViewById(R.id.clear_all_button);
+ mClearButton.setOnClickListener(mClearButtonListener);
+
// where the icons go
mIconLayout = (NotificationIconArea.IconLayout) sb.findViewById(R.id.icons);
mIconLayout.setOnTouchListener(new NotificationIconTouchListener());
@@ -581,6 +587,21 @@
return sb;
}
+ private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
+ public void onClick(View v) {
+ try {
+ mBarService.onClearAllNotifications();
+ } catch (RemoteException ex) {
+ // system process is dead if we're here.
+ }
+ animateCollapse();
+ }
+ };
+
+ public View getClearButton() {
+ return mClearButton;
+ }
+
public int getStatusBarHeight() {
return mHeightReceiver.getHeight();
}
@@ -1183,7 +1204,6 @@
}
private void setAreThereNotifications() {
- final boolean hasClearable = mNotificationData.hasClearableItems();
}
/**
diff --git a/policy/src/com/android/internal/policy/impl/IconUtilities.java b/policy/src/com/android/internal/policy/impl/IconUtilities.java
index 99055cf..4564f90 100644
--- a/policy/src/com/android/internal/policy/impl/IconUtilities.java
+++ b/policy/src/com/android/internal/policy/impl/IconUtilities.java
@@ -186,6 +186,7 @@
mask.recycle();
dest.drawBitmap(src, 0, 0, mPaint);
+ dest.setBitmap(null);
return result;
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index 174f733..14f7c11 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -35,13 +35,13 @@
import com.android.internal.view.menu.MenuDialogHelper;
import com.android.internal.view.menu.MenuPresenter;
import com.android.internal.view.menu.MenuView;
-import com.android.internal.view.menu.SubMenuBuilder;
import com.android.internal.widget.ActionBarContainer;
import com.android.internal.widget.ActionBarContextView;
import com.android.internal.widget.ActionBarView;
import android.app.KeyguardManager;
import android.content.Context;
+import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Canvas;
@@ -175,6 +175,8 @@
private AudioManager mAudioManager;
private KeyguardManager mKeyguardManager;
+ private int mUiOptions = 0;
+
public PhoneWindow(Context context) {
super(context);
mLayoutInflater = LayoutInflater.from(context);
@@ -213,6 +215,11 @@
}
@Override
+ public void setUiOptions(int uiOptions) {
+ mUiOptions = uiOptions;
+ }
+
+ @Override
public void setContentView(int layoutResID) {
if (mContentParent == null) {
installDecor();
@@ -545,6 +552,8 @@
if (!st.shownPanelView.hasFocus()) {
st.shownPanelView.requestFocus();
}
+ } else if (!st.isInExpandedMode) {
+ width = MATCH_PARENT;
}
st.isOpen = true;
@@ -2634,8 +2643,14 @@
mActionBar.initIndeterminateProgress();
}
- final boolean splitActionBar = getWindowStyle().getBoolean(
- com.android.internal.R.styleable.Window_windowSplitActionBar, false);
+ boolean splitActionBar = false;
+ if ((mUiOptions & ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW) != 0) {
+ splitActionBar = getContext().getResources().getBoolean(
+ com.android.internal.R.bool.split_action_bar_is_narrow);
+ } else {
+ splitActionBar = getWindowStyle().getBoolean(
+ com.android.internal.R.styleable.Window_windowSplitActionBar, false);
+ }
if (splitActionBar) {
final ActionBarContainer splitView = (ActionBarContainer) findViewById(
com.android.internal.R.id.split_action_bar);
@@ -2648,7 +2663,7 @@
com.android.internal.R.id.action_context_bar);
cab.setSplitView(splitView);
} else {
- Log.e(TAG, "Window style requested split action bar with " +
+ Log.e(TAG, "Requested split action bar with " +
"incompatible window decor! Ignoring request.");
}
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index b7f6adf..bdc37ef 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -113,6 +113,7 @@
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
+import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static android.view.WindowManager.LayoutParams.TYPE_POINTER;
import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
@@ -162,36 +163,39 @@
static final int APPLICATION_LAYER = 2;
static final int PHONE_LAYER = 3;
static final int SEARCH_BAR_LAYER = 4;
- static final int STATUS_BAR_SUB_PANEL_LAYER = 5;
- static final int SYSTEM_DIALOG_LAYER = 6;
+ static final int SYSTEM_DIALOG_LAYER = 5;
// toasts and the plugged-in battery thing
- static final int TOAST_LAYER = 7;
+ static final int TOAST_LAYER = 6;
// SIM errors and unlock. Not sure if this really should be in a high layer.
- static final int PRIORITY_PHONE_LAYER = 8;
+ static final int PRIORITY_PHONE_LAYER = 7;
// like the ANR / app crashed dialogs
- static final int SYSTEM_ALERT_LAYER = 9;
+ static final int SYSTEM_ALERT_LAYER = 8;
// system-level error dialogs
- static final int SYSTEM_ERROR_LAYER = 10;
+ static final int SYSTEM_ERROR_LAYER = 9;
// on-screen keyboards and other such input method user interfaces go here.
- static final int INPUT_METHOD_LAYER = 11;
+ static final int INPUT_METHOD_LAYER = 10;
// on-screen keyboards and other such input method user interfaces go here.
- static final int INPUT_METHOD_DIALOG_LAYER = 12;
+ static final int INPUT_METHOD_DIALOG_LAYER = 11;
// the keyguard; nothing on top of these can take focus, since they are
// responsible for power management when displayed.
- static final int KEYGUARD_LAYER = 13;
- static final int KEYGUARD_DIALOG_LAYER = 14;
+ static final int KEYGUARD_LAYER = 12;
+ static final int KEYGUARD_DIALOG_LAYER = 13;
+ static final int STATUS_BAR_SUB_PANEL_LAYER = 14;
static final int STATUS_BAR_LAYER = 15;
static final int STATUS_BAR_PANEL_LAYER = 16;
// the navigation bar, if available, shows atop most things
static final int NAVIGATION_BAR_LAYER = 17;
+ // the on-screen volume indicator and controller shown when the user
+ // changes the device volume
+ static final int VOLUME_OVERLAY_LAYER = 18;
// the drag layer: input for drag-and-drop is associated with this window,
// which sits above all other focusable windows
- static final int DRAG_LAYER = 18;
+ static final int DRAG_LAYER = 19;
// things in here CAN NOT take focus, but are shown on top of everything else.
- static final int SYSTEM_OVERLAY_LAYER = 19;
- static final int SECURE_SYSTEM_OVERLAY_LAYER = 20;
+ static final int SYSTEM_OVERLAY_LAYER = 20;
+ static final int SECURE_SYSTEM_OVERLAY_LAYER = 21;
// the (mouse) pointer layer
- static final int POINTER_LAYER = 21;
+ static final int POINTER_LAYER = 22;
static final int APPLICATION_MEDIA_SUBLAYER = -2;
static final int APPLICATION_MEDIA_OVERLAY_SUBLAYER = -1;
@@ -1057,6 +1061,8 @@
return INPUT_METHOD_LAYER;
case TYPE_INPUT_METHOD_DIALOG:
return INPUT_METHOD_DIALOG_LAYER;
+ case TYPE_VOLUME_OVERLAY:
+ return VOLUME_OVERLAY_LAYER;
case TYPE_SYSTEM_OVERLAY:
return SYSTEM_OVERLAY_LAYER;
case TYPE_SECURE_SYSTEM_OVERLAY:
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index ec45530..2355d5c 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -51,6 +51,8 @@
#include <media/EffectsFactoryApi.h>
#include <audio_effects/effect_visualizer.h>
+#include <audio_effects/effect_ns.h>
+#include <audio_effects/effect_aec.h>
#include <cpustats/ThreadCpuUsage.h>
#include <powermanager/PowerManager.h>
@@ -148,7 +150,8 @@
AudioFlinger::AudioFlinger()
: BnAudioFlinger(),
- mPrimaryHardwareDev(0), mMasterVolume(1.0f), mMasterMute(false), mNextUniqueId(1)
+ mPrimaryHardwareDev(0), mMasterVolume(1.0f), mMasterMute(false), mNextUniqueId(1),
+ mBtNrec(false)
{
}
@@ -717,6 +720,31 @@
final_result = result ?: final_result;
}
mHardwareStatus = AUDIO_HW_IDLE;
+ // disable AEC and NS if the device is a BT SCO headset supporting those pre processings
+ AudioParameter param = AudioParameter(keyValuePairs);
+ String8 value;
+ if (param.get(String8(AUDIO_PARAMETER_KEY_BT_NREC), value) == NO_ERROR) {
+ Mutex::Autolock _l(mLock);
+ bool btNrec = (value == AUDIO_PARAMETER_VALUE_ON);
+ if (mBtNrec != btNrec) {
+ for (size_t i = 0; i < mRecordThreads.size(); i++) {
+ sp<RecordThread> thread = mRecordThreads.valueAt(i);
+ RecordThread::RecordTrack *track = thread->track();
+ if (track != NULL) {
+ audio_devices_t device = (audio_devices_t)(
+ thread->device() & AUDIO_DEVICE_IN_ALL);
+ bool suspend = audio_is_bluetooth_sco_device(device) && btNrec;
+ thread->setEffectSuspended(FX_IID_AEC,
+ suspend,
+ track->sessionId());
+ thread->setEffectSuspended(FX_IID_NS,
+ suspend,
+ track->sessionId());
+ }
+ }
+ mBtNrec = btNrec;
+ }
+ }
return final_result;
}
@@ -1130,6 +1158,140 @@
LOGW("power manager service died !!!");
}
+void AudioFlinger::ThreadBase::setEffectSuspended(
+ const effect_uuid_t *type, bool suspend, int sessionId)
+{
+ Mutex::Autolock _l(mLock);
+ setEffectSuspended_l(type, suspend, sessionId);
+}
+
+void AudioFlinger::ThreadBase::setEffectSuspended_l(
+ const effect_uuid_t *type, bool suspend, int sessionId)
+{
+ sp<EffectChain> chain;
+ chain = getEffectChain_l(sessionId);
+ if (chain != 0) {
+ if (type != NULL) {
+ chain->setEffectSuspended_l(type, suspend);
+ } else {
+ chain->setEffectSuspendedAll_l(suspend);
+ }
+ }
+
+ updateSuspendedSessions_l(type, suspend, sessionId);
+}
+
+void AudioFlinger::ThreadBase::checkSuspendOnAddEffectChain_l(const sp<EffectChain>& chain)
+{
+ int index = mSuspendedSessions.indexOfKey(chain->sessionId());
+ if (index < 0) {
+ return;
+ }
+
+ KeyedVector <int, sp<SuspendedSessionDesc> > sessionEffects =
+ mSuspendedSessions.editValueAt(index);
+
+ for (size_t i = 0; i < sessionEffects.size(); i++) {
+ sp <SuspendedSessionDesc> desc = sessionEffects.valueAt(i);
+ for (int j = 0; j < desc->mRefCount; j++) {
+ if (sessionEffects.keyAt(i) == EffectChain::kKeyForSuspendAll) {
+ chain->setEffectSuspendedAll_l(true);
+ } else {
+ LOGV("checkSuspendOnAddEffectChain_l() suspending effects %08x",
+ desc->mType.timeLow);
+ chain->setEffectSuspended_l(&desc->mType, true);
+ }
+ }
+ }
+}
+
+void AudioFlinger::ThreadBase::updateSuspendedSessionsOnRemoveEffectChain_l(
+ const sp<EffectChain>& chain)
+{
+ int index = mSuspendedSessions.indexOfKey(chain->sessionId());
+ if (index < 0) {
+ return;
+ }
+ LOGV("updateSuspendedSessionsOnRemoveEffectChain_l() removed suspended session %d",
+ chain->sessionId());
+ mSuspendedSessions.removeItemsAt(index);
+}
+
+void AudioFlinger::ThreadBase::updateSuspendedSessions_l(const effect_uuid_t *type,
+ bool suspend,
+ int sessionId)
+{
+ int index = mSuspendedSessions.indexOfKey(sessionId);
+
+ KeyedVector <int, sp<SuspendedSessionDesc> > sessionEffects;
+
+ if (suspend) {
+ if (index >= 0) {
+ sessionEffects = mSuspendedSessions.editValueAt(index);
+ } else {
+ mSuspendedSessions.add(sessionId, sessionEffects);
+ }
+ } else {
+ if (index < 0) {
+ return;
+ }
+ sessionEffects = mSuspendedSessions.editValueAt(index);
+ }
+
+
+ int key = EffectChain::kKeyForSuspendAll;
+ if (type != NULL) {
+ key = type->timeLow;
+ }
+ index = sessionEffects.indexOfKey(key);
+
+ sp <SuspendedSessionDesc> desc;
+ if (suspend) {
+ if (index >= 0) {
+ desc = sessionEffects.valueAt(index);
+ } else {
+ desc = new SuspendedSessionDesc();
+ if (type != NULL) {
+ memcpy(&desc->mType, type, sizeof(effect_uuid_t));
+ }
+ sessionEffects.add(key, desc);
+ LOGV("updateSuspendedSessions_l() suspend adding effect %08x", key);
+ }
+ desc->mRefCount++;
+ } else {
+ if (index < 0) {
+ return;
+ }
+ desc = sessionEffects.valueAt(index);
+ if (--desc->mRefCount == 0) {
+ LOGV("updateSuspendedSessions_l() restore removing effect %08x", key);
+ sessionEffects.removeItemsAt(index);
+ if (sessionEffects.isEmpty()) {
+ LOGV("updateSuspendedSessions_l() restore removing session %d",
+ sessionId);
+ mSuspendedSessions.removeItem(sessionId);
+ }
+ }
+ }
+ if (!sessionEffects.isEmpty()) {
+ mSuspendedSessions.replaceValueFor(sessionId, sessionEffects);
+ }
+}
+
+void AudioFlinger::ThreadBase::checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
+ bool enabled,
+ int sessionId)
+{
+ Mutex::Autolock _l(mLock);
+
+ // TODO: implement PlaybackThread or RecordThread specific behavior here
+
+ sp<EffectChain> chain = getEffectChain_l(sessionId);
+ if (chain != 0) {
+ chain->checkSuspendOnEffectEnabled(effect, enabled);
+ }
+}
+
// ----------------------------------------------------------------------------
AudioFlinger::PlaybackThread::PlaybackThread(const sp<AudioFlinger>& audioFlinger,
@@ -4143,7 +4305,11 @@
}
mTrack = track.get();
-
+ // disable AEC and NS if the device is a BT SCO headset supporting those pre processings
+ bool suspend = audio_is_bluetooth_sco_device(
+ (audio_devices_t)(mDevice & AUDIO_DEVICE_IN_ALL)) && mAudioFlinger->btNrec();
+ setEffectSuspended_l(FX_IID_AEC, suspend, sessionId);
+ setEffectSuspended_l(FX_IID_NS, suspend, sessionId);
}
lStatus = NO_ERROR;
@@ -4363,6 +4529,13 @@
status = BAD_VALUE;
} else {
mDevice &= (uint32_t)~(value & AUDIO_DEVICE_IN_ALL);
+ // disable AEC and NS if the device is a BT SCO headset supporting those pre processings
+ if (mTrack != NULL) {
+ bool suspend = audio_is_bluetooth_sco_device(
+ (audio_devices_t)value) && mAudioFlinger->btNrec();
+ setEffectSuspended_l(FX_IID_AEC, suspend, mTrack->sessionId());
+ setEffectSuspended_l(FX_IID_NS, suspend, mTrack->sessionId());
+ }
}
mDevice |= (uint32_t)value;
}
@@ -4490,6 +4663,12 @@
return result;
}
+AudioFlinger::RecordThread::RecordTrack* AudioFlinger::RecordThread::track()
+{
+ Mutex::Autolock _l(mLock);
+ return mTrack;
+}
+
// ----------------------------------------------------------------------------
int AudioFlinger::openOutput(uint32_t *pDevices,
@@ -4874,10 +5053,6 @@
}
-// this UUID must match the one defined in media/libeffects/EffectVisualizer.cpp
-static const effect_uuid_t VISUALIZATION_UUID_ =
- {0xd069d9e0, 0x8329, 0x11df, 0x9168, {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-
sp<IEffect> AudioFlinger::createEffect(pid_t pid,
effect_descriptor_t *pDesc,
const sp<IEffectClient>& effectClient,
@@ -4915,14 +5090,6 @@
goto Exit;
}
- // check recording permission for visualizer
- if ((memcmp(&pDesc->type, SL_IID_VISUALIZATION, sizeof(effect_uuid_t)) == 0 ||
- memcmp(&pDesc->uuid, &VISUALIZATION_UUID_, sizeof(effect_uuid_t)) == 0) &&
- !recordingAllowed()) {
- lStatus = PERMISSION_DENIED;
- goto Exit;
- }
-
if (io == 0) {
if (sessionId == AUDIO_SESSION_OUTPUT_STAGE) {
// output must be specified by AudioPolicyManager when using session
@@ -5003,6 +5170,13 @@
goto Exit;
}
+ // check recording permission for visualizer
+ if ((memcmp(&desc.type, SL_IID_VISUALIZATION, sizeof(effect_uuid_t)) == 0) &&
+ !recordingAllowed()) {
+ lStatus = PERMISSION_DENIED;
+ goto Exit;
+ }
+
// return effect descriptor
memcpy(pDesc, &desc, sizeof(effect_descriptor_t));
@@ -5069,10 +5243,10 @@
return handle;
}
-status_t AudioFlinger::moveEffects(int session, int srcOutput, int dstOutput)
+status_t AudioFlinger::moveEffects(int sessionId, int srcOutput, int dstOutput)
{
LOGV("moveEffects() session %d, srcOutput %d, dstOutput %d",
- session, srcOutput, dstOutput);
+ sessionId, srcOutput, dstOutput);
Mutex::Autolock _l(mLock);
if (srcOutput == dstOutput) {
LOGW("moveEffects() same dst and src outputs %d", dstOutput);
@@ -5091,24 +5265,24 @@
Mutex::Autolock _dl(dstThread->mLock);
Mutex::Autolock _sl(srcThread->mLock);
- moveEffectChain_l(session, srcThread, dstThread, false);
+ moveEffectChain_l(sessionId, srcThread, dstThread, false);
return NO_ERROR;
}
// moveEffectChain_l mustbe called with both srcThread and dstThread mLocks held
-status_t AudioFlinger::moveEffectChain_l(int session,
+status_t AudioFlinger::moveEffectChain_l(int sessionId,
AudioFlinger::PlaybackThread *srcThread,
AudioFlinger::PlaybackThread *dstThread,
bool reRegister)
{
LOGV("moveEffectChain_l() session %d from thread %p to thread %p",
- session, srcThread, dstThread);
+ sessionId, srcThread, dstThread);
- sp<EffectChain> chain = srcThread->getEffectChain_l(session);
+ sp<EffectChain> chain = srcThread->getEffectChain_l(sessionId);
if (chain == 0) {
LOGW("moveEffectChain_l() effect chain for session %d not on source thread %p",
- session, srcThread);
+ sessionId, srcThread);
return INVALID_OPERATION;
}
@@ -5143,7 +5317,7 @@
AudioSystem::registerEffect(&effect->desc(),
dstOutput,
strategy,
- session,
+ sessionId,
effect->id());
}
effect = chain->getEffectFromId_l(0);
@@ -5385,6 +5559,7 @@
void AudioFlinger::ThreadBase::disconnectEffect(const sp<EffectModule>& effect,
const wp<EffectHandle>& handle) {
+
Mutex::Autolock _l(mLock);
LOGV("disconnectEffect() %p effect %p", this, effect.get());
// delete the effect module if removing last handle on it
@@ -5451,6 +5626,7 @@
if (mEffectChains[i]->sessionId() < session) break;
}
mEffectChains.insertAt(chain, i);
+ checkSuspendOnAddEffectChain_l(chain);
return NO_ERROR;
}
@@ -5463,6 +5639,7 @@
for (size_t i = 0; i < mEffectChains.size(); i++) {
if (chain == mEffectChains[i]) {
+ updateSuspendedSessionsOnRemoveEffectChain_l(chain);
mEffectChains.removeAt(i);
// detach all active tracks from the chain
for (size_t i = 0 ; i < mActiveTracks.size() ; ++i) {
@@ -5540,6 +5717,8 @@
chain->setInBuffer(NULL);
chain->setOutBuffer(NULL);
+ checkSuspendOnAddEffectChain_l(chain);
+
mEffectChains.add(chain);
return NO_ERROR;
@@ -5552,6 +5731,7 @@
"removeEffectChain_l() %p invalid chain size %d on thread %p",
chain.get(), mEffectChains.size(), this);
if (mEffectChains.size() == 1) {
+ updateSuspendedSessionsOnRemoveEffectChain_l(chain);
mEffectChains.removeAt(0);
}
return 0;
@@ -5570,7 +5750,7 @@
int id,
int sessionId)
: mThread(wThread), mChain(chain), mId(id), mSessionId(sessionId), mEffectInterface(NULL),
- mStatus(NO_INIT), mState(IDLE)
+ mStatus(NO_INIT), mState(IDLE), mSuspended(false)
{
LOGV("Constructor %p", this);
int lStatus;
@@ -5634,14 +5814,17 @@
}
// if inserted in first place, move effect control from previous owner to this handle
if (i == 0) {
+ bool enabled = false;
if (h != 0) {
- h->setControl(false, true);
+ enabled = h->enabled();
+ h->setControl(false/*hasControl*/, true /*signal*/, enabled /*enabled*/);
}
- handle->setControl(true, false);
+ handle->setControl(true /*hasControl*/, false /*signal*/, enabled /*enabled*/);
status = NO_ERROR;
} else {
status = ALREADY_EXISTS;
}
+ LOGV("addHandle() %p added handle %p in position %d", this, handle.get(), i);
mHandles.insertAt(handle, i);
return status;
}
@@ -5657,13 +5840,21 @@
if (i == size) {
return size;
}
+ LOGV("removeHandle() %p removed handle %p in position %d", this, handle.unsafe_get(), i);
+
+ bool enabled = false;
+ EffectHandle *hdl = handle.unsafe_get();
+ if (hdl) {
+ LOGV("removeHandle() unsafe_get OK");
+ enabled = hdl->enabled();
+ }
mHandles.removeAt(i);
size = mHandles.size();
// if removed from first place, move effect control from this handle to next in line
if (i == 0 && size != 0) {
sp<EffectHandle> h = mHandles[0].promote();
if (h != 0) {
- h->setControl(true, true);
+ h->setControl(true /*hasControl*/, true /*signal*/ , enabled /*enabled*/);
}
}
@@ -5677,8 +5868,21 @@
return size;
}
+sp<AudioFlinger::EffectHandle> AudioFlinger::EffectModule::controlHandle()
+{
+ Mutex::Autolock _l(mLock);
+ sp<EffectHandle> handle;
+ if (mHandles.size() != 0) {
+ handle = mHandles[0].promote();
+ }
+ return handle;
+}
+
+
+
void AudioFlinger::EffectModule::disconnect(const wp<EffectHandle>& handle)
{
+ LOGV("disconnect() %p handle %p ", this, handle.unsafe_get());
// keep a strong reference on this EffectModule to avoid calling the
// destructor before we exit
sp<EffectModule> keep(this);
@@ -6139,6 +6343,17 @@
return status;
}
+void AudioFlinger::EffectModule::setSuspended(bool suspended)
+{
+ Mutex::Autolock _l(mLock);
+ mSuspended = suspended;
+}
+bool AudioFlinger::EffectModule::suspended()
+{
+ Mutex::Autolock _l(mLock);
+ return mSuspended;
+}
+
status_t AudioFlinger::EffectModule::dump(int fd, const Vector<String16>& args)
{
const size_t SIZE = 256;
@@ -6235,7 +6450,8 @@
const sp<IEffectClient>& effectClient,
int32_t priority)
: BnEffect(),
- mEffect(effect), mEffectClient(effectClient), mClient(client), mPriority(priority), mHasControl(false)
+ mEffect(effect), mEffectClient(effectClient), mClient(client),
+ mPriority(priority), mHasControl(false), mEnabled(false)
{
LOGV("constructor %p", this);
@@ -6258,30 +6474,66 @@
{
LOGV("Destructor %p", this);
disconnect();
+ LOGV("Destructor DONE %p", this);
}
status_t AudioFlinger::EffectHandle::enable()
{
+ LOGV("enable %p", this);
if (!mHasControl) return INVALID_OPERATION;
if (mEffect == 0) return DEAD_OBJECT;
+ mEnabled = true;
+
+ sp<ThreadBase> thread = mEffect->thread().promote();
+ if (thread != 0) {
+ thread->checkSuspendOnEffectEnabled(mEffect, true, mEffect->sessionId());
+ }
+
+ // checkSuspendOnEffectEnabled() can suspend this same effect when enabled
+ if (mEffect->suspended()) {
+ return NO_ERROR;
+ }
+
return mEffect->setEnabled(true);
}
status_t AudioFlinger::EffectHandle::disable()
{
+ LOGV("disable %p", this);
if (!mHasControl) return INVALID_OPERATION;
- if (mEffect == NULL) return DEAD_OBJECT;
+ if (mEffect == 0) return DEAD_OBJECT;
- return mEffect->setEnabled(false);
+ mEnabled = false;
+
+ if (mEffect->suspended()) {
+ return NO_ERROR;
+ }
+
+ status_t status = mEffect->setEnabled(false);
+
+ sp<ThreadBase> thread = mEffect->thread().promote();
+ if (thread != 0) {
+ thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId());
+ }
+
+ return status;
}
void AudioFlinger::EffectHandle::disconnect()
{
+ LOGV("disconnect %p", this);
if (mEffect == 0) {
return;
}
+
mEffect->disconnect(this);
+
+ sp<ThreadBase> thread = mEffect->thread().promote();
+ if (thread != 0) {
+ thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId());
+ }
+
// release sp on module => module destructor can be called now
mEffect.clear();
if (mCblk) {
@@ -6373,11 +6625,13 @@
return mCblkMemory;
}
-void AudioFlinger::EffectHandle::setControl(bool hasControl, bool signal)
+void AudioFlinger::EffectHandle::setControl(bool hasControl, bool signal, bool enabled)
{
LOGV("setControl %p control %d", this, hasControl);
mHasControl = hasControl;
+ mEnabled = enabled;
+
if (signal && mEffectClient != 0) {
mEffectClient->controlStatusChanged(hasControl);
}
@@ -6448,7 +6702,7 @@
}
-// getEffectFromDesc_l() must be called with PlaybackThread::mLock held
+// getEffectFromDesc_l() must be called with ThreadBase::mLock held
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromDesc_l(effect_descriptor_t *descriptor)
{
sp<EffectModule> effect;
@@ -6463,7 +6717,7 @@
return effect;
}
-// getEffectFromId_l() must be called with PlaybackThread::mLock held
+// getEffectFromId_l() must be called with ThreadBase::mLock held
sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromId_l(int id)
{
sp<EffectModule> effect;
@@ -6479,6 +6733,22 @@
return effect;
}
+// getEffectFromType_l() must be called with ThreadBase::mLock held
+sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectFromType_l(
+ const effect_uuid_t *type)
+{
+ sp<EffectModule> effect;
+ size_t size = mEffects.size();
+
+ for (size_t i = 0; i < size; i++) {
+ if (memcmp(&mEffects[i]->desc().type, type, sizeof(effect_uuid_t)) == 0) {
+ effect = mEffects[i];
+ break;
+ }
+ }
+ return effect;
+}
+
// Must be called with EffectChain::mLock locked
void AudioFlinger::EffectChain::process_l()
{
@@ -6773,6 +7043,166 @@
return NO_ERROR;
}
+// must be called with ThreadBase::mLock held
+void AudioFlinger::EffectChain::setEffectSuspended_l(
+ const effect_uuid_t *type, bool suspend)
+{
+ sp<SuspendedEffectDesc> desc;
+ // use effect type UUID timelow as key as there is no real risk of identical
+ // timeLow fields among effect type UUIDs.
+ int index = mSuspendedEffects.indexOfKey(type->timeLow);
+ if (suspend) {
+ if (index >= 0) {
+ desc = mSuspendedEffects.valueAt(index);
+ } else {
+ desc = new SuspendedEffectDesc();
+ memcpy(&desc->mType, type, sizeof(effect_uuid_t));
+ mSuspendedEffects.add(type->timeLow, desc);
+ LOGV("setEffectSuspended_l() add entry for %08x", type->timeLow);
+ }
+ if (desc->mRefCount++ == 0) {
+ sp<EffectModule> effect = getEffectIfEnabled(type);
+ if (effect != 0) {
+ desc->mEffect = effect;
+ effect->setSuspended(true);
+ effect->setEnabled(false);
+ }
+ }
+ } else {
+ if (index < 0) {
+ return;
+ }
+ desc = mSuspendedEffects.valueAt(index);
+ if (desc->mRefCount <= 0) {
+ LOGW("setEffectSuspended_l() restore refcount should not be 0 %d", desc->mRefCount);
+ desc->mRefCount = 1;
+ }
+ if (--desc->mRefCount == 0) {
+ LOGV("setEffectSuspended_l() remove entry for %08x", mSuspendedEffects.keyAt(index));
+ if (desc->mEffect != 0) {
+ sp<EffectModule> effect = desc->mEffect.promote();
+ if (effect != 0) {
+ effect->setSuspended(false);
+ sp<EffectHandle> handle = effect->controlHandle();
+ if (handle != 0) {
+ effect->setEnabled(handle->enabled());
+ }
+ }
+ desc->mEffect.clear();
+ }
+ mSuspendedEffects.removeItemsAt(index);
+ }
+ }
+}
+
+// must be called with ThreadBase::mLock held
+void AudioFlinger::EffectChain::setEffectSuspendedAll_l(bool suspend)
+{
+ sp<SuspendedEffectDesc> desc;
+
+ int index = mSuspendedEffects.indexOfKey((int)kKeyForSuspendAll);
+ if (suspend) {
+ if (index >= 0) {
+ desc = mSuspendedEffects.valueAt(index);
+ } else {
+ desc = new SuspendedEffectDesc();
+ mSuspendedEffects.add((int)kKeyForSuspendAll, desc);
+ LOGV("setEffectSuspendedAll_l() add entry for 0");
+ }
+ if (desc->mRefCount++ == 0) {
+ Vector< sp<EffectModule> > effects = getSuspendEligibleEffects();
+ for (size_t i = 0; i < effects.size(); i++) {
+ setEffectSuspended_l(&effects[i]->desc().type, true);
+ }
+ }
+ } else {
+ if (index < 0) {
+ return;
+ }
+ desc = mSuspendedEffects.valueAt(index);
+ if (desc->mRefCount <= 0) {
+ LOGW("setEffectSuspendedAll_l() restore refcount should not be 0 %d", desc->mRefCount);
+ desc->mRefCount = 1;
+ }
+ if (--desc->mRefCount == 0) {
+ Vector<const effect_uuid_t *> types;
+ for (size_t i = 0; i < mSuspendedEffects.size(); i++) {
+ if (mSuspendedEffects.keyAt(i) == (int)kKeyForSuspendAll) {
+ continue;
+ }
+ types.add(&mSuspendedEffects.valueAt(i)->mType);
+ }
+ for (size_t i = 0; i < types.size(); i++) {
+ setEffectSuspended_l(types[i], false);
+ }
+ LOGV("setEffectSuspendedAll_l() remove entry for %08x", mSuspendedEffects.keyAt(index));
+ mSuspendedEffects.removeItem((int)kKeyForSuspendAll);
+ }
+ }
+}
+
+Vector< sp<AudioFlinger::EffectModule> > AudioFlinger::EffectChain::getSuspendEligibleEffects()
+{
+ Vector< sp<EffectModule> > effects;
+ for (size_t i = 0; i < mEffects.size(); i++) {
+ effect_descriptor_t desc = mEffects[i]->desc();
+ // auxiliary effects and vizualizer are never suspended on output mix
+ if ((mSessionId == AUDIO_SESSION_OUTPUT_MIX) && (
+ ((desc.flags & EFFECT_FLAG_TYPE_MASK) == EFFECT_FLAG_TYPE_AUXILIARY) ||
+ (memcmp(&desc.type, SL_IID_VISUALIZATION, sizeof(effect_uuid_t)) == 0))) {
+ continue;
+ }
+ effects.add(mEffects[i]);
+ }
+ return effects;
+}
+
+sp<AudioFlinger::EffectModule> AudioFlinger::EffectChain::getEffectIfEnabled(
+ const effect_uuid_t *type)
+{
+ sp<EffectModule> effect;
+ effect = getEffectFromType_l(type);
+ if (effect != 0 && !effect->isEnabled()) {
+ effect.clear();
+ }
+ return effect;
+}
+
+void AudioFlinger::EffectChain::checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
+ bool enabled)
+{
+ int index = mSuspendedEffects.indexOfKey(effect->desc().type.timeLow);
+ if (enabled) {
+ if (index < 0) {
+ // if the effect is not suspend check if all effects are suspended
+ index = mSuspendedEffects.indexOfKey((int)kKeyForSuspendAll);
+ if (index < 0) {
+ return;
+ }
+ setEffectSuspended_l(&effect->desc().type, enabled);
+ index = mSuspendedEffects.indexOfKey(effect->desc().type.timeLow);
+ }
+ LOGV("checkSuspendOnEffectEnabled() enable suspending fx %08x",
+ effect->desc().type.timeLow);
+ sp<SuspendedEffectDesc> desc = mSuspendedEffects.valueAt(index);
+ // if effect is requested to suspended but was not yet enabled, supend it now.
+ if (desc->mEffect == 0) {
+ desc->mEffect = effect;
+ effect->setEnabled(false);
+ effect->setSuspended(true);
+ }
+ } else {
+ if (index < 0) {
+ return;
+ }
+ LOGV("checkSuspendOnEffectEnabled() disable restoring fx %08x",
+ effect->desc().type.timeLow);
+ sp<SuspendedEffectDesc> desc = mSuspendedEffects.valueAt(index);
+ desc->mEffect.clear();
+ effect->setSuspended(false);
+ }
+}
+
#undef LOG_TAG
#define LOG_TAG "AudioFlinger"
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 7b6215f..791341a 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -165,7 +165,7 @@
int *id,
int *enabled);
- virtual status_t moveEffects(int session, int srcOutput, int dstOutput);
+ virtual status_t moveEffects(int sessionId, int srcOutput, int dstOutput);
enum hardware_call_state {
AUDIO_HW_IDLE = 0,
@@ -206,6 +206,8 @@
uint32_t getMode() { return mMode; }
+ bool btNrec() { return mBtNrec; }
+
private:
AudioFlinger();
virtual ~AudioFlinger();
@@ -477,14 +479,45 @@
// strategy is only meaningful for PlaybackThread which implements this method
virtual uint32_t getStrategyForSession_l(int sessionId) { return 0; }
+ // suspend or restore effect according to the type of effect passed. a NULL
+ // type pointer means suspend all effects in the session
+ void setEffectSuspended(const effect_uuid_t *type,
+ bool suspend,
+ int sessionId = AUDIO_SESSION_OUTPUT_MIX);
+ // check if some effects must be suspended/restored when an effect is enabled
+ // or disabled
+ virtual void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
+ bool enabled,
+ int sessionId = AUDIO_SESSION_OUTPUT_MIX);
+
mutable Mutex mLock;
protected:
+ // entry describing an effect being suspended in mSuspendedSessions keyed vector
+ class SuspendedSessionDesc : public RefBase {
+ public:
+ SuspendedSessionDesc() : mRefCount(0) {}
+
+ int mRefCount; // number of active suspend requests
+ effect_uuid_t mType; // effect type UUID
+ };
+
void acquireWakeLock();
void acquireWakeLock_l();
void releaseWakeLock();
void releaseWakeLock_l();
+ void setEffectSuspended_l(const effect_uuid_t *type,
+ bool suspend,
+ int sessionId = AUDIO_SESSION_OUTPUT_MIX);
+ // updated mSuspendedSessions when an effect suspended or restored
+ void updateSuspendedSessions_l(const effect_uuid_t *type,
+ bool suspend,
+ int sessionId);
+ // check if some effects must be suspended when an effect chain is added
+ void checkSuspendOnAddEffectChain_l(const sp<EffectChain>& chain);
+ // updated mSuspendedSessions when an effect chain is removed
+ void updateSuspendedSessionsOnRemoveEffectChain_l(const sp<EffectChain>& chain);
friend class Track;
friend class TrackBase;
@@ -519,6 +552,9 @@
sp<IPowerManager> mPowerManager;
sp<IBinder> mWakeLockToken;
sp<PMDeathRecipient> mDeathRecipient;
+ // list of suspended effects per session and per type. The first vector is
+ // keyed by session ID, the second by type UUID timeLow field
+ KeyedVector< int, KeyedVector< int, sp<SuspendedSessionDesc> > > mSuspendedSessions;
};
// --- PlaybackThread ---
@@ -848,7 +884,7 @@
void audioConfigChanged_l(int event, int ioHandle, void *param2);
uint32_t nextUniqueId();
- status_t moveEffectChain_l(int session,
+ status_t moveEffectChain_l(int sessionId,
AudioFlinger::PlaybackThread *srcThread,
AudioFlinger::PlaybackThread *dstThread,
bool reRegister);
@@ -908,6 +944,7 @@
bool setOverflow() { bool tmp = mOverflow; mOverflow = true; return tmp; }
void dump(char* buffer, size_t size);
+
private:
friend class AudioFlinger;
friend class RecordThread;
@@ -950,8 +987,6 @@
AudioStreamIn* getInput() { return mInput; }
virtual audio_stream_t* stream() { return &mInput->stream->common; }
-
- void setTrack(RecordTrack *recordTrack) { mTrack = recordTrack; }
virtual status_t getNextBuffer(AudioBufferProvider::Buffer* buffer);
virtual void releaseBuffer(AudioBufferProvider::Buffer* buffer);
virtual bool checkForNewParameters_l();
@@ -963,6 +998,7 @@
virtual status_t addEffectChain_l(const sp<EffectChain>& chain);
virtual size_t removeEffectChain_l(const sp<EffectChain>& chain);
virtual uint32_t hasAudioSession(int sessionId);
+ RecordTrack* track();
private:
RecordThread();
@@ -1059,6 +1095,7 @@
int16_t *outBuffer() { return mConfig.outputCfg.buffer.s16; }
void setChain(const wp<EffectChain>& chain) { mChain = chain; }
void setThread(const wp<ThreadBase>& thread) { mThread = thread; }
+ wp<ThreadBase>& thread() { return mThread; }
status_t addHandle(sp<EffectHandle>& handle);
void disconnect(const wp<EffectHandle>& handle);
@@ -1071,6 +1108,10 @@
status_t setVolume(uint32_t *left, uint32_t *right, bool controller);
status_t setMode(uint32_t mode);
status_t stop();
+ void setSuspended(bool suspended);
+ bool suspended();
+
+ sp<EffectHandle> controlHandle();
status_t dump(int fd, const Vector<String16>& args);
@@ -1099,6 +1140,7 @@
uint32_t mMaxDisableWaitCnt; // maximum grace period before forcing an effect off after
// sending disable command.
uint32_t mDisableWaitCnt; // current process() calls count during disable period.
+ bool mSuspended; // effect is suspended: temporarily disabled by framework
};
// The EffectHandle class implements the IEffect interface. It provides resources
@@ -1131,13 +1173,17 @@
// Give or take control of effect module
- void setControl(bool hasControl, bool signal);
+ // - hasControl: true if control is given, false if removed
+ // - signal: true client app should be signaled of change, false otherwise
+ // - enabled: state of the effect when control is passed
+ void setControl(bool hasControl, bool signal, bool enabled);
void commandExecuted(uint32_t cmdCode,
uint32_t cmdSize,
void *pCmdData,
uint32_t replySize,
void *pReplyData);
void setEnabled(bool enabled);
+ bool enabled() { return mEnabled; }
// Getters
int id() { return mEffect->id(); }
@@ -1160,6 +1206,8 @@
uint8_t* mBuffer; // pointer to parameter area in shared memory
int mPriority; // client application priority to control the effect
bool mHasControl; // true if this handle is controlling the effect
+ bool mEnabled; // cached enable state: needed when the effect is
+ // restored after being suspended
};
// the EffectChain class represents a group of effects associated to one audio session.
@@ -1174,6 +1222,10 @@
EffectChain(const wp<ThreadBase>& wThread, int sessionId);
~EffectChain();
+ // special key used for an entry in mSuspendedEffects keyed vector
+ // corresponding to a suspend all request.
+ static const int kKeyForSuspendAll = 0;
+
void process_l();
void lock() {
@@ -1191,6 +1243,7 @@
sp<EffectModule> getEffectFromDesc_l(effect_descriptor_t *descriptor);
sp<EffectModule> getEffectFromId_l(int id);
+ sp<EffectModule> getEffectFromType_l(const effect_uuid_t *type);
bool setVolume_l(uint32_t *left, uint32_t *right);
void setDevice_l(uint32_t device);
void setMode_l(uint32_t mode);
@@ -1221,6 +1274,15 @@
void setStrategy(uint32_t strategy)
{ mStrategy = strategy; }
+ // suspend effect of the given type
+ void setEffectSuspended_l(const effect_uuid_t *type,
+ bool suspend);
+ // suspend all eligible effects
+ void setEffectSuspendedAll_l(bool suspend);
+ // check if effects should be suspend or restored when a given effect is enable or disabled
+ virtual void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
+ bool enabled);
+
status_t dump(int fd, const Vector<String16>& args);
protected:
@@ -1228,6 +1290,21 @@
EffectChain(const EffectChain&);
EffectChain& operator =(const EffectChain&);
+ class SuspendedEffectDesc : public RefBase {
+ public:
+ SuspendedEffectDesc() : mRefCount(0) {}
+
+ int mRefCount;
+ effect_uuid_t mType;
+ wp<EffectModule> mEffect;
+ };
+
+ // get a list of effect modules to suspend when an effect of the type
+ // passed is enabled.
+ Vector< sp<EffectModule> > getSuspendEligibleEffects();
+ // get an effect module if it is currently enable
+ sp<EffectModule> getEffectIfEnabled(const effect_uuid_t *type);
+
wp<ThreadBase> mThread; // parent mixer thread
Mutex mLock; // mutex protecting effect list
Vector<sp<EffectModule> > mEffects; // list of effect modules
@@ -1243,6 +1320,10 @@
uint32_t mNewLeftVolume; // new volume on left channel
uint32_t mNewRightVolume; // new volume on right channel
uint32_t mStrategy; // strategy for this effect chain
+ // mSuspendedEffects lists all effect currently suspended in the chain
+ // use effect type UUID timelow field as key. There is no real risk of identical
+ // timeLow fields among effect type UUIDs.
+ KeyedVector< int, sp<SuspendedEffectDesc> > mSuspendedEffects;
};
struct AudioStreamOut {
@@ -1283,7 +1364,8 @@
DefaultKeyedVector< pid_t, sp<NotificationClient> > mNotificationClients;
volatile int32_t mNextUniqueId;
- uint32_t mMode;
+ uint32_t mMode;
+ bool mBtNrec;
};
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index bdd8938..2e3d6dd 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -129,6 +129,7 @@
class BackupManagerService extends IBackupManager.Stub {
private static final String TAG = "BackupManagerService";
private static final boolean DEBUG = true;
+ private static final boolean MORE_DEBUG = false;
// Name and current contents version of the full-backup manifest file
static final String BACKUP_MANIFEST_FILENAME = "_manifest";
@@ -851,10 +852,10 @@
info = mPackageManager.getPackageInfo(pkg, 0);
mEverStoredApps.add(pkg);
temp.writeUTF(pkg);
- if (DEBUG) Slog.v(TAG, " + " + pkg);
+ if (MORE_DEBUG) Slog.v(TAG, " + " + pkg);
} catch (NameNotFoundException e) {
// nope, this package was uninstalled; don't include it
- if (DEBUG) Slog.v(TAG, " - " + pkg);
+ if (MORE_DEBUG) Slog.v(TAG, " - " + pkg);
}
}
} catch (EOFException e) {
@@ -1246,7 +1247,7 @@
private void addPackageParticipantsLockedInner(String packageName,
List<PackageInfo> targetPkgs) {
- if (DEBUG) {
+ if (MORE_DEBUG) {
Slog.v(TAG, "Adding " + targetPkgs.size() + " backup participants:");
for (PackageInfo p : targetPkgs) {
Slog.v(TAG, " " + p + " agent=" + p.applicationInfo.backupAgentName
@@ -1296,7 +1297,7 @@
private void removePackageParticipantsLockedInner(String packageName,
List<String> allPackageNames) {
- if (DEBUG) {
+ if (MORE_DEBUG) {
Slog.v(TAG, "removePackageParticipantsLockedInner (" + packageName
+ ") removing " + allPackageNames.size() + " entries");
for (String p : allPackageNames) {
@@ -1320,7 +1321,7 @@
// We can't just remove(app) because the instances are different.
for (ApplicationInfo entry: set) {
if (entry.packageName.equals(pkg)) {
- if (DEBUG) Slog.v(TAG, " removing participant " + pkg);
+ if (MORE_DEBUG) Slog.v(TAG, " removing participant " + pkg);
set.remove(entry);
removeEverBackedUp(pkg);
break;
@@ -1403,7 +1404,8 @@
// Remove our awareness of having ever backed up the given package
void removeEverBackedUp(String packageName) {
- if (DEBUG) Slog.v(TAG, "Removing backed-up knowledge of " + packageName + ", new set:");
+ if (DEBUG) Slog.v(TAG, "Removing backed-up knowledge of " + packageName);
+ if (MORE_DEBUG) Slog.v(TAG, "New set:");
synchronized (mEverStoredApps) {
// Rewrite the file and rename to overwrite. If we reboot in the middle,
@@ -1416,7 +1418,7 @@
mEverStoredApps.remove(packageName);
for (String s : mEverStoredApps) {
known.writeUTF(s);
- if (DEBUG) Slog.v(TAG, " " + s);
+ if (MORE_DEBUG) Slog.v(TAG, " " + s);
}
known.close();
known = null;
@@ -1460,7 +1462,7 @@
if (DEBUG) Slog.v(TAG, "Ancestral packages: " + mAncestralPackages.size());
for (String pkgName : mAncestralPackages) {
af.writeUTF(pkgName);
- if (DEBUG) Slog.v(TAG, " " + pkgName);
+ if (MORE_DEBUG) Slog.v(TAG, " " + pkgName);
}
}
af.close();
@@ -1523,7 +1525,7 @@
try {
PackageInfo info = mPackageManager.getPackageInfo(packageName, 0);
if ((info.applicationInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) == 0) {
- if (DEBUG) Slog.i(TAG, "allowClearUserData=false so not wiping "
+ if (MORE_DEBUG) Slog.i(TAG, "allowClearUserData=false so not wiping "
+ packageName);
return;
}
@@ -1593,13 +1595,13 @@
}
}
mBackupHandler.removeMessages(MSG_TIMEOUT);
- if (DEBUG) Slog.v(TAG, "operation " + Integer.toHexString(token)
+ if (MORE_DEBUG) Slog.v(TAG, "operation " + Integer.toHexString(token)
+ " complete: finalState=" + finalState);
return finalState == OP_ACKNOWLEDGED;
}
void prepareOperationTimeout(int token, long interval) {
- if (DEBUG) Slog.v(TAG, "starting timeout: token=" + Integer.toHexString(token)
+ if (MORE_DEBUG) Slog.v(TAG, "starting timeout: token=" + Integer.toHexString(token)
+ " interval=" + interval);
synchronized (mCurrentOpLock) {
mCurrentOperations.put(token, OP_PENDING);
@@ -1937,7 +1939,7 @@
BackupDataOutput output = new BackupDataOutput(
mPipe.getFileDescriptor());
- if (DEBUG) Slog.d(TAG, "Writing manifest for " + mPackage.packageName);
+ if (MORE_DEBUG) Slog.d(TAG, "Writing manifest for " + mPackage.packageName);
writeAppManifest(mPackage, mManifestFile, mSendApk);
FullBackup.backupToTar(mPackage.packageName, null, null,
mFilesDir.getAbsolutePath(),
@@ -1948,7 +1950,7 @@
writeApkToBackup(mPackage, output);
}
- if (DEBUG) Slog.d(TAG, "Calling doFullBackup()");
+ if (DEBUG) Slog.d(TAG, "Calling doFullBackup() on " + mPackage.packageName);
prepareOperationTimeout(mToken, TIMEOUT_FULL_BACKUP_INTERVAL);
mAgent.doFullBackup(mPipe, mToken, mBackupManagerBinder);
} catch (IOException e) {
@@ -2285,7 +2287,7 @@
// check for .obb and save those too
final File obbDir = Environment.getExternalStorageAppObbDirectory(pkg.packageName);
if (obbDir != null) {
- if (DEBUG) Log.i(TAG, "obb dir: " + obbDir.getAbsolutePath());
+ if (MORE_DEBUG) Log.i(TAG, "obb dir: " + obbDir.getAbsolutePath());
File[] obbFiles = obbDir.listFiles();
if (obbFiles != null) {
final String obbDirName = obbDir.getAbsolutePath();
@@ -2374,10 +2376,10 @@
// The agent was running with a stub Application object, so shut it down.
if (app.uid != Process.SYSTEM_UID
&& app.uid != Process.PHONE_UID) {
- if (DEBUG) Slog.d(TAG, "Backup complete, killing host process");
+ if (MORE_DEBUG) Slog.d(TAG, "Backup complete, killing host process");
mActivityManager.killApplicationProcess(app.processName, app.uid);
} else {
- if (DEBUG) Slog.d(TAG, "Not killing after restore: " + app.processName);
+ if (MORE_DEBUG) Slog.d(TAG, "Not killing after restore: " + app.processName);
}
} catch (RemoteException e) {
Slog.d(TAG, "Lost app trying to shut down");
@@ -2600,7 +2602,7 @@
didRestore = restoreOneFile(in, buffer);
} while (didRestore);
- if (DEBUG) Slog.v(TAG, "Done consuming input tarfile, total bytes=" + mBytes);
+ if (MORE_DEBUG) Slog.v(TAG, "Done consuming input tarfile, total bytes=" + mBytes);
} catch (IOException e) {
Slog.e(TAG, "Unable to read restore input");
} finally {
@@ -2624,7 +2626,7 @@
}
sendEndRestore();
mWakelock.release();
- if (DEBUG) Slog.d(TAG, "Full restore pass complete.");
+ Slog.d(TAG, "Full restore pass complete.");
}
}
@@ -2722,7 +2724,7 @@
try {
info = readTarHeaders(instream);
if (info != null) {
- if (DEBUG) {
+ if (MORE_DEBUG) {
dumpFileMetadata(info);
}
@@ -2910,7 +2912,6 @@
boolean pipeOkay = true;
FileOutputStream pipe = new FileOutputStream(
mPipes[1].getFileDescriptor());
- if (DEBUG) Slog.d(TAG, "Piping data to agent");
while (toCopy > 0) {
int toRead = (toCopy > buffer.length)
? buffer.length : (int)toCopy;
@@ -3629,7 +3630,7 @@
// Allow unsigned apps, but not signed on one device and unsigned on the other
// !!! TODO: is this the right policy?
Signature[] deviceSigs = target.signatures;
- if (DEBUG) Slog.v(TAG, "signaturesMatch(): stored=" + storedSigs
+ if (MORE_DEBUG) Slog.v(TAG, "signaturesMatch(): stored=" + storedSigs
+ " device=" + deviceSigs);
if ((storedSigs == null || storedSigs.length == 0)
&& (deviceSigs == null || deviceSigs.length == 0)) {
@@ -4189,7 +4190,7 @@
// in the set; we want to avoid touching the disk redundantly.
writeToJournalLocked(packageName);
- if (DEBUG) {
+ if (MORE_DEBUG) {
int numKeys = mPendingBackups.size();
Slog.d(TAG, "Now awaiting backup for " + numKeys + " participants:");
for (BackupRequest b : mPendingBackups.values()) {
@@ -4387,7 +4388,7 @@
}
Binder.restoreCallingIdentity(oldId);
}
- if (DEBUG) Slog.d(TAG, "Full backup done; returning to caller");
+ if (MORE_DEBUG) Slog.d(TAG, "Full backup done; returning to caller");
}
public void fullRestore(ParcelFileDescriptor fd) {
@@ -4446,7 +4447,7 @@
}
void startConfirmationTimeout(int token, FullParams params) {
- if (DEBUG) Slog.d(TAG, "Posting conf timeout msg after "
+ if (MORE_DEBUG) Slog.d(TAG, "Posting conf timeout msg after "
+ TIMEOUT_FULL_CONFIRMATION + " millis");
Message msg = mBackupHandler.obtainMessage(MSG_FULL_CONFIRMATION_TIMEOUT,
token, 0, params);
@@ -4625,7 +4626,7 @@
public String getCurrentTransport() {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
"getCurrentTransport");
- if (DEBUG) Slog.v(TAG, "... getCurrentTransport() returning " + mCurrentTransport);
+ if (MORE_DEBUG) Slog.v(TAG, "... getCurrentTransport() returning " + mCurrentTransport);
return mCurrentTransport;
}
@@ -4682,7 +4683,7 @@
if (transport != null) {
try {
final Intent intent = transport.configurationIntent();
- if (DEBUG) Slog.d(TAG, "getConfigurationIntent() returning config intent "
+ if (MORE_DEBUG) Slog.d(TAG, "getConfigurationIntent() returning config intent "
+ intent);
return intent;
} catch (RemoteException e) {
@@ -4708,7 +4709,7 @@
if (transport != null) {
try {
final String text = transport.currentDestinationString();
- if (DEBUG) Slog.d(TAG, "getDestinationString() returning " + text);
+ if (MORE_DEBUG) Slog.d(TAG, "getDestinationString() returning " + text);
return text;
} catch (RemoteException e) {
/* fall through to return null */
@@ -4853,7 +4854,7 @@
// completed the given outstanding asynchronous backup/restore operation.
public void opComplete(int token) {
synchronized (mCurrentOpLock) {
- if (DEBUG) Slog.v(TAG, "opComplete: " + Integer.toHexString(token));
+ if (MORE_DEBUG) Slog.v(TAG, "opComplete: " + Integer.toHexString(token));
mCurrentOperations.put(token, OP_ACKNOWLEDGED);
mCurrentOpLock.notifyAll();
}
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 2a724d4..bf9e014 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -40,6 +40,7 @@
import android.net.NetworkConfig;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
+import android.net.NetworkQuotaInfo;
import android.net.NetworkState;
import android.net.NetworkStateTracker;
import android.net.NetworkUtils;
@@ -344,7 +345,7 @@
mPolicyManager.registerListener(mPolicyListener);
} catch (RemoteException e) {
// ouch, no rules updates means some processes may never get network
- Slog.e(TAG, "unable to register INetworkPolicyListener", e);
+ loge("unable to register INetworkPolicyListener" + e.toString());
}
final PowerManager powerManager = (PowerManager) context.getSystemService(
@@ -737,6 +738,30 @@
return result.toArray(new NetworkState[result.size()]);
}
+ private NetworkState getNetworkStateUnchecked(int networkType) {
+ if (isNetworkTypeValid(networkType)) {
+ final NetworkStateTracker tracker = mNetTrackers[networkType];
+ if (tracker != null) {
+ return new NetworkState(tracker.getNetworkInfo(), tracker.getLinkProperties(),
+ tracker.getLinkCapabilities());
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public NetworkQuotaInfo getActiveNetworkQuotaInfo() {
+ enforceAccessPermission();
+ final NetworkState state = getNetworkStateUnchecked(mActiveDefaultNetwork);
+ if (state != null) {
+ try {
+ return mPolicyManager.getNetworkQuotaInfo(state);
+ } catch (RemoteException e) {
+ }
+ }
+ return null;
+ }
+
public boolean setRadios(boolean turnOn) {
boolean result = true;
enforceChangePermission();
@@ -798,9 +823,11 @@
}
public void expire() {
- log("ConnectivityService FeatureUser expire(" +
- mNetworkType + ", " + mFeature + ", " + mBinder +"), created " +
- (System.currentTimeMillis() - mCreateTime) + " mSec ago");
+ if (VDBG) {
+ log("ConnectivityService FeatureUser expire(" +
+ mNetworkType + ", " + mFeature + ", " + mBinder +"), created " +
+ (System.currentTimeMillis() - mCreateTime) + " mSec ago");
+ }
stopUsingNetworkFeature(this, false);
}
@@ -843,7 +870,7 @@
if(networkType == ConnectivityManager.TYPE_MOBILE) {
usedNetworkType = convertFeatureToNetworkType(feature);
if (usedNetworkType < 0) {
- Slog.e(TAG, "Can't match any netTracker!");
+ loge("Can't match any netTracker!");
usedNetworkType = networkType;
}
}
@@ -900,7 +927,7 @@
!network.isTeardownRequested()) {
if (ni.isConnected() == true) {
// add the pid-specific dns
- handleDnsConfigurationChange(networkType);
+ handleDnsConfigurationChange(usedNetworkType);
if (DBG) log("special network already active");
return Phone.APN_ALREADY_ACTIVE;
}
@@ -953,7 +980,7 @@
return stopUsingNetworkFeature(u, true);
} else {
// none found!
- if (DBG) log("ignoring stopUsingNetworkFeature - not a live request");
+ if (VDBG) log("ignoring stopUsingNetworkFeature - not a live request");
return 1;
}
}
@@ -1081,7 +1108,7 @@
if (tracker == null || !tracker.getNetworkInfo().isConnected() ||
tracker.isTeardownRequested()) {
- if (DBG) {
+ if (VDBG) {
log("requestRouteToHostAddress on down network " +
"(" + networkType + ") - dropped");
}
@@ -1152,13 +1179,13 @@
}
}
if (doAdd) {
- if (DBG) log("Adding " + r + " for interface " + ifaceName);
+ if (VDBG) log("Adding " + r + " for interface " + ifaceName);
mAddedRoutes.add(r);
try {
mNetd.addRoute(ifaceName, r);
} catch (Exception e) {
// never crash - catch them all
- loge("Exception trying to add a route: " + e);
+ if (VDBG) loge("Exception trying to add a route: " + e);
return false;
}
} else {
@@ -1166,16 +1193,16 @@
// we can remove it from the table
mAddedRoutes.remove(r);
if (mAddedRoutes.contains(r) == false) {
- if (DBG) log("Removing " + r + " for interface " + ifaceName);
+ if (VDBG) log("Removing " + r + " for interface " + ifaceName);
try {
mNetd.removeRoute(ifaceName, r);
} catch (Exception e) {
// never crash - catch them all
- loge("Exception trying to remove a route: " + e);
+ if (VDBG) loge("Exception trying to remove a route: " + e);
return false;
}
} else {
- if (DBG) log("not removing " + r + " as it's still in use");
+ if (VDBG) log("not removing " + r + " as it's still in use");
}
}
return true;
@@ -1220,7 +1247,7 @@
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.MOBILE_DATA, 1) == 1;
- if (DBG) log("getMobileDataEnabled returning " + retVal);
+ if (VDBG) log("getMobileDataEnabled returning " + retVal);
return retVal;
}
@@ -1247,7 +1274,7 @@
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
if (LOGD_RULES) {
- Slog.d(TAG, "onUidRulesChanged(uid=" + uid + ", uidRules=" + uidRules + ")");
+ log("onUidRulesChanged(uid=" + uid + ", uidRules=" + uidRules + ")");
}
synchronized (mRulesLock) {
@@ -1268,8 +1295,7 @@
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
if (LOGD_RULES) {
- Slog.d(TAG,
- "onMeteredIfacesChanged(ifaces=" + Arrays.toString(meteredIfaces) + ")");
+ log("onMeteredIfacesChanged(ifaces=" + Arrays.toString(meteredIfaces) + ")");
}
synchronized (mRulesLock) {
@@ -1294,8 +1320,8 @@
private void handleSetMobileData(boolean enabled) {
if (mNetTrackers[ConnectivityManager.TYPE_MOBILE] != null) {
- if (DBG) {
- Slog.d(TAG, mNetTrackers[ConnectivityManager.TYPE_MOBILE].toString() + enabled);
+ if (VDBG) {
+ log(mNetTrackers[ConnectivityManager.TYPE_MOBILE].toString() + enabled);
}
mNetTrackers[ConnectivityManager.TYPE_MOBILE].setDataEnable(enabled);
}
@@ -1587,7 +1613,7 @@
mNetConfigs[type].priority) ||
mNetworkPreference == mActiveDefaultNetwork) {
// don't accept this one
- if (DBG) {
+ if (VDBG) {
log("Not broadcasting CONNECT_ACTION " +
"to torn down network " + info.getTypeName());
}
@@ -1688,9 +1714,11 @@
}
} else {
resetMask = NetworkUtils.RESET_ALL_ADDRESSES;
- log("handleConnectivityChange: interface not not equivalent reset both" +
- " linkProperty[" + netType + "]:" +
- " resetMask=" + resetMask);
+ if (DBG) {
+ log("handleConnectivityChange: interface not not equivalent reset both" +
+ " linkProperty[" + netType + "]:" +
+ " resetMask=" + resetMask);
+ }
}
}
if (mNetConfigs[netType].isDefault()) {
@@ -1798,7 +1826,7 @@
String bufferSizes = SystemProperties.get(key);
if (bufferSizes.length() == 0) {
- loge(key + " not found in system properties. Using defaults");
+ if (VDBG) log(key + " not found in system properties. Using defaults");
// Setting to default values so we won't be stuck to previous values
key = "net.tcp.buffersize.default";
@@ -1807,7 +1835,7 @@
// Set values in kernel
if (bufferSizes.length() != 0) {
- if (DBG) {
+ if (VDBG) {
log("Setting TCP values: [" + bufferSizes
+ "] which comes from [" + key + "]");
}
@@ -1849,7 +1877,7 @@
*/
private void reassessPidDns(int myPid, boolean doBump)
{
- if (DBG) log("reassessPidDns for pid " + myPid);
+ if (VDBG) log("reassessPidDns for pid " + myPid);
for(int i : mPriorityList) {
if (mNetConfigs[i].isDefault()) {
continue;
@@ -1935,7 +1963,7 @@
String value = mDefaultDns.getHostAddress();
if (!value.equals(SystemProperties.get("net.dns1"))) {
if (DBG) {
- log("no dns provided for " + network + " - using " + value);
+ loge("no dns provided for " + network + " - using " + value);
}
changed = true;
SystemProperties.set("net.dns1", value);
@@ -1948,7 +1976,7 @@
if (!changed && value.equals(SystemProperties.get(key))) {
continue;
}
- if (DBG) {
+ if (VDBG) {
log("adding dns " + value + " for " + network);
}
changed = true;
@@ -1957,7 +1985,7 @@
}
for (int i = last + 1; i <= mNumDnsEntries; ++i) {
String key = "net.dns" + i;
- if (DBG) log("erasing " + key);
+ if (VDBG) log("erasing " + key);
changed = true;
SystemProperties.set(key, "");
}
@@ -1968,7 +1996,7 @@
mNetd.setDnsServersForInterface(iface, NetworkUtils.makeStrings(dnses));
mNetd.setDefaultInterfaceForDns(iface);
} catch (Exception e) {
- Slog.e(TAG, "exception setting default dns interface: " + e);
+ loge("exception setting default dns interface: " + e);
}
}
if (!domains.equals(SystemProperties.get("net.dns.search"))) {
@@ -1998,7 +2026,7 @@
mNetd.setDnsServersForInterface(p.getInterfaceName(),
NetworkUtils.makeStrings(dnses));
} catch (Exception e) {
- Slog.e(TAG, "exception setting dns servers: " + e);
+ loge("exception setting dns servers: " + e);
}
// set per-pid dns for attached secondary nets
List pids = mNetRequestersPids[netType];
@@ -2335,7 +2363,7 @@
// 100 percent is full good, 0 is full bad.
public void reportInetCondition(int networkType, int percentage) {
- if (DBG) log("reportNetworkCondition(" + networkType + ", " + percentage + ")");
+ if (VDBG) log("reportNetworkCondition(" + networkType + ", " + percentage + ")");
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.STATUS_BAR,
"ConnectivityService");
@@ -2372,7 +2400,7 @@
mDefaultInetCondition = condition;
int delay;
if (mInetConditionChangeInFlight == false) {
- if (DBG) log("starting a change hold");
+ if (VDBG) log("starting a change hold");
// setup a new hold to debounce this
if (mDefaultInetCondition > 50) {
delay = Settings.Secure.getInt(mContext.getContentResolver(),
@@ -2387,12 +2415,12 @@
} else {
// we've set the new condition, when this hold ends that will get
// picked up
- if (DBG) log("currently in hold - not setting new end evt");
+ if (VDBG) log("currently in hold - not setting new end evt");
}
}
private void handleInetConditionHoldEnd(int netType, int sequence) {
- if (DBG) {
+ if (VDBG) {
log("Inet hold end, net=" + netType +
", condition =" + mDefaultInetCondition +
", published condition =" + mDefaultInetConditionPublished);
@@ -2490,7 +2518,7 @@
mDefaultProxy = null;
}
}
- if (DBG) log("changing default proxy to " + proxy);
+ if (VDBG) log("changing default proxy to " + proxy);
if ((proxy == null && mGlobalProxy == null) || proxy.equals(mGlobalProxy)) return;
if (mGlobalProxy != null) return;
sendProxyBroadcast(proxy);
@@ -2517,7 +2545,7 @@
private void sendProxyBroadcast(ProxyProperties proxy) {
if (proxy == null) proxy = new ProxyProperties("", 0, "");
- log("sending Proxy Broadcast for " + proxy);
+ if (DBG) log("sending Proxy Broadcast for " + proxy);
Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index 88d94c2..fed554c 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -19,6 +19,9 @@
import android.net.LocalSocketAddress;
import android.net.LocalSocket;
import android.os.Environment;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.util.Slog;
@@ -39,7 +42,7 @@
* daemon which uses the libsysutils FrameworkListener
* protocol.
*/
-final class NativeDaemonConnector implements Runnable {
+final class NativeDaemonConnector implements Runnable, Handler.Callback {
private static final boolean LOCAL_LOGD = false;
private BlockingQueue<String> mResponseQueue;
@@ -47,6 +50,7 @@
private String TAG = "NativeDaemonConnector";
private String mSocket;
private INativeDaemonConnectorCallbacks mCallbacks;
+ private Handler mCallbackHandler;
private final int BUFFER_SIZE = 4096;
@@ -76,7 +80,11 @@
mResponseQueue = new LinkedBlockingQueue<String>(responseQueueSize);
}
+ @Override
public void run() {
+ HandlerThread thread = new HandlerThread(TAG + ".CallbackHandler");
+ thread.start();
+ mCallbackHandler = new Handler(thread.getLooper(), this);
while (true) {
try {
@@ -88,6 +96,21 @@
}
}
+ @Override
+ public boolean handleMessage(Message msg) {
+ String event = (String) msg.obj;
+ try {
+ if (!mCallbacks.onEvent(msg.what, event, event.split(" "))) {
+ Slog.w(TAG, String.format(
+ "Unhandled event '%s'", event));
+ }
+ } catch (Exception e) {
+ Slog.e(TAG, String.format(
+ "Error handling '%s'", event), e);
+ }
+ return true;
+ }
+
private void listenToSocket() throws IOException {
LocalSocket socket = null;
@@ -119,20 +142,13 @@
String event = new String(buffer, start, i - start);
if (LOCAL_LOGD) Slog.d(TAG, String.format("RCV <- {%s}", event));
- String[] tokens = event.split(" ");
+ String[] tokens = event.split(" ", 2);
try {
int code = Integer.parseInt(tokens[0]);
if (code >= ResponseCode.UnsolicitedInformational) {
- try {
- if (!mCallbacks.onEvent(code, event, tokens)) {
- Slog.w(TAG, String.format(
- "Unhandled event (%s)", event));
- }
- } catch (Exception ex) {
- Slog.e(TAG, String.format(
- "Error handling '%s'", event), ex);
- }
+ mCallbackHandler.sendMessage(
+ mCallbackHandler.obtainMessage(code, event));
} else {
try {
mResponseQueue.put(event);
diff --git a/services/java/com/android/server/connectivity/Vpn.java b/services/java/com/android/server/connectivity/Vpn.java
index 9cb772e..ecbad099 100644
--- a/services/java/com/android/server/connectivity/Vpn.java
+++ b/services/java/com/android/server/connectivity/Vpn.java
@@ -183,7 +183,9 @@
android.R.dimen.notification_large_icon_height);
icon.setBounds(0, 0, width, height);
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- icon.draw(new Canvas(bitmap));
+ Canvas c = new Canvas(bitmap);
+ icon.draw(c);
+ c.setBitmap(null);
}
// Configure the interface. Abort if any of these steps fails.
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java
index 756cd00..a075255 100644
--- a/services/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -16,6 +16,7 @@
package com.android.server.net;
+import static android.Manifest.permission.ACCESS_NETWORK_STATE;
import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
import static android.Manifest.permission.DUMP;
import static android.Manifest.permission.MANAGE_APP_TOKENS;
@@ -75,9 +76,11 @@
import android.net.INetworkStatsService;
import android.net.NetworkIdentity;
import android.net.NetworkPolicy;
+import android.net.NetworkQuotaInfo;
import android.net.NetworkState;
import android.net.NetworkStats;
import android.net.NetworkTemplate;
+import android.os.Binder;
import android.os.Environment;
import android.os.Handler;
import android.os.HandlerThread;
@@ -1054,6 +1057,7 @@
synchronized (mRulesLock) {
mRestrictBackground = restrictBackground;
updateRulesForRestrictBackgroundLocked();
+ writePolicyLocked();
}
}
@@ -1066,6 +1070,68 @@
}
}
+ private NetworkPolicy findPolicyForNetworkLocked(NetworkIdentity ident) {
+ for (NetworkPolicy policy : mNetworkPolicy.values()) {
+ if (policy.template.matches(ident)) {
+ return policy;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public NetworkQuotaInfo getNetworkQuotaInfo(NetworkState state) {
+ mContext.enforceCallingOrSelfPermission(ACCESS_NETWORK_STATE, TAG);
+
+ // only returns usage summary, so we don't require caller to have
+ // READ_NETWORK_USAGE_HISTORY.
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return getNetworkQuotaInfoUnchecked(state);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ private NetworkQuotaInfo getNetworkQuotaInfoUnchecked(NetworkState state) {
+ final NetworkIdentity ident = NetworkIdentity.buildNetworkIdentity(mContext, state);
+
+ final NetworkPolicy policy;
+ synchronized (mRulesLock) {
+ policy = findPolicyForNetworkLocked(ident);
+ }
+
+ if (policy == null) {
+ // missing policy means we can't derive useful quota info
+ return null;
+ }
+
+ final long currentTime = mTime.hasCache() ? mTime.currentTimeMillis()
+ : System.currentTimeMillis();
+
+ final long start = computeLastCycleBoundary(currentTime, policy);
+ final long end = currentTime;
+
+ // find total bytes used under policy
+ long totalBytes = 0;
+ try {
+ final NetworkStats stats = mNetworkStats.getSummaryForNetwork(
+ policy.template, start, end);
+ final NetworkStats.Entry entry = stats.getValues(0, null);
+ totalBytes = entry.rxBytes + entry.txBytes;
+ } catch (RemoteException e) {
+ Slog.w(TAG, "problem reading summary for template " + policy.template);
+ }
+
+ // report soft and hard limits under policy
+ final long softLimitBytes = policy.warningBytes != WARNING_DISABLED ? policy.warningBytes
+ : NetworkQuotaInfo.NO_LIMIT;
+ final long hardLimitBytes = policy.limitBytes != LIMIT_DISABLED ? policy.limitBytes
+ : NetworkQuotaInfo.NO_LIMIT;
+
+ return new NetworkQuotaInfo(totalBytes, softLimitBytes, hardLimitBytes);
+ }
+
@Override
protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
mContext.enforceCallingOrSelfPermission(DUMP, TAG);
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 88e0fa8..36371a57 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -3326,7 +3326,7 @@
if (pkg.applicationInfo.nativeLibraryDir != null) {
try {
final File nativeLibraryDir = new File(pkg.applicationInfo.nativeLibraryDir);
- final String dataPathString = dataPath.getCanonicalFile().getPath();
+ final String dataPathString = dataPath.getCanonicalPath();
if (isSystemApp(pkg) && !isUpdatedSystemApp(pkg)) {
/*
@@ -3340,7 +3340,7 @@
Log.i(TAG, "removed obsolete native libraries for system package "
+ path);
}
- } else if (nativeLibraryDir.getCanonicalFile().getParent()
+ } else if (nativeLibraryDir.getParentFile().getCanonicalPath()
.equals(dataPathString)) {
/*
* Make sure the native library dir isn't a symlink to
@@ -5025,16 +5025,18 @@
}
int loc = pkgLite.recommendedInstallLocation;
- if (loc == PackageHelper.RECOMMEND_FAILED_INVALID_LOCATION){
+ if (loc == PackageHelper.RECOMMEND_FAILED_INVALID_LOCATION) {
ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
- } else if (loc == PackageHelper.RECOMMEND_FAILED_ALREADY_EXISTS){
+ } else if (loc == PackageHelper.RECOMMEND_FAILED_ALREADY_EXISTS) {
ret = PackageManager.INSTALL_FAILED_ALREADY_EXISTS;
- } else if (loc == PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE){
+ } else if (loc == PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE) {
ret = PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
} else if (loc == PackageHelper.RECOMMEND_FAILED_INVALID_APK) {
ret = PackageManager.INSTALL_FAILED_INVALID_APK;
+ } else if (loc == PackageHelper.RECOMMEND_FAILED_INVALID_URI) {
+ ret = PackageManager.INSTALL_FAILED_INVALID_URI;
} else if (loc == PackageHelper.RECOMMEND_MEDIA_UNAVAILABLE) {
- ret = PackageManager.INSTALL_FAILED_MEDIA_UNAVAILABLE;
+ ret = PackageManager.INSTALL_FAILED_MEDIA_UNAVAILABLE;
} else {
// Override with defaults if needed.
loc = installLocationPolicy(pkgLite, flags);
diff --git a/services/java/com/android/server/usb/UsbDeviceManager.java b/services/java/com/android/server/usb/UsbDeviceManager.java
index dcf040a..91c5e33 100644
--- a/services/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/java/com/android/server/usb/UsbDeviceManager.java
@@ -382,19 +382,18 @@
mAdbEnabled = enable;
// Due to the persist.sys.usb.config property trigger, changing adb state requires
// switching to default function
- setEnabledFunctions(mDefaultFunctions, false);
+ setEnabledFunctions(mDefaultFunctions, true);
updateAdbNotification();
}
}
private void setEnabledFunctions(String functions, boolean makeDefault) {
- if (mAdbEnabled) {
- functions = addFunction(functions, UsbManager.USB_FUNCTION_ADB);
- } else {
- functions = removeFunction(functions, UsbManager.USB_FUNCTION_ADB);
- }
-
if (functions != null && makeDefault) {
+ if (mAdbEnabled) {
+ functions = addFunction(functions, UsbManager.USB_FUNCTION_ADB);
+ } else {
+ functions = removeFunction(functions, UsbManager.USB_FUNCTION_ADB);
+ }
if (!mDefaultFunctions.equals(functions)) {
if (!setUsbConfig("none")) {
Slog.e(TAG, "Failed to disable USB");
@@ -418,6 +417,11 @@
if (functions == null) {
functions = mDefaultFunctions;
}
+ if (mAdbEnabled) {
+ functions = addFunction(functions, UsbManager.USB_FUNCTION_ADB);
+ } else {
+ functions = removeFunction(functions, UsbManager.USB_FUNCTION_ADB);
+ }
if (!mCurrentFunctions.equals(functions)) {
if (!setUsbConfig("none")) {
Slog.e(TAG, "Failed to disable USB");
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index f8059f5..e0b5e17 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4919,6 +4919,7 @@
matrix.postTranslate(-(int)(frame.left*scale), -(int)(frame.top*scale));
Canvas canvas = new Canvas(bm);
canvas.drawBitmap(rawss, matrix, null);
+ canvas.setBitmap(null);
rawss.recycle();
return bm;
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
index 7bf3e0a..f4be168 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -40,6 +40,7 @@
#include "GLExtensions.h"
#include "HWComposer.h"
+#include "SurfaceFlinger.h"
using namespace android;
@@ -75,7 +76,7 @@
const sp<SurfaceFlinger>& flinger,
uint32_t dpy)
: DisplayHardwareBase(flinger, dpy),
- mFlags(0), mHwc(0)
+ mFlinger(flinger), mFlags(0), mHwc(0)
{
init(dpy);
}
@@ -310,7 +311,7 @@
// initialize the H/W composer
- mHwc = new HWComposer();
+ mHwc = new HWComposer(mFlinger);
if (mHwc->initCheck() == NO_ERROR) {
mHwc->setFrameBuffer(mDisplay, mSurface);
}
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.h b/services/surfaceflinger/DisplayHardware/DisplayHardware.h
index cdf89fd..40a6f1e 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardware.h
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.h
@@ -95,6 +95,7 @@
void init(uint32_t displayIndex) __attribute__((noinline));
void fini() __attribute__((noinline));
+ sp<SurfaceFlinger> mFlinger;
EGLDisplay mDisplay;
EGLSurface mSurface;
EGLContext mContext;
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
index 30eb258..3ebc7b6 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
@@ -37,7 +37,7 @@
~DisplayHardwareBase();
- // console managment
+ // console management
void releaseScreen() const;
void acquireScreen() const;
bool isScreenAcquired() const;
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 4a3b20d..7d1bdf0 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -30,12 +30,14 @@
#include <EGL/egl.h>
#include "HWComposer.h"
+#include "SurfaceFlinger.h"
namespace android {
// ---------------------------------------------------------------------------
-HWComposer::HWComposer()
- : mModule(0), mHwc(0), mList(0), mCapacity(0),
+HWComposer::HWComposer(const sp<SurfaceFlinger>& flinger)
+ : mFlinger(flinger),
+ mModule(0), mHwc(0), mList(0), mCapacity(0),
mDpy(EGL_NO_DISPLAY), mSur(EGL_NO_SURFACE)
{
int err = hw_get_module(HWC_HARDWARE_MODULE_ID, &mModule);
@@ -44,6 +46,13 @@
err = hwc_open(mModule, &mHwc);
LOGE_IF(err, "%s device failed to initialize (%s)",
HWC_HARDWARE_COMPOSER, strerror(-err));
+ if (err == 0) {
+ if (mHwc->registerProcs) {
+ mCBContext.hwc = this;
+ mCBContext.procs.invalidate = &hook_invalidate;
+ mHwc->registerProcs(mHwc, &mCBContext.procs);
+ }
+ }
}
}
@@ -58,6 +67,14 @@
return mHwc ? NO_ERROR : NO_INIT;
}
+void HWComposer::hook_invalidate(struct hwc_procs* procs) {
+ reinterpret_cast<cb_context *>(procs)->hwc->invalidate();
+}
+
+void HWComposer::invalidate() {
+ mFlinger->signalEvent();
+}
+
void HWComposer::setFrameBuffer(EGLDisplay dpy, EGLSurface sur) {
mDpy = (hwc_display_t)dpy;
mSur = (hwc_surface_t)sur;
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index 5a9e9eb..983898a 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -24,16 +24,19 @@
#include <hardware/hwcomposer.h>
+#include <utils/StrongPointer.h>
+
namespace android {
// ---------------------------------------------------------------------------
class String8;
+class SurfaceFlinger;
class HWComposer
{
public:
- HWComposer();
+ HWComposer(const sp<SurfaceFlinger>& flinger);
~HWComposer();
status_t initCheck() const;
@@ -60,12 +63,21 @@
void dump(String8& out, char* scratch, size_t SIZE) const;
private:
+ struct cb_context {
+ hwc_procs_t procs;
+ HWComposer* hwc;
+ };
+ static void hook_invalidate(struct hwc_procs* procs);
+ void invalidate();
+
+ sp<SurfaceFlinger> mFlinger;
hw_module_t const* mModule;
hwc_composer_device_t* mHwc;
hwc_layer_list_t* mList;
size_t mCapacity;
hwc_display_t mDpy;
hwc_surface_t mSur;
+ cb_context mCBContext;
};
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 886bb2a..383c045 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -172,17 +172,14 @@
void Layer::setGeometry(hwc_layer_t* hwcl)
{
- hwcl->compositionType = HWC_FRAMEBUFFER;
- hwcl->hints = 0;
- hwcl->flags = 0;
- hwcl->transform = 0;
- hwcl->blending = HWC_BLENDING_NONE;
+ LayerBaseClient::setGeometry(hwcl);
+
+ hwcl->flags &= ~HWC_SKIP_LAYER;
// we can't do alpha-fade with the hwc HAL
const State& s(drawingState());
if (s.alpha < 0xFF) {
hwcl->flags = HWC_SKIP_LAYER;
- return;
}
/*
@@ -205,26 +202,9 @@
// we can only handle simple transformation
if (finalTransform & Transform::ROT_INVALID) {
hwcl->flags = HWC_SKIP_LAYER;
- return;
+ } else {
+ hwcl->transform = finalTransform;
}
-
- hwcl->transform = finalTransform;
-
- if (!isOpaque()) {
- hwcl->blending = mPremultipliedAlpha ?
- HWC_BLENDING_PREMULT : HWC_BLENDING_COVERAGE;
- }
-
- // scaling is already applied in mTransformedBounds
- hwcl->displayFrame.left = mTransformedBounds.left;
- hwcl->displayFrame.top = mTransformedBounds.top;
- hwcl->displayFrame.right = mTransformedBounds.right;
- hwcl->displayFrame.bottom = mTransformedBounds.bottom;
-
- hwcl->visibleRegionScreen.rects =
- reinterpret_cast<hwc_rect_t const *>(
- visibleRegionScreen.getArray(
- &hwcl->visibleRegionScreen.numRects));
}
void Layer::setPerFrameData(hwc_layer_t* hwcl) {
@@ -235,9 +215,9 @@
// HWC handle it.
hwcl->flags |= HWC_SKIP_LAYER;
hwcl->handle = NULL;
- return;
+ } else {
+ hwcl->handle = buffer->handle;
}
- hwcl->handle = buffer->handle;
if (isCropped()) {
hwcl->sourceCrop.left = mCurrentCrop.left;
@@ -247,8 +227,13 @@
} else {
hwcl->sourceCrop.left = 0;
hwcl->sourceCrop.top = 0;
- hwcl->sourceCrop.right = buffer->width;
- hwcl->sourceCrop.bottom = buffer->height;
+ if (buffer != NULL) {
+ hwcl->sourceCrop.right = buffer->width;
+ hwcl->sourceCrop.bottom = buffer->height;
+ } else {
+ hwcl->sourceCrop.right = mTransformedBounds.width();
+ hwcl->sourceCrop.bottom = mTransformedBounds.height();
+ }
}
}
diff --git a/services/surfaceflinger/LayerBase.cpp b/services/surfaceflinger/LayerBase.cpp
index c86c659..e04c533 100644
--- a/services/surfaceflinger/LayerBase.cpp
+++ b/services/surfaceflinger/LayerBase.cpp
@@ -302,13 +302,47 @@
}
}
-void LayerBase::setGeometry(hwc_layer_t* hwcl) {
- hwcl->flags |= HWC_SKIP_LAYER;
+void LayerBase::setGeometry(hwc_layer_t* hwcl)
+{
+ hwcl->compositionType = HWC_FRAMEBUFFER;
+ hwcl->hints = 0;
+ hwcl->flags = HWC_SKIP_LAYER;
+ hwcl->transform = 0;
+ hwcl->blending = HWC_BLENDING_NONE;
+
+ // this gives us only the "orientation" component of the transform
+ const State& s(drawingState());
+ const uint32_t finalTransform = s.transform.getOrientation();
+ // we can only handle simple transformation
+ if (finalTransform & Transform::ROT_INVALID) {
+ hwcl->flags = HWC_SKIP_LAYER;
+ } else {
+ hwcl->transform = finalTransform;
+ }
+
+ if (!isOpaque()) {
+ hwcl->blending = mPremultipliedAlpha ?
+ HWC_BLENDING_PREMULT : HWC_BLENDING_COVERAGE;
+ }
+
+ // scaling is already applied in mTransformedBounds
+ hwcl->displayFrame.left = mTransformedBounds.left;
+ hwcl->displayFrame.top = mTransformedBounds.top;
+ hwcl->displayFrame.right = mTransformedBounds.right;
+ hwcl->displayFrame.bottom = mTransformedBounds.bottom;
+ hwcl->visibleRegionScreen.rects =
+ reinterpret_cast<hwc_rect_t const *>(
+ visibleRegionScreen.getArray(
+ &hwcl->visibleRegionScreen.numRects));
}
void LayerBase::setPerFrameData(hwc_layer_t* hwcl) {
hwcl->compositionType = HWC_FRAMEBUFFER;
hwcl->handle = NULL;
+ hwcl->sourceCrop.left = 0;
+ hwcl->sourceCrop.top = 0;
+ hwcl->sourceCrop.right = mTransformedBounds.width();
+ hwcl->sourceCrop.bottom = mTransformedBounds.height();
}
void LayerBase::setFiltering(bool filtering)
diff --git a/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java b/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
index e1871ac..907ee9c 100644
--- a/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
+++ b/tests/GridLayoutTest/src/com/android/test/layout/Activity2.java
@@ -34,15 +34,17 @@
public class Activity2 extends Activity {
public static View create(Context context) {
- GridLayout vg = new GridLayout(context);
- vg.setUseDefaultMargins(true);
- vg.setAlignmentMode(ALIGN_BOUNDS);
+ GridLayout p = new GridLayout(context);
+ p.setUseDefaultMargins(true);
+ p.setAlignmentMode(ALIGN_BOUNDS);
+ p.setRowOrderPreserved(false);
+ p.setPadding(0, 0, 0, 0);
Spec row1 = spec(0);
Spec row2 = spec(1);
Spec row3 = spec(2, BASELINE);
Spec row4 = spec(3, BASELINE);
- Spec row5 = spec(4, FILL);
+ Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two
Spec row6 = spec(5);
Spec row7 = spec(6);
@@ -55,63 +57,63 @@
Spec col4b = spec(3, FILL);
{
- TextView v = new TextView(context);
- v.setTextSize(32);
- v.setText("Email setup");
- vg.addView(v, new LayoutParams(row1, col1a));
+ TextView c = new TextView(context);
+ c.setTextSize(32);
+ c.setText("Email setup");
+ p.addView(c, new LayoutParams(row1, col1a));
}
{
- TextView v = new TextView(context);
- v.setTextSize(16);
- v.setText("You can configure email in just a few steps:");
- vg.addView(v, new LayoutParams(row2, col1b));
+ TextView c = new TextView(context);
+ c.setTextSize(16);
+ c.setText("You can configure email in just a few steps:");
+ p.addView(c, new LayoutParams(row2, col1b));
}
{
- TextView v = new TextView(context);
- v.setText("Email address:");
- vg.addView(v, new LayoutParams(row3, col1c));
+ TextView c = new TextView(context);
+ c.setText("Email address:");
+ p.addView(c, new LayoutParams(row3, col1c));
}
{
- EditText v = new EditText(context);
- v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
+ EditText c = new EditText(context);
+ c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
{
LayoutParams lp = new LayoutParams(row3, col2);
- lp.width = (int) v.getPaint().measureText("Frederick.W.Flintstone");
- vg.addView(v, lp);
+ lp.width = (int) c.getPaint().measureText("Frederick.W.Flintstone");
+ p.addView(c, lp);
}
}
{
- TextView v = new TextView(context);
- v.setText("Password:");
- vg.addView(v, new LayoutParams(row4, col1c));
+ TextView c = new TextView(context);
+ c.setText("Password:");
+ p.addView(c, new LayoutParams(row4, col1c));
}
{
- TextView v = new EditText(context);
- v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
+ TextView c = new EditText(context);
+ c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
{
LayoutParams lp = new LayoutParams(row4, col2);
- lp.width = (int) v.getPaint().measureText("************");
- vg.addView(v, lp);
+ lp.width = (int) c.getPaint().measureText("************");
+ p.addView(c, lp);
}
}
{
- Space v = new Space(context);
+ Space c = new Space(context);
LayoutParams lp = new LayoutParams(row5, col3);
lp.setMargins(0, 0, 0, 0);
- vg.addView(v, lp);
+ p.addView(c, lp);
}
{
- Button v = new Button(context);
- v.setText("Manual setup");
- vg.addView(v, new LayoutParams(row6, col4a));
+ Button c = new Button(context);
+ c.setText("Manual setup");
+ p.addView(c, new LayoutParams(row6, col4a));
}
{
- Button v = new Button(context);
- v.setText("Next");
- vg.addView(v, new LayoutParams(row7, col4b));
+ Button c = new Button(context);
+ c.setText("Next");
+ p.addView(c, new LayoutParams(row7, col4b));
}
- return vg;
+ return p;
}
protected void onCreate(Bundle savedInstanceState) {
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
index 7bf25cf..4037a69 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/TextActivity.java
@@ -77,13 +77,23 @@
super.onDraw(canvas);
canvas.drawRGB(255, 255, 255);
+ mMediumPaint.setStyle(Paint.Style.FILL_AND_STROKE);
+ mMediumPaint.setStrokeWidth(2.0f);
canvas.drawText("Hello OpenGL renderer!", 100, 20, mMediumPaint);
+
+ mMediumPaint.setStyle(Paint.Style.FILL);
mMediumPaint.setTextAlign(Paint.Align.CENTER);
canvas.drawText("Hello OpenGL renderer!", 100, 40, mMediumPaint);
+
+ mMediumPaint.setStyle(Paint.Style.STROKE);
+ mMediumPaint.setStrokeWidth(2.0f);
mMediumPaint.setTextAlign(Paint.Align.RIGHT);
canvas.drawText("Hello OpenGL renderer!", 100, 60, mMediumPaint);
+
+ mMediumPaint.setStyle(Paint.Style.FILL);
mMediumPaint.setTextAlign(Paint.Align.LEFT);
canvas.drawText("Hello OpenGL renderer!", 100, 100, mMediumPaint);
+
mMediumPaint.setShadowLayer(2.5f, 0.0f, 0.0f, 0xff000000);
canvas.drawText("Hello OpenGL renderer!", 100, 150, mMediumPaint);
mMediumPaint.clearShadowLayer();
diff --git a/tests/TileBenchmark/res/values/strings.xml b/tests/TileBenchmark/res/values/strings.xml
index 66972ac..c4fd189 100644
--- a/tests/TileBenchmark/res/values/strings.xml
+++ b/tests/TileBenchmark/res/values/strings.xml
@@ -71,8 +71,16 @@
<string name="frames_per_second">Frames/sec</string>
<!-- Portion of viewport covered by good tiles [CHAR LIMIT=15] -->
<string name="viewport_coverage">Coverage</string>
+ <!-- Milliseconds taken to inval, and re-render the page [CHAR LIMIT=15] -->
+ <string name="render_millis">RenderMillis</string>
<!-- Format string for stat value overlay [CHAR LIMIT=15] -->
<string name="format_stat">%4.4f</string>
+
+ <!-- Format string for viewport position value overlay [CHAR LIMIT=25] -->
+ <string name="format_view_pos">View:(%1$d,%2$d)-(%3$d,%4$d)</string>
+ <!-- Format string for viewport position value overlay [CHAR LIMIT=25] -->
+ <string name="format_inval_pos">Inval:(%1$d,%2$d)-(%3$d,%4$d)</string>
+
<!-- Format string for displaying aggregate stats+values (nr of valid tiles,
etc.) [CHAR LIMIT=20] -->
<string name="format_stat_name">%1$-20s %2$3d</string>
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java
index 36694a7..1eb1c00 100644
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java
@@ -83,14 +83,14 @@
}
};
- private class LoadFileTask extends AsyncTask<String, Void, TileData[][]> {
+ private class LoadFileTask extends AsyncTask<String, Void, RunData> {
@Override
- protected TileData[][] doInBackground(String... params) {
- TileData[][] data = null;
+ protected RunData doInBackground(String... params) {
+ RunData data = null;
try {
FileInputStream fis = openFileInput(params[0]);
ObjectInputStream in = new ObjectInputStream(fis);
- data = (TileData[][]) in.readObject();
+ data = (RunData) in.readObject();
in.close();
} catch (IOException ex) {
ex.printStackTrace();
@@ -101,7 +101,7 @@
}
@Override
- protected void onPostExecute(TileData data[][]) {
+ protected void onPostExecute(RunData data) {
if (data == null) {
Toast.makeText(getApplicationContext(),
getResources().getString(R.string.error_no_data),
@@ -110,7 +110,7 @@
}
mPlaybackView.setData(data);
- mFrameMax = data.length - 1;
+ mFrameMax = data.frames.length - 1;
mSeekBar.setMax(mFrameMax);
setFrame(null, 0);
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java
index 35b1563..9ea90f8 100644
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java
@@ -22,10 +22,12 @@
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.ShapeDrawable;
-import android.os.Bundle;
+
+import com.test.tilebenchmark.RunData.TileData;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
public class PlaybackGraphs {
private static final int BAR_WIDTH = PlaybackView.TILE_SCALE * 3;
@@ -44,7 +46,7 @@
return 0.0f;
}
- private interface MetricGen {
+ protected interface MetricGen {
public double getValue(TileData[] frame);
public double getMax();
@@ -52,7 +54,7 @@
public int getLabelId();
};
- private static MetricGen[] Metrics = new MetricGen[] {
+ protected static MetricGen[] Metrics = new MetricGen[] {
new MetricGen() {
// framerate graph
@Override
@@ -99,7 +101,7 @@
}
};
- private interface StatGen {
+ protected interface StatGen {
public double getValue(double sortedValues[]);
public int getLabelId();
@@ -116,7 +118,7 @@
+ sortedValues[intIndex + 1] * (alpha);
}
- private static StatGen[] Stats = new StatGen[] {
+ protected static StatGen[] Stats = new StatGen[] {
new StatGen() {
@Override
public double getValue(double[] sortedValues) {
@@ -157,21 +159,22 @@
}
private ArrayList<ShapeDrawable> mShapes = new ArrayList<ShapeDrawable>();
- private double[][] mStats = new double[Metrics.length][Stats.length];
+ protected double[][] mStats = new double[Metrics.length][Stats.length];
+ protected HashMap<String, Double> mSingleStats;
- public void setData(TileData[][] tileProfilingData) {
+ public void setData(RunData data) {
mShapes.clear();
- double metricValues[] = new double[tileProfilingData.length];
+ double metricValues[] = new double[data.frames.length];
- if (tileProfilingData.length == 0) {
+ if (data.frames.length == 0) {
return;
}
for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
// create graph out of rectangles, one per frame
int lastBar = 0;
- for (int frameIndex = 0; frameIndex < tileProfilingData.length; frameIndex++) {
- TileData frame[] = tileProfilingData[frameIndex];
+ for (int frameIndex = 0; frameIndex < data.frames.length; frameIndex++) {
+ TileData frame[] = data.frames[frameIndex];
int newBar = (frame[0].top + frame[0].bottom) / 2;
MetricGen s = Metrics[metricIndex];
@@ -194,9 +197,11 @@
// store aggregate statistics per metric (median, and similar)
Arrays.sort(metricValues);
for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
- mStats[metricIndex][statIndex] = Stats[statIndex]
- .getValue(metricValues);
+ mStats[metricIndex][statIndex] =
+ Stats[statIndex].getValue(metricValues);
}
+
+ mSingleStats = data.singleStats;
}
}
@@ -215,7 +220,7 @@
}
public void draw(Canvas canvas, ArrayList<ShapeDrawable> shapes,
- String[] strings, Resources resources) {
+ ArrayList<String> strings, Resources resources) {
canvas.scale(CANVAS_SCALE, CANVAS_SCALE);
canvas.translate(BAR_WIDTH * Metrics.length, 0);
@@ -231,33 +236,18 @@
int yPos = LABELOFFSET;
canvas.drawText(label, xPos, yPos, whiteLabels);
for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
- label = resources.getString(R.string.format_stat,
- mStats[metricIndex][statIndex]);
+ String statLabel = resources.getString(
+ Stats[statIndex].getLabelId()).substring(0,3);
+ label = statLabel + " " + resources.getString(
+ R.string.format_stat, mStats[metricIndex][statIndex]);
yPos = LABELOFFSET + (1 + statIndex) * PlaybackView.TILE_SCALE
/ 2;
canvas.drawText(label, xPos, yPos, whiteLabels);
}
}
- for (int stringIndex = 0; stringIndex < strings.length; stringIndex++) {
+ for (int stringIndex = 0; stringIndex < strings.size(); stringIndex++) {
int yPos = LABELOFFSET + stringIndex * PlaybackView.TILE_SCALE / 2;
- canvas.drawText(strings[stringIndex], 0, yPos, whiteLabels);
+ canvas.drawText(strings.get(stringIndex), 0, yPos, whiteLabels);
}
}
-
- public Bundle getStatBundle(Resources resources) {
- Bundle b = new Bundle();
-
- for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
- for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
- String metricLabel = resources.getString(
- Metrics[metricIndex].getLabelId());
- String statLabel = resources.getString(
- Stats[statIndex].getLabelId());
- double value = mStats[metricIndex][statIndex];
- b.putDouble(metricLabel + " " + statLabel, value);
- }
- }
-
- return b;
- }
}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java
index edc8643..5459c1f 100644
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java
@@ -30,10 +30,12 @@
import android.view.MotionEvent;
import android.view.View;
+import com.test.tilebenchmark.RunData.TileData;
+
import java.util.ArrayList;
public class PlaybackView extends View {
- public static final int TILE_SCALE = 300;
+ public static final int TILE_SCALE = 256;
private static final int INVAL_FLAG = -2;
private static final int INVAL_CYCLE = 250;
@@ -41,9 +43,9 @@
private PlaybackGraphs mGraphs;
private ArrayList<ShapeDrawable> mTempShapes = new ArrayList<ShapeDrawable>();
- private TileData mProfData[][] = null;
+ private RunData mProfData = null;
private GestureDetector mGestureDetector = null;
- private String mRenderStrings[] = new String[4];
+ private ArrayList<String> mRenderStrings = new ArrayList<String>();
private class TileDrawable extends ShapeDrawable {
TileData tile;
@@ -135,17 +137,30 @@
invalidate(); // may have animations, force redraw
}
+ private String statString(int labelId, int value) {
+ return getResources().getString(R.string.format_stat_name,
+ getResources().getString(labelId), value);
+ }
+ private String tileString(int formatStringId, TileData t) {
+ return getResources().getString(formatStringId,
+ t.left, t.top, t.right, t.bottom);
+ }
+
public int setFrame(int frame) {
- if (mProfData == null || mProfData.length == 0) {
+ if (mProfData == null || mProfData.frames.length == 0) {
return 0;
}
int readyTiles = 0, unreadyTiles = 0, unplacedTiles = 0, numInvals = 0;
mTempShapes.clear();
+ mRenderStrings.clear();
// create tile shapes (as they're drawn on bottom)
- for (TileData t : mProfData[frame]) {
- if (t.level != INVAL_FLAG && t != mProfData[frame][0]) {
+ for (TileData t : mProfData.frames[frame]) {
+ if (t == mProfData.frames[frame][0]){
+ // viewport 'tile', add coords to render strings
+ mRenderStrings.add(tileString(R.string.format_view_pos, t));
+ } else if (t.level != INVAL_FLAG) {
int colorId;
if (t.isReady) {
readyTiles++;
@@ -159,14 +174,16 @@
}
mTempShapes.add(new TileDrawable(t, colorId));
} else {
+ // inval 'tile', count and add coords to render strings
numInvals++;
+ mRenderStrings.add(tileString(R.string.format_inval_pos, t));
}
}
// create invalidate shapes (drawn above tiles)
int invalId = 0;
- for (TileData t : mProfData[frame]) {
- if (t.level == INVAL_FLAG && t != mProfData[frame][0]) {
+ for (TileData t : mProfData.frames[frame]) {
+ if (t.level == INVAL_FLAG && t != mProfData.frames[frame][0]) {
TileDrawable invalShape = new TileDrawable(t,
R.color.inval_region_start);
ValueAnimator tileAnimator = ObjectAnimator.ofInt(invalShape,
@@ -186,26 +203,20 @@
}
}
- mRenderStrings[0] = getResources().getString(R.string.format_stat_name,
- getResources().getString(R.string.ready_tiles), readyTiles);
- mRenderStrings[1] = getResources().getString(R.string.format_stat_name,
- getResources().getString(R.string.unready_tiles), unreadyTiles);
- mRenderStrings[2] = getResources().getString(R.string.format_stat_name,
- getResources().getString(R.string.unplaced_tiles),
- unplacedTiles);
- mRenderStrings[3] = getResources().getString(R.string.format_stat_name,
- getResources().getString(R.string.number_invalidates),
- numInvals);
+ mRenderStrings.add(statString(R.string.ready_tiles, readyTiles));
+ mRenderStrings.add(statString(R.string.unready_tiles, unreadyTiles));
+ mRenderStrings.add(statString(R.string.unplaced_tiles, unplacedTiles));
+ mRenderStrings.add(statString(R.string.number_invalidates, numInvals));
// draw view rect (using first TileData object, on top)
- TileDrawable viewShape = new TileDrawable(mProfData[frame][0],
+ TileDrawable viewShape = new TileDrawable(mProfData.frames[frame][0],
R.color.view);
mTempShapes.add(viewShape);
this.invalidate();
return frame;
}
- public void setData(TileData[][] tileProfilingData) {
+ public void setData(RunData tileProfilingData) {
mProfData = tileProfilingData;
mGraphs.setData(mProfData);
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java
index 1521807..82a7e82 100644
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java
@@ -51,11 +51,11 @@
public class ProfileActivity extends Activity {
public interface ProfileCallback {
- public void profileCallback(TileData data[][]);
+ public void profileCallback(RunData data);
}
public static final String TEMP_FILENAME = "profile.tiles";
- private static final int LOAD_TEST_DELAY = 2000; // nr of millis after load,
+ private static final int LOAD_TEST_DELAY = 1000; // nr of millis after load,
// before test
Button mInspectButton;
@@ -135,6 +135,7 @@
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.requestFocus();
+
new CountDownTimer(LOAD_TEST_DELAY, LOAD_TEST_DELAY) {
@Override
public void onTick(long millisUntilFinished) {
@@ -155,10 +156,10 @@
}
private class StoreFileTask extends
- AsyncTask<Pair<String, TileData[][]>, Void, Void> {
+ AsyncTask<Pair<String, RunData>, Void, Void> {
@Override
- protected Void doInBackground(Pair<String, TileData[][]>... params) {
+ protected Void doInBackground(Pair<String, RunData>... params) {
try {
FileOutputStream fos = openFileOutput(params[0].first,
Context.MODE_PRIVATE);
@@ -205,10 +206,8 @@
/** auto - automatically scroll. */
private void startViewProfiling(boolean auto) {
- if (!auto) {
- // manual, toggle capture button to indicate capture state to user
- mCaptureButton.setChecked(true);
- }
+ // toggle capture button to indicate capture state to user
+ mCaptureButton.setChecked(true);
mWeb.startScrollTest(mCallback, auto);
setTestingState(TestingState.START_TESTING);
}
@@ -224,16 +223,16 @@
mMovementSpinner = (Spinner) findViewById(R.id.movement);
mUrl = (EditText) findViewById(R.id.url);
mWeb = (ProfiledWebView) findViewById(R.id.web);
- mCallback = new ProfileCallback() {
+ setCallback(new ProfileCallback() {
@SuppressWarnings("unchecked")
@Override
- public void profileCallback(TileData[][] data) {
- new StoreFileTask().execute(new Pair<String, TileData[][]>(
+ public void profileCallback(RunData data) {
+ new StoreFileTask().execute(new Pair<String, RunData>(
TEMP_FILENAME, data));
mCaptureButton.setChecked(false);
setTestingState(TestingState.STOP_TESTING);
}
- };
+ });
// Inspect button (opens PlaybackActivity)
mInspectButton.setOnClickListener(new OnClickListener() {
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java
index d3941be..3fc4665 100644
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java
@@ -18,15 +18,19 @@
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Log;
import android.webkit.WebView;
import com.test.tilebenchmark.ProfileActivity.ProfileCallback;
+import com.test.tilebenchmark.RunData.TileData;
public class ProfiledWebView extends WebView {
private int mSpeed;
+ private boolean isTesting = false;
private boolean isScrolling = false;
private ProfileCallback mCallback;
+ private long mContentInvalMillis;
public ProfiledWebView(Context context) {
super(context);
@@ -47,7 +51,7 @@
@Override
protected void onDraw(android.graphics.Canvas canvas) {
- if (isScrolling) {
+ if (isTesting && isScrolling) {
if (canScrollVertically(1)) {
scrollBy(0, mSpeed);
} else {
@@ -60,31 +64,53 @@
/*
* Called once the page is loaded to start scrolling for evaluating tiles.
- * If autoScrolling isn't set, stop must be called manually.
+ * If autoScrolling isn't set, stop must be called manually. Before
+ * scrolling, invalidate all content and redraw it, measuring time taken.
*/
public void startScrollTest(ProfileCallback callback, boolean autoScrolling) {
isScrolling = autoScrolling;
mCallback = callback;
- tileProfilingStart();
+ isTesting = false;
+ mContentInvalMillis = System.currentTimeMillis();
+ registerPageSwapCallback();
+ contentInvalidateAll();
invalidate();
}
/*
+ * Called after the manual contentInvalidateAll, after the tiles have all
+ * been redrawn.
+ */
+ @Override
+ protected void pageSwapCallback() {
+ mContentInvalMillis = System.currentTimeMillis() - mContentInvalMillis;
+ super.pageSwapCallback();
+ Log.d("ProfiledWebView", "REDRAW TOOK " + mContentInvalMillis
+ + "millis");
+ isTesting = true;
+ invalidate(); // ensure a redraw so that auto-scrolling can occur
+ tileProfilingStart();
+ }
+
+ /*
* Called once the page has stopped scrolling
*/
public void stopScrollTest() {
- super.tileProfilingStop();
+ tileProfilingStop();
+ isTesting = false;
if (mCallback == null) {
tileProfilingClear();
return;
}
- TileData data[][] = new TileData[super.tileProfilingNumFrames()][];
- for (int frame = 0; frame < data.length; frame++) {
- data[frame] = new TileData[
+ RunData data = new RunData(super.tileProfilingNumFrames());
+ data.singleStats.put(getResources().getString(R.string.render_millis),
+ (double)mContentInvalMillis);
+ for (int frame = 0; frame < data.frames.length; frame++) {
+ data.frames[frame] = new TileData[
tileProfilingNumTilesInFrame(frame)];
- for (int tile = 0; tile < data[frame].length; tile++) {
+ for (int tile = 0; tile < data.frames[frame].length; tile++) {
int left = tileProfilingGetInt(frame, tile, "left");
int top = tileProfilingGetInt(frame, tile, "top");
int right = tileProfilingGetInt(frame, tile, "right");
@@ -96,18 +122,18 @@
float scale = tileProfilingGetFloat(frame, tile, "scale");
- data[frame][tile] = new TileData(left, top, right, bottom,
+ data.frames[frame][tile] = data.new TileData(left, top, right, bottom,
isReady, level, scale);
}
}
- super.tileProfilingClear();
+ tileProfilingClear();
mCallback.profileCallback(data);
}
@Override
public void loadUrl(String url) {
- if (!url.startsWith("http://")) {
+ if (!url.startsWith("http://") && !url.startsWith("file://")) {
url = "http://" + url;
}
super.loadUrl(url);
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java b/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java
new file mode 100644
index 0000000..2da61cc
--- /dev/null
+++ b/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java
@@ -0,0 +1,53 @@
+/*
+ * 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.test.tilebenchmark;
+
+import java.io.Serializable;
+import java.util.HashMap;
+
+public class RunData implements Serializable {
+ public TileData[][] frames;
+ public HashMap<String, Double> singleStats = new HashMap<String, Double>();
+
+ public RunData(int frames) {
+ this.frames = new TileData[frames][];
+ }
+
+ public class TileData implements Serializable {
+ public int left, top, right, bottom;
+ public boolean isReady;
+ public int level;
+ public float scale;
+
+ public TileData(int left, int top, int right, int bottom,
+ boolean isReady, int level, float scale) {
+ this.left = left;
+ this.right = right;
+ this.top = top;
+ this.bottom = bottom;
+ this.isReady = isReady;
+ this.level = level;
+ this.scale = scale;
+ }
+
+ public String toString() {
+ return "Tile (" + left + "," + top + ")->("
+ + right + "," + bottom + ")";
+ }
+ }
+
+}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/TileData.java b/tests/TileBenchmark/src/com/test/tilebenchmark/TileData.java
deleted file mode 100644
index 3e729a6..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/TileData.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.test.tilebenchmark;
-
-import java.io.Serializable;
-
-public class TileData implements Serializable {
- int left, top, right, bottom;
- public boolean isReady;
- public int level;
- public float scale;
-
- public TileData(int left, int top, int right, int bottom, boolean isReady,
- int level, float scale) {
- this.left = left;
- this.right = right;
- this.top = top;
- this.bottom = bottom;
- this.isReady = isReady;
- this.level = level;
- this.scale = scale;
- }
-
- public String toString() {
- return "Tile (" + left + "," + top + ")->("
- + right + "," + bottom + ")";
- }
-}
diff --git a/tests/TileBenchmark/tests/Android.mk b/tests/TileBenchmark/tests/Android.mk
new file mode 100644
index 0000000..8b235ec
--- /dev/null
+++ b/tests/TileBenchmark/tests/Android.mk
@@ -0,0 +1,16 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# We only want this apk build for tests.
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+# Include all test java files.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := TileBenchmarkTests
+
+LOCAL_INSTRUMENTATION_FOR := TileBenchmark
+
+include $(BUILD_PACKAGE)
diff --git a/tests/TileBenchmark/tests/AndroidManifest.xml b/tests/TileBenchmark/tests/AndroidManifest.xml
new file mode 100644
index 0000000..703b152
--- /dev/null
+++ b/tests/TileBenchmark/tests/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.test.tilebenchmark.tests">
+
+ <application>
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <instrumentation android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.test.tilebenchmark"
+ android:label="Tests for WebView Tiles."/>
+</manifest>
diff --git a/tests/TileBenchmark/tests/src/com/test/tilebenchmark/PerformanceTest.java b/tests/TileBenchmark/tests/src/com/test/tilebenchmark/PerformanceTest.java
new file mode 100644
index 0000000..0f02239
--- /dev/null
+++ b/tests/TileBenchmark/tests/src/com/test/tilebenchmark/PerformanceTest.java
@@ -0,0 +1,167 @@
+/*
+ * 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.test.tilebenchmark;
+
+import com.test.tilebenchmark.ProfileActivity.ProfileCallback;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.os.Environment;
+import android.test.ActivityInstrumentationTestCase2;
+import android.util.Log;
+
+public class PerformanceTest extends
+ ActivityInstrumentationTestCase2<ProfileActivity> {
+
+ private class StatAggregator extends PlaybackGraphs {
+ private HashMap<String, Double> mDataMap = new HashMap<String, Double>();
+ private int mCount = 0;
+
+ public void aggregate() {
+ mCount++;
+ Resources resources = mView.getResources();
+ for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
+ for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
+ String metricLabel = resources.getString(
+ Metrics[metricIndex].getLabelId());
+ String statLabel = resources.getString(
+ Stats[statIndex].getLabelId());
+
+ String label = metricLabel + " " + statLabel;
+ double aggVal = mDataMap.containsKey(label) ? mDataMap
+ .get(label) : 0;
+
+ aggVal += mStats[metricIndex][statIndex];
+ mDataMap.put(label, aggVal);
+ }
+ }
+ for (Map.Entry<String, Double> e : mSingleStats.entrySet()) {
+ double aggVal = mDataMap.containsKey(e.getKey())
+ ? mDataMap.get(e.getKey()) : 0;
+ mDataMap.put(e.getKey(), aggVal + e.getValue());
+ }
+ }
+
+ public Bundle getBundle() {
+ Bundle b = new Bundle();
+ int count = 0 == mCount ? Integer.MAX_VALUE : mCount;
+ for (Map.Entry<String, Double> e : mDataMap.entrySet()) {
+ b.putDouble(e.getKey(), e.getValue() / count);
+ }
+ return b;
+ }
+ }
+
+ ProfileActivity mActivity;
+ ProfiledWebView mView;
+ StatAggregator mStats = new StatAggregator();
+
+ private static final String LOGTAG = "PerformanceTest";
+ private static final String TEST_LOCATION = "webkit/page_cycler";
+ private static final String URL_PREFIX = "file://";
+ private static final String URL_POSTFIX = "/index.html?skip=true";
+ private static final int MAX_ITERATIONS = 4;
+ private static final String TEST_DIRS[] = {
+ "alexa_us"//, "android", "dom", "intl1", "intl2", "moz", "moz2"
+ };
+
+ public PerformanceTest() {
+ super(ProfileActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mActivity = getActivity();
+ mView = (ProfiledWebView) mActivity.findViewById(R.id.web);
+ }
+
+ private boolean loadUrl(final String url) {
+ try {
+ Log.d(LOGTAG, "test starting for url " + url);
+ mActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mView.loadUrl(url);
+ }
+ });
+ synchronized (mStats) {
+ mStats.wait();
+ }
+ mStats.aggregate();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ private boolean runIteration() {
+ File sdFile = Environment.getExternalStorageDirectory();
+ for (String testDirName : TEST_DIRS) {
+ File testDir = new File(sdFile, TEST_LOCATION + "/" + testDirName);
+ Log.d(LOGTAG, "Testing dir: '" + testDir.getAbsolutePath()
+ + "', exists=" + testDir.exists());
+ for (File siteDir : testDir.listFiles()) {
+ if (!siteDir.isDirectory())
+ continue;
+
+ if (!loadUrl(URL_PREFIX + siteDir.getAbsolutePath()
+ + URL_POSTFIX)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ public void testMetrics() {
+ String state = Environment.getExternalStorageState();
+
+ if (!Environment.MEDIA_MOUNTED.equals(state)
+ && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
+ Log.d(LOGTAG, "ARG Can't access sd card!");
+ // Can't read the SD card, fail and die!
+ getInstrumentation().sendStatus(1, null);
+ return;
+ }
+
+ // use mGraphs as a condition variable between the UI thread and
+ // this(the testing) thread
+ mActivity.setCallback(new ProfileCallback() {
+ @Override
+ public void profileCallback(RunData data) {
+ Log.d(LOGTAG, "test completion callback");
+ mStats.setData(data);
+ synchronized (mStats) {
+ mStats.notify();
+ }
+ }
+ });
+
+ for (int i = 0; i < MAX_ITERATIONS; i++)
+ if (!runIteration()) {
+ getInstrumentation().sendStatus(1, null);
+ return;
+ }
+ getInstrumentation().sendStatus(0, mStats.getBundle());
+ }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeResources.java b/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java
similarity index 97%
rename from tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeResources.java
rename to tools/layoutlib/bridge/src/android/content/res/BridgeResources.java
index 1756496f..625b40d 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeResources.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java
@@ -14,13 +14,15 @@
* limitations under the License.
*/
-package com.android.layoutlib.bridge.android;
+package android.content.res;
import com.android.ide.common.rendering.api.IProjectCallback;
import com.android.ide.common.rendering.api.LayoutLog;
import com.android.ide.common.rendering.api.ResourceValue;
import com.android.layoutlib.bridge.Bridge;
import com.android.layoutlib.bridge.BridgeConstants;
+import com.android.layoutlib.bridge.android.BridgeContext;
+import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
import com.android.layoutlib.bridge.impl.ParserFactory;
import com.android.layoutlib.bridge.impl.ResourceHelper;
import com.android.ninepatch.NinePatch;
@@ -30,13 +32,6 @@
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import android.content.res.AssetFileDescriptor;
-import android.content.res.AssetManager;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.content.res.XmlResourceParser;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
@@ -94,7 +89,7 @@
* <p/>
* {@link Bridge} calls this method after setting up a new bridge.
*/
- /*package*/ static Resources initSystem(BridgeContext context,
+ public static Resources initSystem(BridgeContext context,
AssetManager assets,
DisplayMetrics metrics,
Configuration config,
@@ -110,7 +105,7 @@
* Disposes the static {@link Resources#mSystem} to make sure we don't leave objects
* around that would prevent us from unloading the library.
*/
- /*package*/ static void disposeSystem() {
+ public static void disposeSystem() {
if (Resources.mSystem instanceof BridgeResources) {
((BridgeResources)(Resources.mSystem)).mContext = null;
((BridgeResources)(Resources.mSystem)).mProjectCallback = null;
@@ -336,7 +331,7 @@
if (ResourceHelper.parseFloatAttribute(
value.getFirst(), v, mTmpValue, true /*requireUnit*/) &&
mTmpValue.type == TypedValue.TYPE_DIMENSION) {
- return mTmpValue.getDimension(mMetrics);
+ return mTmpValue.getDimension(getDisplayMetrics());
}
}
}
@@ -359,7 +354,8 @@
if (ResourceHelper.parseFloatAttribute(
value.getFirst(), v, mTmpValue, true /*requireUnit*/) &&
mTmpValue.type == TypedValue.TYPE_DIMENSION) {
- return TypedValue.complexToDimensionPixelOffset(mTmpValue.data, mMetrics);
+ return TypedValue.complexToDimensionPixelOffset(mTmpValue.data,
+ getDisplayMetrics());
}
}
}
@@ -382,7 +378,8 @@
if (ResourceHelper.parseFloatAttribute(
value.getFirst(), v, mTmpValue, true /*requireUnit*/) &&
mTmpValue.type == TypedValue.TYPE_DIMENSION) {
- return TypedValue.complexToDimensionPixelSize(mTmpValue.data, mMetrics);
+ return TypedValue.complexToDimensionPixelSize(mTmpValue.data,
+ getDisplayMetrics());
}
}
}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
similarity index 98%
rename from tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java
rename to tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
index fc2f2f8..9deed32 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.layoutlib.bridge.android;
+package android.content.res;
import com.android.ide.common.rendering.api.DeclareStyleableResourceValue;
import com.android.ide.common.rendering.api.LayoutLog;
@@ -24,6 +24,8 @@
import com.android.internal.util.XmlUtils;
import com.android.layoutlib.bridge.Bridge;
import com.android.layoutlib.bridge.BridgeConstants;
+import com.android.layoutlib.bridge.android.BridgeContext;
+import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
import com.android.layoutlib.bridge.impl.ParserFactory;
import com.android.layoutlib.bridge.impl.ResourceHelper;
import com.android.resources.ResourceType;
@@ -445,7 +447,7 @@
}
if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true /*requireUnit*/)) {
- return mValue.getDimension(mBridgeResources.mMetrics);
+ return mValue.getDimension(mBridgeResources.getDisplayMetrics());
}
// looks like we were unable to resolve the dimension value
@@ -572,7 +574,7 @@
}
if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true /*requireUnit*/)) {
- float f = mValue.getDimension(mBridgeResources.mMetrics);
+ float f = mValue.getDimension(mBridgeResources.getDisplayMetrics());
final int res = (int)(f+0.5f);
if (res != 0) return res;
diff --git a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
index 080b85f..945b3cd7 100644
--- a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
@@ -17,12 +17,12 @@
package android.graphics;
import com.android.layoutlib.bridge.Bridge;
-import com.android.layoutlib.bridge.android.BridgeResources.NinePatchInputStream;
import com.android.layoutlib.bridge.impl.DelegateManager;
import com.android.ninepatch.NinePatchChunk;
import com.android.resources.Density;
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
+import android.content.res.BridgeResources.NinePatchInputStream;
import android.graphics.BitmapFactory.Options;
import java.io.FileDescriptor;
diff --git a/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java b/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java
index 3ef3288..64efa7e 100644
--- a/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java
@@ -38,11 +38,15 @@
*/
public class LayoutInflater_Delegate {
+ private static final String TAG_MERGE = "merge";
+
public static boolean sIsInInclude = false;
/**
* Recursive method used to descend down the xml hierarchy and instantiate
* views, instantiate their children, and then call onFinishInflate().
+ *
+ * This implementation just records the merge status before calling the default implementation.
*/
@LayoutlibDelegate
/*package*/ static void rInflate(LayoutInflater thisInflater,
@@ -58,37 +62,7 @@
// ---- START DEFAULT IMPLEMENTATION.
- final int depth = parser.getDepth();
- int type;
-
- while (((type = parser.next()) != XmlPullParser.END_TAG ||
- parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) {
-
- if (type != XmlPullParser.START_TAG) {
- continue;
- }
-
- final String name = parser.getName();
-
- if (LayoutInflater.TAG_REQUEST_FOCUS.equals(name)) {
- thisInflater.parseRequestFocus(parser, parent);
- } else if (LayoutInflater.TAG_INCLUDE.equals(name)) {
- if (parser.getDepth() == 0) {
- throw new InflateException("<include /> cannot be the root element");
- }
- thisInflater.parseInclude(parser, parent, attrs);
- } else if (LayoutInflater.TAG_MERGE.equals(name)) {
- throw new InflateException("<merge /> must be the root element");
- } else {
- final View view = thisInflater.createViewFromTag(parent, name, attrs);
- final ViewGroup viewGroup = (ViewGroup) parent;
- final ViewGroup.LayoutParams params = viewGroup.generateLayoutParams(attrs);
- thisInflater.rInflate(parser, view, attrs, true);
- viewGroup.addView(view, params);
- }
- }
-
- if (finishInflate) parent.onFinishInflate();
+ thisInflater.rInflate_Original(parser, parent, attrs, finishInflate);
// ---- END DEFAULT IMPLEMENTATION.
@@ -138,7 +112,7 @@
final String childName = childParser.getName();
- if (LayoutInflater.TAG_MERGE.equals(childName)) {
+ if (TAG_MERGE.equals(childName)) {
// Inflate all children.
thisInflater.rInflate(childParser, parent, childAttrs, false);
} else {
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
index 69e0de9..b38b3b8 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
@@ -47,6 +47,8 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.AssetManager;
+import android.content.res.BridgeResources;
+import android.content.res.BridgeTypedArray;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -813,7 +815,7 @@
return null;
}
- int getDynamicIdByStyle(StyleResourceValue resValue) {
+ public int getDynamicIdByStyle(StyleResourceValue resValue) {
if (mDynamicIdToStyleMap == null) {
// create the maps.
mDynamicIdToStyleMap = new HashMap<Integer, StyleResourceValue>();
@@ -843,7 +845,7 @@
return null;
}
- int getFrameworkResourceValue(ResourceType resType, String resName, int defValue) {
+ public int getFrameworkResourceValue(ResourceType resType, String resName, int defValue) {
Integer value = Bridge.getResourceId(resType, resName);
if (value != null) {
return value.intValue();
@@ -852,7 +854,7 @@
return defValue;
}
- int getProjectResourceValue(ResourceType resType, String resName, int defValue) {
+ public int getProjectResourceValue(ResourceType resType, String resName, int defValue) {
if (mProjectCallback != null) {
Integer value = mProjectCallback.getResourceId(resType, resName);
if (value != null) {
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
index df701d5..72ed351 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
@@ -230,7 +230,7 @@
if (ResourceHelper.parseFloatAttribute("textSize", textSize.getValue(), out,
true /*requireUnit*/)) {
textView.setTextSize(
- out.getDimension(bridgeContext.getResources().mMetrics));
+ out.getDimension(bridgeContext.getResources().getDisplayMetrics()));
}
}
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
index 9bf52c7..b027b6a 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
@@ -167,5 +167,4 @@
return true;
}
-
}
diff --git a/voip/java/android/net/sip/SipManager.java b/voip/java/android/net/sip/SipManager.java
index dce46fe..cd0b5c4 100644
--- a/voip/java/android/net/sip/SipManager.java
+++ b/voip/java/android/net/sip/SipManager.java
@@ -471,6 +471,10 @@
try {
ISipSession session = mSipService.createSession(localProfile,
createRelay(listener, localProfile.getUriString()));
+ if (session == null) {
+ throw new SipException(
+ "SipService.createSession() returns null");
+ }
session.register(expiryTime);
} catch (RemoteException e) {
throw new SipException("register()", e);
@@ -492,6 +496,10 @@
try {
ISipSession session = mSipService.createSession(localProfile,
createRelay(listener, localProfile.getUriString()));
+ if (session == null) {
+ throw new SipException(
+ "SipService.createSession() returns null");
+ }
session.unregister();
} catch (RemoteException e) {
throw new SipException("unregister()", e);
@@ -513,7 +521,7 @@
try {
String callId = getCallId(incomingCallIntent);
ISipSession s = mSipService.getPendingSession(callId);
- return new SipSession(s);
+ return ((s == null) ? null : new SipSession(s));
} catch (RemoteException e) {
throw new SipException("getSessionFor()", e);
}