summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/app/backup/FullBackup.java13
-rw-r--r--core/java/android/appwidget/AppWidgetHost.java11
-rw-r--r--core/java/android/appwidget/AppWidgetProviderInfo.java22
-rwxr-xr-xcore/java/android/provider/ContactsContract.java3
-rw-r--r--core/java/android/view/View.java62
-rw-r--r--core/java/android/view/ViewRootImpl.java1
-rw-r--r--core/java/android/widget/AbsListView.java16
-rw-r--r--core/java/android/widget/AdapterViewAnimator.java16
-rw-r--r--core/java/android/widget/RemoteViews.java30
-rw-r--r--core/java/android/widget/RemoteViewsAdapter.java28
-rw-r--r--core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java84
-rw-r--r--core/res/res/drawable-hdpi/ic_coins_s.pngbin0 -> 1100 bytes
-rw-r--r--core/res/res/drawable-hdpi/ic_lockscreen_alarm.pngbin0 -> 1398 bytes
-rw-r--r--core/res/res/drawable-hdpi/ic_lockscreen_sim.pngbin0 -> 4083 bytes
-rw-r--r--core/res/res/drawable-hdpi/lockscreen_protection_pattern.pngbin0 -> 347 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_delete.pngbin2282 -> 1146 bytes
-rw-r--r--core/res/res/drawable-hdpi/sym_keyboard_enter.pngbin0 -> 2109 bytes
-rw-r--r--core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.pngbin970 -> 1129 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num1.pngbin809 -> 626 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num2.pngbin3214 -> 2450 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num3.pngbin2805 -> 1959 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num4.pngbin2647 -> 1783 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num5.pngbin2536 -> 2002 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num6.pngbin3573 -> 2550 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num7.pngbin3684 -> 2675 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num8.pngbin2904 -> 2450 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_num9.pngbin3860 -> 3222 bytes
-rw-r--r--core/res/res/drawable-mdpi/ic_coins_s.pngbin0 -> 741 bytes
-rw-r--r--core/res/res/drawable-mdpi/ic_lockscreen_alarm.pngbin0 -> 839 bytes
-rw-r--r--core/res/res/drawable-mdpi/ic_lockscreen_sim.pngbin0 -> 2602 bytes
-rw-r--r--core/res/res/drawable-mdpi/lockscreen_protection_pattern.pngbin0 -> 351 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_delete.pngbin829 -> 896 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_enter.pngbin0 -> 1447 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.pngbin683 -> 823 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num1.pngbin506 -> 511 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num2.pngbin1778 -> 1574 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num3.pngbin1676 -> 1465 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num4.pngbin1540 -> 1301 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num5.pngbin1417 -> 1403 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num6.pngbin1952 -> 1708 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num7.pngbin2051 -> 1643 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num8.pngbin1605 -> 1541 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_keyboard_num9.pngbin2173 -> 1924 bytes
-rw-r--r--core/res/res/drawable-xhdpi/ic_coins_s.pngbin0 -> 1483 bytes
-rw-r--r--core/res/res/drawable-xhdpi/ic_lockscreen_alarm.pngbin0 -> 2130 bytes
-rw-r--r--core/res/res/drawable-xhdpi/ic_lockscreen_sim.pngbin0 -> 5201 bytes
-rw-r--r--core/res/res/drawable-xhdpi/lockscreen_protection_pattern.pngbin0 -> 365 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_delete.pngbin3245 -> 1721 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_enter.pngbin0 -> 2747 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.pngbin1316 -> 1565 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num1.pngbin1051 -> 686 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num2.pngbin3941 -> 3671 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num3.pngbin3566 -> 2816 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num4.pngbin3341 -> 2319 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num5.pngbin3051 -> 2797 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num6.pngbin4377 -> 3776 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num7.pngbin4429 -> 3722 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num8.pngbin3626 -> 3428 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_keyboard_num9.pngbin4729 -> 4752 bytes
-rw-r--r--core/res/res/layout-land/keyguard_host_view.xml10
-rw-r--r--core/res/res/layout/app_permission_item_money.xml7
-rw-r--r--core/res/res/layout/keyguard_emergency_carrier_area.xml52
-rw-r--r--core/res/res/layout/keyguard_navigation.xml44
-rw-r--r--core/res/res/layout/keyguard_password_view.xml27
-rw-r--r--core/res/res/layout/keyguard_pattern_view.xml32
-rw-r--r--core/res/res/layout/keyguard_selector_view.xml29
-rw-r--r--core/res/res/layout/keyguard_sim_pin_view.xml30
-rw-r--r--core/res/res/layout/keyguard_status_view.xml11
-rw-r--r--core/res/res/values-land/arrays.xml12
-rw-r--r--core/res/res/values-land/dimens.xml7
-rw-r--r--core/res/res/values-land/integers.xml26
-rw-r--r--core/res/res/values/colors.xml2
-rw-r--r--core/res/res/values/dimens.xml22
-rw-r--r--core/res/res/values/donottranslate-cldr.xml1
-rw-r--r--core/res/res/values/integers.xml4
-rwxr-xr-xcore/res/res/values/strings.xml1
-rw-r--r--core/res/res/values/symbols.xml3
-rwxr-xr-xcore/res/res/xml/kg_password_kbd_numeric.xml59
-rwxr-xr-xcore/res/res/xml/password_kbd_numeric.xml2
-rw-r--r--data/fonts/AndroidClock.ttfbin4824 -> 5116 bytes
-rw-r--r--libs/hwui/Caches.cpp10
-rw-r--r--libs/hwui/Caches.h6
-rw-r--r--libs/hwui/FontRenderer.cpp5
-rw-r--r--libs/hwui/OpenGLRenderer.cpp94
-rw-r--r--libs/hwui/OpenGLRenderer.h11
-rw-r--r--libs/hwui/PathRenderer.cpp401
-rw-r--r--libs/hwui/PathRenderer.h43
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.pngbin1976 -> 1927 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.pngbin1976 -> 1928 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.pngbin1333 -> 1261 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.pngbin1334 -> 1262 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.pngbin2758 -> 2694 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.pngbin2760 -> 2695 bytes
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_airplane.xml1
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml1
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_brightness.xml1
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml1
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_settings.xml2
-rw-r--r--packages/SystemUI/res/layout/quick_settings_tile_user.xml1
-rw-r--r--packages/SystemUI/res/values-af/strings.xml16
-rw-r--r--packages/SystemUI/res/values-am/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml16
-rw-r--r--packages/SystemUI/res/values-be/strings.xml16
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml11
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml16
-rw-r--r--packages/SystemUI/res/values-da/strings.xml16
-rw-r--r--packages/SystemUI/res/values-de/strings.xml18
-rw-r--r--packages/SystemUI/res/values-el/strings.xml11
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml11
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml16
-rw-r--r--packages/SystemUI/res/values-es/strings.xml16
-rw-r--r--packages/SystemUI/res/values-et/strings.xml11
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml16
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml16
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml16
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml16
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml16
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml16
-rw-r--r--packages/SystemUI/res/values-in/strings.xml16
-rw-r--r--packages/SystemUI/res/values-it/strings.xml16
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml18
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml11
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ms/strings.xml18
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml16
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml16
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml16
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml11
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml18
-rw-r--r--packages/SystemUI/res/values-rm/strings.xml12
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml16
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml16
-rw-r--r--packages/SystemUI/res/values-sw380dp/dimens.xml21
-rw-r--r--packages/SystemUI/res/values-th/strings.xml16
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml16
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml16
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml16
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml16
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml16
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml16
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml16
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java49
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/ClockView.java3
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java9
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java8
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java10
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java4
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java9
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java9
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java9
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java2
-rw-r--r--services/java/com/android/server/AppWidgetServiceImpl.java40
-rw-r--r--services/java/com/android/server/BackupManagerService.java63
163 files changed, 1592 insertions, 670 deletions
diff --git a/api/current.txt b/api/current.txt
index 91e5ddd22768..ea26c9a0e43c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -4476,6 +4476,7 @@ package android.appwidget {
public class AppWidgetProviderInfo implements android.os.Parcelable {
ctor public AppWidgetProviderInfo();
ctor public AppWidgetProviderInfo(android.os.Parcel);
+ method public android.appwidget.AppWidgetProviderInfo clone();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;
diff --git a/core/java/android/app/backup/FullBackup.java b/core/java/android/app/backup/FullBackup.java
index d7f1c9f0fab4..f859599e18ce 100644
--- a/core/java/android/app/backup/FullBackup.java
+++ b/core/java/android/app/backup/FullBackup.java
@@ -64,7 +64,9 @@ public class FullBackup {
/**
* Copy data from a socket to the given File location on permanent storage. The
- * modification time and access mode of the resulting file will be set if desired.
+ * modification time and access mode of the resulting file will be set if desired,
+ * although group/all rwx modes will be stripped: the restored file will not be
+ * accessible from outside the target application even if the original file was.
* If the {@code type} parameter indicates that the result should be a directory,
* the socket parameter may be {@code null}; even if it is valid, no data will be
* read from it in this case.
@@ -79,8 +81,9 @@ public class FullBackup {
* @param type Must be either {@link BackupAgent#TYPE_FILE} for ordinary file data
* or {@link BackupAgent#TYPE_DIRECTORY} for a directory.
* @param mode Unix-style file mode (as used by the chmod(2) syscall) to be set on
- * the output file or directory. If this parameter is negative then neither
- * the mode nor the mtime parameters will be used.
+ * the output file or directory. group/all rwx modes are stripped even if set
+ * in this parameter. If this parameter is negative then neither
+ * the mode nor the mtime values will be applied to the restored file.
* @param mtime A timestamp in the standard Unix epoch that will be imposed as the
* last modification time of the output file. if the {@code mode} parameter is
* negative then this parameter will be ignored.
@@ -105,8 +108,6 @@ public class FullBackup {
if (!parent.exists()) {
// in practice this will only be for the default semantic directories,
// and using the default mode for those is appropriate.
- // TODO: support the edge case of apps that have adjusted the
- // permissions on these core directories
parent.mkdirs();
}
out = new FileOutputStream(outFile);
@@ -146,6 +147,8 @@ public class FullBackup {
// Now twiddle the state to match the backup, assuming all went well
if (mode >= 0 && outFile != null) {
try {
+ // explicitly prevent emplacement of files accessible by outside apps
+ mode &= 0700;
Libcore.os.chmod(outFile.getPath(), (int)mode);
} catch (ErrnoException e) {
e.rethrowAsIOException();
diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java
index 185fb5a8de59..cb61a71b147a 100644
--- a/core/java/android/appwidget/AppWidgetHost.java
+++ b/core/java/android/appwidget/AppWidgetHost.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
import android.app.ActivityThread;
import android.content.Context;
+import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
@@ -57,6 +58,9 @@ public class AppWidgetHost {
class Callbacks extends IAppWidgetHost.Stub {
public void updateAppWidget(int appWidgetId, RemoteViews views) {
+ if (isLocalBinder() && views != null) {
+ views = views.clone();
+ }
Message msg = mHandler.obtainMessage(HANDLE_UPDATE);
msg.arg1 = appWidgetId;
msg.obj = views;
@@ -64,6 +68,9 @@ public class AppWidgetHost {
}
public void providerChanged(int appWidgetId, AppWidgetProviderInfo info) {
+ if (isLocalBinder() && info != null) {
+ info = info.clone();
+ }
Message msg = mHandler.obtainMessage(HANDLE_PROVIDER_CHANGED);
msg.arg1 = appWidgetId;
msg.obj = info;
@@ -225,6 +232,10 @@ public class AppWidgetHost {
throw new SecurityException("Disallowed call for uid " + uid);
}
+ private boolean isLocalBinder() {
+ return Process.myPid() == Binder.getCallingPid();
+ }
+
/**
* Stop listening to changes for this AppWidget.
*/
diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java
index 5ef3d3979253..50744808c882 100644
--- a/core/java/android/appwidget/AppWidgetProviderInfo.java
+++ b/core/java/android/appwidget/AppWidgetProviderInfo.java
@@ -281,6 +281,28 @@ public class AppWidgetProviderInfo implements Parcelable {
out.writeInt(this.widgetFeatures);
}
+ @Override
+ public AppWidgetProviderInfo clone() {
+ AppWidgetProviderInfo that = new AppWidgetProviderInfo();
+ that.provider = this.provider == null ? null : this.provider.clone();
+ that.minWidth = this.minWidth;
+ that.minHeight = this.minHeight;
+ that.minResizeWidth = this.minResizeHeight;
+ that.minResizeHeight = this.minResizeHeight;
+ that.updatePeriodMillis = this.updatePeriodMillis;
+ that.initialLayout = that.initialLayout;
+ that.initialKeyguardLayout = this.initialKeyguardLayout;
+ that.configure = this.configure == null ? null : this.configure.clone();
+ that.label = this.label == null ? null : this.label.substring(0);
+ that.icon = this.icon;
+ that.previewImage = this.previewImage;
+ that.autoAdvanceViewId = this.autoAdvanceViewId;
+ that.resizeMode = this.resizeMode;
+ that.widgetCategory = this.widgetCategory;
+ that.widgetFeatures = this.widgetFeatures;
+ return that;
+ }
+
public int describeContents() {
return 0;
}
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 54a2273bf076..b3ab3857374e 100755
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -37,6 +37,7 @@ import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
+import android.os.UserHandle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Pair;
@@ -7744,7 +7745,7 @@ public final class ContactsContract {
intent.setSourceBounds(target);
intent.putExtra(EXTRA_MODE, mode);
intent.putExtra(EXTRA_EXCLUDE_MIMES, excludeMimes);
- context.startActivity(intent);
+ context.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
}
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 12eb800fc3a3..750badd52ff6 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2150,7 +2150,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* Group of bits indicating that RTL properties resolution is done.
*/
static final int ALL_RTL_PROPERTIES_RESOLVED = PFLAG2_LAYOUT_DIRECTION_RESOLVED |
- PFLAG2_TEXT_DIRECTION_RESOLVED | PFLAG2_TEXT_ALIGNMENT_RESOLVED;
+ PFLAG2_TEXT_DIRECTION_RESOLVED |
+ PFLAG2_TEXT_ALIGNMENT_RESOLVED |
+ PFLAG2_PADDING_RESOLVED |
+ PFLAG2_DRAWABLE_RESOLVED;
// There are a couple of flags left in mPrivateFlags2
@@ -3299,6 +3302,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
int overScrollMode = mOverScrollMode;
boolean initializeScrollbars = false;
+ boolean leftPaddingDefined = false;
+ boolean rightPaddingDefined = false;
+ boolean startPaddingDefined = false;
+ boolean endPaddingDefined = false;
+
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
final int N = a.getIndexCount();
@@ -3312,10 +3320,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
padding = a.getDimensionPixelSize(attr, -1);
mUserPaddingLeftInitial = padding;
mUserPaddingRightInitial = padding;
+ leftPaddingDefined = true;
+ rightPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingLeft:
leftPadding = a.getDimensionPixelSize(attr, -1);
mUserPaddingLeftInitial = leftPadding;
+ leftPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingTop:
topPadding = a.getDimensionPixelSize(attr, -1);
@@ -3323,15 +3334,18 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
case com.android.internal.R.styleable.View_paddingRight:
rightPadding = a.getDimensionPixelSize(attr, -1);
mUserPaddingRightInitial = rightPadding;
+ rightPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingBottom:
bottomPadding = a.getDimensionPixelSize(attr, -1);
break;
case com.android.internal.R.styleable.View_paddingStart:
startPadding = a.getDimensionPixelSize(attr, UNDEFINED_PADDING);
+ startPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_paddingEnd:
endPadding = a.getDimensionPixelSize(attr, UNDEFINED_PADDING);
+ endPaddingDefined = true;
break;
case com.android.internal.R.styleable.View_scrollX:
x = a.getDimensionPixelOffset(attr, 0);
@@ -3629,10 +3643,24 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mUserPaddingRightInitial = padding;
}
+ // RTL compatibility mode: pre Jelly Bean MR1 case OR no RTL support case.
+ // left / right padding are used if defined (meaning here nothing to do). If they are not
+ // defined and start / end padding are defined (e.g. in Frameworks resources), then we use
+ // start / end and resolve them as left / right (layout direction is not taken into account).
+ if (isRtlCompatibilityMode()) {
+ if (!leftPaddingDefined && startPaddingDefined) {
+ leftPadding = startPadding;
+ }
+ if (!rightPaddingDefined && endPaddingDefined) {
+ rightPadding = endPadding;
+ }
+ }
+
// If the user specified the padding (either with android:padding or
// android:paddingLeft/Top/Right/Bottom), use this padding, otherwise
// use the default padding or the padding from the background drawable
- // (stored at this point in mPadding*)
+ // (stored at this point in mPadding*). Padding resolution will happen later if
+ // RTL is supported.
mUserPaddingLeftInitial = leftPadding >= 0 ? leftPadding : mPaddingLeft;
mUserPaddingRightInitial = rightPadding >= 0 ? rightPadding : mPaddingRight;
internalSetPadding(
@@ -11569,6 +11597,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
/**
+ * Return true if we are in RTL compatibility mode (either before Jelly Bean MR1 or
+ * RTL not supported)
+ */
+ private boolean isRtlCompatibilityMode() {
+ final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion;
+ return targetSdkVersion < JELLY_BEAN_MR1 || !hasRtlSupport();
+ }
+
+ /**
* @return true if RTL properties need resolution.
*/
private boolean needRtlPropertiesResolution() {
@@ -11693,26 +11730,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @hide
*/
public void resolvePadding() {
- final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion;
- if (targetSdkVersion < JELLY_BEAN_MR1 || !hasRtlSupport()) {
- // Pre Jelly Bean MR1 case (compatibility mode) OR no RTL support case:
- // left / right padding are used if defined. If they are not defined and start / end
- // padding are defined (e.g. in Frameworks resources), then we use start / end and
- // resolve them as left / right (layout direction is not taken into account).
- if (mUserPaddingLeftInitial == UNDEFINED_PADDING &&
- mUserPaddingStart != UNDEFINED_PADDING) {
- mUserPaddingLeft = mUserPaddingStart;
- }
- if (mUserPaddingRightInitial == UNDEFINED_PADDING &&
- mUserPaddingEnd != UNDEFINED_PADDING) {
- mUserPaddingRight = mUserPaddingEnd;
- }
-
- mUserPaddingBottom = (mUserPaddingBottom >= 0) ? mUserPaddingBottom : mPaddingBottom;
-
- internalSetPadding(mUserPaddingLeft, mPaddingTop, mUserPaddingRight,
- mUserPaddingBottom);
- } else {
+ if (!isRtlCompatibilityMode()) {
// Post Jelly Bean MR1 case: we need to take the resolved layout direction into account.
// If start / end padding are defined, they will be resolved (hence overriding) to
// left / right or right / left depending on the resolved layout direction.
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 6db40ba04bef..438f792f2c62 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1616,6 +1616,7 @@ public final class ViewRootImpl implements ViewParent,
mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight);
if (!hwInitialized) {
mAttachInfo.mHardwareRenderer.invalidate(mHolder.getSurface());
+ mFullRedrawNeeded = true;
}
}
}
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 62643154cbfd..7f0af09fca01 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -65,6 +65,7 @@ import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;
import android.view.inputmethod.InputMethodManager;
+import android.widget.RemoteViews.OnClickHandler;
import com.android.internal.R;
@@ -5875,6 +5876,21 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
}
/**
+ * Sets up the onClickHandler to be used by the RemoteViewsAdapter when inflating RemoteViews
+ *
+ * @param handler The OnClickHandler to use when inflating RemoteViews.
+ *
+ * @hide
+ */
+ public void setRemoteViewsOnClickHandler(OnClickHandler handler) {
+ // Ensure that we don't already have a RemoteViewsAdapter that is bound to an existing
+ // service handling the specified intent.
+ if (mRemoteAdapter != null) {
+ mRemoteAdapter.setRemoteViewsOnClickHandler(handler);
+ }
+ }
+
+ /**
* This defers a notifyDataSetChanged on the pending RemoteViewsAdapter if it has not
* connected yet.
*/
diff --git a/core/java/android/widget/AdapterViewAnimator.java b/core/java/android/widget/AdapterViewAnimator.java
index 2266cea8a92c..90e949aef934 100644
--- a/core/java/android/widget/AdapterViewAnimator.java
+++ b/core/java/android/widget/AdapterViewAnimator.java
@@ -31,6 +31,7 @@ import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
+import android.widget.RemoteViews.OnClickHandler;
import java.util.ArrayList;
import java.util.HashMap;
@@ -992,6 +993,21 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter>
}
}
+ /**
+ * Sets up the onClickHandler to be used by the RemoteViewsAdapter when inflating RemoteViews
+ *
+ * @param handler The OnClickHandler to use when inflating RemoteViews.
+ *
+ * @hide
+ */
+ public void setRemoteViewsOnClickHandler(OnClickHandler handler) {
+ // Ensure that we don't already have a RemoteViewsAdapter that is bound to an existing
+ // service handling the specified intent.
+ if (mRemoteViewsAdapter != null) {
+ mRemoteViewsAdapter.setRemoteViewsOnClickHandler(handler);
+ }
+ }
+
@Override
public void setSelection(int position) {
setDisplayedChild(position);
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 4b5dfb84d742..8d837743fb29 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -237,12 +237,11 @@ public class RemoteViews implements Parcelable, Filter {
* @hide
*/
public void mergeRemoteViews(RemoteViews newRv) {
+ if (newRv == null) return;
// We first copy the new RemoteViews, as the process of merging modifies the way the actions
// reference the bitmap cache. We don't want to modify the object as it may need to
// be merged and applied multiple times.
- Parcel p = Parcel.obtain();
- newRv.writeToParcel(p, 0);
- RemoteViews copy = new RemoteViews(p);
+ RemoteViews copy = newRv.clone();
HashMap<String, Action> map = new HashMap<String, Action>();
if (mActions == null) {
@@ -261,7 +260,7 @@ public class RemoteViews implements Parcelable, Filter {
for (int i = 0; i < count; i++) {
Action a = newActions.get(i);
String key = newActions.get(i).getUniqueKey();
- int mergeBehavior = map.get(key).mergeBehavior();
+ int mergeBehavior = newActions.get(i).mergeBehavior();
if (map.containsKey(key) && mergeBehavior == Action.MERGE_REPLACE) {
mActions.remove(map.get(key));
map.remove(key);
@@ -530,9 +529,11 @@ public class RemoteViews implements Parcelable, Filter {
if (target instanceof AbsListView) {
AbsListView v = (AbsListView) target;
v.setRemoteViewsAdapter(intent);
+ v.setRemoteViewsOnClickHandler(handler);
} else if (target instanceof AdapterViewAnimator) {
AdapterViewAnimator v = (AdapterViewAnimator) target;
v.setRemoteViewsAdapter(intent);
+ v.setRemoteViewsOnClickHandler(handler);
}
}
@@ -1579,23 +1580,12 @@ public class RemoteViews implements Parcelable, Filter {
recalculateMemoryUsage();
}
- @Override
- public RemoteViews clone() {
- RemoteViews that;
- if (!hasLandscapeAndPortraitLayouts()) {
- that = new RemoteViews(mPackage, mLayoutId);
- if (mActions != null) {
- that.mActions = (ArrayList<Action>)mActions.clone();
- }
- } else {
- RemoteViews land = mLandscape.clone();
- RemoteViews port = mPortrait.clone();
- that = new RemoteViews(land, port);
- }
- // update the memory usage stats of the cloned RemoteViews
- that.recalculateMemoryUsage();
- return that;
+ public RemoteViews clone() {
+ Parcel p = Parcel.obtain();
+ writeToParcel(p, 0);
+ p.setDataPosition(0);
+ return new RemoteViews(p);
}
public String getPackage() {
diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java
index f0109ce947ce..e4817025c347 100644
--- a/core/java/android/widget/RemoteViewsAdapter.java
+++ b/core/java/android/widget/RemoteViewsAdapter.java
@@ -36,6 +36,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
+import android.widget.RemoteViews.OnClickHandler;
import com.android.internal.widget.IRemoteViewsAdapterConnection;
import com.android.internal.widget.IRemoteViewsFactory;
@@ -68,6 +69,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
private LayoutInflater mLayoutInflater;
private RemoteViewsAdapterServiceConnection mServiceConnection;
private WeakReference<RemoteAdapterConnectionCallback> mCallback;
+ private OnClickHandler mRemoteViewsOnClickHandler;
private FixedSizeRemoteViewsCache mCache;
private int mVisibleWindowLowerBound;
private int mVisibleWindowUpperBound;
@@ -277,11 +279,11 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
* @param view the RemoteViews that was loaded. If null, the RemoteViews was not loaded
* successfully.
*/
- public void onRemoteViewsLoaded(RemoteViews view) {
+ public void onRemoteViewsLoaded(RemoteViews view, OnClickHandler handler) {
try {
// Remove all the children of this layout first
removeAllViews();
- addView(view.apply(getContext(), this));
+ addView(view.apply(getContext(), this, handler));
} catch (Exception e) {
Log.e(TAG, "Failed to apply RemoteViews.");
}
@@ -330,7 +332,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
// Notify all the references for that position of the newly loaded RemoteViews
final LinkedList<RemoteViewsFrameLayout> refs = mReferences.get(pos);
for (final RemoteViewsFrameLayout ref : refs) {
- ref.onRemoteViewsLoaded(view);
+ ref.onRemoteViewsLoaded(view, mRemoteViewsOnClickHandler);
}
refs.clear();
@@ -421,7 +423,8 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
}
private RemoteViewsFrameLayout createLoadingView(int position, View convertView,
- ViewGroup parent, Object lock, LayoutInflater layoutInflater) {
+ ViewGroup parent, Object lock, LayoutInflater layoutInflater, OnClickHandler
+ handler) {
// Create and return a new FrameLayout, and setup the references for this position
final Context context = parent.getContext();
RemoteViewsFrameLayout layout = new RemoteViewsFrameLayout(context);
@@ -433,7 +436,8 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
if (mUserLoadingView != null) {
// Try to inflate user-specified loading view
try {
- View loadingView = mUserLoadingView.apply(parent.getContext(), parent);
+ View loadingView = mUserLoadingView.apply(parent.getContext(), parent,
+ handler);
loadingView.setTagInternal(com.android.internal.R.id.rowTypeId,
new Integer(0));
layout.addView(loadingView);
@@ -448,7 +452,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
// Use the size of the first row as a guide for the size of the loading view
if (mFirstViewHeight < 0) {
try {
- View firstView = mFirstView.apply(parent.getContext(), parent);
+ View firstView = mFirstView.apply(parent.getContext(), parent, handler);
firstView.measure(
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
@@ -815,6 +819,10 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
return mDataReady;
}
+ public void setRemoteViewsOnClickHandler(OnClickHandler handler) {
+ mRemoteViewsOnClickHandler = handler;
+ }
+
public void saveRemoteViewsCache() {
final Pair<Intent.FilterComparison, Integer> key = new Pair<Intent.FilterComparison,
Integer> (new Intent.FilterComparison(mIntent), mAppWidgetId);
@@ -1102,7 +1110,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
// Reuse the convert view where possible
if (layout != null) {
if (convertViewTypeId == typeId) {
- rv.reapply(context, convertViewChild);
+ rv.reapply(context, convertViewChild, mRemoteViewsOnClickHandler);
return layout;
}
layout.removeAllViews();
@@ -1111,7 +1119,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
}
// Otherwise, create a new view to be returned
- View newView = rv.apply(context, parent);
+ View newView = rv.apply(context, parent, mRemoteViewsOnClickHandler);
newView.setTagInternal(com.android.internal.R.id.rowTypeId,
new Integer(typeId));
layout.addView(newView);
@@ -1127,7 +1135,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
final RemoteViewsMetaData metaData = mCache.getMetaData();
synchronized (metaData) {
loadingView = metaData.createLoadingView(position, convertView, parent,
- mCache, mLayoutInflater);
+ mCache, mLayoutInflater, mRemoteViewsOnClickHandler);
}
return loadingView;
} finally {
@@ -1140,7 +1148,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback
final RemoteViewsMetaData metaData = mCache.getMetaData();
synchronized (metaData) {
loadingView = metaData.createLoadingView(position, convertView, parent,
- mCache, mLayoutInflater);
+ mCache, mLayoutInflater, mRemoteViewsOnClickHandler);
}
mRequestedViews.add(position, loadingView);
diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
index 26518ebdd2a7..f8332c48783a 100644
--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
+++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
@@ -31,6 +31,7 @@ import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
import android.view.ViewRootImpl;
import com.android.internal.R;
@@ -55,23 +56,56 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener {
private long[] mVibratePattern;
private boolean mEnableHaptics = false;
+ private static final int NUMERIC = 0;
+ private static final int QWERTY = 1;
+ private static final int QWERTY_SHIFTED = 2;
+ private static final int SYMBOLS = 3;
+ private static final int SYMBOLS_SHIFTED = 4;
+
+ int mLayouts[] = new int[] {
+ R.xml.password_kbd_numeric,
+ R.xml.password_kbd_qwerty,
+ R.xml.password_kbd_qwerty_shifted,
+ R.xml.password_kbd_symbols,
+ R.xml.password_kbd_symbols_shift
+ };
+
+ private boolean mUsingScreenWidth;
+
public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView) {
- this(context, keyboardView, targetView, true);
+ this(context, keyboardView, targetView, true, null);
}
public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView,
boolean useFullScreenWidth) {
+ this(context, keyboardView, targetView, useFullScreenWidth, null);
+ }
+
+ public PasswordEntryKeyboardHelper(Context context, KeyboardView keyboardView, View targetView,
+ boolean useFullScreenWidth, int layouts[]) {
mContext = context;
mTargetView = targetView;
mKeyboardView = keyboardView;
- if (useFullScreenWidth
- || mKeyboardView.getLayoutParams().width == ViewGroup.LayoutParams.MATCH_PARENT) {
- createKeyboards();
+ mKeyboardView.setOnKeyboardActionListener(this);
+ mUsingScreenWidth = useFullScreenWidth;
+ if (layouts != null) {
+ if (layouts.length != mLayouts.length) {
+ throw new RuntimeException("Wrong number of layouts");
+ }
+ for (int i = 0; i < mLayouts.length; i++) {
+ mLayouts[i] = layouts[i];
+ }
+ }
+ createKeyboards();
+ }
+
+ public void createKeyboards() {
+ LayoutParams lp = mKeyboardView.getLayoutParams();
+ if (mUsingScreenWidth || lp.width == ViewGroup.LayoutParams.MATCH_PARENT) {
+ createKeyboardsWithDefaultWidth();
} else {
- createKeyboardsWithSpecificSize(mKeyboardView.getLayoutParams().width,
- mKeyboardView.getLayoutParams().height);
+ createKeyboardsWithSpecificSize(lp.width, lp.height);
}
- mKeyboardView.setOnKeyboardActionListener(this);
}
public void setEnableHaptics(boolean enabled) {
@@ -82,46 +116,40 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener {
return mKeyboardMode == KEYBOARD_MODE_ALPHA;
}
- private void createKeyboardsWithSpecificSize(int viewWidth, int viewHeight) {
- mNumericKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_numeric,
- viewWidth, viewHeight);
- mQwertyKeyboard = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_qwerty, R.id.mode_normal, viewWidth, viewHeight);
+ private void createKeyboardsWithSpecificSize(int width, int height) {
+ mNumericKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[NUMERIC], width, height);
+ mQwertyKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY], R.id.mode_normal,
+ width, height);
mQwertyKeyboard.enableShiftLock();
- mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_qwerty_shifted,
- R.id.mode_normal, viewWidth, viewHeight);
+ mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY_SHIFTED],
+ R.id.mode_normal, width, height);
mQwertyKeyboardShifted.enableShiftLock();
mQwertyKeyboardShifted.setShifted(true); // always shifted.
- mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_symbols,
- viewWidth, viewHeight);
+ mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS], width, height);
mSymbolsKeyboard.enableShiftLock();
- mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_symbols_shift, viewWidth, viewHeight);
+ mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS_SHIFTED],
+ width, height);
mSymbolsKeyboardShifted.enableShiftLock();
mSymbolsKeyboardShifted.setShifted(true); // always shifted
}
- private void createKeyboards() {
- mNumericKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_numeric);
- mQwertyKeyboard = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_qwerty, R.id.mode_normal);
+ private void createKeyboardsWithDefaultWidth() {
+ mNumericKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[NUMERIC]);
+ mQwertyKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY], R.id.mode_normal);
mQwertyKeyboard.enableShiftLock();
- mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_qwerty_shifted,
+ mQwertyKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[QWERTY_SHIFTED],
R.id.mode_normal);
mQwertyKeyboardShifted.enableShiftLock();
mQwertyKeyboardShifted.setShifted(true); // always shifted.
- mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, R.xml.password_kbd_symbols);
+ mSymbolsKeyboard = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS]);
mSymbolsKeyboard.enableShiftLock();
- mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext,
- R.xml.password_kbd_symbols_shift);
+ mSymbolsKeyboardShifted = new PasswordEntryKeyboard(mContext, mLayouts[SYMBOLS_SHIFTED]);
mSymbolsKeyboardShifted.enableShiftLock();
mSymbolsKeyboardShifted.setShifted(true); // always shifted
}
diff --git a/core/res/res/drawable-hdpi/ic_coins_s.png b/core/res/res/drawable-hdpi/ic_coins_s.png
new file mode 100644
index 000000000000..0ada1d008103
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_coins_s.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png
new file mode 100644
index 000000000000..d7a8cfcba3c3
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_lockscreen_alarm.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_sim.png b/core/res/res/drawable-hdpi/ic_lockscreen_sim.png
new file mode 100644
index 000000000000..7cf9e3699ceb
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png
new file mode 100644
index 000000000000..681d8be1f8c6
--- /dev/null
+++ b/core/res/res/drawable-hdpi/lockscreen_protection_pattern.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_delete.png b/core/res/res/drawable-hdpi/sym_keyboard_delete.png
index 59d78bec0633..476d90238aa6 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_delete.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_enter.png b/core/res/res/drawable-hdpi/sym_keyboard_enter.png
new file mode 100644
index 000000000000..d118af289663
--- /dev/null
+++ b/core/res/res/drawable-hdpi/sym_keyboard_enter.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png
index 0e5f1e2979d6..ad81bb3ed795 100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num0_no_plus.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num1.png b/core/res/res/drawable-hdpi/sym_keyboard_num1.png
index 0fc03efa51f5..8d2468c5e456 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num1.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num2.png b/core/res/res/drawable-hdpi/sym_keyboard_num2.png
index 283560b35343..cfa972b31d53 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num2.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num3.png b/core/res/res/drawable-hdpi/sym_keyboard_num3.png
index 9a3b3294b90d..141833ac1526 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num3.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num4.png b/core/res/res/drawable-hdpi/sym_keyboard_num4.png
index f13ff1ae91db..07df14d3c98a 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num4.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num4.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num5.png b/core/res/res/drawable-hdpi/sym_keyboard_num5.png
index c251329fa4ed..fbcc9bffbf92 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num5.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num5.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num6.png b/core/res/res/drawable-hdpi/sym_keyboard_num6.png
index 4acba4c9103d..9513b331dea8 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num6.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num6.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num7.png b/core/res/res/drawable-hdpi/sym_keyboard_num7.png
index 14931c18c53f..5ad25d8e10e5 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num7.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num7.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num8.png b/core/res/res/drawable-hdpi/sym_keyboard_num8.png
index d4973fdc900f..97d5c0e1d79f 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num8.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num8.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_num9.png b/core/res/res/drawable-hdpi/sym_keyboard_num9.png
index 49cec66f4d27..a7d6a836c7a7 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_num9.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_num9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_coins_s.png b/core/res/res/drawable-mdpi/ic_coins_s.png
new file mode 100644
index 000000000000..3b8fd8abd527
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_coins_s.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png
new file mode 100644
index 000000000000..330ade15fb78
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_lockscreen_alarm.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_sim.png b/core/res/res/drawable-mdpi/ic_lockscreen_sim.png
new file mode 100644
index 000000000000..2e259c3e17c1
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png
new file mode 100644
index 000000000000..30bcea537afd
--- /dev/null
+++ b/core/res/res/drawable-mdpi/lockscreen_protection_pattern.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_delete.png b/core/res/res/drawable-mdpi/sym_keyboard_delete.png
index 43a033ead97d..74b836a12da0 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_delete.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_enter.png b/core/res/res/drawable-mdpi/sym_keyboard_enter.png
new file mode 100644
index 000000000000..0fa53acfe868
--- /dev/null
+++ b/core/res/res/drawable-mdpi/sym_keyboard_enter.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png
index d23114daebd7..9fefaeafaab3 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num0_no_plus.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num1.png b/core/res/res/drawable-mdpi/sym_keyboard_num1.png
index aaac11b0c7f4..1f37e32ff67a 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num1.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num1.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num2.png b/core/res/res/drawable-mdpi/sym_keyboard_num2.png
index 4372eb8f08c4..f899f78083f3 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num2.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num2.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num3.png b/core/res/res/drawable-mdpi/sym_keyboard_num3.png
index 6f54c850f5ae..6a0f5ef98ad0 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num3.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num3.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num4.png b/core/res/res/drawable-mdpi/sym_keyboard_num4.png
index 3e50bb957cec..3a25bcd33545 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num4.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num4.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num5.png b/core/res/res/drawable-mdpi/sym_keyboard_num5.png
index c39ef4404fc1..064d4bf38b72 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num5.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num5.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num6.png b/core/res/res/drawable-mdpi/sym_keyboard_num6.png
index ea88ceb94ea9..61ee0a650b47 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num6.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num6.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num7.png b/core/res/res/drawable-mdpi/sym_keyboard_num7.png
index ce800ba42980..b931d7bfffee 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num7.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num7.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num8.png b/core/res/res/drawable-mdpi/sym_keyboard_num8.png
index 1a8ff94bf73a..f8d2891589e0 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num8.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num8.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_num9.png b/core/res/res/drawable-mdpi/sym_keyboard_num9.png
index 8b344c0a6861..056d06761660 100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_num9.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_num9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_coins_s.png b/core/res/res/drawable-xhdpi/ic_coins_s.png
new file mode 100644
index 000000000000..13d134e6b64e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_coins_s.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png b/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png
new file mode 100644
index 000000000000..e6cceefe6a5b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_lockscreen_alarm.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png b/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png
new file mode 100644
index 000000000000..f4de96adae30
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_lockscreen_sim.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png b/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png
new file mode 100644
index 000000000000..c13afe2b795c
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/lockscreen_protection_pattern.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_delete.png b/core/res/res/drawable-xhdpi/sym_keyboard_delete.png
index ca936d1985c6..45c14aa78c1e 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_delete.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_enter.png b/core/res/res/drawable-xhdpi/sym_keyboard_enter.png
new file mode 100644
index 000000000000..3b034fd89e31
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_enter.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png b/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png
index 95b542d11d07..cdd256d7179d 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num0_no_plus.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num1.png b/core/res/res/drawable-xhdpi/sym_keyboard_num1.png
index decd5843838c..d81d4b58f74a 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num1.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num1.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num2.png b/core/res/res/drawable-xhdpi/sym_keyboard_num2.png
index 37948fbfcd3b..8ae9fafae3f6 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num2.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num2.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num3.png b/core/res/res/drawable-xhdpi/sym_keyboard_num3.png
index 0e36ff2bf6cb..ed6e90ab727c 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num3.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num3.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num4.png b/core/res/res/drawable-xhdpi/sym_keyboard_num4.png
index f469a4a8d44b..5cff39f925d6 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num4.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num4.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num5.png b/core/res/res/drawable-xhdpi/sym_keyboard_num5.png
index 941f87736034..1c9358efd393 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num5.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num5.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num6.png b/core/res/res/drawable-xhdpi/sym_keyboard_num6.png
index eceec55334e7..9a5cb6fac58f 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num6.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num6.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num7.png b/core/res/res/drawable-xhdpi/sym_keyboard_num7.png
index 5b5d2055f22c..1bd5c6b6dc4a 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num7.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num7.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num8.png b/core/res/res/drawable-xhdpi/sym_keyboard_num8.png
index ea776ebf8d3f..9a3315258a40 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num8.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num8.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_keyboard_num9.png b/core/res/res/drawable-xhdpi/sym_keyboard_num9.png
index 29047fb01021..caa3113d170c 100644
--- a/core/res/res/drawable-xhdpi/sym_keyboard_num9.png
+++ b/core/res/res/drawable-xhdpi/sym_keyboard_num9.png
Binary files differ
diff --git a/core/res/res/layout-land/keyguard_host_view.xml b/core/res/res/layout-land/keyguard_host_view.xml
index 01e1866e4f4d..595762e6c453 100644
--- a/core/res/res/layout-land/keyguard_host_view.xml
+++ b/core/res/res/layout-land/keyguard_host_view.xml
@@ -24,13 +24,15 @@
android:id="@+id/keyguard_host_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:gravity="center_vertical"
android:orientation="horizontal">
<com.android.internal.policy.impl.keyguard.KeyguardWidgetPager
android:id="@+id/app_widget_container"
android:layout_width="0dip"
- android:layout_height="match_parent"
- android:layout_weight="1"
+ android:layout_height="230dip"
+ android:gravity="center"
+ android:layout_weight=".45"
android:visibility="gone">
<!-- TODO: Remove this once supported as a widget -->
@@ -44,7 +46,9 @@
android:id="@+id/view_flipper"
android:layout_width="0dip"
android:layout_height="match_parent"
- android:layout_weight="1"
+ android:layout_weight="0.55"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
android:gravity="center">
<!-- SelectorView is always used, so add it here. The rest are loaded dynamically -->
diff --git a/core/res/res/layout/app_permission_item_money.xml b/core/res/res/layout/app_permission_item_money.xml
index ab0d5328696e..3fa465393837 100644
--- a/core/res/res/layout/app_permission_item_money.xml
+++ b/core/res/res/layout/app_permission_item_money.xml
@@ -55,9 +55,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
- android:layout_below="@id/perm_name"
- android:scaleType="fitCenter" />
+ android:layout_alignBottom="@+id/perm_money_label"
+ android:scaleType="fitCenter"
+ android:src="@android:drawable/ic_coins_s" />
<TextView
+ android:id="@+id/perm_money_label"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="16sp"
android:textColor="@color/perms_costs_money"
@@ -65,6 +67,7 @@
android:layout_height="wrap_content"
android:layout_toEndOf="@id/perm_money_icon"
android:layout_below="@id/perm_name"
+ android:layout_marginStart="8dp"
android:text="@string/perm_costs_money" />
</RelativeLayout>
diff --git a/core/res/res/layout/keyguard_emergency_carrier_area.xml b/core/res/res/layout/keyguard_emergency_carrier_area.xml
new file mode 100644
index 000000000000..62cbac40a33e
--- /dev/null
+++ b/core/res/res/layout/keyguard_emergency_carrier_area.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- This contains emergency call button and carrier as shared by pin/pattern/password screens -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ android:layout_alignParentBottom="true">
+
+ <com.android.internal.policy.impl.keyguard.CarrierText
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textSize="@dimen/kg_status_line_font_size"
+ android:layout_marginLeft="@dimen/kg_emergency_button_shift"
+ android:textColor="?android:attr/textColorSecondary"/>
+
+ <com.android.internal.policy.impl.keyguard.EmergencyButton
+ android:id="@+id/emergency_call_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:drawableLeft="@*android:drawable/lockscreen_emergency_button"
+ android:text="@string/kg_emergency_call_label"
+ style="?android:attr/buttonBarButtonStyle"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textSize="@dimen/kg_status_line_font_size"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_marginLeft="@dimen/kg_emergency_button_shift"
+ android:drawablePadding="8dip" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/keyguard_navigation.xml b/core/res/res/layout/keyguard_navigation.xml
index a03310152119..d52bcb449b4d 100644
--- a/core/res/res/layout/keyguard_navigation.xml
+++ b/core/res/res/layout/keyguard_navigation.xml
@@ -17,39 +17,19 @@
*/
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="left">
+ android:id="@+id/keyguard_click_area"
+ android:gravity="center">
- <LinearLayout
- android:id="@+id/keyguard_click_area"
- android:layout_width="match_parent"
+ <!-- message area for security screen -->
+ <TextView
+ android:id="@+id/keyguard_message_area"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- style="?android:attr/buttonBarButtonStyle"
- android:padding="10dip"
- android:clickable="true">
-
- <ImageView
- android:src="?android:attr/homeAsUpIndicator"
- android:layout_gravity="center_vertical|start"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
-
- <!-- message area for security screen -->
- <TextView
- android:id="@+id/keyguard_message_area"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_gravity="end"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:layout_marginEnd="6dip"
- android:layout_marginStart="6dip"
- android:textAppearance="?android:attr/textAppearanceMedium"/>
-
- </LinearLayout>
+ android:layout_gravity="start"
+ android:ellipsize="marquee"
+ android:layout_marginEnd="4dip"
+ android:layout_marginStart="4dip"
+ android:textSize="22dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
diff --git a/core/res/res/layout/keyguard_password_view.xml b/core/res/res/layout/keyguard_password_view.xml
index 4ea471eae298..e8ca98bb3a33 100644
--- a/core/res/res/layout/keyguard_password_view.xml
+++ b/core/res/res/layout/keyguard_password_view.xml
@@ -24,7 +24,16 @@
android:layout_height="match_parent"
android:gravity="center_horizontal">
- <include layout="@layout/keyguard_navigation"/>
+ <LinearLayout
+ android:layout_height="0dip"
+ android:layout_width="match_parent"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <include layout="@layout/keyguard_navigation"/>
+
+ </LinearLayout>
<!-- Password entry field -->
<!-- Note: the entire container is styled to look like the edit field,
@@ -33,9 +42,9 @@
android:layout_gravity="center_vertical|fill_horizontal"
android:layout_width="match_parent"
android:orientation="horizontal"
- android:background="@*android:drawable/lockscreen_password_field_dark"
- android:layout_marginStart="16dip"
- android:layout_marginEnd="16dip">
+ android:background="#70000000"
+ android:layout_marginStart="4dip"
+ android:layout_marginEnd="4dip">
<EditText android:id="@+id/passwordEntry"
android:layout_width="0dip"
@@ -79,11 +88,6 @@
</LinearLayout>
- <Space
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1"/>
-
<!-- Numeric keyboard -->
<com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
android:layout_width="match_parent"
@@ -97,4 +101,9 @@
android:clickable="true"
/>
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/kg_secure_padding_height"
+ android:background="@drawable/lockscreen_protection_pattern" />
+
</com.android.internal.policy.impl.keyguard.KeyguardPasswordView>
diff --git a/core/res/res/layout/keyguard_pattern_view.xml b/core/res/res/layout/keyguard_pattern_view.xml
index 356bce3f41ba..311f77f11ea2 100644
--- a/core/res/res/layout/keyguard_pattern_view.xml
+++ b/core/res/res/layout/keyguard_pattern_view.xml
@@ -28,18 +28,22 @@
android:layout_height="match_parent"
android:gravity="center_horizontal">
- <include layout="@layout/keyguard_navigation"/>
+ <LinearLayout
+ android:layout_height="0dip"
+ android:layout_width="match_parent"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <include layout="@layout/keyguard_navigation"/>
- <Space android:layout_gravity="fill" />
+ <Button android:id="@+id/forgot_password_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/kg_status_line_font_size"
+ android:visibility="gone"/>
- <Button android:id="@+id/forgot_password_button"
- android:layout_gravity="right"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="@*android:dimen/keyguard_lockscreen_status_line_font_size"
- android:drawableLeft="@*android:drawable/lockscreen_forgot_password_button"
- android:drawablePadding="0dip"
- android:visibility="gone"/>
+ </LinearLayout>
<!-- We need MATCH_PARENT here only to force the size of the parent to be passed to
the pattern view for it to compute its size. This is an unusual case, caused by
@@ -52,7 +56,11 @@
android:layout_marginEnd="8dip"
android:layout_marginBottom="4dip"
android:layout_marginStart="8dip"
- android:layout_gravity="center_horizontal"
- />
+ android:layout_gravity="center_horizontal" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/kg_secure_padding_height"
+ android:background="@drawable/lockscreen_protection_pattern" />
</com.android.internal.policy.impl.keyguard.KeyguardPatternView>
diff --git a/core/res/res/layout/keyguard_selector_view.xml b/core/res/res/layout/keyguard_selector_view.xml
index bf2fc227b36c..8b2865e938b7 100644
--- a/core/res/res/layout/keyguard_selector_view.xml
+++ b/core/res/res/layout/keyguard_selector_view.xml
@@ -31,6 +31,9 @@
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="0.45"
+ android:layout_marginTop="35dip"
+ android:layout_marginLeft="33dip"
+ android:layout_marginRight="33dip"
android:visibility="gone">
<!-- TODO: Remove this when supported as a widget -->
<include layout="@layout/keyguard_status_view"/>
@@ -50,6 +53,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
+ android:gravity="@integer/kg_selector_gravity"
prvandroid:targetDrawables="@*android:array/lockscreen_targets_with_camera"
prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_with_camera"
@@ -64,34 +68,13 @@
prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"/>
- <LinearLayout
+ <include layout="@layout/keyguard_emergency_carrier_area"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
- android:layout_alignParentBottom="true">
-
- <com.android.internal.policy.impl.keyguard.CarrierText
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textSize="@*android:dimen/keyguard_lockscreen_status_line_font_size"
- android:textColor="?android:attr/textColorSecondary"
- />
-
- <com.android.internal.policy.impl.keyguard.EmergencyButton
- android:id="@+id/emergency_call_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:drawableLeft="@*android:drawable/lockscreen_emergency_button"
- android:text="@string/kg_emergency_call_label"
- style="?android:attr/buttonBarButtonStyle"
- android:drawablePadding="8dip" />
-
- </LinearLayout>
+ android:layout_alignParentBottom="true" />
</RelativeLayout>
diff --git a/core/res/res/layout/keyguard_sim_pin_view.xml b/core/res/res/layout/keyguard_sim_pin_view.xml
index 122484a9c542..57c7ac61d6ca 100644
--- a/core/res/res/layout/keyguard_sim_pin_view.xml
+++ b/core/res/res/layout/keyguard_sim_pin_view.xml
@@ -25,12 +25,21 @@
android:layout_height="match_parent"
android:gravity="center_horizontal">
- <include layout="@layout/keyguard_navigation"/>
-
- <Space
- android:layout_width="match_parent"
+ <LinearLayout
android:layout_height="0dip"
- android:layout_weight="1"/>
+ android:layout_width="match_parent"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_lockscreen_sim"/>
+
+ <include layout="@layout/keyguard_navigation"/>
+
+ </LinearLayout>
<!-- Password entry field -->
<!-- Note: the entire container is styled to look like the edit field,
@@ -39,8 +48,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:layout_marginEnd="6dip"
- android:layout_marginStart="6dip"
+ android:layout_marginEnd="4dip"
+ android:layout_marginStart="4dip"
android:gravity="center_vertical"
android:background="@android:drawable/edit_text">
@@ -74,9 +83,14 @@
android:layout_marginEnd="4dip"
android:paddingTop="4dip"
android:paddingBottom="4dip"
- android:background="#80ffffff"
+ android:background="#40000000"
android:keyBackground="@*android:drawable/btn_keyboard_key_ics"
android:clickable="true"
/>
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/kg_secure_padding_height"
+ android:background="@drawable/lockscreen_protection_pattern" />
+
</com.android.internal.policy.impl.keyguard.KeyguardSimPinView>
diff --git a/core/res/res/layout/keyguard_status_view.xml b/core/res/res/layout/keyguard_status_view.xml
index 170dd99f733c..d8adc93706be 100644
--- a/core/res/res/layout/keyguard_status_view.xml
+++ b/core/res/res/layout/keyguard_status_view.xml
@@ -35,6 +35,7 @@
android:id="@+id/clock_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_marginTop="-15.5dip"
android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
android:layout_gravity="end">
@@ -46,6 +47,7 @@
android:textSize="@dimen/kg_status_clock_font_size"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffffff"
+ android:drawablePadding="2dip"
/>
</com.android.internal.policy.impl.keyguard.ClockView>
@@ -64,19 +66,21 @@
/>
<TextView
- android:id="@+id/owner_info"
+ android:id="@+id/alarm_status"
android:layout_gravity="end"
- android:layout_marginTop="16dp"
+ android:layout_marginTop="28dp"
android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="@dimen/kg_status_line_font_size"
+ android:drawablePadding="4dip"
/>
<TextView
- android:id="@+id/alarm_status"
+ android:id="@+id/owner_info"
android:layout_gravity="end"
+ android:layout_marginTop="4dp"
android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
android:singleLine="true"
android:ellipsize="marquee"
@@ -87,6 +91,7 @@
<TextView
android:id="@+id/status1"
android:layout_gravity="end"
+ android:layout_marginTop="4dp"
android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
android:singleLine="true"
android:ellipsize="marquee"
diff --git a/core/res/res/values-land/arrays.xml b/core/res/res/values-land/arrays.xml
index 1cd9e74f369d..240b9e47696a 100644
--- a/core/res/res/values-land/arrays.xml
+++ b/core/res/res/values-land/arrays.xml
@@ -22,16 +22,16 @@
<!-- Resources for GlowPadView in LockScreen -->
<array name="lockscreen_targets_when_silent">
<item>@null</item>"
- <item>@drawable/ic_lockscreen_unlock</item>
<item>@drawable/ic_action_assist_generic</item>
<item>@drawable/ic_lockscreen_soundon</item>
+ <item>@drawable/ic_lockscreen_unlock</item>
</array>
<array name="lockscreen_target_descriptions_when_silent">
<item>@null</item>
- <item>@string/description_target_unlock</item>
<item>@string/description_target_search</item>
<item>@string/description_target_soundon</item>
+ <item>@string/description_target_unlock</item>
</array>
<array name="lockscreen_direction_descriptions">
@@ -43,30 +43,30 @@
<array name="lockscreen_targets_when_soundon">
<item>@null</item>
- <item>@drawable/ic_lockscreen_unlock</item>
<item>@drawable/ic_action_assist_generic</item>
<item>@drawable/ic_lockscreen_silent</item>
+ <item>@drawable/ic_lockscreen_unlock</item>
</array>
<array name="lockscreen_target_descriptions_when_soundon">
<item>@null</item>
- <item>@string/description_target_unlock</item>
<item>@string/description_target_search</item>
<item>@string/description_target_silent</item>
+ <item>@string/description_target_unlock</item>
</array>
<array name="lockscreen_targets_with_camera">
<item>@null</item>
- <item>@drawable/ic_lockscreen_unlock</item>
<item>@drawable/ic_action_assist_generic</item>
<item>@drawable/ic_lockscreen_camera</item>
+ <item>@drawable/ic_lockscreen_unlock</item>
</array>
<array name="lockscreen_target_descriptions_with_camera">
<item>@null</item>
- <item>@string/description_target_unlock</item>
<item>@string/description_target_search</item>
<item>@string/description_target_camera</item>
+ <item>@string/description_target_unlock</item>
</array>
</resources>
diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml
index 6f96852450f2..07f62edf5521 100644
--- a/core/res/res/values-land/dimens.xml
+++ b/core/res/res/values-land/dimens.xml
@@ -43,4 +43,11 @@
<!-- Size of clock font in LockScreen on Unsecure unlock screen. -->
<dimen name="keyguard_lockscreen_clock_font_size">70sp</dimen>
+ <!-- Shift emergency button from the left edge by this amount. Used by landscape layout on
+ phones -->
+ <dimen name="kg_emergency_button_shift">30dp</dimen>
+
+ <!-- Space reserved at the bottom of secure views (pin/pattern/password/SIM pin/SIM puk) -->
+ <dimen name="kg_secure_padding_height">0dp</dimen>
+
</resources>
diff --git a/core/res/res/values-land/integers.xml b/core/res/res/values-land/integers.xml
new file mode 100644
index 000000000000..1b8f5750e88e
--- /dev/null
+++ b/core/res/res/values-land/integers.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources>
+ <integer name="kg_security_flip_duration">150</integer>
+ <integer name="kg_security_fade_duration">150</integer>
+
+ <!-- Gravity to make KeyguardSelectorView work in multiple orientations
+ 0x13 == "left|center_vertical" -->
+ <integer name="kg_selector_gravity">0x13</integer>
+</resources> \ No newline at end of file
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index eba354b3e07a..07d0d7416239 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -90,7 +90,7 @@
<color name="perms_dangerous_grp_color">#33b5e5</color>
<color name="perms_dangerous_perm_color">#33b5e5</color>
<color name="shadow">#cc222222</color>
- <color name="perms_costs_money">#ffffb060</color>
+ <color name="perms_costs_money">#ffffbb33</color>
<!-- For search-related UIs -->
<color name="search_url_text_normal">#7fa87f</color>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 114b9c7d9145..e860dfe912a2 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -261,12 +261,28 @@
<dimen name="kg_status_clock_font_size">94dp</dimen>
<!-- Size of the date font in keyguard's status view -->
- <dimen name="kg_status_date_font_size">24dp</dimen>
+ <dimen name="kg_status_date_font_size">17dp</dimen>
<!-- Size of the generic status lines keyguard's status view -->
- <dimen name="kg_status_line_font_size">12sp</dimen>
+ <dimen name="kg_status_line_font_size">14sp</dimen>
<!-- Size of margin on the right of keyguard's status view -->
- <dimen name="kg_status_line_font_right_margin">32dp</dimen>
+ <dimen name="kg_status_line_font_right_margin">0dp</dimen>
+
+ <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard -->
+ <dimen name="kg_key_horizontal_gap">0dp</dimen>
+
+ <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard -->
+ <dimen name="kg_key_vertical_gap">0dp</dimen>
+
+ <!-- Horizontal gap between keys in PIN and SIM PIN numeric keyboards in keyguard -->
+ <dimen name="kg_pin_key_height">60dp</dimen>
+
+ <!-- Shift emergency button from the left edge by this amount. Used by landscape layout on
+ phones -->
+ <dimen name="kg_emergency_button_shift">0dp</dimen>
+
+ <!-- Space reserved at the bottom of secure views (pin/pattern/password/SIM pin/SIM puk) -->
+ <dimen name="kg_secure_padding_height">46dp</dimen>
</resources>
diff --git a/core/res/res/values/donottranslate-cldr.xml b/core/res/res/values/donottranslate-cldr.xml
index 92ea1bf71134..0587c165027e 100644
--- a/core/res/res/values/donottranslate-cldr.xml
+++ b/core/res/res/values/donottranslate-cldr.xml
@@ -57,5 +57,4 @@
<string name="full_wday_month_day_no_year">EEEE, MMMM d</string>
<string name="abbrev_wday_month_day_no_year">EEE, MMMM d</string>
<string name="abbrev_wday_month_day_year">EEE, MMM d, yyyy</string>
- <string name="keyguard_wday_day_month">EEE <b>d</b> MMM</string>
</resources>
diff --git a/core/res/res/values/integers.xml b/core/res/res/values/integers.xml
index 6d49a91e4d26..4b79d1f768ce 100644
--- a/core/res/res/values/integers.xml
+++ b/core/res/res/values/integers.xml
@@ -19,4 +19,8 @@
<resources>
<integer name="kg_security_flip_duration">75</integer>
<integer name="kg_security_fade_duration">75</integer>
+
+ <!-- Gravity to make KeyguardSelectorView work in multiple orientations
+ 0x31 == "top|center_horizontal" -->
+ <integer name="kg_selector_gravity">0x31</integer>
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 6f37d8e88849..c90f4f27028d 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3902,6 +3902,5 @@
"Raise volume above safe level?\nListening at high volume for long periods may damage your hearing."
</string>
- <string name="kg_temp_back_string"> &lt; </string> <!-- TODO: remove this -->
</resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 3936ed43c787..d85e58120ea8 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -957,6 +957,7 @@
<java-symbol type="drawable" name="ic_lockscreen_silent" />
<java-symbol type="drawable" name="ic_lockscreen_unlock" />
<java-symbol type="drawable" name="ic_action_assist_generic" />
+ <java-symbol type="drawable" name="ic_lockscreen_alarm" />
<java-symbol type="drawable" name="notification_bg" />
<java-symbol type="drawable" name="notification_bg_low" />
<java-symbol type="drawable" name="notification_template_icon_bg" />
@@ -1079,6 +1080,7 @@
<java-symbol type="xml" name="password_kbd_qwerty_shifted" />
<java-symbol type="xml" name="password_kbd_symbols" />
<java-symbol type="xml" name="password_kbd_symbols_shift" />
+ <java-symbol type="xml" name="kg_password_kbd_numeric" />
<java-symbol type="xml" name="power_profile" />
<java-symbol type="xml" name="time_zones_by_country" />
<java-symbol type="xml" name="sms_short_codes" />
@@ -1362,7 +1364,6 @@
<java-symbol type="string" name="lockscreen_too_many_failed_pin_attempts_dialog_message" />
<java-symbol type="string" name="lockscreen_unlock_label" />
<java-symbol type="string" name="status_bar_device_locked" />
- <java-symbol type="string" name="keyguard_wday_day_month" />
<java-symbol type="style" name="Animation.LockScreen" />
<java-symbol type="style" name="Theme.Dialog.RecentApplications" />
<java-symbol type="style" name="Theme.ExpandedMenu" />
diff --git a/core/res/res/xml/kg_password_kbd_numeric.xml b/core/res/res/xml/kg_password_kbd_numeric.xml
new file mode 100755
index 000000000000..93b32af2de92
--- /dev/null
+++ b/core/res/res/xml/kg_password_kbd_numeric.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 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.
+*/
+-->
+<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+ android:keyWidth="33.33%p"
+ android:horizontalGap="@dimen/kg_key_horizontal_gap"
+ android:verticalGap="@dimen/kg_key_vertical_gap"
+ android:keyHeight="@dimen/kg_pin_key_height">
+
+ <Row android:rowEdgeFlags="top">
+ <Key android:codes="49" android:keyIcon="@*android:drawable/sym_keyboard_num1"
+ android:keyEdgeFlags="left"/>
+ <Key android:codes="50" android:keyIcon="@*android:drawable/sym_keyboard_num2"/>
+ <Key android:codes="51" android:keyIcon="@*android:drawable/sym_keyboard_num3"
+ android:keyEdgeFlags="right"/>
+ </Row>
+
+ <Row>
+ <Key android:codes="52" android:keyIcon="@*android:drawable/sym_keyboard_num4"
+ android:keyEdgeFlags="left"/>
+ <Key android:codes="53" android:keyIcon="@*android:drawable/sym_keyboard_num5"/>
+ <Key android:codes="54" android:keyIcon="@*android:drawable/sym_keyboard_num6"
+ android:keyEdgeFlags="right"/>
+ </Row>
+
+ <Row>
+ <Key android:codes="55" android:keyIcon="@*android:drawable/sym_keyboard_num7"
+ android:keyEdgeFlags="left"/>
+ <Key android:codes="56" android:keyIcon="@*android:drawable/sym_keyboard_num8"/>
+ <Key android:codes="57" android:keyIcon="@*android:drawable/sym_keyboard_num9"
+ android:keyEdgeFlags="right"/>
+ </Row>
+
+ <Row android:rowEdgeFlags="bottom">
+ <Key android:codes="48" android:keyIcon="@*android:drawable/sym_keyboard_num0_no_plus"
+ android:keyWidth="33.33%p"
+ android:keyEdgeFlags="left"/>
+ <Key android:codes="10" android:keyIcon="@*android:drawable/sym_keyboard_enter"
+ android:keyWidth="66.67%p"
+ android:keyEdgeFlags="right"/>
+ </Row>
+
+</Keyboard>
diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml
index 560f8678bbaa..7593ad85ef31 100755
--- a/core/res/res/xml/password_kbd_numeric.xml
+++ b/core/res/res/xml/password_kbd_numeric.xml
@@ -51,7 +51,7 @@
<Row android:rowEdgeFlags="bottom">
<Key android:codes="48" android:keyIcon="@drawable/sym_keyboard_num0_no_plus"
android:keyWidth="66.66%p" android:keyEdgeFlags="left"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_ok"
+ <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_enter"
android:keyEdgeFlags="right"/>
</Row>
diff --git a/data/fonts/AndroidClock.ttf b/data/fonts/AndroidClock.ttf
index 3fa6d8867770..4781ccd84dad 100644
--- a/data/fonts/AndroidClock.ttf
+++ b/data/fonts/AndroidClock.ttf
Binary files differ
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index 442c4fbb60f4..e44329404190 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -68,6 +68,7 @@ void Caches::init() {
mCurrentBuffer = meshBuffer;
mCurrentIndicesBuffer = 0;
mCurrentPositionPointer = this;
+ mCurrentPositionStride = 0;
mCurrentTexCoordsPointer = this;
mTexCoordsArrayEnabled = false;
@@ -342,15 +343,18 @@ bool Caches::unbindIndicesBuffer() {
// Meshes and textures
///////////////////////////////////////////////////////////////////////////////
-void Caches::bindPositionVertexPointer(bool force, GLuint slot, GLvoid* vertices, GLsizei stride) {
- if (force || vertices != mCurrentPositionPointer) {
+void Caches::bindPositionVertexPointer(bool force, GLvoid* vertices, GLsizei stride) {
+ if (force || vertices != mCurrentPositionPointer || stride != mCurrentPositionStride) {
+ GLuint slot = currentProgram->position;
glVertexAttribPointer(slot, 2, GL_FLOAT, GL_FALSE, stride, vertices);
mCurrentPositionPointer = vertices;
+ mCurrentPositionStride = stride;
}
}
-void Caches::bindTexCoordsVertexPointer(bool force, GLuint slot, GLvoid* vertices) {
+void Caches::bindTexCoordsVertexPointer(bool force, GLvoid* vertices) {
if (force || vertices != mCurrentTexCoordsPointer) {
+ GLuint slot = currentProgram->texCoords;
glVertexAttribPointer(slot, 2, GL_FLOAT, GL_FALSE, gMeshStride, vertices);
mCurrentTexCoordsPointer = vertices;
}
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index ac012cf9247a..ad1ff6fa56be 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -173,14 +173,13 @@ public:
* Binds an attrib to the specified float vertex pointer.
* Assumes a stride of gMeshStride and a size of 2.
*/
- void bindPositionVertexPointer(bool force, GLuint slot, GLvoid* vertices,
- GLsizei stride = gMeshStride);
+ void bindPositionVertexPointer(bool force, GLvoid* vertices, GLsizei stride = gMeshStride);
/**
* Binds an attrib to the specified float vertex pointer.
* Assumes a stride of gMeshStride and a size of 2.
*/
- void bindTexCoordsVertexPointer(bool force, GLuint slot, GLvoid* vertices);
+ void bindTexCoordsVertexPointer(bool force, GLvoid* vertices);
/**
* Resets the vertex pointers.
@@ -299,6 +298,7 @@ private:
GLuint mCurrentBuffer;
GLuint mCurrentIndicesBuffer;
void* mCurrentPositionPointer;
+ GLsizei mCurrentPositionStride;
void* mCurrentTexCoordsPointer;
bool mTexCoordsArrayEnabled;
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index cab68f013edf..4e97c8862d7f 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -374,9 +374,8 @@ void FontRenderer::issueDrawCommand() {
int offset = 2;
bool force = caches.unbindMeshBuffer();
- caches.bindPositionVertexPointer(force, caches.currentProgram->position, buffer);
- caches.bindTexCoordsVertexPointer(force, caches.currentProgram->texCoords,
- buffer + offset);
+ caches.bindPositionVertexPointer(force, buffer);
+ caches.bindTexCoordsVertexPointer(force, buffer + offset);
}
glDrawElements(GL_TRIANGLES, mCurrentQuadIndex * 6, GL_UNSIGNED_SHORT, NULL);
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index e1a5132e2021..684d5e1c4138 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1255,6 +1255,15 @@ bool OpenGLRenderer::quickRejectNoScissor(float left, float top, float right, fl
return !clip.intersects(transformed);
}
+bool OpenGLRenderer::quickRejectPreStroke(float left, float top, float right, float bottom, SkPaint* paint) {
+ if (paint->getStyle() != SkPaint::kFill_Style) {
+ float outset = paint->getStrokeWidth() * 0.5f;
+ return quickReject(left - outset, top - outset, right + outset, bottom + outset);
+ } else {
+ return quickReject(left, top, right, bottom);
+ }
+}
+
bool OpenGLRenderer::quickReject(float left, float top, float right, float bottom) {
if (mSnapshot->isIgnored()) {
return true;
@@ -1497,7 +1506,7 @@ void OpenGLRenderer::setupDrawTextGammaUniforms() {
void OpenGLRenderer::setupDrawSimpleMesh() {
bool force = mCaches.bindMeshBuffer();
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, 0);
+ mCaches.bindPositionVertexPointer(force, 0);
mCaches.unbindIndicesBuffer();
}
@@ -1530,9 +1539,9 @@ void OpenGLRenderer::setupDrawMesh(GLvoid* vertices, GLvoid* texCoords, GLuint v
force = mCaches.unbindMeshBuffer();
}
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, vertices);
+ mCaches.bindPositionVertexPointer(force, vertices);
if (mCaches.currentProgram->texCoords >= 0) {
- mCaches.bindTexCoordsVertexPointer(force, mCaches.currentProgram->texCoords, texCoords);
+ mCaches.bindTexCoordsVertexPointer(force, texCoords);
}
mCaches.unbindIndicesBuffer();
@@ -1540,16 +1549,15 @@ void OpenGLRenderer::setupDrawMesh(GLvoid* vertices, GLvoid* texCoords, GLuint v
void OpenGLRenderer::setupDrawMeshIndices(GLvoid* vertices, GLvoid* texCoords) {
bool force = mCaches.unbindMeshBuffer();
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position, vertices);
+ mCaches.bindPositionVertexPointer(force, vertices);
if (mCaches.currentProgram->texCoords >= 0) {
- mCaches.bindTexCoordsVertexPointer(force, mCaches.currentProgram->texCoords, texCoords);
+ mCaches.bindTexCoordsVertexPointer(force, texCoords);
}
}
void OpenGLRenderer::setupDrawVertices(GLvoid* vertices) {
bool force = mCaches.unbindMeshBuffer();
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position,
- vertices, gVertexStride);
+ mCaches.bindPositionVertexPointer(force, vertices, gVertexStride);
mCaches.unbindIndicesBuffer();
}
@@ -1567,8 +1575,7 @@ void OpenGLRenderer::setupDrawVertices(GLvoid* vertices) {
void OpenGLRenderer::setupDrawAALine(GLvoid* vertices, GLvoid* widthCoords,
GLvoid* lengthCoords, float boundaryWidthProportion, int& widthSlot, int& lengthSlot) {
bool force = mCaches.unbindMeshBuffer();
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position,
- vertices, gAAVertexStride);
+ mCaches.bindPositionVertexPointer(force, vertices, gAAVertexStride);
mCaches.resetTexCoordsVertexPointer();
mCaches.unbindIndicesBuffer();
@@ -1926,15 +1933,23 @@ status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const
}
/**
- * This function uses a similar approach to that of AA lines in the drawLines() function.
- * We expand the rectangle by a half pixel in screen space on all sides. However, instead of using
- * a fragment shader to compute the translucency of the color from its position, we simply use a
- * varying parameter to define how far a given pixel is into the region.
+ * Renders a convex path via tessellation. For AA paths, this function uses a similar approach to
+ * that of AA lines in the drawLines() function. We expand the convex path by a half pixel in
+ * screen space in all directions. However, instead of using a fragment shader to compute the
+ * translucency of the color from its position, we simply use a varying parameter to define how far
+ * a given pixel is from the edge. For non-AA paths, the expansion and alpha varying are not used.
+ *
+ * Doesn't yet support joins, caps, or path effects.
*/
-void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::Mode mode, bool isAA) {
+void OpenGLRenderer::drawConvexPath(const SkPath& path, SkPaint* paint) {
+ int color = paint->getColor();
+ SkPaint::Style style = paint->getStyle();
+ SkXfermode::Mode mode = getXfermode(paint->getXfermode());
+ bool isAA = paint->isAntiAlias();
+
VertexBuffer vertexBuffer;
// TODO: try clipping large paths to viewport
- PathRenderer::convexPathFillVertices(path, mSnapshot->transform, vertexBuffer, isAA);
+ PathRenderer::convexPathVertices(path, paint, mSnapshot->transform, vertexBuffer);
setupDraw();
setupDrawNoTexture();
@@ -1945,15 +1960,14 @@ void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::M
setupDrawShader();
setupDrawBlending(isAA, mode);
setupDrawProgram();
- setupDrawModelViewIdentity(true);
+ setupDrawModelViewIdentity();
setupDrawColorUniforms();
setupDrawColorFilterUniforms();
setupDrawShaderIdentityUniforms();
void* vertices = vertexBuffer.getBuffer();
bool force = mCaches.unbindMeshBuffer();
- mCaches.bindPositionVertexPointer(force, mCaches.currentProgram->position,
- vertices, isAA ? gAlphaVertexStride : gVertexStride);
+ mCaches.bindPositionVertexPointer(true, vertices, isAA ? gAlphaVertexStride : gVertexStride);
mCaches.resetTexCoordsVertexPointer();
mCaches.unbindIndicesBuffer();
@@ -1967,7 +1981,7 @@ void OpenGLRenderer::drawConvexPath(const SkPath& path, int color, SkXfermode::M
glVertexAttribPointer(alphaSlot, 1, GL_FLOAT, GL_FALSE, gAlphaVertexStride, alphaCoords);
}
- SkRect bounds = path.getBounds();
+ SkRect bounds = PathRenderer::computePathBounds(path, paint);
dirtyLayer(bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom, *mSnapshot->transform);
glDrawArrays(GL_TRIANGLE_STRIP, 0, vertexBuffer.getSize());
@@ -2057,7 +2071,7 @@ status_t OpenGLRenderer::drawLines(float* points, int count, SkPaint* paint) {
setupDrawShader();
setupDrawBlending(isAA, mode);
setupDrawProgram();
- setupDrawModelViewIdentity(true);
+ setupDrawModelViewIdentity();
setupDrawColorUniforms();
setupDrawColorFilterUniforms();
setupDrawShaderIdentityUniforms();
@@ -2337,11 +2351,11 @@ status_t OpenGLRenderer::drawShape(float left, float top, const PathTexture* tex
status_t OpenGLRenderer::drawRoundRect(float left, float top, float right, float bottom,
float rx, float ry, SkPaint* p) {
- if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) {
+ if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) {
return DrawGlInfo::kStatusDone;
}
- if (p->getStyle() != SkPaint::kFill_Style) {
+ if (p->getPathEffect() != 0) {
mCaches.activeTexture(0);
const PathTexture* texture = mCaches.roundRectShapeCache.getRoundRect(
right - left, bottom - top, rx, ry, p);
@@ -2350,37 +2364,47 @@ status_t OpenGLRenderer::drawRoundRect(float left, float top, float right, float
SkPath path;
SkRect rect = SkRect::MakeLTRB(left, top, right, bottom);
+ if (p->getStyle() == SkPaint::kStrokeAndFill_Style) {
+ float outset = p->getStrokeWidth() / 2;
+ rect.outset(outset, outset);
+ rx += outset;
+ ry += outset;
+ }
path.addRoundRect(rect, rx, ry);
- drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias());
+ drawConvexPath(path, p);
return DrawGlInfo::kStatusDrew;
}
status_t OpenGLRenderer::drawCircle(float x, float y, float radius, SkPaint* p) {
- if (mSnapshot->isIgnored() || quickReject(x - radius, y - radius, x + radius, y + radius)) {
+ if (mSnapshot->isIgnored() || quickRejectPreStroke(x - radius, y - radius,
+ x + radius, y + radius, p)) {
return DrawGlInfo::kStatusDone;
}
-
- if (p->getStyle() != SkPaint::kFill_Style) {
+ if (p->getPathEffect() != 0) {
mCaches.activeTexture(0);
const PathTexture* texture = mCaches.circleShapeCache.getCircle(radius, p);
return drawShape(x - radius, y - radius, texture, p);
}
SkPath path;
- path.addCircle(x, y, radius);
- drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias());
+ if (p->getStyle() == SkPaint::kStrokeAndFill_Style) {
+ path.addCircle(x, y, radius + p->getStrokeWidth() / 2);
+ } else {
+ path.addCircle(x, y, radius);
+ }
+ drawConvexPath(path, p);
return DrawGlInfo::kStatusDrew;
}
status_t OpenGLRenderer::drawOval(float left, float top, float right, float bottom,
SkPaint* p) {
- if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) {
+ if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) {
return DrawGlInfo::kStatusDone;
}
- if (p->getStyle() != SkPaint::kFill_Style) {
+ if (p->getPathEffect() != 0) {
mCaches.activeTexture(0);
const PathTexture* texture = mCaches.ovalShapeCache.getOval(right - left, bottom - top, p);
return drawShape(left, top, texture, p);
@@ -2388,8 +2412,11 @@ status_t OpenGLRenderer::drawOval(float left, float top, float right, float bott
SkPath path;
SkRect rect = SkRect::MakeLTRB(left, top, right, bottom);
+ if (p->getStyle() == SkPaint::kStrokeAndFill_Style) {
+ rect.outset(p->getStrokeWidth() / 2, p->getStrokeWidth() / 2);
+ }
path.addOval(rect);
- drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), p->isAntiAlias());
+ drawConvexPath(path, p);
return DrawGlInfo::kStatusDrew;
}
@@ -2409,10 +2436,11 @@ status_t OpenGLRenderer::drawArc(float left, float top, float right, float botto
}
status_t OpenGLRenderer::drawRect(float left, float top, float right, float bottom, SkPaint* p) {
- if (mSnapshot->isIgnored() || quickReject(left, top, right, bottom)) {
+ if (mSnapshot->isIgnored() || quickRejectPreStroke(left, top, right, bottom, p)) {
return DrawGlInfo::kStatusDone;
}
+ // only fill style is supported by drawConvexPath, since others have to handle joins
if (p->getStyle() != SkPaint::kFill_Style) {
mCaches.activeTexture(0);
const PathTexture* texture = mCaches.rectShapeCache.getRect(right - left, bottom - top, p);
@@ -2422,7 +2450,7 @@ status_t OpenGLRenderer::drawRect(float left, float top, float right, float bott
if (p->isAntiAlias() && !mSnapshot->transform->isSimple()) {
SkPath path;
path.addRect(left, top, right, bottom);
- drawConvexPath(path, p->getColor(), getXfermode(p->getXfermode()), true);
+ drawConvexPath(path, p);
} else {
drawColorRect(left, top, right, bottom, p->getColor(), getXfermode(p->getXfermode()));
}
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index f325deb3c5f9..a40d69ad2c91 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -407,6 +407,11 @@ private:
Rect& transformed, Rect& clip);
/**
+ * Performs a quick reject but adjust the bounds to account for stroke width if necessary
+ */
+ bool quickRejectPreStroke(float left, float top, float right, float bottom, SkPaint* paint);
+
+ /**
* Creates a new layer stored in the specified snapshot.
*
* @param snapshot The snapshot associated with the new layer
@@ -513,11 +518,9 @@ private:
* Renders the convex hull defined by the specified path as a strip of polygons.
*
* @param path The hull of the path to draw
- * @param color The color of the rect
- * @param mode The blending mode to draw the path
- * @param isAA True if the drawing should be anti-aliased
+ * @param paint The paint to render with
*/
- void drawConvexPath(const SkPath& path, int color, SkXfermode::Mode mode, bool isAA);
+ void drawConvexPath(const SkPath& path, SkPaint* paint);
/**
* Draws a textured rectangle with the specified texture. The specified coordinates
diff --git a/libs/hwui/PathRenderer.cpp b/libs/hwui/PathRenderer.cpp
index d222009b6742..4a66c62d92d8 100644
--- a/libs/hwui/PathRenderer.cpp
+++ b/libs/hwui/PathRenderer.cpp
@@ -21,6 +21,7 @@
#define VERTEX_DEBUG 0
#include <SkPath.h>
+#include <SkPaint.h>
#include <stdlib.h>
#include <stdint.h>
@@ -39,10 +40,16 @@ namespace uirenderer {
#define THRESHOLD 0.5f
-void PathRenderer::computeInverseScales(const mat4 *transform,
- float &inverseScaleX, float& inverseScaleY) {
- inverseScaleX = 1.0f;
- inverseScaleY = 1.0f;
+SkRect PathRenderer::computePathBounds(const SkPath& path, const SkPaint* paint) {
+ SkRect bounds = path.getBounds();
+ if (paint->getStyle() != SkPaint::kFill_Style) {
+ float outset = paint->getStrokeWidth() * 0.5f;
+ bounds.outset(outset, outset);
+ }
+ return bounds;
+}
+
+void computeInverseScales(const mat4 *transform, float &inverseScaleX, float& inverseScaleY) {
if (CC_UNLIKELY(!transform->isPureTranslate())) {
float m00 = transform->data[Matrix4::kScaleX];
float m01 = transform->data[Matrix4::kSkewY];
@@ -50,127 +57,300 @@ void PathRenderer::computeInverseScales(const mat4 *transform,
float m11 = transform->data[Matrix4::kScaleY];
float scaleX = sqrt(m00 * m00 + m01 * m01);
float scaleY = sqrt(m10 * m10 + m11 * m11);
- inverseScaleX = (scaleX != 0) ? (inverseScaleX / scaleX) : 0;
- inverseScaleY = (scaleY != 0) ? (inverseScaleY / scaleY) : 0;
+ inverseScaleX = (scaleX != 0) ? (1.0f / scaleX) : 1.0f;
+ inverseScaleY = (scaleY != 0) ? (1.0f / scaleY) : 1.0f;
+ } else {
+ inverseScaleX = 1.0f;
+ inverseScaleY = 1.0f;
}
}
-void PathRenderer::convexPathFillVertices(const SkPath &path, const mat4 *transform,
- VertexBuffer &vertexBuffer, bool isAA) {
- ATRACE_CALL();
- float inverseScaleX;
- float inverseScaleY;
- computeInverseScales(transform, inverseScaleX, inverseScaleY);
+inline void copyVertex(Vertex* destPtr, const Vertex* srcPtr) {
+ Vertex::set(destPtr, srcPtr->position[0], srcPtr->position[1]);
+}
- Vector<Vertex> tempVertices;
- float thresholdx = THRESHOLD * inverseScaleX;
- float thresholdy = THRESHOLD * inverseScaleY;
- convexPathVertices(path,
- thresholdx * thresholdx,
- thresholdy * thresholdy,
- tempVertices);
+inline void copyAlphaVertex(AlphaVertex* destPtr, const AlphaVertex* srcPtr) {
+ AlphaVertex::set(destPtr, srcPtr->position[0], srcPtr->position[1], srcPtr->alpha);
+}
-#if VERTEX_DEBUG
- for (unsigned int i = 0; i < tempVertices.size(); i++) {
- ALOGD("orig path: point at %f %f",
- tempVertices[i].position[0],
- tempVertices[i].position[1]);
+/**
+ * Produces a pseudo-normal for a vertex, given the normals of the two incoming lines. If the offset
+ * from each vertex in a perimeter is calculated, the resultant lines connecting the offset vertices
+ * will be offset by 1.0
+ *
+ * Note that we can't add and normalize the two vectors, that would result in a rectangle having an
+ * offset of (sqrt(2)/2, sqrt(2)/2) at each corner, instead of (1, 1)
+ */
+inline vec2 totalOffsetFromNormals(const vec2& normalA, const vec2& normalB) {
+ return (normalA + normalB) / (1 + fabs(normalA.dot(normalB)));
+}
+
+void getFillVerticesFromPerimeter(const Vector<Vertex>& perimeter, VertexBuffer& vertexBuffer) {
+ Vertex* buffer = vertexBuffer.alloc<Vertex>(perimeter.size());
+
+ int currentIndex = 0;
+ // zig zag between all previous points on the inside of the hull to create a
+ // triangle strip that fills the hull
+ int srcAindex = 0;
+ int srcBindex = perimeter.size() - 1;
+ while (srcAindex <= srcBindex) {
+ copyVertex(&buffer[currentIndex++], &perimeter[srcAindex]);
+ if (srcAindex == srcBindex) break;
+ copyVertex(&buffer[currentIndex++], &perimeter[srcBindex]);
+ srcAindex++;
+ srcBindex--;
}
-#endif
+}
+
+void getStrokeVerticesFromPerimeter(const Vector<Vertex>& perimeter, float halfStrokeWidth,
+ VertexBuffer& vertexBuffer, float inverseScaleX, float inverseScaleY) {
+ Vertex* buffer = vertexBuffer.alloc<Vertex>(perimeter.size() * 2 + 2);
+
int currentIndex = 0;
- if (!isAA) {
- Vertex* buffer = vertexBuffer.alloc<Vertex>(tempVertices.size());
-
- // zig zag between all previous points on the inside of the hull to create a
- // triangle strip that fills the hull
- int srcAindex = 0;
- int srcBindex = tempVertices.size() - 1;
- while (srcAindex <= srcBindex) {
- Vertex::set(&buffer[currentIndex++],
- tempVertices.editArray()[srcAindex].position[0],
- tempVertices.editArray()[srcAindex].position[1]);
- if (srcAindex == srcBindex) break;
- Vertex::set(&buffer[currentIndex++],
- tempVertices.editArray()[srcBindex].position[0],
- tempVertices.editArray()[srcBindex].position[1]);
- srcAindex++;
- srcBindex--;
+ const Vertex* last = &(perimeter[perimeter.size() - 1]);
+ const Vertex* current = &(perimeter[0]);
+ vec2 lastNormal(current->position[1] - last->position[1],
+ last->position[0] - current->position[0]);
+ lastNormal.normalize();
+ for (unsigned int i = 0; i < perimeter.size(); i++) {
+ const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]);
+ vec2 nextNormal(next->position[1] - current->position[1],
+ current->position[0] - next->position[0]);
+ nextNormal.normalize();
+
+ vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal);
+ if (halfStrokeWidth == 0.0f) {
+ // hairline - compensate for scale
+ totalOffset.x *= 0.5f * inverseScaleX;
+ totalOffset.y *= 0.5f * inverseScaleY;
+ } else {
+ totalOffset *= halfStrokeWidth;
}
- return;
+
+ Vertex::set(&buffer[currentIndex++],
+ current->position[0] + totalOffset.x,
+ current->position[1] + totalOffset.y);
+
+ Vertex::set(&buffer[currentIndex++],
+ current->position[0] - totalOffset.x,
+ current->position[1] - totalOffset.y);
+
+ last = current;
+ current = next;
+ lastNormal = nextNormal;
}
- AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(tempVertices.size() * 3 + 2);
- // generate alpha points - fill Alpha vertex gaps in between each point with
- // alpha 0 vertex, offset by a scaled normal.
- Vertex* last = &(tempVertices.editArray()[tempVertices.size()-1]);
+ // wrap around to beginning
+ copyVertex(&buffer[currentIndex++], &buffer[0]);
+ copyVertex(&buffer[currentIndex++], &buffer[1]);
+}
- for (unsigned int i = 0; i<tempVertices.size(); i++) {
- Vertex* current = &(tempVertices.editArray()[i]);
- Vertex* next = &(tempVertices.editArray()[i + 1 >= tempVertices.size() ? 0 : i + 1]);
+void getFillVerticesFromPerimeterAA(const Vector<Vertex>& perimeter, VertexBuffer& vertexBuffer,
+ float inverseScaleX, float inverseScaleY) {
+ AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(perimeter.size() * 3 + 2);
- vec2 lastNormal(current->position[1] - last->position[1],
- last->position[0] - current->position[0]);
- lastNormal.normalize();
+ // generate alpha points - fill Alpha vertex gaps in between each point with
+ // alpha 0 vertex, offset by a scaled normal.
+ int currentIndex = 0;
+ const Vertex* last = &(perimeter[perimeter.size() - 1]);
+ const Vertex* current = &(perimeter[0]);
+ vec2 lastNormal(current->position[1] - last->position[1],
+ last->position[0] - current->position[0]);
+ lastNormal.normalize();
+ for (unsigned int i = 0; i < perimeter.size(); i++) {
+ const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]);
vec2 nextNormal(next->position[1] - current->position[1],
- current->position[0] - next->position[0]);
+ current->position[0] - next->position[0]);
nextNormal.normalize();
- // AA point offset from original point is that point's normal, such that
- // each side is offset by .5 pixels
- vec2 totalOffset = (lastNormal + nextNormal) / (2 * (1 + lastNormal.dot(nextNormal)));
- totalOffset.x *= inverseScaleX;
- totalOffset.y *= inverseScaleY;
+ // AA point offset from original point is that point's normal, such that each side is offset
+ // by .5 pixels
+ vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal);
+ totalOffset.x *= 0.5f * inverseScaleX;
+ totalOffset.y *= 0.5f * inverseScaleY;
AlphaVertex::set(&buffer[currentIndex++],
- current->position[0] + totalOffset.x,
- current->position[1] + totalOffset.y,
- 0.0f);
+ current->position[0] + totalOffset.x,
+ current->position[1] + totalOffset.y,
+ 0.0f);
AlphaVertex::set(&buffer[currentIndex++],
- current->position[0] - totalOffset.x,
- current->position[1] - totalOffset.y,
- 1.0f);
+ current->position[0] - totalOffset.x,
+ current->position[1] - totalOffset.y,
+ 1.0f);
+
last = current;
+ current = next;
+ lastNormal = nextNormal;
}
// wrap around to beginning
- AlphaVertex::set(&buffer[currentIndex++],
- buffer[0].position[0],
- buffer[0].position[1], 0.0f);
- AlphaVertex::set(&buffer[currentIndex++],
- buffer[1].position[0],
- buffer[1].position[1], 1.0f);
+ copyAlphaVertex(&buffer[currentIndex++], &buffer[0]);
+ copyAlphaVertex(&buffer[currentIndex++], &buffer[1]);
// zig zag between all previous points on the inside of the hull to create a
// triangle strip that fills the hull, repeating the first inner point to
// create degenerate tris to start inside path
int srcAindex = 0;
- int srcBindex = tempVertices.size() - 1;
+ int srcBindex = perimeter.size() - 1;
while (srcAindex <= srcBindex) {
- AlphaVertex::set(&buffer[currentIndex++],
- buffer[srcAindex * 2 + 1].position[0],
- buffer[srcAindex * 2 + 1].position[1],
- 1.0f);
+ copyAlphaVertex(&buffer[currentIndex++], &buffer[srcAindex * 2 + 1]);
if (srcAindex == srcBindex) break;
- AlphaVertex::set(&buffer[currentIndex++],
- buffer[srcBindex * 2 + 1].position[0],
- buffer[srcBindex * 2 + 1].position[1],
- 1.0f);
+ copyAlphaVertex(&buffer[currentIndex++], &buffer[srcBindex * 2 + 1]);
srcAindex++;
srcBindex--;
}
#if VERTEX_DEBUG
- for (unsigned int i = 0; i < vertexBuffer.mSize; i++) {
- ALOGD("point at %f %f",
- buffer[i].position[0],
- buffer[i].position[1]);
+ for (unsigned int i = 0; i < vertexBuffer.getSize(); i++) {
+ ALOGD("point at %f %f", buffer[i].position[0], buffer[i].position[1]);
}
#endif
}
+void getStrokeVerticesFromPerimeterAA(const Vector<Vertex>& perimeter, float halfStrokeWidth,
+ VertexBuffer& vertexBuffer, float inverseScaleX, float inverseScaleY) {
+ AlphaVertex* buffer = vertexBuffer.alloc<AlphaVertex>(6 * perimeter.size() + 8);
+
+ // avoid lines smaller than hairline since they break triangle based sampling. instead reducing
+ // alpha value (TODO: support different X/Y scale)
+ float maxAlpha = 1.0f;
+ if (halfStrokeWidth != 0 && inverseScaleX == inverseScaleY &&
+ halfStrokeWidth * inverseScaleX < 1.0f) {
+ maxAlpha *= (2 * halfStrokeWidth) / inverseScaleX;
+ halfStrokeWidth = 0.0f;
+ }
+
+ int offset = 2 * perimeter.size() + 3;
+ int currentAAOuterIndex = 0;
+ int currentStrokeIndex = offset;
+ int currentAAInnerIndex = offset * 2;
+
+ const Vertex* last = &(perimeter[perimeter.size() - 1]);
+ const Vertex* current = &(perimeter[0]);
+ vec2 lastNormal(current->position[1] - last->position[1],
+ last->position[0] - current->position[0]);
+ lastNormal.normalize();
+ for (unsigned int i = 0; i < perimeter.size(); i++) {
+ const Vertex* next = &(perimeter[i + 1 >= perimeter.size() ? 0 : i + 1]);
+ vec2 nextNormal(next->position[1] - current->position[1],
+ current->position[0] - next->position[0]);
+ nextNormal.normalize();
+
+ vec2 totalOffset = totalOffsetFromNormals(lastNormal, nextNormal);
+ vec2 AAOffset = totalOffset;
+ AAOffset.x *= 0.5f * inverseScaleX;
+ AAOffset.y *= 0.5f * inverseScaleY;
+
+ vec2 innerOffset = totalOffset;
+ if (halfStrokeWidth == 0.0f) {
+ // hairline! - compensate for scale
+ innerOffset.x *= 0.5f * inverseScaleX;
+ innerOffset.y *= 0.5f * inverseScaleY;
+ } else {
+ innerOffset *= halfStrokeWidth;
+ }
+ vec2 outerOffset = innerOffset + AAOffset;
+ innerOffset -= AAOffset;
+
+ AlphaVertex::set(&buffer[currentAAOuterIndex++],
+ current->position[0] + outerOffset.x,
+ current->position[1] + outerOffset.y,
+ 0.0f);
+ AlphaVertex::set(&buffer[currentAAOuterIndex++],
+ current->position[0] + innerOffset.x,
+ current->position[1] + innerOffset.y,
+ maxAlpha);
+
+ AlphaVertex::set(&buffer[currentStrokeIndex++],
+ current->position[0] + innerOffset.x,
+ current->position[1] + innerOffset.y,
+ maxAlpha);
+ AlphaVertex::set(&buffer[currentStrokeIndex++],
+ current->position[0] - innerOffset.x,
+ current->position[1] - innerOffset.y,
+ maxAlpha);
+
+ AlphaVertex::set(&buffer[currentAAInnerIndex++],
+ current->position[0] - innerOffset.x,
+ current->position[1] - innerOffset.y,
+ maxAlpha);
+ AlphaVertex::set(&buffer[currentAAInnerIndex++],
+ current->position[0] - outerOffset.x,
+ current->position[1] - outerOffset.y,
+ 0.0f);
+
+ last = current;
+ current = next;
+ lastNormal = nextNormal;
+ }
+
+ // wrap each strip around to beginning, creating degenerate tris to bridge strips
+ copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[0]);
+ copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[1]);
+ copyAlphaVertex(&buffer[currentAAOuterIndex++], &buffer[1]);
+
+ copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset]);
+ copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset + 1]);
+ copyAlphaVertex(&buffer[currentStrokeIndex++], &buffer[offset + 1]);
-void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, float thresholdy,
- Vector<Vertex> &outputVertices) {
+ copyAlphaVertex(&buffer[currentAAInnerIndex++], &buffer[2 * offset]);
+ copyAlphaVertex(&buffer[currentAAInnerIndex++], &buffer[2 * offset + 1]);
+ // don't need to create last degenerate tri
+}
+
+void PathRenderer::convexPathVertices(const SkPath &path, const SkPaint* paint,
+ const mat4 *transform, VertexBuffer& vertexBuffer) {
+ ATRACE_CALL();
+
+ SkPaint::Style style = paint->getStyle();
+ bool isAA = paint->isAntiAlias();
+
+ float inverseScaleX, inverseScaleY;
+ computeInverseScales(transform, inverseScaleX, inverseScaleY);
+
+ Vector<Vertex> tempVertices;
+ float threshInvScaleX = inverseScaleX;
+ float threshInvScaleY = inverseScaleY;
+ if (style == SkPaint::kStroke_Style) {
+ // alter the bezier recursion threshold values we calculate in order to compensate for
+ // expansion done after the path vertices are found
+ SkRect bounds = path.getBounds();
+ if (!bounds.isEmpty()) {
+ threshInvScaleX *= bounds.width() / (bounds.width() + paint->getStrokeWidth());
+ threshInvScaleY *= bounds.height() / (bounds.height() + paint->getStrokeWidth());
+ }
+ }
+ convexPathPerimeterVertices(path, threshInvScaleX * threshInvScaleX,
+ threshInvScaleY * threshInvScaleY, tempVertices);
+
+#if VERTEX_DEBUG
+ for (unsigned int i = 0; i < tempVertices.size(); i++) {
+ ALOGD("orig path: point at %f %f", tempVertices[i].position[0], tempVertices[i].position[1]);
+ }
+#endif
+
+ if (style == SkPaint::kStroke_Style) {
+ float halfStrokeWidth = paint->getStrokeWidth() * 0.5f;
+ if (!isAA) {
+ getStrokeVerticesFromPerimeter(tempVertices, halfStrokeWidth, vertexBuffer,
+ inverseScaleX, inverseScaleY);
+ } else {
+ getStrokeVerticesFromPerimeterAA(tempVertices, halfStrokeWidth, vertexBuffer,
+ inverseScaleX, inverseScaleY);
+ }
+ } else {
+ // For kStrokeAndFill style, the path should be adjusted externally, as it will be treated as a fill here.
+ if (!isAA) {
+ getFillVerticesFromPerimeter(tempVertices, vertexBuffer);
+ } else {
+ getFillVerticesFromPerimeterAA(tempVertices, vertexBuffer, inverseScaleX, inverseScaleY);
+ }
+ }
+}
+
+
+void PathRenderer::convexPathPerimeterVertices(const SkPath& path,
+ float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) {
ATRACE_CALL();
SkPath::Iter iter(path, true);
@@ -189,31 +369,30 @@ void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, floa
break;
case SkPath::kLine_Verb:
ALOGV("kLine_Verb %f %f -> %f %f",
- pts[0].x(), pts[0].y(),
- pts[1].x(), pts[1].y());
+ pts[0].x(), pts[0].y(),
+ pts[1].x(), pts[1].y());
// TODO: make this not yuck
outputVertices.push();
- newVertex = &(outputVertices.editArray()[outputVertices.size()-1]);
+ newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]);
Vertex::set(newVertex, pts[1].x(), pts[1].y());
break;
case SkPath::kQuad_Verb:
ALOGV("kQuad_Verb");
recursiveQuadraticBezierVertices(
- pts[0].x(), pts[0].y(),
- pts[2].x(), pts[2].y(),
- pts[1].x(), pts[1].y(),
- thresholdx, thresholdy,
- outputVertices);
+ pts[0].x(), pts[0].y(),
+ pts[2].x(), pts[2].y(),
+ pts[1].x(), pts[1].y(),
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
break;
case SkPath::kCubic_Verb:
ALOGV("kCubic_Verb");
recursiveCubicBezierVertices(
- pts[0].x(), pts[0].y(),
- pts[1].x(), pts[1].y(),
- pts[3].x(), pts[3].y(),
- pts[2].x(), pts[2].y(),
- thresholdx, thresholdy, outputVertices);
+ pts[0].x(), pts[0].y(),
+ pts[1].x(), pts[1].y(),
+ pts[3].x(), pts[3].y(),
+ pts[2].x(), pts[2].y(),
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
break;
default:
break;
@@ -224,18 +403,20 @@ void PathRenderer::convexPathVertices(const SkPath &path, float thresholdx, floa
void PathRenderer::recursiveCubicBezierVertices(
float p1x, float p1y, float c1x, float c1y,
float p2x, float p2y, float c2x, float c2y,
- float thresholdx, float thresholdy, Vector<Vertex> &outputVertices) {
+ float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) {
float dx = p2x - p1x;
float dy = p2y - p1y;
float d1 = fabs((c1x - p2x) * dy - (c1y - p2y) * dx);
float d2 = fabs((c2x - p2x) * dy - (c2y - p2y) * dx);
float d = d1 + d2;
- if (d * d < (thresholdx * (dx * dx) + thresholdy * (dy * dy))) {
+ // multiplying by sqrInvScaleY/X equivalent to multiplying in dimensional scale factors
+
+ if (d * d < THRESHOLD * THRESHOLD * (dx * dx * sqrInvScaleY + dy * dy * sqrInvScaleX)) {
// below thresh, draw line by adding endpoint
// TODO: make this not yuck
outputVertices.push();
- Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size()-1]);
+ Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]);
Vertex::set(newVertex, p2x, p2y);
} else {
float p1c1x = (p1x + c1x) * 0.5f;
@@ -258,13 +439,11 @@ void PathRenderer::recursiveCubicBezierVertices(
recursiveCubicBezierVertices(
p1x, p1y, p1c1x, p1c1y,
mx, my, p1c1c2x, p1c1c2y,
- thresholdx, thresholdy,
- outputVertices);
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
recursiveCubicBezierVertices(
mx, my, p2c1c2x, p2c1c2y,
p2x, p2y, p2c2x, p2c2y,
- thresholdx, thresholdy,
- outputVertices);
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
}
}
@@ -272,16 +451,16 @@ void PathRenderer::recursiveQuadraticBezierVertices(
float ax, float ay,
float bx, float by,
float cx, float cy,
- float thresholdx, float thresholdy, Vector<Vertex> &outputVertices) {
+ float sqrInvScaleX, float sqrInvScaleY, Vector<Vertex>& outputVertices) {
float dx = bx - ax;
float dy = by - ay;
float d = (cx - bx) * dy - (cy - by) * dx;
- if (d * d < (thresholdx * (dx * dx) + thresholdy * (dy * dy))) {
+ if (d * d < THRESHOLD * THRESHOLD * (dx * dx * sqrInvScaleY + dy * dy * sqrInvScaleX)) {
// below thresh, draw line by adding endpoint
// TODO: make this not yuck
outputVertices.push();
- Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size()-1]);
+ Vertex* newVertex = &(outputVertices.editArray()[outputVertices.size() - 1]);
Vertex::set(newVertex, bx, by);
} else {
float acx = (ax + cx) * 0.5f;
@@ -294,9 +473,9 @@ void PathRenderer::recursiveQuadraticBezierVertices(
float my = (acy + bcy) * 0.5f;
recursiveQuadraticBezierVertices(ax, ay, mx, my, acx, acy,
- thresholdx, thresholdy, outputVertices);
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
recursiveQuadraticBezierVertices(mx, my, bx, by, bcx, bcy,
- thresholdx, thresholdy, outputVertices);
+ sqrInvScaleX, sqrInvScaleY, outputVertices);
}
}
diff --git a/libs/hwui/PathRenderer.h b/libs/hwui/PathRenderer.h
index 1354f161c74c..28a5b9031edb 100644
--- a/libs/hwui/PathRenderer.h
+++ b/libs/hwui/PathRenderer.h
@@ -35,15 +35,13 @@ public:
mCleanupMethod(0)
{}
- ~VertexBuffer()
- {
+ ~VertexBuffer() {
if (mCleanupMethod)
mCleanupMethod(mBuffer);
}
template <class TYPE>
- TYPE* alloc(int size)
- {
+ TYPE* alloc(int size) {
mSize = size;
mBuffer = (void*)new TYPE[size];
mCleanupMethod = &(cleanup<TYPE>);
@@ -56,8 +54,7 @@ public:
private:
template <class TYPE>
- static void cleanup(void* buffer)
- {
+ static void cleanup(void* buffer) {
delete[] (TYPE*)buffer;
}
@@ -68,17 +65,15 @@ private:
class PathRenderer {
public:
- static void computeInverseScales(
- const mat4 *transform, float &inverseScaleX, float& inverseScaleY);
+ static SkRect computePathBounds(const SkPath& path, const SkPaint* paint);
- static void convexPathFillVertices(
- const SkPath &path, const mat4 *transform,
- VertexBuffer &vertexBuffer, bool isAA);
+ static void convexPathVertices(const SkPath& path, const SkPaint* paint,
+ const mat4 *transform, VertexBuffer& vertexBuffer);
private:
- static void convexPathVertices(
+ static void convexPathPerimeterVertices(
const SkPath &path,
- float thresholdx, float thresholdy,
+ float sqrInvScaleX, float sqrInvScaleY,
Vector<Vertex> &outputVertices);
/*
@@ -86,23 +81,23 @@ private:
control c
*/
static void recursiveQuadraticBezierVertices(
- float ax, float ay,
- float bx, float by,
- float cx, float cy,
- float thresholdx, float thresholdy,
- Vector<Vertex> &outputVertices);
+ float ax, float ay,
+ float bx, float by,
+ float cx, float cy,
+ float sqrInvScaleX, float sqrInvScaleY,
+ Vector<Vertex> &outputVertices);
/*
endpoints p1, p2
control c1, c2
*/
static void recursiveCubicBezierVertices(
- float p1x, float p1y,
- float c1x, float c1y,
- float p2x, float p2y,
- float c2x, float c2y,
- float thresholdx, float thresholdy,
- Vector<Vertex> &outputVertices);
+ float p1x, float p1y,
+ float c1x, float c1y,
+ float p2x, float p2y,
+ float c2x, float c2y,
+ float sqrInvScaleX, float sqrInvScaleY,
+ Vector<Vertex> &outputVertices);
};
}; // namespace uirenderer
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png
index d5650a76bfe9..7c6ca7534d81 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png
index 7d6fed5bbd14..ff0ba07cde09 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png
index 19e4e409e1be..61eff946df08 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png
index ec30791f39c9..b480a80bc638 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png
index 65a873dd5b3d..b4d9175a7a76 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png
index 7ac301548e2b..598d9676cb6b 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png
Binary files differ
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
index 6ae10d5db892..ac87496c12f0 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_airplane_mode_label"
/> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
index 565055c594e1..2f3a9c6fe722 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_bluetooth_label"
/> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
index ac872e63e2f4..5b3ce1f6f862 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
@@ -22,5 +22,4 @@
android:layout_gravity="center"
android:gravity="center"
android:drawableTop="@drawable/ic_qs_brightness_auto_off"
- android:text="@string/quick_settings_brightness_label"
/> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
index 4dbf6a016356..6aecaea1380d 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_rotation_unlocked_label"
/> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
index 7026ebc6e90a..d155935b09cb 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
@@ -16,10 +16,10 @@
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/TextAppearance.QuickSettings.TileView"
+ android:id="@+id/settings_tileview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:drawableTop="@drawable/ic_qs_settings"
- android:text="@string/quick_settings_settings_label"
/> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_user.xml b/packages/SystemUI/res/layout/quick_settings_tile_user.xml
index 08e8e20fdc76..1732f6d289dc 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_user.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_user.xml
@@ -18,6 +18,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
+ android:id="@+id/user_imageview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_qs_default_user"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 122fd601b2ae..1c317cab5ef8 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi een strepie."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi twee strepies."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi drie strepies."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-sein vol."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi sein vol."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX nie."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX een strepie."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX twee strepies."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Instellings"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Tyd"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ek"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk nie"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi af"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skerm"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Geen Wi-Fi-skerm-verbinding nie"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helderheid"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 2e220ecb7b55..d85e2b8f9140 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi አንድ አሞሌ::"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi ሁለት አሞሌዎች::"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi ሶስት አሞሌዎች::"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"የWiFi አመልካች ሙሉ ነው።"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi ሲግናል ሙሉ ነው::"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"ምንም WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX አንድ አሞሌ።"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ሁለት አሞሌዎች።"</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"ቅንብሮች"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"ሰዓት"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"እኔ"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ምንም አውታረ መረብ የለም"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi ጠፍቷል"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"የWifi ማሳያ"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"ምንም የWifi ማሳያ ግንኙነት የለም"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ብሩህነት"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ራስ-ሰር"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 659eb5855a8e..b236a8b11249 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"شريط واحد لـ Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"شريطان لـ Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"ثلاثة أشرطة لـ Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"إشارة WiFi كاملة."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"إشارة كاملة لـ Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"ليس هناك WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"شريط WiMAX واحد."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"شريطا WiMAX."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"الإعدادات"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"الوقت"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"أنا"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"لا تتوفر شبكة"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"إيقاف Wifi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"شاشة Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"لا يتوفر اتصال بشاشة Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"السطوع"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"تلقائي"</string>
</resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 0d6f4c66721d..ddc23ca3b2d8 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi, адзiн слупок."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi, два слупкi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi, тры слупкi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Поўны сігнал Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Моцны сiгнал Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Няма сiгналу WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Адзiн слупок сiгналу WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Два слупкi сiгналу WiMAX."</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Налады"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма сеткi"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi выключаны"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Дысплей Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Няма падключэння да дысплея Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркасць"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АЎТА"</string>
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 02c38b71cbc3..470b31b89160 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi е с една чертичка."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi е с две чертички."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi е с три чертички."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Сигналът за WiFi е пълен."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Сигналът за Wi-Fi е пълен."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Няма WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX е с една чертичка."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX е с две чертички."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Настройки"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Време"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Аз"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма мрежа"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WiFi е изключен"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Дисплей през WiFi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Няма връзка с дисплея през WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркост"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТ."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 7aa1e889fe95..16a412d3e5e7 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dues barres de Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barres de Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Senyal Wi-Fi: complet."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Senyal Wi-Fi complet."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Sense WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dues barres de WiMAX."</string>
@@ -170,11 +170,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Configuració"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Jo"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Desconnectat"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hi ha cap xarxa"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivada"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sense connexió a pantalla Wi-Fi"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desconnectat"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Pantalla Wi-Fi"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"No hi ha cap connexió amb una pantalla Wi-Fi"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillantor"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÀTICA"</string>
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 5a391a91a19d..c8e5317e0bb5 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi – jedna čárka."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi – dvě čárky."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi – tři čárky."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Plný signál sítě Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi – plný signál."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Žádný signál sítě WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Jedna čárka signálu sítě WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvě čárky signálu sítě WiMAX."</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavení"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Doba"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Já"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žádná síť"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Síť Wi-Fi je vypnuta"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Displej přes Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Žádné připojení k displeji přes Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jas"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string>
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 47a5c5bb8317..fde9916be4cd 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi har en bjælke."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi har to bjælker."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi har tre bjælker."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signal fuldt."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi-signalet er godt."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX en bjælke."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX to bjælker."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Indstillinger"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Mig"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Intet netværk"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi slået fra"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skærm"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen forbindelse til Wi-Fi-skærm"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 791bfab4f084..4a5b4cb07a84 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"WLAN, ein Balken"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"WLAN, zwei Balken"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"WLAN, drei Balken"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Volle WLAN-Signalstärke"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"WLAN, volle Signalstärke"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Kein WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX - ein Balken"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX - zwei Balken"</string>
@@ -151,7 +151,7 @@
<string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildschirm bleibt im Querformat."</string>
<string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildschirm bleibt im Hochformat."</string>
<string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string>
- <string name="start_dreams" msgid="870400522982252717">"Träume starten"</string>
+ <string name="start_dreams" msgid="870400522982252717">"Dream-Funktion starten"</string>
<string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string>
<string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugmodus"</string>
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Akku wird aufgeladen (<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>)"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Einstellungen"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Uhrzeit"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ich"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WLAN"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netz"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WLAN aus"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WLAN-Anzeige"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Keine WLAN-Anzeige"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helligkeit"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index afce21206a17..a72ae498e30a 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Μία γραμμή Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Δύο γραμμές Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Τρεις γραμμές Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Πλήρες σήμα WiFi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Πλήρες σήμα Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Δεν υπάρχει σήμα WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Σήμα WiMAX μία γραμμή."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Σήμα WiMAX δύο γραμμές."</string>
@@ -170,11 +170,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Ρυθμίσεις"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Ώρα"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Εγώ"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Μη συνδεδεμένο"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Κανένα δίκτυο"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Απενεργοποιημένο Wifi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Οθόνη Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Δεν υπάρχει σύνδεση οθόνης Wifi"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ανενεργό"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Οθόνη Wi-Fi"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Χωρίς σύνδεση οθόνης Wi-Fi"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Φωτεινότητα"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ΑΥΤΟΜΑΤΗ"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 5bfe7ae00134..9f03bfc01bb6 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi one bar."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi two bars."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi three bars."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi signal full."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi signal full."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"No WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX one bar."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX two bars."</string>
@@ -168,11 +168,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Settings"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Time"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Me"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Not Connected"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi Off"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi Display"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"No Wi-Fi Display Connection"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Wi-Fi Display"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"No Wi-Fi Display Connection"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index ec8530928927..4ef247964c6d 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de señal Wi-Fi"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dos barras de señal Wi-Fi"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barras de señal Wi-Fi"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Señal de Wi-Fi completa"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Señal Wi-Fi máxima"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Configuración"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Yo"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sin red"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivado"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sin conexión con pantalla Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillo"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index a82bc03ffb07..90bc39495d14 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Una barra de Wi-Fi"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dos barras de Wi-Fi"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tres barras de Wi-Fi"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Señal de Wi-Fi al máximo"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Señal de Wi-Fi al máximo"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Una barra de WiMAX"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Ajustes"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Yo"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hay red."</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi desactivado"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Pantalla Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sin conexión a pantalla Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillo"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index d17cb02cfd5d..8113e8dc7504 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"WiFi signaal: üks post."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"WiFi signaal: kaks posti."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"WiFi signaal: kolm posti."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi-signaal on tugev."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"WiFi signaal on täis."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX-i pole."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX-i on üks riba."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-i on kaks riba."</string>
@@ -168,11 +168,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Seaded"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Aeg"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"WiFi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ühendus puudub"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Võrku pole"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"WiFi on väljas"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi-ekraan"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"WiFi-ekraani ühendus puudub"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WiFi-ühendus on väljas"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"WiFi kuva"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"WiFi-ühenduse puudumise kuva"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Heledus"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAATNE"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 4379dcb3eaeb..71c85587ae28 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi یک نوار دارد."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi دو نوار دارد."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi سه نوار دارد."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"قدرت سیگنال WiFi کامل است."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"سیگنال Wi-Fi کامل است."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX وجود ندارد."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX دارای یک نوار است."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX دارای دو نوار است."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"تنظیمات"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"زمان"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"من"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"شبکه‌ای موجود نیست"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi خاموش"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"صفحه نمایش Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"اتصال صفحه نمایش Wifi وجود ندارد"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"روشنایی"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"خودکار"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index bc5596e5d606..5e1bb3c4c774 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wifi-signaali: yksi palkki."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wifi-signaali: kaksi palkkia."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wifi-signaali: kolme palkkia."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Vahva wifi-signaali."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wifi-signaali: täysi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ei WiMAX-yhteyttä."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: yksi palkki."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: kaksi palkkia."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Asetukset"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Aika"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Minä"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ei verkkoa"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi pois käytöstä"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-näyttö"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ei yhteyttä wifi-näyttöön"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kirkkaus"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index c3ac92735ea9..4facd644e2f2 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Signal Wi-Fi très faible"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Signal Wi-Fi faible"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Signal Wi-Fi bon"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Signal Wi-Fi excellent"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Signal Wi-Fi excellent"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Aucun signal WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Signal WiMAX : faible"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX : moyen"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Paramètres"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Heure"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Moi"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi désactivé"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Écran Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Aucune connexion à un écran Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosité"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATIQUE"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index d1590fe0a5e5..a65368f3abcd 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi का एक बार."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi के दो बार."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi के तीन बार."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"पूर्ण WiFi सि‍ग्‍नल."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi सिग्नल पूर्ण."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX नहीं."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX एक बार."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX दो बार."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"सेटिंग"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"समय"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"मुझे"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"कोई नेटवर्क नहीं"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi बंद"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi डिस्प्ले"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"कोई Wifi डिस्प्ले कनेक्शन नहीं"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"चमक"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वत:"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index c56b20f7dd30..2b2c02273a94 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi jedna crtica."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dvije crtice."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi tri crtice."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi signal pun."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi signal pun."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Nema signala WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX s jednim stupcem."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX s dva stupca."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Postavke"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Vrijeme"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nema mreže"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi isključen"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi zaslon"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nema veze s Wifi zaslonom"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svjetlina"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATSKI"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 48932b685ff9..88f293ea4ed2 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi -- egy sáv"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi -- két sáv"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi -- három sáv"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi jel teljes."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi -- teljes jel"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Nincs WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX-jel: egy sáv."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-jel: két sáv."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Beállítások"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Idő"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Én"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nincs hálózat"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi kikapcsolva"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi kijelző"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nincs kapcsolat Wi-Fi kijelzővel"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Fényerő"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"automatikus"</string>
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 72bd126b4f80..845a72eabec7 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi satu bilah."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dua bilah."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi tiga bilah."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinyal WiFi penuh."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Sinyal Wi-Fi penuh."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Tidak ada WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX satu batang."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua batang."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Setelan"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Waktu"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Saya"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tidak Ada Jaringan"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi Mati"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Tampilan Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Tidak Ada Koneksi Tampilan Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kecerahan"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATIS"</string>
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index d6b96f67e7be..56c8ab8ae9dc 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: una barra."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: due barre."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: tre barre."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Massimo segnale Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Segnale Wi-Fi completo."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Nessun segnale WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: una barra."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: due barre."</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Impostazioni"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Ora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Io"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nessuna rete"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi non attivo"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Schermo Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nessun collegamento a schermi Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminosità"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 150faaf50cda..28cb4c0c4754 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"פס Wi-Fi אחד."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"שני פסי Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"שלושה פסי Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"אות ה-WiFi מלא."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"אות ה-Wi-Fi מלא."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"ללא WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"פס אחד של WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"שני פסים של WiMAX."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"הגדרות"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"שעה"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"אני"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"אין רשת"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi מופסק"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"תצוגת Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"אין חיבור תצוגת Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"בהירות"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"אוטומטי"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 222eda230188..deddb6b2a570 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi電波: レベル1"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi電波: レベル2"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi電波: レベル3"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi電波:フル"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi電波: フル"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX電波状態:圏外"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX電波状態:レベル1"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX電波状態:レベル2"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"設定"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"時間"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"このユーザー"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ネットワークなし"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi OFF"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fiディスプレイ"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Wi-Fiディスプレイ接続なし"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"画面の明るさ"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index dca1e369da3a..972c5d0ca034 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 신호 막대가 한 개입니다."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 신호 막대가 두 개입니다."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 신호 막대가 세 개입니다."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 신호가 강합니다."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 신호가 강합니다."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX가 없습니다."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 신호 막대가 하나입니다."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 신호 막대가 두 개입니다."</string>
@@ -149,7 +149,7 @@
<string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"화면이 가로 방향으로 잠겨 있습니다."</string>
<string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"화면이 세로 방향으로 잠겨 있습니다."</string>
<string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string>
- <string name="start_dreams" msgid="870400522982252717">"화면보호기 시작"</string>
+ <string name="start_dreams" msgid="870400522982252717">"스크린 세이버 시작"</string>
<string name="ethernet_label" msgid="7967563676324087464">"이더넷"</string>
<string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"비행기 모드"</string>
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"충전 중(<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"설정"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"시간"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"나"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"네트워크가 연결되지 않음"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi 사용 안함"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi 디스플레이"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Wi-Fi 디스플레이가 연결되지 않음"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"밝기"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"자동"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 65cf268c4135..56961afa4c1b 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Viena „Wi-Fi“ juosta."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dvi „Wi-Fi“ signalo juostos."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Trys „Wi-Fi“ signalo juostos."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"„Wi-Fi“ signalas stiprus."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Stiprus „Wi-Fi“ signalas."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Nėra „WiMAX“ signalo."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Viena „WiMAX“ signalo juosta."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvi „WiMAX“ signalo juostos."</string>
@@ -168,11 +168,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Nustatymai"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Laikas"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Aš"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Neprisijungta"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tinklo nėra"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"„Wi-Fi“ išjungta"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"„Wi-Fi“ pateiktis"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nėra „Wi-Fi“ pateikties ryšio"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"„Wi-Fi“ išjungta"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"„Wi-Fi“ pateiktis"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Nėra „Wi-Fi“ pateikties ryšio"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Skaistis"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATINIS"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 69e36f643616..56dc9d4d7744 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: viena josla."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: divas joslas."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"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_wifi_signal_full" msgid="4826278754383492058">"Maksimāls Wi-Fi signāla stiprums."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Bez WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX viena josla."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX divas joslas."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Iestatījumi"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Laiks"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Es"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nav tīkla"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi savienojums ir izslēgts."</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi displejs"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nav Wi-Fi displeja savienojuma"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Spilgtums"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMĀTISKI"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 791c77db1b21..8379886e0158 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Satu bar Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dua bar Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tiga bar Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Isyarat WiFi penuh."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Isyarat penuh Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Tiada WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX satu bar."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua bar."</string>
@@ -156,8 +156,7 @@
<string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Sudah dicas"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
<string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Peranti)"</string>
- <!-- no translation found for quick_settings_bluetooth_off_label (8159652146149219937) -->
- <skip />
+ <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Dimatikan"</string>
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"Kecerahan"</string>
<string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Auto Putar"</string>
<string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Putaran Dikunci"</string>
@@ -169,12 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Tetapan"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Masa"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Saya"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tiada Rangkaian"</string>
- <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) -->
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
<skip />
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Paparan Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Tiada Sambungan Paparan Wifi"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Kecerahan"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index cb8e55578d76..bbf3aed319dc 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Dekningssignal for Wi-Fi med én stolpe."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dekningssignal for Wi-Fi med to stolper."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Dekningssignal for Wi-Fi med tre stolper."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signal er fullt."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Fullt Wi-Fi-signal"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX – én stolpe."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX – to stolper."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Innstillinger"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Tidspunkt"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Meg"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ingen nettverk"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi er slått av"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skjermer"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen tilkobling for Wi-Fi-skjermer"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Lysstyrke"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 0ec9c44631ff..079f59c60e8b 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wifi: één streepje."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wifi: twee streepjes."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wifi: drie streepjes."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signaal is op volledige sterkte."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wifi-signaal is op volledige sterkte."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: één streepje."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: twee streepjes."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Instellingen"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Tijd"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ik"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi uit"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi-display"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Geen wifi-displayverbinding"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helderheid"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATISCH"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 09e32e1a7066..86fe22b603fc 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi jeden pasek."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi dwa paski."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi trzy paski."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sieć Wi-Fi: pełna moc sygnału."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Pełna moc sygnału Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX: brak"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: jeden pasek"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: dwa paski"</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Ustawienia"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Godzina"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Brak sieci"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi wyłączone"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wyświetlacz Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Brak połączenia z wyświetlaczem Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jasność"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATYCZNA"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 5b362a719828..cffccc4fba1b 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Uma barra de Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Duas barras de Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Três barras de Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinal Wi-Fi completo."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Sinal de Wi-Fi completo."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Uma barra de WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras de WiMAX."</string>
@@ -168,11 +168,12 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Definições"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Não Ligado"</string>
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem Rede"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi Desativado"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Visor Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sem Ligação ao Visor Wi-Fi"</string>
+ <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Desligado"</string>
+ <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Visualização Wi-Fi"</string>
+ <string name="quick_settings_wifi_display_no_connection_label" msgid="7834964244709912066">"Sem Ligação de Visualização Wi-Fi"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brilho"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index e2e5cd421bb5..377a6170d12d 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Uma barra de Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Duas barras de Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Três barras de Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Sinal do Wi-Fi cheio."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"O sinal de Wi-Fi está cheio."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Uma barra do WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras do WiMAX."</string>
@@ -158,8 +158,7 @@
<string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Carregado"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
<string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string>
- <!-- no translation found for quick_settings_bluetooth_off_label (8159652146149219937) -->
- <skip />
+ <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desativado"</string>
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brilho"</string>
<string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Girar automaticamente"</string>
<string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotação bloqueada"</string>
@@ -171,12 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Configurações"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem rede"</string>
- <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) -->
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
<skip />
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi Display"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Sem conexão Wi-Fi Display"</string>
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brilho"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml
index ed3d869fcd16..6dd1f961b5e8 100644
--- a/packages/SystemUI/res/values-rm/strings.xml
+++ b/packages/SystemUI/res/values-rm/strings.xml
@@ -178,7 +178,7 @@
<skip />
<!-- no translation found for accessibility_wifi_three_bars (928322805193265041) -->
<skip />
- <!-- no translation found for accessibility_wifi_signal_full (1275764416228473932) -->
+ <!-- no translation found for accessibility_wifi_signal_full (4826278754383492058) -->
<skip />
<!-- no translation found for accessibility_no_wimax (4329180129727630368) -->
<skip />
@@ -306,15 +306,17 @@
<skip />
<!-- no translation found for quick_settings_user_label (5238995632130897840) -->
<skip />
- <!-- no translation found for quick_settings_wifi_label (4393429107095001520) -->
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
<skip />
<!-- no translation found for quick_settings_wifi_no_network (2221993077220856376) -->
<skip />
- <!-- no translation found for quick_settings_wifi_off_label (3343111275022978538) -->
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
<skip />
- <!-- no translation found for quick_settings_wifi_display_label (6653501376641018614) -->
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
<skip />
- <!-- no translation found for quick_settings_wifi_display_no_connection_label (6255615315258869136) -->
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
<skip />
<!-- no translation found for quick_settings_brightness_dialog_title (8599674057673605368) -->
<skip />
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index e480b154eba4..71041199faf5 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi o bară."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi două bare."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi trei bare."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Semnal Wi-Fi: complet."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi semnal complet."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Fără WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX o bară."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX două bare."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Setări"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Ora"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nicio reţea"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi dezactivat"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Afişaj Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Nu există conexiune pentru afişajul Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Luminozitate"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAT"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 333d22187f3f..9c73ff325cf0 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: одно деление."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: два деления."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: три деления."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Надежный сигнал Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Надежный сигнал Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Нет сигнала WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Сигнал WiMAX: одно деление."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Сигнал WiMAX: два деления."</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Настройки"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Время"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Пользователь"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нет сети"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Модуль Wi-Fi выключен"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Экраны, подключенные через Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Экран не подключен"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яркость"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОНАСТРОЙКА"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 32c37c4dcded..ef147772de34 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Jedna čiarka signálu Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dve čiarky signálu Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tri čiarky signálu Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Plný signál siete Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Plný signál Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Žiadna sieť WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Jeden stĺpec signálu siete WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dva stĺpce signálu siete WiMAX."</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavenia"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Čas"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ja"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žiadna sieť"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Sieť Wi-Fi je vypnutá"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Displej cez sieť Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Žiadne pripojenie k displeju cez sieť Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Jas"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 216b9d4eff34..f91114fac3b4 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Ena vrstica signala Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dve črtici signala Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tri črtice signala Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Signal Wi-Fi poln."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Poln signal Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ni signala WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Signal WiMAX: ena črtica."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX: dve črtici."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Nastavitve"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Čas"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Jaz"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ni omrežja"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi izklopljen"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Zaslon Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ni povezav z zaslonom Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svetlost"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"SAMODEJNO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index dcaf3bdfdc6c..8903452ca8a2 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi сигнал има једну црту."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi сигнал има две црте."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi сигнал има три црте."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi сигнал је најјачи."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi сигнал је најјачи."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Нема WiMAX сигнала."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX сигнал има једну црту."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX сигнал има две црте."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Подешавања"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Време"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ја"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мреже"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi искључен"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi екран"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Нема везе са Wi-Fi екраном"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Осветљеност"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АУТОМАТСКА"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index eb76ad346948..8d7e8c4997e8 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi: en stapel."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi: två staplar."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi: tre staplar."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Wi-Fi-signalen är full."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi-signalen är full."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX: en stapel."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: två staplar."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Inställningar"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Tid"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Jag"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Inget nätverk"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Inaktivera Wi-Fi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wi-Fi-skärm"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Ingen anslutning till Wi-Fi-skärm"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ljusstyrka"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index e29a085405d0..cfac6e403356 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -102,7 +102,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Mwambaa mmoja wa Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Miambaa miwili ya Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Miamba tatu ya Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Ishara ya Mtandao hewa imejaa"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Ishara kamili ya Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Hakuna WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Pau moja ya WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Pau mbili za WiMAX."</string>
@@ -166,11 +166,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Mipangilio"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Muda"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Mimi"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Hakuna Mtandao"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wifi Imezimwa"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Onyesho la Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Hakuna Muunganisho wa Onyesho la Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ung\'avu"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"KIOTOMATIKI"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sw380dp/dimens.xml b/packages/SystemUI/res/values-sw380dp/dimens.xml
new file mode 100644
index 000000000000..b39e94cd8ee1
--- /dev/null
+++ b/packages/SystemUI/res/values-sw380dp/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2012, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+-->
+<resources>
+ <!-- The fixed height of each tile -->
+ <dimen name="quick_settings_cell_height">124dp</dimen>
+</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 506c9b2162ea..b43b11168e44 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"สัญญาณ WiFi หนึ่งขีด"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"สัญญาณ WiFi สองขีด"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"สัญญาณ WiFi สามขีด"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"สัญญาณ WiFi เต็ม"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"สัญญาณ WiFi เต็ม"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"ไม่มีสัญญาณ WiMAX"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"สัญญาณ WiMAX หนึ่งขีด"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"สัญญาณ WiMAX สองขีด"</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"การตั้งค่า"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"เวลา"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"ฉัน"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ไม่มีเครือข่าย"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"ปิด WiFi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"การแสดงผลด้วย WiFi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"ไม่มีการเชื่อมต่อการแสดงผลด้วย WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ความสว่าง"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"อัตโนมัติ"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 7edd45ad78bb..ee710451b042 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Isang bar ang Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Dalawang bar ang Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Tatlong bar ang Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Puno ang signal ng WiFi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Puno ang signal ng Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Walang WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX na isang bar."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX na dalawang bar."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Mga Setting"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Oras"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ako"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Walang Network"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Naka-off ang Wifi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Wifi Display"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Walang Koneksyon sa Wifi Display"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index a2c08a110e89..f063c07feeb4 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Kablosuz gücü tek çubukta."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Kablosuz sinyal gücü iki çubuk."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Kablosuz sinyal gücü üç çubuk."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Kablosuz sinyali tam."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Kablosuz sinyal gücü tam."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX yok."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX tek çubuk."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX iki çubuk."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Ayarlar"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Saat"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Ben"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Kablosuz"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ağ yok"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Kablosuz Kapalı"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Kablosuz Ekran"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Kablosuz Ekran Bağlantısı Yok"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Parlaklık"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATİK"</string>
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index a6cef76e24b3..2890dcc3a102 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Одна смужка сигналу Wi-Fi."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Дві смужки сигналу Wi-Fi."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Три смужки сигналу Wi-Fi."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Максимальний сигнал Wi-Fi."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Максимальний сигнал Wi-Fi."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Немає сигналу WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Одна смужка сигналу WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Дві смужки сигналу WiMAX."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Налаштування"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Час"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Я"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Немає мережі"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Wi-Fi вимкнено"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Екран Wi-Fi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Немає з’єднання з екраном Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яскравість"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТО"</string>
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index dcc472ab7ec8..1b4fbfc7e1e9 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi một vạch."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi hai vạch."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi ba vạch."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"Tín hiệu WiFi đầy đủ."</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Tín hiệu Wi-Fi đã đầy."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Không có WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX một vạch."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX hai vạch."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Cài đặt"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Thời gian"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Tôi"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Không có mạng nào"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"Đã tắt Wifi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Màn hình Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Không kết nối màn hình Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Độ sáng"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"TỰ ĐỘNG"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index ded22f411b51..d69e844a9dc3 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 信号强度为 1 格。"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 信号强度为 2 格。"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 信号强度为 3 格。"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 信号满格。"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 信号强度为满格。"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"无 WiMAX 信号。"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 信号强度为一格。"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 信号强度为两格。"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"设置"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"时间"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"我"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"Wi-Fi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"无网络"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"关闭 Wi-Fi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"W-Fi 显示设备"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"没有 Wi-Fi 显示设备连接"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"亮度"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自动"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index e1c032c3d711..6248c16a44f4 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"Wi-Fi 訊號一格。"</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"Wi-Fi 訊號兩格。"</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"Wi-Fi 訊號三格。"</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"WiFi 訊號滿格。"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Wi-Fi 訊號滿格。"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"沒有 WiMAX 訊號。"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX 訊號一格。"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 訊號兩格。"</string>
@@ -170,11 +170,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"設定"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"時間"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"我"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網路"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"關閉 WiFi"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"WiFi 顯示裝置"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"未連接 WiFi 顯示裝置"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"亮度"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index b1316bfdc467..989a9e9dfea4 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_wifi_one_bar" msgid="6854947280074467207">"I-Wi-Fi umugqaa owodwa."</string>
<string name="accessibility_wifi_two_bars" msgid="3344340012058984348">"I-Wi-Fi imigqaa emibili."</string>
<string name="accessibility_wifi_three_bars" msgid="928322805193265041">"I-Wi-Fi imigqaa emithathu."</string>
- <string name="accessibility_wifi_signal_full" msgid="1275764416228473932">"i-signal ye-WiFi igcwele"</string>
+ <string name="accessibility_wifi_signal_full" msgid="4826278754383492058">"Uphawu lwe-Wi-Fi igcwele."</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"Ayikho i-WiMAX."</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Ibha eyodwa ye-WiMAX."</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Amabha amabili we-WiMAX."</string>
@@ -168,11 +168,17 @@
<string name="quick_settings_settings_label" msgid="5326556592578065401">"Izilungiselelo"</string>
<string name="quick_settings_time_label" msgid="4635969182239736408">"Isikhathi"</string>
<string name="quick_settings_user_label" msgid="5238995632130897840">"Mina"</string>
- <string name="quick_settings_wifi_label" msgid="4393429107095001520">"I-WiFi"</string>
+ <!-- no translation found for quick_settings_wifi_label (9135344704899546041) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_not_connected (7171904845345573431) -->
+ <skip />
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ayikho inethiwekhi"</string>
- <string name="quick_settings_wifi_off_label" msgid="3343111275022978538">"I-Wifi ivaliwe"</string>
- <string name="quick_settings_wifi_display_label" msgid="6653501376641018614">"Ukubuka kwe-Wifi"</string>
- <string name="quick_settings_wifi_display_no_connection_label" msgid="6255615315258869136">"Alukho uxhumo lokubonisa le-Wifi"</string>
+ <!-- no translation found for quick_settings_wifi_off_label (7558778100843885864) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_label (6893592964463624333) -->
+ <skip />
+ <!-- no translation found for quick_settings_wifi_display_no_connection_label (7834964244709912066) -->
+ <skip />
<string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Ukugqama"</string>
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OKUZENZAKALELAYO"</string>
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index 7077018af837..1ee1c41980a4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -31,6 +31,7 @@ import android.content.IntentFilter;
import android.content.Loader;
import android.content.res.Resources;
import android.database.Cursor;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LevelListDrawable;
import android.hardware.display.DisplayManager;
@@ -40,6 +41,7 @@ import android.os.Handler;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.ContactsContract;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -160,6 +162,8 @@ class QuickSettings {
}
private void queryForUserInformation() {
+ System.out.println("queryForUserInformation");
+
Uri userContactUri = Uri.withAppendedPath(
ContactsContract.Profile.CONTENT_URI,
ContactsContract.Contacts.Data.CONTENT_DIRECTORY);
@@ -184,9 +188,11 @@ class QuickSettings {
@Override
public void onLoadComplete(Loader<Cursor> loader,
Cursor cursor) {
+ UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
if (cursor != null && cursor.moveToFirst()) {
String name = cursor.getString(0); // DISPLAY_NAME
- mModel.setUserTileInfo(name, null);
+ BitmapDrawable d = new BitmapDrawable(userManager.getUserIcon(userManager.getUserHandle()));
+ mModel.setUserTileInfo(name, d);
/*
byte[] photoData = cursor.getBlob(0);
Bitmap b =
@@ -248,10 +254,11 @@ class QuickSettings {
@Override
public void refreshView(QuickSettingsTileView view, State state) {
UserState us = (UserState) state;
+ ImageView iv = (ImageView) view.findViewById(R.id.user_imageview);
TextView tv = (TextView) view.findViewById(R.id.user_textview);
tv.setText(state.label);
if (us.avatar != null) {
- tv.setCompoundDrawables(null, us.avatar, null, null);
+ iv.setImageDrawable(us.avatar);
}
}
});
@@ -290,6 +297,13 @@ class QuickSettings {
startSettingsActivity(android.provider.Settings.ACTION_SETTINGS);
}
});
+ mModel.addSettingsTile(settingsTile, new QuickSettingsModel.RefreshCallback() {
+ @Override
+ public void refreshView(QuickSettingsTileView view, State state) {
+ TextView tv = (TextView) view.findViewById(R.id.settings_tileview);
+ tv.setText(state.label);
+ }
+ });
parent.addView(settingsTile);
mDynamicSpannedTiles.add(settingsTile);
}
@@ -418,6 +432,7 @@ class QuickSettings {
public void refreshView(QuickSettingsTileView view, State state) {
TextView tv = (TextView) view.findViewById(R.id.airplane_mode_textview);
tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0);
+ tv.setText(state.label);
}
});
parent.addView(airplaneTile);
@@ -476,6 +491,7 @@ class QuickSettings {
public void refreshView(QuickSettingsTileView view, State state) {
TextView tv = (TextView) view.findViewById(R.id.brightness_textview);
tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0);
+ tv.setText(state.label);
dismissBrightnessDialog(mBrightnessDialogShortTimeout);
}
});
@@ -614,6 +630,9 @@ class QuickSettings {
void updateResources() {
Resources r = mContext.getResources();
+ // Update the model
+ mModel.updateResources();
+
// Update the User, Time, and Settings tiles spans, and reset everything else
int span = r.getInteger(R.integer.quick_settings_user_time_settings_tile_span);
for (QuickSettingsTileView v : mDynamicSpannedTiles) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index 04633bfe5e13..a4caabe4d157 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -188,6 +188,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
private RefreshCallback mBugreportCallback;
private State mBugreportState = new State();
+ private QuickSettingsTileView mSettingsTile;
+ private RefreshCallback mSettingsCallback;
+ private State mSettingsState = new State();
+
public QuickSettingsModel(Context context) {
mContext = context;
mHandler = new Handler();
@@ -201,6 +205,26 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter);
}
+ void updateResources() {
+ refreshSettingsTile();
+ refreshBatteryTile();
+ refreshBluetoothTile();
+ refreshBrightnessTile();
+ refreshRotationLockTile();
+ }
+
+ // Settings
+ void addSettingsTile(QuickSettingsTileView view, RefreshCallback cb) {
+ mSettingsTile = view;
+ mSettingsCallback = cb;
+ refreshSettingsTile();
+ }
+ void refreshSettingsTile() {
+ Resources r = mContext.getResources();
+ mSettingsState.label = r.getString(R.string.quick_settings_settings_label);
+ mSettingsCallback.refreshView(mSettingsTile, mSettingsState);
+ }
+
// User
void addUserTile(QuickSettingsTileView view, RefreshCallback cb) {
mUserTile = view;
@@ -250,7 +274,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
});
mAirplaneModeCallback = cb;
- mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState);
+ int airplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0);
+ onAirplaneModeChanged(airplaneMode != 0);
}
private void setAirplaneModeState(boolean enabled) {
// TODO: Sets the view to be "awaiting" if not already awaiting
@@ -273,6 +299,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mAirplaneModeState.iconId = (enabled ?
R.drawable.ic_qs_airplane_on :
R.drawable.ic_qs_airplane_off);
+ mAirplaneModeState.label = r.getString(R.string.quick_settings_airplane_mode_label);
mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState);
}
@@ -307,7 +334,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
Resources r = mContext.getResources();
mWifiState.enabled = enabled;
boolean wifiConnected = enabled && (wifiSignalIconId > 0) && (enabledDesc != null);
- boolean wifiNotConnected = enabled && (enabledDesc == null);
+ boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null);
if (wifiConnected) {
mWifiState.iconId = wifiSignalIconId;
mWifiState.label = removeDoubleQuotes(enabledDesc);
@@ -377,6 +404,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
mBluetoothCallback.refreshView(mBluetoothTile, mBluetoothState);
}
+ void refreshBluetoothTile() {
+ if (mBluetoothTile != null) {
+ onBluetoothStateChange(mBluetoothState.enabled);
+ }
+ }
// Battery
void addBatteryTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -391,6 +423,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mBatteryState.pluggedIn = pluggedIn;
mBatteryCallback.refreshView(mBatteryTile, mBatteryState);
}
+ void refreshBatteryTile() {
+ mBatteryCallback.refreshView(mBatteryTile, mBatteryState);
+ }
// Location
void addLocationTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -544,6 +579,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mRotationLockCallback.refreshView(mRotationLockTile, mRotationLockState);
}
}
+ void refreshRotationLockTile() {
+ if (mRotationLockTile != null) {
+ onRotationLockChanged();
+ }
+ }
// Brightness
void addBrightnessTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -553,6 +593,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
@Override
public void onBrightnessLevelChanged() {
+ Resources r = mContext.getResources();
int mode = Settings.System.getInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
@@ -561,7 +602,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mBrightnessState.iconId = mBrightnessState.autoBrightness
? R.drawable.ic_qs_brightness_auto_on
: R.drawable.ic_qs_brightness_auto_off;
+ mBrightnessState.label = r.getString(R.string.quick_settings_brightness_label);
mBrightnessCallback.refreshView(mBrightnessTile, mBrightnessState);
}
+ void refreshBrightnessTile() {
+ onBrightnessLevelChanged();
+ }
} \ No newline at end of file
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java b/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java
index ece09489ad2b..cbbc92cc13a7 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/ClockView.java
@@ -40,6 +40,7 @@ import com.android.internal.R;
* Displays the time
*/
public class ClockView extends RelativeLayout {
+ private static final String ANDROID_CLOCK_FONT_FILE = "/system/fonts/AndroidClock.ttf";
private final static String M12 = "h:mm";
private final static String M24 = "kk:mm";
@@ -153,7 +154,7 @@ public class ClockView extends RelativeLayout {
protected void onFinishInflate() {
super.onFinishInflate();
mTimeView = (TextView) findViewById(R.id.clock_text);
- mTimeView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL));
+ mTimeView.setTypeface(Typeface.createFromFile(ANDROID_CLOCK_FONT_FILE));
mAmPm = new AmPm(this, null);
mCalendar = Calendar.getInstance();
setDateFormat();
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
index a4159d0e69cf..4f2f6bfdefe7 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
@@ -29,6 +29,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
+import android.os.PowerManager;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
@@ -128,6 +129,8 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback {
*/
public void hide() {
if (DEBUG) Log.d(TAG, "hide()");
+ // Removes any wakelock messages to make sure they don't cause the screen to turn back on.
+ mHandler.removeMessages(MSG_POKE_WAKELOCK);
// Remove messages to prevent a delayed show message from undo-ing the hide
removeDisplayMessages();
mHandler.sendEmptyMessage(MSG_HIDE_FACE_UNLOCK_VIEW);
@@ -384,10 +387,14 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback {
}
/**
- * Pokes the wakelock to keep the screen alive and active for a specific amount of time.
+ * If the screen is on, pokes the wakelock to keep the screen alive and active for a specific
+ * amount of time.
*/
void handlePokeWakelock(int millis) {
+ PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ if (powerManager.isScreenOn()) {
mKeyguardScreenCallback.userActivity(millis);
+ }
}
/**
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java
index 062c1be85e69..592281086e11 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java
@@ -69,6 +69,14 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu
}
@Override
+ public void onDetachedFromWindow() {
+ if (mBiometricUnlock != null) {
+ mBiometricUnlock.hide();
+ mBiometricUnlock.stop();
+ }
+ }
+
+ @Override
public void onPause() {
if (mBiometricUnlock != null) {
mBiometricUnlock.hide();
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
index 92bc93cca670..4f2545f880b2 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
@@ -122,7 +122,15 @@ public class KeyguardPasswordView extends LinearLayout
mPasswordEntry = (EditText) findViewById(R.id.passwordEntry);
mPasswordEntry.setOnEditorActionListener(this);
- mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false);
+ mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false,
+ new int[] {
+ R.xml.kg_password_kbd_numeric,
+ com.android.internal.R.xml.password_kbd_qwerty,
+ com.android.internal.R.xml.password_kbd_qwerty_shifted,
+ com.android.internal.R.xml.password_kbd_symbols,
+ com.android.internal.R.xml.password_kbd_symbols_shift
+ }
+ );
mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled());
boolean imeOrDeleteButtonVisible = false;
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
index 780f1179f260..e4b779805afc 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
@@ -31,7 +31,7 @@ import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
-import android.widget.GridLayout;
+import android.widget.LinearLayout;
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView;
@@ -40,7 +40,7 @@ import com.android.internal.R;
import java.io.IOException;
import java.util.List;
-public class KeyguardPatternView extends GridLayout implements KeyguardSecurityView {
+public class KeyguardPatternView extends LinearLayout implements KeyguardSecurityView {
private static final String TAG = "SecurityPatternView";
private static final boolean DEBUG = false;
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java
index bc5500877f9d..f913519b5e33 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java
@@ -82,7 +82,14 @@ public class KeyguardSimPinView extends LinearLayout
mPinEntry.setOnEditorActionListener(this);
mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
- mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false);
+ mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false,
+ new int[] {
+ R.xml.kg_password_kbd_numeric,
+ com.android.internal.R.xml.password_kbd_qwerty,
+ com.android.internal.R.xml.password_kbd_qwerty_shifted,
+ com.android.internal.R.xml.password_kbd_symbols,
+ com.android.internal.R.xml.password_kbd_symbols_shift
+ });
mKeyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC);
mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled());
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
index e04bff975901..d4bed2552f22 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
@@ -96,7 +96,14 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
mDelPinButton.setOnClickListener(this);
mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
- mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false);
+ mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false,
+ new int[] {
+ R.xml.kg_password_kbd_numeric,
+ com.android.internal.R.xml.password_kbd_qwerty,
+ com.android.internal.R.xml.password_kbd_qwerty_shifted,
+ com.android.internal.R.xml.password_kbd_symbols,
+ com.android.internal.R.xml.password_kbd_symbols_shift
+ });
mKeyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC);
mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled());
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
index b30913acb28a..701017d9b6ca 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
@@ -102,7 +102,8 @@ class KeyguardStatusViewManager {
public KeyguardStatusViewManager(View view) {
if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()");
mContainer = view;
- mDateFormatString = getContext().getResources().getText(R.string.keyguard_wday_day_month);
+ mDateFormatString = getContext().getResources().getText(
+ com.android.internal.R.string.abbrev_wday_month_day_no_year);
mLockPatternUtils = new LockPatternUtils(view.getContext());
mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext());
@@ -113,7 +114,7 @@ class KeyguardStatusViewManager {
mClockView = (ClockView) view.findViewById(R.id.clock_view);
// Use custom font in mDateView
- mDateView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL));
+ mDateView.setTypeface(Typeface.SANS_SERIF);
// Required to get Marquee to work.
final View marqueeViews[] = { mDateView, mStatus1View, mOwnerInfoView, mAlarmStatusView };
@@ -183,6 +184,7 @@ class KeyguardStatusViewManager {
Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1, UserHandle.USER_CURRENT) != 0;
String text = Settings.Secure.getStringForUser(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO,
UserHandle.USER_CURRENT);
+ text = text != null ? text.trim() : null; // Remove trailing newlines
if (ownerInfoEnabled && !TextUtils.isEmpty(text)) {
maybeSetUpperCaseText(mOwnerInfoView, text);
mOwnerInfoView.setVisibility(View.VISIBLE);
@@ -228,8 +230,7 @@ class KeyguardStatusViewManager {
}
private void maybeSetUpperCaseText(TextView textView, CharSequence text) {
- if (KeyguardViewManager.USE_UPPER_CASE
- && (textView == mDateView)) { // currently only required for date view
+ if (KeyguardViewManager.USE_UPPER_CASE) { // currently only required for date view
textView.setText(text != null ? text.toString().toUpperCase() : null);
} else {
textView.setText(text);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
index 14e4b672a425..ebdb116eaccf 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
@@ -46,7 +46,7 @@ import com.android.internal.R;
public class KeyguardViewManager {
private final static boolean DEBUG = false;
private static String TAG = "KeyguardViewManager";
- public static boolean USE_UPPER_CASE = false;
+ public static boolean USE_UPPER_CASE = true;
private final Context mContext;
private final ViewManager mViewManager;
diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java
index 8ec67c401b20..e77f8cf24bcc 100644
--- a/services/java/com/android/server/AppWidgetServiceImpl.java
+++ b/services/java/com/android/server/AppWidgetServiceImpl.java
@@ -534,6 +534,7 @@ class AppWidgetServiceImpl {
final long ident = Binder.clearCallingIdentity();
try {
synchronized (mAppWidgetIds) {
+ options = cloneIfLocalBinder(options);
ensureStateLoadedLocked();
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
if (id == null) {
@@ -817,7 +818,7 @@ class AppWidgetServiceImpl {
ensureStateLoadedLocked();
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
if (id != null && id.provider != null && !id.provider.zombie) {
- return id.provider.info;
+ return cloneIfLocalBinder(id.provider.info);
}
return null;
}
@@ -828,7 +829,7 @@ class AppWidgetServiceImpl {
ensureStateLoadedLocked();
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
if (id != null) {
- return id.views;
+ return cloneIfLocalBinder(id.views);
}
return null;
}
@@ -842,7 +843,7 @@ class AppWidgetServiceImpl {
for (int i = 0; i < N; i++) {
Provider p = mInstalledProviders.get(i);
if (!p.zombie) {
- result.add(p.info);
+ result.add(cloneIfLocalBinder(p.info));
}
}
return result;
@@ -881,6 +882,7 @@ class AppWidgetServiceImpl {
public void updateAppWidgetOptions(int appWidgetId, Bundle options) {
synchronized (mAppWidgetIds) {
+ options = cloneIfLocalBinder(options);
ensureStateLoadedLocked();
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
@@ -907,7 +909,7 @@ class AppWidgetServiceImpl {
ensureStateLoadedLocked();
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
if (id != null && id.options != null) {
- return id.options;
+ return cloneIfLocalBinder(id.options);
} else {
return Bundle.EMPTY;
}
@@ -1062,6 +1064,34 @@ class AppWidgetServiceImpl {
}
}
+ private boolean isLocalBinder() {
+ return Process.myPid() == Binder.getCallingPid();
+ }
+
+ private RemoteViews cloneIfLocalBinder(RemoteViews rv) {
+ if (isLocalBinder() && rv != null) {
+ return rv.clone();
+ }
+ return rv;
+ }
+
+ private AppWidgetProviderInfo cloneIfLocalBinder(AppWidgetProviderInfo info) {
+ if (isLocalBinder() && info != null) {
+ return info.clone();
+ }
+ return info;
+ }
+
+ private Bundle cloneIfLocalBinder(Bundle bundle) {
+ // Note: this is only a shallow copy. For now this will be fine, but it could be problematic
+ // if we start adding objects to the options. Further, it would only be an issue if keyguard
+ // used such options.
+ if (isLocalBinder() && bundle != null) {
+ return (Bundle) bundle.clone();
+ }
+ return bundle;
+ }
+
public int[] startListening(IAppWidgetHost callbacks, String packageName, int hostId,
List<RemoteViews> updatedViews) {
int callingUid = enforceCallingUid(packageName);
@@ -1078,7 +1108,7 @@ class AppWidgetServiceImpl {
for (int i = 0; i < N; i++) {
AppWidgetId id = instances.get(i);
updatedIds[i] = id.appWidgetId;
- updatedViews.add(id.views);
+ updatedViews.add(cloneIfLocalBinder(id.views));
}
return updatedIds;
}
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index 15fc479aa58c..9f01ecae36b6 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -2451,6 +2451,21 @@ class BackupManagerService extends IBackupManager.Stub {
}
}
+ // Cull any packages that run as system-domain uids but do not define their
+ // own backup agents
+ for (int i = 0; i < packagesToBackup.size(); ) {
+ PackageInfo pkg = packagesToBackup.get(i);
+ if ((pkg.applicationInfo.uid < Process.FIRST_APPLICATION_UID)
+ && (pkg.applicationInfo.backupAgentName == null)) {
+ if (MORE_DEBUG) {
+ Slog.i(TAG, "... ignoring non-agent system package " + pkg.packageName);
+ }
+ packagesToBackup.remove(i);
+ } else {
+ i++;
+ }
+ }
+
FileOutputStream ofstream = new FileOutputStream(mOutputFile.getFileDescriptor());
OutputStream out = null;
@@ -3669,29 +3684,37 @@ class BackupManagerService extends IBackupManager.Stub {
// Fall through to IGNORE if the app explicitly disallows backup
final int flags = pkgInfo.applicationInfo.flags;
if ((flags & ApplicationInfo.FLAG_ALLOW_BACKUP) != 0) {
- // Verify signatures against any installed version; if they
- // don't match, then we fall though and ignore the data. The
- // signatureMatch() method explicitly ignores the signature
- // check for packages installed on the system partition, because
- // such packages are signed with the platform cert instead of
- // the app developer's cert, so they're different on every
- // device.
- if (signaturesMatch(sigs, pkgInfo)) {
- if (pkgInfo.versionCode >= version) {
- Slog.i(TAG, "Sig + version match; taking data");
- policy = RestorePolicy.ACCEPT;
+ // Restore system-uid-space packages only if they have
+ // defined a custom backup agent
+ if ((pkgInfo.applicationInfo.uid >= Process.FIRST_APPLICATION_UID)
+ || (pkgInfo.applicationInfo.backupAgentName != null)) {
+ // Verify signatures against any installed version; if they
+ // don't match, then we fall though and ignore the data. The
+ // signatureMatch() method explicitly ignores the signature
+ // check for packages installed on the system partition, because
+ // such packages are signed with the platform cert instead of
+ // the app developer's cert, so they're different on every
+ // device.
+ if (signaturesMatch(sigs, pkgInfo)) {
+ if (pkgInfo.versionCode >= version) {
+ Slog.i(TAG, "Sig + version match; taking data");
+ policy = RestorePolicy.ACCEPT;
+ } else {
+ // The data is from a newer version of the app than
+ // is presently installed. That means we can only
+ // use it if the matching apk is also supplied.
+ Slog.d(TAG, "Data version " + version
+ + " is newer than installed version "
+ + pkgInfo.versionCode + " - requiring apk");
+ policy = RestorePolicy.ACCEPT_IF_APK;
+ }
} else {
- // The data is from a newer version of the app than
- // is presently installed. That means we can only
- // use it if the matching apk is also supplied.
- Slog.d(TAG, "Data version " + version
- + " is newer than installed version "
- + pkgInfo.versionCode + " - requiring apk");
- policy = RestorePolicy.ACCEPT_IF_APK;
+ Slog.w(TAG, "Restore manifest signatures do not match "
+ + "installed application for " + info.packageName);
}
} else {
- Slog.w(TAG, "Restore manifest signatures do not match "
- + "installed application for " + info.packageName);
+ Slog.w(TAG, "Package " + info.packageName
+ + " is system level with no agent");
}
} else {
if (DEBUG) Slog.i(TAG, "Restore manifest from "