Merge "Small fixes to power save UI." into lmp-preview-dev
diff --git a/res/layout/dashboard_category.xml b/res/layout/dashboard_category.xml
index 6e90fa9..afa038b 100644
--- a/res/layout/dashboard_category.xml
+++ b/res/layout/dashboard_category.xml
@@ -23,7 +23,7 @@
     <TextView android:id="@+id/category_title"
             android:layout_width="match_parent"
             android:layout_height="@dimen/dashboard_category_title_height"
-            android:paddingStart="@dimen/dashboard_category_title_padding_start"
+            android:layout_marginStart="@dimen/dashboard_category_title_margin_start"
             android:singleLine="true"
             android:ellipsize="marquee"
             android:gravity="center_vertical"
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
index 51914c9..cdf14d7 100644
--- a/res/layout/switch_bar.xml
+++ b/res/layout/switch_bar.xml
@@ -23,7 +23,7 @@
               android:layout_height="wrap_content"
               android:layout_width="0dp"
               android:layout_weight="1"
-              android:paddingStart="@dimen/switchbar_padding_start"
+              android:layout_marginStart="?attr/switchBarMarginStart"
               android:layout_gravity="center_vertical"
               android:textAppearance="@style/TextAppearance.Switch"
               android:textAlignment="viewStart" />
@@ -32,6 +32,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
-            android:paddingEnd="@dimen/switchbar_padding_end" />
+            android:layout_marginEnd="?attr/switchBarMarginEnd" />
 </merge>
 
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index fe42d69..dcf75e7 100755
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -41,18 +41,22 @@
 
     <!-- ActionBar contentInsetStart -->
     <dimen name="actionbar_contentInsetStart">24dp</dimen>
+    <dimen name="actionbar_subsettings_contentInsetStart">80dp</dimen>
 
-    <!-- Dashboard category title padding start -->
-    <dimen name="dashboard_category_title_padding_start">24dp</dimen>
+    <!-- Dashboard category title margin start -->
+    <dimen name="dashboard_category_title_margin_start">23dp</dimen>
 
     <!-- Dashboard tile image padding start / end -->
     <dimen name="dashboard_tile_image_margin_start">24dp</dimen>
     <dimen name="dashboard_tile_image_margin_end">32dp</dimen>
 
-    <!-- SwitchBar padding start -->
-    <dimen name="switchbar_padding_start">24dp</dimen>
-    <!-- SwitchBar padding end -->
-    <dimen name="switchbar_padding_end">24dp</dimen>
+    <!-- SwitchBar margin start / end -->
+    <dimen name="switchbar_margin_start">24dp</dimen>
+    <dimen name="switchbar_margin_end">24dp</dimen>
+
+    <!-- SwitchBar sub settings margin start / end -->
+    <dimen name="switchbar_subsettings_margin_start">80dp</dimen>
+    <dimen name="switchbar_subsettings_margin_end">24dp</dimen>
 
     <!-- Search title (recent / results) padding start -->
     <dimen name="search_title_padding_start">24dp</dimen>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index c1cb5ae..86cffa9 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -96,4 +96,8 @@
     <declare-styleable name="Preference">
         <attr name="keywords" format="string" />
     </declare-styleable>
+
+    <attr name="switchBarMarginStart" format="dimension" />
+    <attr name="switchBarMarginEnd" format="dimension" />
+
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 12c92c8..d3c4334 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -92,6 +92,7 @@
 
     <!-- ActionBar contentInsetStart -->
     <dimen name="actionbar_contentInsetStart">16dp</dimen>
+    <dimen name="actionbar_subsettings_contentInsetStart">72dp</dimen>
 
     <!-- Dashboard padding between each tiles within the layout -->
     <dimen name="dashboard_cell_gap">1dp</dimen>
@@ -104,8 +105,8 @@
     <!-- Dashboard category title layout height -->
     <dimen name="dashboard_category_title_height">48dp</dimen>
 
-    <!-- Dashboard category title padding start -->
-    <dimen name="dashboard_category_title_padding_start">16dp</dimen>
+    <!-- Dashboard category title margin start -->
+    <dimen name="dashboard_category_title_margin_start">15dp</dimen>
 
     <!-- Dashboard tile minimum height -->
     <dimen name="dashboard_tile_minimum_height">72dp</dimen>
@@ -117,10 +118,13 @@
     <dimen name="dashboard_tile_image_margin_start">16dp</dimen>
     <dimen name="dashboard_tile_image_margin_end">32dp</dimen>
 
-    <!-- SwitchBar padding start -->
-    <dimen name="switchbar_padding_start">16dp</dimen>
-    <!-- SwitchBar padding end. Should be n x @*android:dimen/preference_fragment_padding_side -->
-    <dimen name="switchbar_padding_end">16dp</dimen>
+    <!-- SwitchBar margin start / end -->
+    <dimen name="switchbar_margin_start">16dp</dimen>
+    <dimen name="switchbar_margin_end">16dp</dimen>
+
+    <!-- SwitchBar sub settings margin start / end -->
+    <dimen name="switchbar_subsettings_margin_start">72dp</dimen>
+    <dimen name="switchbar_subsettings_margin_end">16dp</dimen>
 
     <!-- Search Results padding in its container -->
     <dimen name="search_results_padding_start">1dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6b148f8..8ddde44 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3565,16 +3565,6 @@
     <string name="battery_stats_phone_signal_label">Mobile network signal</string>
     <!-- Battery usage during last unplugged period -->
     <string name="battery_stats_last_duration">@string/menu_stats_last_unplugged</string>
-    <!-- [CHAR_LIMIT=5] Label for an hour time when using 24 hour mode -->
-    <string name="battery_stats_hour_24_label"><xliff:g id="time">%1$d</xliff:g>:00</string>
-    <!-- [CHAR_LIMIT=5] Label for an hour time when using 12 hour mode in the AM -->
-    <string name="battery_stats_hour_am_label"><xliff:g id="time">%1$d</xliff:g> AM</string>
-    <!-- [CHAR_LIMIT=5] Label for an hour time when using 12 hour mode in the PM -->
-    <string name="battery_stats_hour_pm_label"><xliff:g id="time">%1$d</xliff:g> PM</string>
-    <!-- [CHAR_LIMIT=3] Label for date of day and month (not year) when the day is shown first -->
-    <string name="battery_stats_date_day_first_label"><xliff:g id="day">%1$d</xliff:g>/<xliff:g id="month">%2$d</xliff:g></string>
-    <!-- [CHAR_LIMIT=3] Label for date of day and month (not year) when the month is shown first -->
-    <string name="battery_stats_date_month_first_label"><xliff:g id="month">%2$d</xliff:g>/<xliff:g id="day">%1$d</xliff:g></string>
     <!-- CPU awake time title -->
     <string name="awake">Device awake time</string>
     <!-- Wifi on time -->
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 82f0bc1..e382de4 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -84,6 +84,9 @@
         <item name="ic_wps">@drawable/ic_wps_dark</item>
         <item name="wifi_signal">@drawable/wifi_signal_dark</item>
 
+        <item name="switchBarMarginStart">@dimen/switchbar_margin_start</item>
+        <item name="switchBarMarginEnd">@dimen/switchbar_margin_end</item>
+
         <!-- Redefine the ActionBar style for contentInsetStart -->
         <item name="android:actionBarStyle">@style/Theme.ActionBar</item>
 
@@ -100,6 +103,18 @@
         <item name="android:contentInsetStart">@dimen/actionbar_contentInsetStart</item>
     </style>
 
+    <style name="Theme.SubSettings" parent="Theme.Settings">
+        <!-- Redefine the ActionBar style for contentInsetStart -->
+        <item name="android:actionBarStyle">@style/Theme.SubSettingsActionBar</item>
+
+        <item name="switchBarMarginStart">@dimen/switchbar_subsettings_margin_start</item>
+        <item name="switchBarMarginEnd">@dimen/switchbar_subsettings_margin_end</item>
+    </style>
+
+    <style name="Theme.SubSettingsActionBar" parent="Theme.ActionBar">
+        <item name="android:contentInsetStart">@dimen/actionbar_subsettings_contentInsetStart</item>
+    </style>
+
     <style name="Theme.DialogWhenLarge" parent="android:style/Theme.Material.Light.DialogWhenLarge">
         <!-- Used by the ActionBar -->
         <item name="android:colorPrimary">@color/theme_primary</item>
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 5ca1f8b..9cce9a1 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -459,6 +459,20 @@
 
         super.onCreate(savedState);
 
+        // Getting Intent properties can only be done after the super.onCreate(...)
+        final String initialFragmentName = getIntent().getStringExtra(EXTRA_SHOW_FRAGMENT);
+
+        mIsShowingDashboard = (initialFragmentName == null);
+
+        final ComponentName cn = getIntent().getComponent();
+        final boolean isShortcut = !cn.getClassName().equals(SubSettings.class.getName());
+
+        // If this is a subsettings (but not a Shortcut) then apply the correct theme for
+        // the ActionBar content inset
+        if (!mIsShowingDashboard && !isShortcut) {
+            setTheme(R.style.Theme_SubSettings);
+        }
+
         setContentView(R.layout.settings_main);
 
         mContent = (ViewGroup) findViewById(R.id.prefs);
@@ -468,11 +482,6 @@
         mDisplayHomeAsUpEnabled = true;
         mDisplaySearch = true;
 
-        // Getting Intent properties can only be done after the super.onCreate(...)
-        final String initialFragmentName = getIntent().getStringExtra(EXTRA_SHOW_FRAGMENT);
-
-        mIsShowingDashboard = (initialFragmentName == null);
-
         if (mIsShowingDashboard) {
             Index.getInstance(getApplicationContext()).update();
         }
@@ -497,9 +506,8 @@
             mDisplaySearch = savedState.getBoolean(SAVE_KEY_SHOW_SEARCH);
         } else {
             if (!mIsShowingDashboard) {
-                final ComponentName cn = getIntent().getComponent();
                 // No UP nor Search is shown we are launched thru a Settings "shortcut"
-                if (!cn.getClassName().equals(SubSettings.class.getName())) {
+                if (isShortcut) {
                     mDisplayHomeAsUpEnabled = false;
                     mDisplaySearch = false;
                 }
diff --git a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java
index 4c6a503..04f4050 100644
--- a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java
+++ b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java
@@ -45,6 +45,7 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Locale;
 
 public class BatteryHistoryChart extends View {
     static final boolean DEBUG = false;
@@ -315,22 +316,11 @@
         final String label;
         final int width;
 
-        TimeLabel(Context context, TextPaint paint, int x, Calendar cal, boolean use24hr) {
+        TimeLabel(TextPaint paint, int x, Calendar cal, boolean use24hr) {
             this.x = x;
-            if (use24hr) {
-                label = context.getString(R.string.battery_stats_hour_24_label,
-                        cal.get(Calendar.HOUR_OF_DAY));
-            } else {
-                int hour = cal.get(Calendar.HOUR);
-                if (hour == 0) {
-                    hour = 12;
-                }
-                if (cal.get(Calendar.AM_PM) == Calendar.AM) {
-                    label = context.getString(R.string.battery_stats_hour_am_label, hour);
-                } else {
-                    label = context.getString(R.string.battery_stats_hour_pm_label, hour);
-                }
-            }
+            final String bestFormat = DateFormat.getBestDateTimePattern(
+                    Locale.getDefault(), use24hr ? "km" : "ha");
+            label = DateFormat.format(bestFormat, cal).toString();
             width = (int)paint.measureText(label);
         }
     }
@@ -340,15 +330,11 @@
         final String label;
         final int width;
 
-        DateLabel(Context context, TextPaint paint, int x, Calendar cal, boolean dayFirst) {
+        DateLabel(TextPaint paint, int x, Calendar cal, boolean dayFirst) {
             this.x = x;
-            if (dayFirst) {
-                label = context.getString(R.string.battery_stats_date_day_first_label,
-                        cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.MONTH));
-            } else {
-                label = context.getString(R.string.battery_stats_date_month_first_label,
-                        cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.MONTH));
-            }
+            final String bestFormat = DateFormat.getBestDateTimePattern(
+                    Locale.getDefault(), dayFirst ? "dM" : "Md");
+            label = DateFormat.format(bestFormat, cal).toString();
             width = (int)paint.measureText(label);
         }
     }
@@ -1033,7 +1019,7 @@
     void addTimeLabel(Calendar cal, int levelLeft, int levelRight, boolean is24hr) {
         final long walltimeStart = mStartWallTime;
         final long walltimeChange = mEndWallTime-walltimeStart;
-        mTimeLabels.add(new TimeLabel(getContext(), mTextPaint,
+        mTimeLabels.add(new TimeLabel(mTextPaint,
                 levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
                         / walltimeChange),
                 cal, is24hr));
@@ -1042,7 +1028,7 @@
     void addDateLabel(Calendar cal, int levelLeft, int levelRight, boolean isDayFirst) {
         final long walltimeStart = mStartWallTime;
         final long walltimeChange = mEndWallTime-walltimeStart;
-        mDateLabels.add(new DateLabel(getContext(), mTextPaint,
+        mDateLabels.add(new DateLabel(mTextPaint,
                 levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
                         / walltimeChange),
                 cal, isDayFirst));