Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83b2d00f authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Calculate multipath quota excluding current day." into pi-dev...

Merge "Merge "Calculate multipath quota excluding current day." into pi-dev am: 07daad2d" into pi-dev-plus-aosp
parents 35bca7f5 7d3fc9d7
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -230,9 +230,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.nio.charset.StandardCharsets;
import java.time.Clock;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -1749,11 +1751,17 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                final Pair<ZonedDateTime, ZonedDateTime> cycle = plan.cycleIterator().next();
                final long start = cycle.first.toInstant().toEpochMilli();
                final long end = cycle.second.toInstant().toEpochMilli();
                final Instant now = mClock.instant();
                final long startOfDay = ZonedDateTime.ofInstant(now, cycle.first.getZone())
                        .truncatedTo(ChronoUnit.DAYS)
                        .toInstant().toEpochMilli();
                final long totalBytes = getTotalBytes(
                        NetworkTemplate.buildTemplateMobileAll(state.subscriberId), start, end);
                        NetworkTemplate.buildTemplateMobileAll(state.subscriberId),
                        start, startOfDay);
                final long remainingBytes = limitBytes - totalBytes;
                final long remainingDays = Math.max(1, (end - mClock.millis())
                        / TimeUnit.DAYS.toMillis(1));
                // Number of remaining days including current day
                final long remainingDays =
                        1 + ((end - now.toEpochMilli() - 1) / TimeUnit.DAYS.toMillis(1));

                quotaBytes = Math.max(0, (remainingBytes / remainingDays) / 10);
            }