diff options
| author | 2016-12-21 21:11:19 +0000 | |
|---|---|---|
| committer | 2016-12-21 21:11:20 +0000 | |
| commit | febd982cdd61ecad34c4d463fb63d2a4836d26ea (patch) | |
| tree | 3427ae288020ea79fd842582b3dc0e404dac3108 | |
| parent | a93e57f1acbb4bb15a2516018973457bfff8d8d5 (diff) | |
| parent | d18ffd8223282285ab5e6a576976c115e50bd509 (diff) | |
Merge "Avoid Calendar's unexpect change in snapToCycleDay()"
| -rw-r--r-- | core/java/android/net/NetworkPolicyManager.java | 5 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java | 11 |
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; |