Merge "Import revised translations."
diff --git a/res/drawable-hdpi/data_grid_border.9.png b/res/drawable-hdpi/data_grid_border.9.png
index e963917..699c513 100644
--- a/res/drawable-hdpi/data_grid_border.9.png
+++ b/res/drawable-hdpi/data_grid_border.9.png
Binary files differ
diff --git a/res/drawable-hdpi/data_grid_primary.9.png b/res/drawable-hdpi/data_grid_primary.9.png
index de0acf0..c0ef65f 100644
--- a/res/drawable-hdpi/data_grid_primary.9.png
+++ b/res/drawable-hdpi/data_grid_primary.9.png
Binary files differ
diff --git a/res/drawable-hdpi/data_grid_secondary.9.png b/res/drawable-hdpi/data_grid_secondary.9.png
index 9a69574..dc01a2c 100644
--- a/res/drawable-hdpi/data_grid_secondary.9.png
+++ b/res/drawable-hdpi/data_grid_secondary.9.png
Binary files differ
diff --git a/res/drawable-mdpi/data_grid_border.9.png b/res/drawable-mdpi/data_grid_border.9.png
index ac6b034..699c513 100644
--- a/res/drawable-mdpi/data_grid_border.9.png
+++ b/res/drawable-mdpi/data_grid_border.9.png
Binary files differ
diff --git a/res/drawable-mdpi/data_grid_primary.9.png b/res/drawable-mdpi/data_grid_primary.9.png
index 491f156..83411cf 100644
--- a/res/drawable-mdpi/data_grid_primary.9.png
+++ b/res/drawable-mdpi/data_grid_primary.9.png
Binary files differ
diff --git a/res/drawable-mdpi/data_grid_secondary.9.png b/res/drawable-mdpi/data_grid_secondary.9.png
index 9a69574..23330d1 100644
--- a/res/drawable-mdpi/data_grid_secondary.9.png
+++ b/res/drawable-mdpi/data_grid_secondary.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/data_grid_border.9.png b/res/drawable-xhdpi/data_grid_border.9.png
index 66b7e31..7557115 100644
--- a/res/drawable-xhdpi/data_grid_border.9.png
+++ b/res/drawable-xhdpi/data_grid_border.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/data_grid_primary.9.png b/res/drawable-xhdpi/data_grid_primary.9.png
index b1a3352..ff69fd8 100644
--- a/res/drawable-xhdpi/data_grid_primary.9.png
+++ b/res/drawable-xhdpi/data_grid_primary.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/data_grid_secondary.9.png b/res/drawable-xhdpi/data_grid_secondary.9.png
index 77e30de..09065bf 100644
--- a/res/drawable-xhdpi/data_grid_secondary.9.png
+++ b/res/drawable-xhdpi/data_grid_secondary.9.png
Binary files differ
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 11dd09f..2940442 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -27,6 +27,7 @@
 import android.inputmethodservice.KeyboardView;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Message;
 import android.preference.PreferenceActivity;
 import android.text.Editable;
 import android.text.InputType;
@@ -44,7 +45,6 @@
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-
 public class ChooseLockPassword extends PreferenceActivity {
     public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
     public static final String PASSWORD_MAX_KEY = "lockscreen.password_max";
@@ -98,10 +98,19 @@
         private boolean mIsAlphaMode;
         private Button mCancelButton;
         private Button mNextButton;
-        private static Handler mHandler = new Handler();
         private static final int CONFIRM_EXISTING_REQUEST = 58;
         static final int RESULT_FINISHED = RESULT_FIRST_USER;
         private static final long ERROR_MESSAGE_TIMEOUT = 3000;
+        private static final int MSG_SHOW_ERROR = 1;
+
+        private Handler mHandler = new Handler() {
+            @Override
+            public void handleMessage(Message msg) {
+                if (msg.what == MSG_SHOW_ERROR) {
+                    updateStage((Stage) msg.obj);
+                }
+            }
+        };
 
         /**
          * Keep track internally of where the user is in choosing a pattern.
@@ -235,6 +244,13 @@
         }
 
         @Override
+        public void onPause() {
+            mHandler.removeMessages(MSG_SHOW_ERROR);
+
+            super.onPause();
+        }
+
+        @Override
         public void onSaveInstanceState(Bundle outState) {
             super.onSaveInstanceState(outState);
             outState.putString(KEY_UI_STAGE, mUiStage.name());
@@ -399,11 +415,9 @@
 
         private void showError(String msg, final Stage next) {
             mHeaderText.setText(msg);
-            mHandler.postDelayed(new Runnable() {
-                public void run() {
-                    updateStage(next);
-                }
-            }, ERROR_MESSAGE_TIMEOUT);
+            Message mesg = mHandler.obtainMessage(MSG_SHOW_ERROR, next);
+            mHandler.removeMessages(MSG_SHOW_ERROR);
+            mHandler.sendMessageDelayed(mesg, ERROR_MESSAGE_TIMEOUT);
         }
 
         public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 41286ef..6312682 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -202,8 +202,6 @@
         switch (sipper.drainType) {
             case APP:
             {
-                // TODO: surface tcpBytesSent/tcpBytesReceived again once
-                // measured separately from uid_stats.
                 Uid uid = sipper.uidObj;
                 types = new int[] {
                     R.string.usage_type_cpu,
@@ -211,6 +209,8 @@
                     R.string.usage_type_wake_lock,
                     R.string.usage_type_gps,
                     R.string.usage_type_wifi_running,
+                    R.string.usage_type_data_send,
+                    R.string.usage_type_data_recv,
                     R.string.usage_type_audio,
                     R.string.usage_type_video,
                 };
@@ -220,6 +220,8 @@
                     sipper.wakeLockTime,
                     sipper.gpsTime,
                     sipper.wifiRunningTime,
+                    sipper.tcpBytesSent,
+                    sipper.tcpBytesReceived,
                     0,
                     0
                 };