Fix bug #15545573 Battery use chart is incorrect for date labels and time axis labels
- use DateFormat.getBestDateTimePattern(...) to get the best Date and Time format depending on the Locale - format the label according to the best format - remove non needed formatting strings Change-Id: I78b62b9a7c9401e47e62c7161214636bb43324fc
This commit is contained in:
@@ -3565,16 +3565,6 @@
|
|||||||
<string name="battery_stats_phone_signal_label">Mobile network signal</string>
|
<string name="battery_stats_phone_signal_label">Mobile network signal</string>
|
||||||
<!-- Battery usage during last unplugged period -->
|
<!-- Battery usage during last unplugged period -->
|
||||||
<string name="battery_stats_last_duration">@string/menu_stats_last_unplugged</string>
|
<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 -->
|
<!-- CPU awake time title -->
|
||||||
<string name="awake">Device awake time</string>
|
<string name="awake">Device awake time</string>
|
||||||
<!-- Wifi on time -->
|
<!-- Wifi on time -->
|
||||||
|
@@ -45,6 +45,7 @@ import libcore.icu.LocaleData;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class BatteryHistoryChart extends View {
|
public class BatteryHistoryChart extends View {
|
||||||
static final boolean DEBUG = false;
|
static final boolean DEBUG = false;
|
||||||
@@ -315,22 +316,11 @@ public class BatteryHistoryChart extends View {
|
|||||||
final String label;
|
final String label;
|
||||||
final int width;
|
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;
|
this.x = x;
|
||||||
if (use24hr) {
|
final String bestFormat = DateFormat.getBestDateTimePattern(
|
||||||
label = context.getString(R.string.battery_stats_hour_24_label,
|
Locale.getDefault(), use24hr ? "km" : "ha");
|
||||||
cal.get(Calendar.HOUR_OF_DAY));
|
label = DateFormat.format(bestFormat, cal).toString();
|
||||||
} 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
width = (int)paint.measureText(label);
|
width = (int)paint.measureText(label);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -340,15 +330,11 @@ public class BatteryHistoryChart extends View {
|
|||||||
final String label;
|
final String label;
|
||||||
final int width;
|
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;
|
this.x = x;
|
||||||
if (dayFirst) {
|
final String bestFormat = DateFormat.getBestDateTimePattern(
|
||||||
label = context.getString(R.string.battery_stats_date_day_first_label,
|
Locale.getDefault(), dayFirst ? "dM" : "Md");
|
||||||
cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.MONTH));
|
label = DateFormat.format(bestFormat, cal).toString();
|
||||||
} else {
|
|
||||||
label = context.getString(R.string.battery_stats_date_month_first_label,
|
|
||||||
cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.MONTH));
|
|
||||||
}
|
|
||||||
width = (int)paint.measureText(label);
|
width = (int)paint.measureText(label);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1033,7 +1019,7 @@ public class BatteryHistoryChart extends View {
|
|||||||
void addTimeLabel(Calendar cal, int levelLeft, int levelRight, boolean is24hr) {
|
void addTimeLabel(Calendar cal, int levelLeft, int levelRight, boolean is24hr) {
|
||||||
final long walltimeStart = mStartWallTime;
|
final long walltimeStart = mStartWallTime;
|
||||||
final long walltimeChange = mEndWallTime-walltimeStart;
|
final long walltimeChange = mEndWallTime-walltimeStart;
|
||||||
mTimeLabels.add(new TimeLabel(getContext(), mTextPaint,
|
mTimeLabels.add(new TimeLabel(mTextPaint,
|
||||||
levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
|
levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
|
||||||
/ walltimeChange),
|
/ walltimeChange),
|
||||||
cal, is24hr));
|
cal, is24hr));
|
||||||
@@ -1042,7 +1028,7 @@ public class BatteryHistoryChart extends View {
|
|||||||
void addDateLabel(Calendar cal, int levelLeft, int levelRight, boolean isDayFirst) {
|
void addDateLabel(Calendar cal, int levelLeft, int levelRight, boolean isDayFirst) {
|
||||||
final long walltimeStart = mStartWallTime;
|
final long walltimeStart = mStartWallTime;
|
||||||
final long walltimeChange = mEndWallTime-walltimeStart;
|
final long walltimeChange = mEndWallTime-walltimeStart;
|
||||||
mDateLabels.add(new DateLabel(getContext(), mTextPaint,
|
mDateLabels.add(new DateLabel(mTextPaint,
|
||||||
levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
|
levelLeft + (int)(((cal.getTimeInMillis()-walltimeStart)*(levelRight-levelLeft))
|
||||||
/ walltimeChange),
|
/ walltimeChange),
|
||||||
cal, isDayFirst));
|
cal, isDayFirst));
|
||||||
|
Reference in New Issue
Block a user