summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@android.com> 2016-12-21 21:11:19 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2016-12-21 21:11:20 +0000
commitfebd982cdd61ecad34c4d463fb63d2a4836d26ea (patch)
tree3427ae288020ea79fd842582b3dc0e404dac3108
parenta93e57f1acbb4bb15a2516018973457bfff8d8d5 (diff)
parentd18ffd8223282285ab5e6a576976c115e50bd509 (diff)
Merge "Avoid Calendar's unexpect change in snapToCycleDay()"
-rw-r--r--core/java/android/net/NetworkPolicyManager.java5
-rw-r--r--services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java11
2 files changed, 15 insertions, 1 deletions
diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java
index 11b861aef5aa..22850b4bdb89 100644
--- a/core/java/android/net/NetworkPolicyManager.java
+++ b/core/java/android/net/NetworkPolicyManager.java
@@ -298,8 +298,11 @@ public class NetworkPolicyManager {
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
if (cycleDay > cal.getActualMaximum(Calendar.DAY_OF_MONTH)) {
- cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, 1);
+ cal.set(Calendar.DAY_OF_MONTH, 1);
+ cal.set(Calendar.HOUR_OF_DAY, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
cal.add(Calendar.SECOND, -1);
} else {
cal.set(Calendar.DAY_OF_MONTH, cycleDay);
diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
index ef95fb8f6354..a545af96da70 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
@@ -447,6 +447,17 @@ public class NetworkPolicyManagerServiceTest {
}
@Test
+ public void testLastCycleBoundaryJanuaryDST() throws Exception {
+ final long currentTime = parseTime("1989-01-26T21:00:00.000Z");
+ final long expectedCycle = parseTime("1989-01-01T01:59:59.000Z");
+
+ final NetworkPolicy policy = new NetworkPolicy(
+ sTemplateWifi, 32, "America/Argentina/Buenos_Aires", 1024L, 1024L, false);
+ final long actualCycle = computeLastCycleBoundary(currentTime, policy);
+ assertTimeEquals(expectedCycle, actualCycle);
+ }
+
+ @Test
public void testNetworkPolicyAppliedCycleLastMonth() throws Exception {
NetworkState[] state = null;
NetworkStats stats = null;