Merge change I61343808 into eclair-mr2

* changes:
  Remove external/protobuf from the build, now that it's been moved to vendor/google/libraries.
diff --git a/core/java/android/os/LocalPowerManager.java b/core/java/android/os/LocalPowerManager.java
index 2c6b29a..3fe21d9 100644
--- a/core/java/android/os/LocalPowerManager.java
+++ b/core/java/android/os/LocalPowerManager.java
@@ -45,4 +45,6 @@
 
     // the same as the method on PowerManager
     public void userActivity(long time, boolean noChangeLights, int eventType);
+
+    boolean isScreenOn();
 }
diff --git a/core/java/android/pim/vcard/VCardComposer.java b/core/java/android/pim/vcard/VCardComposer.java
index b7ad7df..bbd19fb 100644
--- a/core/java/android/pim/vcard/VCardComposer.java
+++ b/core/java/android/pim/vcard/VCardComposer.java
@@ -2378,8 +2378,10 @@
         appendVCardLine(builder, Constants.PROPERTY_FN, phoneName, needCharset, false);
         appendVCardLine(builder, Constants.PROPERTY_N, phoneName, needCharset, false);
 
-        String label = Integer.toString(phonetype);
-        appendVCardTelephoneLine(builder, phonetype, label, phoneNumber, false);
+        if (!TextUtils.isEmpty(phoneNumber)) {
+            String label = Integer.toString(phonetype);
+            appendVCardTelephoneLine(builder, phonetype, label, phoneNumber, false);
+        }
 
         appendVCardLine(builder, Constants.PROPERTY_END, VCARD_DATA_VCARD);
 
diff --git a/core/java/com/android/internal/widget/SlidingTab.java b/core/java/com/android/internal/widget/SlidingTab.java
index 6ea6460..7855493 100644
--- a/core/java/com/android/internal/widget/SlidingTab.java
+++ b/core/java/com/android/internal/widget/SlidingTab.java
@@ -37,9 +37,9 @@
 
 /**
  * A special widget containing two Sliders and a threshold for each.  Moving either slider beyond
- * the threshold will cause the registered OnTriggerListener.onTrigger() to be called with 
+ * the threshold will cause the registered OnTriggerListener.onTrigger() to be called with
  * whichHandle being {@link OnTriggerListener#LEFT_HANDLE} or {@link OnTriggerListener#RIGHT_HANDLE}
- * Equivalently, selecting a tab will result in a call to 
+ * Equivalently, selecting a tab will result in a call to
  * {@link OnTriggerListener#onGrabbedStateChange(View, int)} with one of these two states. Releasing
  * the tab will result in whichHandle being {@link OnTriggerListener#NO_HANDLE}.
  *
@@ -122,9 +122,9 @@
     }
 
     /**
-     * Simple container class for all things pertinent to a slider.  
+     * Simple container class for all things pertinent to a slider.
      * A slider consists of 3 Views:
-     * 
+     *
      * {@link #tab} is the tab shown on the screen in the default state.
      * {@link #text} is the view revealed as the user slides the tab out.
      * {@link #target} is the target the user must drag the slider past to trigger the slider.
@@ -153,7 +153,7 @@
 
         /**
          * Constructor
-         * 
+         *
          * @param parent the container view of this one
          * @param tabId drawable for the tab
          * @param barId drawable for the bar
@@ -191,18 +191,17 @@
         void setIcon(int iconId) {
             tab.setImageResource(iconId);
         }
-        
+
         void setTabBackgroundResource(int tabId) {
             tab.setBackgroundResource(tabId);
         }
-        
+
         void setBarBackgroundResource(int barId) {
             text.setBackgroundResource(barId);
         }
-        
+
         void setHintText(int resId) {
-            // TODO: Text should be blank if widget is vertical
-            text.setText(resId); 
+            text.setText(resId);
         }
 
         void hide() {
@@ -354,12 +353,12 @@
         mDensity = r.getDisplayMetrics().density;
         if (DBG) log("- Density: " + mDensity);
 
-        mLeftSlider = new Slider(this, 
-                R.drawable.jog_tab_left_generic, 
+        mLeftSlider = new Slider(this,
+                R.drawable.jog_tab_left_generic,
                 R.drawable.jog_tab_bar_left_generic,
                 R.drawable.jog_tab_target_gray);
-        mRightSlider = new Slider(this, 
-                R.drawable.jog_tab_right_generic, 
+        mRightSlider = new Slider(this,
+                R.drawable.jog_tab_right_generic,
                 R.drawable.jog_tab_bar_right_generic,
                 R.drawable.jog_tab_target_gray);
 
@@ -548,11 +547,11 @@
      * @param iconId the resource ID of the icon drawable
      * @param targetId the resource of the target drawable
      * @param barId the resource of the bar drawable (stateful)
-     * @param tabId the resource of the 
+     * @param tabId the resource of the
      */
     public void setLeftTabResources(int iconId, int targetId, int barId, int tabId) {
         mLeftSlider.setIcon(iconId);
-        mLeftSlider.setTarget(targetId); 
+        mLeftSlider.setTarget(targetId);
         mLeftSlider.setBarBackgroundResource(barId);
         mLeftSlider.setTabBackgroundResource(tabId);
         mLeftSlider.updateDrawableStates();
@@ -564,7 +563,9 @@
      * @param resId
      */
     public void setLeftHintText(int resId) {
-        mLeftSlider.setHintText(resId);
+        if (isHorizontal()) {
+            mLeftSlider.setHintText(resId);
+        }
     }
 
     /**
@@ -576,11 +577,11 @@
      * @param iconId the resource ID of the icon drawable
      * @param targetId the resource of the target drawable
      * @param barId the resource of the bar drawable (stateful)
-     * @param tabId the resource of the 
+     * @param tabId the resource of the
      */
     public void setRightTabResources(int iconId, int targetId, int barId, int tabId) {
         mRightSlider.setIcon(iconId);
-        mRightSlider.setTarget(targetId); 
+        mRightSlider.setTarget(targetId);
         mRightSlider.setBarBackgroundResource(barId);
         mRightSlider.setTabBackgroundResource(tabId);
         mRightSlider.updateDrawableStates();
@@ -592,7 +593,9 @@
      * @param resId
      */
     public void setRightHintText(int resId) {
-        mRightSlider.setHintText(resId);
+        if (isHorizontal()) {
+            mRightSlider.setHintText(resId);
+        }
     }
 
     /**
diff --git a/core/res/res/layout/keyguard_screen_sim_pin_portrait.xml b/core/res/res/layout/keyguard_screen_sim_pin_portrait.xml
index ac404f2..45e96a3 100644
--- a/core/res/res/layout/keyguard_screen_sim_pin_portrait.xml
+++ b/core/res/res/layout/keyguard_screen_sim_pin_portrait.xml
@@ -24,7 +24,7 @@
 
     <LinearLayout android:id="@+id/topDisplayGroup"
         android:layout_width="fill_parent"
-        android:layout_height="115dip"
+        android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
         android:orientation="vertical"
             >
@@ -35,8 +35,9 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="9dip"
             android:gravity="center"
+            android:lines="2"
             android:textAppearance="?android:attr/textAppearanceLarge"
-                />
+            />
 
         <RelativeLayout
             android:layout_width="fill_parent"
diff --git a/core/res/res/values-ar-rEG/donottranslate-cldr.xml b/core/res/res/values-ar-rEG/donottranslate-cldr.xml
index d662590..5819afc 100644
--- a/core/res/res/values-ar-rEG/donottranslate-cldr.xml
+++ b/core/res/res/values-ar-rEG/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s، %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s، %3$s %2$s - %6$s، %8$s %7$s، %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE، d MMMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE، d MMMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-bg-rBG/donottranslate-cldr.xml b/core/res/res/values-bg-rBG/donottranslate-cldr.xml
index f03b060..4c38ad2 100644
--- a/core/res/res/values-bg-rBG/donottranslate-cldr.xml
+++ b/core/res/res/values-bg-rBG/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%3$s %2$s %9$s, %1$s - %8$s %7$s y, %6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">d MMM y, E</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">d MMM yyyy, E</string>
 </resources>
diff --git a/core/res/res/values-ca-rES/donottranslate-cldr.xml b/core/res/res/values-ca-rES/donottranslate-cldr.xml
index a77aa38..52c33d8 100644
--- a/core/res/res/values-ca-rES/donottranslate-cldr.xml
+++ b/core/res/res/values-ca-rES/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s de %2$s de %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s de %2$s - %6$s %8$s de %7$s de %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-cs/donottranslate-cldr.xml b/core/res/res/values-cs/donottranslate-cldr.xml
index 6235b2c..e90e53c 100644
--- a/core/res/res/values-cs/donottranslate-cldr.xml
+++ b/core/res/res/values-cs/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s.-%8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s. %2$s - %6$s %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">E d. MMMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">E d. MMMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-da/donottranslate-cldr.xml b/core/res/res/values-da/donottranslate-cldr.xml
index a731174..b078385 100644
--- a/core/res/res/values-da/donottranslate-cldr.xml
+++ b/core/res/res/values-da/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s.-%8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s d. %3$s. %2$s - %6$s d. %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-de/donottranslate-cldr.xml b/core/res/res/values-de/donottranslate-cldr.xml
index ac6c195..fffcf26 100644
--- a/core/res/res/values-de/donottranslate-cldr.xml
+++ b/core/res/res/values-de/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s. - %8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s. %2$s - %6$s, %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-el/donottranslate-cldr.xml b/core/res/res/values-el/donottranslate-cldr.xml
index a0174f6..75c11b90 100644
--- a/core/res/res/values-el/donottranslate-cldr.xml
+++ b/core/res/res/values-el/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rAU/donottranslate-cldr.xml b/core/res/res/values-en-rAU/donottranslate-cldr.xml
index cb254f3..02c4ece 100644
--- a/core/res/res/values-en-rAU/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rAU/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rCA/donottranslate-cldr.xml b/core/res/res/values-en-rCA/donottranslate-cldr.xml
index 597b0af..446855e 100644
--- a/core/res/res/values-en-rCA/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rCA/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%2$s %3$s-%8$s, %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %2$s %3$s - %6$s, %7$s %8$s, %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, MMMM d</string>
-    <string name="abbrev_wday_month_day_year">E, MMM d, y</string>
+    <string name="full_wday_month_day_no_year">EEEE, MMMM d</string>
+    <string name="abbrev_wday_month_day_year">E, MMM d, yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/donottranslate-cldr.xml b/core/res/res/values-en-rGB/donottranslate-cldr.xml
index 5416b8e..0879d0f 100644
--- a/core/res/res/values-en-rGB/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rGB/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rIE/donottranslate-cldr.xml b/core/res/res/values-en-rIE/donottranslate-cldr.xml
index 93743ba..b611f7a 100644
--- a/core/res/res/values-en-rIE/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rIE/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s - %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/donottranslate-cldr.xml b/core/res/res/values-en-rIN/donottranslate-cldr.xml
index 9de1ba9..0a8ae5a 100644
--- a/core/res/res/values-en-rIN/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rIN/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s - %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rNZ/donottranslate-cldr.xml b/core/res/res/values-en-rNZ/donottranslate-cldr.xml
index e600878..329b268 100644
--- a/core/res/res/values-en-rNZ/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rNZ/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rUS/donottranslate-cldr.xml b/core/res/res/values-en-rUS/donottranslate-cldr.xml
index 14ef2a0..a94fb58 100644
--- a/core/res/res/values-en-rUS/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rUS/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%2$s %3$s – %8$s, %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %2$s %3$s – %6$s, %7$s %8$s, %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, MMMM d</string>
-    <string name="abbrev_wday_month_day_year">EEE, MMM d, y</string>
+    <string name="full_wday_month_day_no_year">EEEE, MMMM d</string>
+    <string name="abbrev_wday_month_day_year">EEE, MMM d, yyyy</string>
 </resources>
diff --git a/core/res/res/values-en-rZA/donottranslate-cldr.xml b/core/res/res/values-en-rZA/donottranslate-cldr.xml
index 7c7529f..7538611 100644
--- a/core/res/res/values-en-rZA/donottranslate-cldr.xml
+++ b/core/res/res/values-en-rZA/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s - %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E dd MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E dd MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/donottranslate-cldr.xml b/core/res/res/values-es-rUS/donottranslate-cldr.xml
index 1ff3f05..1a59c4b 100644
--- a/core/res/res/values-es-rUS/donottranslate-cldr.xml
+++ b/core/res/res/values-es-rUS/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s de %2$s de %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s de %2$s al %6$s %8$s de %7$s de %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d \'de\' MMMM</string>
-    <string name="abbrev_wday_month_day_year">E d \'de\' MMM \'de\' y</string>
+    <string name="full_wday_month_day_no_year">EEEE d \'de\' MMMM</string>
+    <string name="abbrev_wday_month_day_year">E d \'de\' MMM \'de\' yyyy</string>
 </resources>
diff --git a/core/res/res/values-es/donottranslate-cldr.xml b/core/res/res/values-es/donottranslate-cldr.xml
index 7cefcce..206b56d 100644
--- a/core/res/res/values-es/donottranslate-cldr.xml
+++ b/core/res/res/values-es/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s–%8$s de %2$s de %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s de %2$s – %6$s %8$s de %7$s de %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d \'de\' MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d \'de\' MMM \'de\' y</string>
+    <string name="full_wday_month_day_no_year">EEEE d \'de\' MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d \'de\' MMM \'de\' yyyy</string>
 </resources>
diff --git a/core/res/res/values-fi-rFI/donottranslate-cldr.xml b/core/res/res/values-fi-rFI/donottranslate-cldr.xml
index 59cf4ee..ddcc0ea 100644
--- a/core/res/res/values-fi-rFI/donottranslate-cldr.xml
+++ b/core/res/res/values-fi-rFI/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s. – %8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s. %2$s – %6$s %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-fr/donottranslate-cldr.xml b/core/res/res/values-fr/donottranslate-cldr.xml
index 675cb7a..86b8d19 100644
--- a/core/res/res/values-fr/donottranslate-cldr.xml
+++ b/core/res/res/values-fr/donottranslate-cldr.xml
@@ -145,5 +145,5 @@
     <string name="same_year_wday1_mdy1_wday2_mdy2">du %1$s %3$s %2$s au %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
     <string name="full_wday_month_day_no_year">EEE d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-hi-rIN/donottranslate-cldr.xml b/core/res/res/values-hi-rIN/donottranslate-cldr.xml
index d9405d8..00cb965 100644
--- a/core/res/res/values-hi-rIN/donottranslate-cldr.xml
+++ b/core/res/res/values-hi-rIN/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s-%2$s-%3$s – %8$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %9$s-%2$s-%3$s – %6$s, yyyy-%7$s-%8$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-hr-rHR/donottranslate-cldr.xml b/core/res/res/values-hr-rHR/donottranslate-cldr.xml
index 70f4b64..dfcded5 100644
--- a/core/res/res/values-hr-rHR/donottranslate-cldr.xml
+++ b/core/res/res/values-hr-rHR/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s. - %8$s.%2$s.%9$s.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s.%2$s. - %6$s, %8$s.%7$s.%9$s.</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d.MMM.y.</string>
+    <string name="full_wday_month_day_no_year">EEEE, d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d.MMM.yyyy.</string>
 </resources>
diff --git a/core/res/res/values-hu-rHU/donottranslate-cldr.xml b/core/res/res/values-hu-rHU/donottranslate-cldr.xml
index a34c541..553667b 100644
--- a/core/res/res/values-hu-rHU/donottranslate-cldr.xml
+++ b/core/res/res/values-hu-rHU/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s. %2$s %3$s-%8$s.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s. %2$s %3$s., %1$s - %7$s %8$s., %6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">y. MMM d., E</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">yyyy. MMM d., E</string>
 </resources>
diff --git a/core/res/res/values-id-rID/donottranslate-cldr.xml b/core/res/res/values-id-rID/donottranslate-cldr.xml
index 6c1496f..4d4ebb2 100644
--- a/core/res/res/values-id-rID/donottranslate-cldr.xml
+++ b/core/res/res/values-id-rID/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s - %8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">E, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">E, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-it/donottranslate-cldr.xml b/core/res/res/values-it/donottranslate-cldr.xml
index 34941e2..8af25f2 100644
--- a/core/res/res/values-it/donottranslate-cldr.xml
+++ b/core/res/res/values-it/donottranslate-cldr.xml
@@ -145,5 +145,5 @@
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s - %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
     <string name="full_wday_month_day_no_year">EEE d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-ja/donottranslate-cldr.xml b/core/res/res/values-ja/donottranslate-cldr.xml
index d4884bf..7447abc 100644
--- a/core/res/res/values-ja/donottranslate-cldr.xml
+++ b/core/res/res/values-ja/donottranslate-cldr.xml
@@ -145,5 +145,5 @@
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s年%2$s%3$s日 (%1$s)~%7$s%8$s日 (%6$s)</string>
     <string name="short_format_month">%b</string>
     <string name="full_wday_month_day_no_year">M月d日 (E)</string>
-    <string name="abbrev_wday_month_day_year">y年M月d日 (E)</string>
+    <string name="abbrev_wday_month_day_year">yyyy年M月d日 (E)</string>
 </resources>
diff --git a/core/res/res/values-ko/donottranslate-cldr.xml b/core/res/res/values-ko/donottranslate-cldr.xml
index 67a5e7c..cdbd65e 100644
--- a/core/res/res/values-ko/donottranslate-cldr.xml
+++ b/core/res/res/values-ko/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s년 %2$s %3$s일 ~ %8$s일</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s년 %2$s %3$s일 %1$s ~ %7$s %8$s일 %6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">MMMM d일 E</string>
-    <string name="abbrev_wday_month_day_year">y년 MMM d일 EEE</string>
+    <string name="full_wday_month_day_no_year">MMMM d일 EEEE</string>
+    <string name="abbrev_wday_month_day_year">yyyy년 MMM d일 EEE</string>
 </resources>
diff --git a/core/res/res/values-lt-rLT/donottranslate-cldr.xml b/core/res/res/values-lt-rLT/donottranslate-cldr.xml
index 8a8822f..982f993 100644
--- a/core/res/res/values-lt-rLT/donottranslate-cldr.xml
+++ b/core/res/res/values-lt-rLT/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s m. %2$s %3$s-%8$s d.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s m. %2$s %3$s d., %1$s-%7$s %8$s d., %6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">MMMM d \'d\'., E</string>
-    <string name="abbrev_wday_month_day_year">y \'m\'. MMM d \'d\'., E</string>
+    <string name="full_wday_month_day_no_year">MMMM d \'d\'., EEEE</string>
+    <string name="abbrev_wday_month_day_year">yyyy \'m\'. MMM d \'d\'., E</string>
 </resources>
diff --git a/core/res/res/values-lv-rLV/donottranslate-cldr.xml b/core/res/res/values-lv-rLV/donottranslate-cldr.xml
index 3b6e55f..c4000b0 100644
--- a/core/res/res/values-lv-rLV/donottranslate-cldr.xml
+++ b/core/res/res/values-lv-rLV/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s. gada %3$s.-%8$s. %2$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %9$s. gada %3$s. %2$s-%6$s, y. gada %8$s. %7$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d. MMMM</string>
+    <string name="full_wday_month_day_no_year">EEEE, d. MMMM</string>
     <string name="abbrev_wday_month_day_year">EEE, yyyy. \'g\'. dd. MMM</string>
 </resources>
diff --git a/core/res/res/values-nb/donottranslate-cldr.xml b/core/res/res/values-nb/donottranslate-cldr.xml
index 62ec12c..512eb01 100644
--- a/core/res/res/values-nb/donottranslate-cldr.xml
+++ b/core/res/res/values-nb/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s.–%8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s. %2$s–%6$s %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-nl/donottranslate-cldr.xml b/core/res/res/values-nl/donottranslate-cldr.xml
index 101250e..3db9e69 100644
--- a/core/res/res/values-nl/donottranslate-cldr.xml
+++ b/core/res/res/values-nl/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s - %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-pl/donottranslate-cldr.xml b/core/res/res/values-pl/donottranslate-cldr.xml
index 00a6d1c..baff798 100644
--- a/core/res/res/values-pl/donottranslate-cldr.xml
+++ b/core/res/res/values-pl/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s-%6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-pt-rPT/donottranslate-cldr.xml b/core/res/res/values-pt-rPT/donottranslate-cldr.xml
index f11ad2c..25dc7b3 100644
--- a/core/res/res/values-pt-rPT/donottranslate-cldr.xml
+++ b/core/res/res/values-pt-rPT/donottranslate-cldr.xml
@@ -145,5 +145,5 @@
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s de %2$s - %6$s, %8$s de %7$s de %9$s</string>
     <string name="short_format_month">%b</string>
     <string name="full_wday_month_day_no_year">EEE, d \'de\' MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d \'de\' MMM \'de\' y</string>
+    <string name="abbrev_wday_month_day_year">EEE, d \'de\' MMM \'de\' yyyy</string>
 </resources>
diff --git a/core/res/res/values-pt/donottranslate-cldr.xml b/core/res/res/values-pt/donottranslate-cldr.xml
index e80005e..4431877 100644
--- a/core/res/res/values-pt/donottranslate-cldr.xml
+++ b/core/res/res/values-pt/donottranslate-cldr.xml
@@ -145,5 +145,5 @@
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s de %2$s - %6$s, %8$s de %7$s de %9$s</string>
     <string name="short_format_month">%b</string>
     <string name="full_wday_month_day_no_year">EEE, d \'de\' MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d \'de\' MMM \'de\' y</string>
+    <string name="abbrev_wday_month_day_year">EEE, d \'de\' MMM \'de\' yyyy</string>
 </resources>
diff --git a/core/res/res/values-ro-rRO/donottranslate-cldr.xml b/core/res/res/values-ro-rRO/donottranslate-cldr.xml
index ef34103..3e425f0 100644
--- a/core/res/res/values-ro-rRO/donottranslate-cldr.xml
+++ b/core/res/res/values-ro-rRO/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s - %6$s, %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-ru/donottranslate-cldr.xml b/core/res/res/values-ru/donottranslate-cldr.xml
index 1b9938c..8399424 100644
--- a/core/res/res/values-ru/donottranslate-cldr.xml
+++ b/core/res/res/values-ru/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s г.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%3$s %2$s - %8$s %7$s %9$s г.</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">E, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">E, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-sk-rSK/donottranslate-cldr.xml b/core/res/res/values-sk-rSK/donottranslate-cldr.xml
index efd8e6a..32272ea 100644
--- a/core/res/res/values-sk-rSK/donottranslate-cldr.xml
+++ b/core/res/res/values-sk-rSK/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s. - %8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s. %2$s - %6$s %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d. MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d. MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-sl-rSI/donottranslate-cldr.xml b/core/res/res/values-sl-rSI/donottranslate-cldr.xml
index 7bffe0c..e4bc557 100644
--- a/core/res/res/values-sl-rSI/donottranslate-cldr.xml
+++ b/core/res/res/values-sl-rSI/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s.–%8$s. %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s. %2$s–%6$s, %8$s. %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">E, d. MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">E, d. MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-sr-rRS/donottranslate-cldr.xml b/core/res/res/values-sr-rRS/donottranslate-cldr.xml
index 60f81d8..79752ab 100644
--- a/core/res/res/values-sr-rRS/donottranslate-cldr.xml
+++ b/core/res/res/values-sr-rRS/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s.-%8$s. %2$s %9$s.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s. %2$s - %6$s, %8$s. %7$s %9$s.</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E MMMM d</string>
-    <string name="abbrev_wday_month_day_year">EEE, d. MMM y.</string>
+    <string name="full_wday_month_day_no_year">EEEE MMMM d</string>
+    <string name="abbrev_wday_month_day_year">EEE, d. MMM yyyy.</string>
 </resources>
diff --git a/core/res/res/values-sv/donottranslate-cldr.xml b/core/res/res/values-sv/donottranslate-cldr.xml
index 187e1b1..bf688ce 100644
--- a/core/res/res/values-sv/donottranslate-cldr.xml
+++ b/core/res/res/values-sv/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s–%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s – %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-th-rTH/donottranslate-cldr.xml b/core/res/res/values-th-rTH/donottranslate-cldr.xml
index 8970549..85dc3b9 100644
--- a/core/res/res/values-th-rTH/donottranslate-cldr.xml
+++ b/core/res/res/values-th-rTH/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s–%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s %3$s %2$s – %6$s %8$s %7$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-tr/donottranslate-cldr.xml b/core/res/res/values-tr/donottranslate-cldr.xml
index 9e614a6..55b6d1f 100644
--- a/core/res/res/values-tr/donottranslate-cldr.xml
+++ b/core/res/res/values-tr/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s-%8$s %2$s %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%3$s %2$s %1$s - %8$s %7$s %6$s %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">dd MMMM E</string>
-    <string name="abbrev_wday_month_day_year">dd MMM y EEE</string>
+    <string name="full_wday_month_day_no_year">dd MMMM EEEE</string>
+    <string name="abbrev_wday_month_day_year">dd MMM yyyy EEE</string>
 </resources>
diff --git a/core/res/res/values-uk-rUA/donottranslate-cldr.xml b/core/res/res/values-uk-rUA/donottranslate-cldr.xml
index 1b35326..332f845 100644
--- a/core/res/res/values-uk-rUA/donottranslate-cldr.xml
+++ b/core/res/res/values-uk-rUA/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%3$s – %8$s %2$s %9$s р.</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %3$s %2$s – %6$s, %8$s %7$s %9$s р.</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y \'р\'.</string>
+    <string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy \'р\'.</string>
 </resources>
diff --git a/core/res/res/values-vi-rVN/donottranslate-cldr.xml b/core/res/res/values-vi-rVN/donottranslate-cldr.xml
index 30e0887..b7edeb3 100644
--- a/core/res/res/values-vi-rVN/donottranslate-cldr.xml
+++ b/core/res/res/values-vi-rVN/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">Ngày %3$s tháng %2$s - Ngày %8$s tháng M năm %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, ngày %3$s %2$s - %6$s, ngày %8$s %7$s năm %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E d MMMM</string>
-    <string name="abbrev_wday_month_day_year">EEE, d MMM y</string>
+    <string name="full_wday_month_day_no_year">EEEE d MMMM</string>
+    <string name="abbrev_wday_month_day_year">EEE, d MMM yyyy</string>
 </resources>
diff --git a/core/res/res/values-zh-rCN/donottranslate-cldr.xml b/core/res/res/values-zh-rCN/donottranslate-cldr.xml
index e852dd1..bbf7df5 100644
--- a/core/res/res/values-zh-rCN/donottranslate-cldr.xml
+++ b/core/res/res/values-zh-rCN/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s 年 %2$s %3$s - %8$s 日</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s 年 %2$s %3$s 日%1$s - %7$s %8$s 日%6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">MMMM d 日E</string>
-    <string name="abbrev_wday_month_day_year">y 年 MMM d 日EEE</string>
+    <string name="full_wday_month_day_no_year">M 月 d 日E</string>
+    <string name="abbrev_wday_month_day_year">yyyy 年 M 月 d 日EEE</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/donottranslate-cldr.xml b/core/res/res/values-zh-rTW/donottranslate-cldr.xml
index 63293d8..06c9bcc 100644
--- a/core/res/res/values-zh-rTW/donottranslate-cldr.xml
+++ b/core/res/res/values-zh-rTW/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%9$s 年 %2$s %3$s 日至 %8$s 日</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%9$s 年 %2$s %3$s 日%1$s至 %7$s %8$s 日%6$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">MMMM d 日E</string>
-    <string name="abbrev_wday_month_day_year">y 年 MMM d 日EEE</string>
+    <string name="full_wday_month_day_no_year">M 月 d 日E</string>
+    <string name="abbrev_wday_month_day_year">yyyy 年 M 月 d 日EEE</string>
 </resources>
diff --git a/core/res/res/values/donottranslate-cldr.xml b/core/res/res/values/donottranslate-cldr.xml
index 14ef2a0..a94fb58 100644
--- a/core/res/res/values/donottranslate-cldr.xml
+++ b/core/res/res/values/donottranslate-cldr.xml
@@ -144,6 +144,6 @@
     <string name="same_month_mdy1_mdy2">%2$s %3$s – %8$s, %9$s</string>
     <string name="same_year_wday1_mdy1_wday2_mdy2">%1$s, %2$s %3$s – %6$s, %7$s %8$s, %9$s</string>
     <string name="short_format_month">%b</string>
-    <string name="full_wday_month_day_no_year">E, MMMM d</string>
-    <string name="abbrev_wday_month_day_year">EEE, MMM d, y</string>
+    <string name="full_wday_month_day_no_year">EEEE, MMMM d</string>
+    <string name="abbrev_wday_month_day_year">EEE, MMM d, yyyy</string>
 </resources>
diff --git a/graphics/java/android/graphics/AvoidXfermode.java b/graphics/java/android/graphics/AvoidXfermode.java
index d7b0225..2ed042b 100644
--- a/graphics/java/android/graphics/AvoidXfermode.java
+++ b/graphics/java/android/graphics/AvoidXfermode.java
@@ -33,17 +33,20 @@
         final int nativeInt;
     }
     
-    /**
-     * This xfermode will draw the src everywhere except on top of the opColor
-     * or, depending on the Mode, draw only on top of the opColor.
+    /** This xfermode draws, or doesn't draw, based on the destination's
+     * distance from an op-color.
      *
-     * @param opColor The color to avoid (or to target depending on Mode). Note
-     *                that the alpha in opColor is ignored.
-     * @param tolerance How closely we compare a pixel to the opColor.
-     *                  0 - only operate if exact match
-     *                  255 - maximum gradation (blending) based on how
-     *                  similar the pixel is to our opColor (max tolerance)
-     * @param mode If we should avoid or target the opColor
+     * There are two modes, and each mode interprets a tolerance value.
+     *
+     * AVOID: In this mode, drawing is allowed only on destination pixels that
+     * are different from the op-color.
+     *   Tolerance near 0: avoid anything close to the op-color
+     *   Tolerance near 255: avoid only colors very close to the op-color
+     *
+     * TARGET: In this mode, drawing only occurs on destination pixels that
+     * are similar to the op-color
+     *   Tolerance near 0: draw on colors that are very close to op-color
+     *   Tolerance near 255: draw on colors that  to the op-color
      */
     public AvoidXfermode(int opColor, int tolerance, Mode mode) {
         if (tolerance < 0 || tolerance > 255) {
diff --git a/include/ui/Surface.h b/include/ui/Surface.h
index 70303cd..008c297 100644
--- a/include/ui/Surface.h
+++ b/include/ui/Surface.h
@@ -109,7 +109,7 @@
 
     ~SurfaceControl();
 
-    status_t validate(SharedClient const* cblk) const;
+    status_t validate() const;
     void destroy();
     
     sp<SurfaceComposerClient>   mClient;
@@ -190,7 +190,7 @@
 
     status_t getBufferLocked(int index, int usage);
    
-           status_t validate(SharedClient const* cblk) const;
+           status_t validate() const;
 
     inline const GraphicBufferMapper& getBufferMapper() const { return mBufferMapper; }
     inline GraphicBufferMapper& getBufferMapper() { return mBufferMapper; }
diff --git a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
index 1abfd68..79c003f 100644
--- a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
+++ b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -246,10 +246,12 @@
     LOGI("version   : %s", glGetString(GL_VERSION));
     LOGI("extensions: %s", gl_extensions);
 
-    if (strstr(gl_renderer, "PowerVR SGX 530")) {
+    if (strstr(gl_renderer, "PowerVR SGX 530") ||
+        strstr(gl_renderer, "Adreno")) {
         LOGD("Assuming uncached graphics buffers.");
         mFlags &= ~CACHED_BUFFERS;
     }
+
     if (strstr(gl_extensions, "GL_ARB_texture_non_power_of_two")) {
         mFlags |= NPOT_EXTENSION;
     }
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp
index f51ca7a..24ae27f 100644
--- a/libs/ui/Surface.cpp
+++ b/libs/ui/Surface.cpp
@@ -152,96 +152,85 @@
 
 status_t SurfaceControl::setLayer(int32_t layer) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setLayer(mToken, layer);
 }
 status_t SurfaceControl::setPosition(int32_t x, int32_t y) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setPosition(mToken, x, y);
 }
 status_t SurfaceControl::setSize(uint32_t w, uint32_t h) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setSize(mToken, w, h);
 }
 status_t SurfaceControl::hide() {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->hide(mToken);
 }
 status_t SurfaceControl::show(int32_t layer) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->show(mToken, layer);
 }
 status_t SurfaceControl::freeze() {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->freeze(mToken);
 }
 status_t SurfaceControl::unfreeze() {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->unfreeze(mToken);
 }
 status_t SurfaceControl::setFlags(uint32_t flags, uint32_t mask) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setFlags(mToken, flags, mask);
 }
 status_t SurfaceControl::setTransparentRegionHint(const Region& transparent) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setTransparentRegionHint(mToken, transparent);
 }
 status_t SurfaceControl::setAlpha(float alpha) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setAlpha(mToken, alpha);
 }
 status_t SurfaceControl::setMatrix(float dsdx, float dtdx, float dsdy, float dtdy) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setMatrix(mToken, dsdx, dtdx, dsdy, dtdy);
 }
 status_t SurfaceControl::setFreezeTint(uint32_t tint) {
     const sp<SurfaceComposerClient>& client(mClient);
-    if (client == 0) return NO_INIT;
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err < 0) return err;
     return client->setFreezeTint(mToken, tint);
 }
 
-status_t SurfaceControl::validate(SharedClient const* cblk) const
+status_t SurfaceControl::validate() const
 {
     if (mToken<0 || mClient==0) {
         LOGE("invalid token (%d, identity=%u) or client (%p)", 
                 mToken, mIdentity, mClient.get());
         return NO_INIT;
     }
+    SharedClient const* cblk = mClient->mControl;
     if (cblk == 0) {
         LOGE("cblk is null (surface id=%d, identity=%u)", mToken, mIdentity);
         return NO_INIT;
@@ -394,7 +383,7 @@
     return mToken>=0 && mClient!=0;
 }
 
-status_t Surface::validate(SharedClient const* cblk) const
+status_t Surface::validate() const
 {
     sp<SurfaceComposerClient> client(getClient());
     if (mToken<0 || mClient==0) {
@@ -402,6 +391,7 @@
                 mToken, mIdentity, client.get());
         return NO_INIT;
     }
+    SharedClient const* cblk = mClient->mControl;
     if (cblk == 0) {
         LOGE("cblk is null (surface id=%d, identity=%u)", mToken, mIdentity);
         return NO_INIT;
@@ -488,7 +478,7 @@
 int Surface::dequeueBuffer(android_native_buffer_t** buffer)
 {
     sp<SurfaceComposerClient> client(getClient());
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err != NO_ERROR)
         return err;
 
@@ -533,7 +523,7 @@
 int Surface::lockBuffer(android_native_buffer_t* buffer)
 {
     sp<SurfaceComposerClient> client(getClient());
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err != NO_ERROR)
         return err;
 
@@ -546,7 +536,7 @@
 int Surface::queueBuffer(android_native_buffer_t* buffer)
 {   
     sp<SurfaceComposerClient> client(getClient());
-    status_t err = validate(client->mControl);
+    status_t err = validate();
     if (err != NO_ERROR)
         return err;
 
diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java
index 5b8e11c..a24555a2 100644
--- a/services/java/com/android/server/WallpaperManagerService.java
+++ b/services/java/com/android/server/WallpaperManagerService.java
@@ -126,6 +126,11 @@
     int mWidth = -1;
     int mHeight = -1;
     String mName = "";
+    
+    /**
+     * The component name of the currently set live wallpaper. This will be null if the
+     * wallpaper uses the built in ImageWallpaper component to display a bitmap.
+     */
     ComponentName mWallpaperComponent;
     WallpaperConnection mWallpaperConnection;
     long mLastDiedTime;
@@ -366,6 +371,7 @@
                     // See if there is a default wallpaper component specified
                     // Only look for this if the wallpaper is not being set to a bitmap
                     realComponentName = ComponentName.unflattenFromString(defaultComponent);
+                    componentName = realComponentName;
                 }
                 if (realComponentName == null) {
                     // Fall back to static image wallpaper
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java
index 86de56b..f3af133 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java
@@ -950,7 +950,6 @@
     @Override
     public int breakText(String text, boolean measureForwards,
                                 float maxWidth, float[] measuredWidth) {
-        // NOTE: javadoc doesn't match. Just a guess.
         return breakText(text,
                 0 /* start */, text.length() /* end */,
                 measureForwards, maxWidth, measuredWidth);
@@ -975,7 +974,18 @@
     @Override
     public int breakText(CharSequence text, int start, int end, boolean measureForwards,
             float maxWidth, float[] measuredWidth) {
-        return super.breakText(text, start, end, measureForwards, maxWidth, measuredWidth);
+        char[] buf = new char[end - start];
+        int result;
+
+        TextUtils.getChars(text, start, end, buf, 0);
+
+        if (measureForwards) {
+            result = breakText(buf, 0, end - start, maxWidth, measuredWidth);
+        } else {
+            result = breakText(buf, 0, -(end - start), maxWidth, measuredWidth);
+        }
+
+        return result;
     }
 
     /**