Save timezone when setting data cycle reset date.
Bug: 5938567
Change-Id: I9df8da9d030169952098efc04cfde79e3e42e1f8
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index b06dc28..d680e65 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -42,7 +42,6 @@
import static android.net.TrafficStats.UID_TETHERING;
import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
-import static android.text.format.Time.TIMEZONE_UTC;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static com.android.internal.util.Preconditions.checkNotNull;
import static com.android.settings.Utils.prepareCustomPreferencesList;
@@ -86,6 +85,7 @@
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.format.Formatter;
+import android.text.format.Time;
import android.util.Log;
import android.util.SparseArray;
import android.view.LayoutInflater;
@@ -1139,7 +1139,7 @@
final long totalBytes = entry != null ? entry.rxBytes + entry.txBytes : 0;
final String totalPhrase = Formatter.formatFileSize(context, totalBytes);
- final String rangePhrase = formatDateRange(context, start, end, false);
+ final String rangePhrase = formatDateRange(context, start, end);
mUsageSummary.setText(
getString(R.string.data_usage_total_during_range, totalPhrase, rangePhrase));
@@ -1264,7 +1264,7 @@
}
public CycleItem(Context context, long start, long end) {
- this.label = formatDateRange(context, start, end, true);
+ this.label = formatDateRange(context, start, end);
this.start = start;
this.end = end;
}
@@ -1293,14 +1293,13 @@
private static final java.util.Formatter sFormatter = new java.util.Formatter(
sBuilder, Locale.getDefault());
- public static String formatDateRange(Context context, long start, long end, boolean utcTime) {
+ public static String formatDateRange(Context context, long start, long end) {
final int flags = FORMAT_SHOW_DATE | FORMAT_ABBREV_MONTH;
- final String timezone = utcTime ? TIMEZONE_UTC : null;
synchronized (sBuilder) {
sBuilder.setLength(0);
- return DateUtils
- .formatDateRange(context, sFormatter, start, end, flags, timezone).toString();
+ return DateUtils.formatDateRange(context, sFormatter, start, end, flags, null)
+ .toString();
}
}
@@ -1641,7 +1640,8 @@
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
final int cycleDay = cycleDayPicker.getValue();
- editor.setPolicyCycleDay(template, cycleDay);
+ final String cycleTimezone = new Time().timezone;
+ editor.setPolicyCycleDay(template, cycleDay, cycleTimezone);
target.updatePolicy(true);
}
});
diff --git a/src/com/android/settings/net/NetworkPolicyEditor.java b/src/com/android/settings/net/NetworkPolicyEditor.java
index a1c7371..60db637 100644
--- a/src/com/android/settings/net/NetworkPolicyEditor.java
+++ b/src/com/android/settings/net/NetworkPolicyEditor.java
@@ -144,17 +144,20 @@
final Time time = new Time();
time.setToNow();
final int cycleDay = time.monthDay;
+ final String cycleTimezone = time.timezone;
- return new NetworkPolicy(template, cycleDay, WARNING_DISABLED, LIMIT_DISABLED, true);
+ return new NetworkPolicy(
+ template, cycleDay, cycleTimezone, WARNING_DISABLED, LIMIT_DISABLED, true);
}
public int getPolicyCycleDay(NetworkTemplate template) {
return getPolicy(template).cycleDay;
}
- public void setPolicyCycleDay(NetworkTemplate template, int cycleDay) {
+ public void setPolicyCycleDay(NetworkTemplate template, int cycleDay, String cycleTimezone) {
final NetworkPolicy policy = getOrCreatePolicy(template);
policy.cycleDay = cycleDay;
+ policy.cycleTimezone = cycleTimezone;
policy.clearSnooze();
writeAsync();
}
@@ -197,6 +200,7 @@
return modified;
}
+ @Deprecated
public boolean isMobilePolicySplit(String subscriberId) {
boolean has3g = false;
boolean has4g = false;
@@ -216,6 +220,7 @@
return has3g && has4g;
}
+ @Deprecated
public void setMobilePolicySplit(String subscriberId, boolean split) {
if (setMobilePolicySplitInternal(subscriberId, split)) {
writeAsync();
@@ -228,6 +233,7 @@
*
* @return {@code true} when any {@link NetworkPolicy} was mutated.
*/
+ @Deprecated
private boolean setMobilePolicySplitInternal(String subscriberId, boolean split) {
final boolean beforeSplit = isMobilePolicySplit(subscriberId);
@@ -248,7 +254,8 @@
: policy4g;
mPolicies.remove(policy3g);
mPolicies.remove(policy4g);
- mPolicies.add(new NetworkPolicy(templateAll, restrictive.cycleDay,
+ mPolicies.add(new NetworkPolicy(
+ templateAll, restrictive.cycleDay, restrictive.cycleTimezone,
restrictive.warningBytes, restrictive.limitBytes, restrictive.metered));
return true;
@@ -256,9 +263,11 @@
// duplicate existing policy into two rules
final NetworkPolicy policyAll = getPolicy(templateAll);
mPolicies.remove(policyAll);
- mPolicies.add(new NetworkPolicy(template3g, policyAll.cycleDay, policyAll.warningBytes,
+ mPolicies.add(new NetworkPolicy(
+ template3g, policyAll.cycleDay, policyAll.cycleTimezone, policyAll.warningBytes,
policyAll.limitBytes, policyAll.metered));
- mPolicies.add(new NetworkPolicy(template4g, policyAll.cycleDay, policyAll.warningBytes,
+ mPolicies.add(new NetworkPolicy(
+ template4g, policyAll.cycleDay, policyAll.cycleTimezone, policyAll.warningBytes,
policyAll.limitBytes, policyAll.metered));
return true;
} else {
diff --git a/src/com/android/settings/widget/ChartGridView.java b/src/com/android/settings/widget/ChartGridView.java
index b930c62..f358ada 100644
--- a/src/com/android/settings/widget/ChartGridView.java
+++ b/src/com/android/settings/widget/ChartGridView.java
@@ -16,6 +16,8 @@
package com.android.settings.widget;
+import static com.android.settings.DataUsageSummary.formatDateRange;
+
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -30,7 +32,6 @@
import android.util.TypedValue;
import android.view.View;
-import com.android.settings.DataUsageSummary;
import com.android.settings.R;
import com.google.common.base.Preconditions;
@@ -82,8 +83,8 @@
void setBounds(long start, long end) {
final Context context = getContext();
- mLayoutStart = makeLayout(DataUsageSummary.formatDateRange(context, start, start, true));
- mLayoutEnd = makeLayout(DataUsageSummary.formatDateRange(context, end, end, true));
+ mLayoutStart = makeLayout(formatDateRange(context, start, start));
+ mLayoutEnd = makeLayout(formatDateRange(context, end, end));
invalidate();
}