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

Commit e0b8a7ec authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by android-build-merger
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
am: 83b2d00f

Change-Id: I73dc0a154199b9856bf0d1d9dcc7e3c104fe6591
parents 23304af1 83b2d00f
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);
            }