Loading core/java/android/net/NetworkPolicy.java +26 −3 Original line number Diff line number Diff line Loading @@ -31,12 +31,16 @@ import com.android.internal.util.Objects; */ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public static final int CYCLE_NONE = -1; public static final int CYCLE_DAILY = 0; public static final int CYCLE_WEEKLY = 1; public static final int CYCLE_MONTHLY = 2; public static final long WARNING_DISABLED = -1; public static final long LIMIT_DISABLED = -1; public static final long SNOOZE_NEVER = -1; public final NetworkTemplate template; public int cycleDay; public int cycleLength; public String cycleTimezone; public long warningBytes; public long limitBytes; Loading @@ -54,11 +58,26 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { SNOOZE_NEVER, metered, false); } @Deprecated public NetworkPolicy(NetworkTemplate template, int cycleDay, int cycleLength, String cycleTimezone, long warningBytes, long limitBytes, boolean metered) { this(template, cycleDay, cycleLength, cycleTimezone, warningBytes, limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, metered, false); } public NetworkPolicy(NetworkTemplate template, int cycleDay, String cycleTimezone, long warningBytes, long limitBytes, long lastWarningSnooze, long lastLimitSnooze, boolean metered, boolean inferred) { this(template, cycleDay, CYCLE_MONTHLY, cycleTimezone, warningBytes, limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, metered, false); } public NetworkPolicy(NetworkTemplate template, int cycleDay, int cycleLength, String cycleTimezone, long warningBytes, long limitBytes, long lastWarningSnooze, long lastLimitSnooze, boolean metered, boolean inferred) { this.template = checkNotNull(template, "missing NetworkTemplate"); this.cycleDay = cycleDay; this.cycleLength = cycleLength; this.cycleTimezone = checkNotNull(cycleTimezone, "missing cycleTimezone"); this.warningBytes = warningBytes; this.limitBytes = limitBytes; Loading @@ -71,6 +90,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public NetworkPolicy(Parcel in) { template = in.readParcelable(null); cycleDay = in.readInt(); cycleLength = in.readInt(); cycleTimezone = in.readString(); warningBytes = in.readLong(); limitBytes = in.readLong(); Loading @@ -84,6 +104,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(template, flags); dest.writeInt(cycleDay); dest.writeInt(cycleLength); dest.writeString(cycleTimezone); dest.writeLong(warningBytes); dest.writeLong(limitBytes); Loading Loading @@ -146,15 +167,16 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { @Override public int hashCode() { return Objects.hashCode(template, cycleDay, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred); return Objects.hashCode(template, cycleDay, cycleLength, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred); } @Override public boolean equals(Object obj) { if (obj instanceof NetworkPolicy) { final NetworkPolicy other = (NetworkPolicy) obj; return cycleDay == other.cycleDay && warningBytes == other.warningBytes return cycleDay == other.cycleDay && cycleLength == other.cycleLength && warningBytes == other.warningBytes && limitBytes == other.limitBytes && lastWarningSnooze == other.lastWarningSnooze && lastLimitSnooze == other.lastLimitSnooze && metered == other.metered Loading @@ -170,6 +192,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { final StringBuilder builder = new StringBuilder("NetworkPolicy"); builder.append("[").append(template).append("]:"); builder.append(" cycleDay=").append(cycleDay); builder.append(", cycleLength=").append(cycleLength); builder.append(", cycleTimezone=").append(cycleTimezone); builder.append(", warningBytes=").append(warningBytes); builder.append(", limitBytes=").append(limitBytes); Loading core/java/android/net/NetworkPolicyManager.java +55 −22 Original line number Diff line number Diff line Loading @@ -18,6 +18,9 @@ package android.net; import static android.content.pm.PackageManager.GET_SIGNATURES; import static android.net.NetworkPolicy.CYCLE_NONE; import static android.net.NetworkPolicy.CYCLE_DAILY; import static android.net.NetworkPolicy.CYCLE_MONTHLY; import static android.net.NetworkPolicy.CYCLE_WEEKLY; import static android.text.format.Time.MONTH_DAY; import android.content.Context; Loading Loading @@ -161,22 +164,30 @@ public class NetworkPolicyManager { final Time now = new Time(policy.cycleTimezone); now.set(currentTime); // first, find cycle boundary for current month // first, find cycle boundary for current cycle final Time cycle = new Time(now); cycle.hour = cycle.minute = cycle.second = 0; snapToCycleDay(cycle, policy.cycleDay); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); if (Time.compare(cycle, now) >= 0) { // cycle boundary is beyond now, use last cycle boundary; start by // pushing ourselves squarely into last month. final Time lastMonth = new Time(now); lastMonth.hour = lastMonth.minute = lastMonth.second = 0; lastMonth.monthDay = 1; lastMonth.month -= 1; lastMonth.normalize(true); // pushing ourselves squarely into last month, week or day final Time last = new Time(now); last.hour = last.minute = last.second = 0; cycle.set(lastMonth); snapToCycleDay(cycle, policy.cycleDay); if (policy.cycleLength == CYCLE_MONTHLY) { last.monthDay = 1; last.month -= 1; } else if (policy.cycleLength == CYCLE_WEEKLY) { last.monthDay -= 7; } else if (policy.cycleLength == CYCLE_DAILY) { last.monthDay -= 1; } last.normalize(true); cycle.set(last); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); } return cycle.toMillis(true); Loading @@ -191,22 +202,30 @@ public class NetworkPolicyManager { final Time now = new Time(policy.cycleTimezone); now.set(currentTime); // first, find cycle boundary for current month // first, find cycle boundary for current cycle final Time cycle = new Time(now); cycle.hour = cycle.minute = cycle.second = 0; snapToCycleDay(cycle, policy.cycleDay); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); if (Time.compare(cycle, now) <= 0) { // cycle boundary is before now, use next cycle boundary; start by // pushing ourselves squarely into next month. final Time nextMonth = new Time(now); nextMonth.hour = nextMonth.minute = nextMonth.second = 0; nextMonth.monthDay = 1; nextMonth.month += 1; nextMonth.normalize(true); // pushing ourselves squarely into next month, week or day final Time next = new Time(now); next.hour = next.minute = next.second = 0; cycle.set(nextMonth); snapToCycleDay(cycle, policy.cycleDay); if (policy.cycleLength == CYCLE_MONTHLY) { next.monthDay = 1; next.month += 1; } else if (policy.cycleLength == CYCLE_WEEKLY) { next.monthDay += 7; } else if (policy.cycleLength == CYCLE_DAILY) { next.monthDay += 1; } next.normalize(true); cycle.set(next); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); } return cycle.toMillis(true); Loading @@ -230,6 +249,20 @@ public class NetworkPolicyManager { time.normalize(true); } /** * Snap to the cycle day for the current cycle length * * @hide */ public static void snapToCycleDay(Time time, int cycleDay, int cycleLength) { if (cycleLength == CYCLE_MONTHLY) { snapToCycleDay(time, cycleDay); } else if (cycleLength == CYCLE_WEEKLY) { time.monthDay += (cycleDay - time.weekDay); time.normalize(true); } } /** * Check if given UID can have a {@link #setUidPolicy(int, int)} defined, * usually to protect critical system services. Loading services/java/com/android/server/net/NetworkPolicyManagerService.java +20 −8 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static android.net.ConnectivityManager.TYPE_WIFI; import static android.net.ConnectivityManager.TYPE_WIMAX; import static android.net.ConnectivityManager.isNetworkTypeMobile; import static android.net.NetworkPolicy.CYCLE_NONE; import static android.net.NetworkPolicy.CYCLE_MONTHLY; import static android.net.NetworkPolicy.LIMIT_DISABLED; import static android.net.NetworkPolicy.SNOOZE_NEVER; import static android.net.NetworkPolicy.WARNING_DISABLED; Loading Loading @@ -183,7 +184,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final int VERSION_SWITCH_APP_ID = 8; private static final int VERSION_ADDED_NETWORK_ID = 9; private static final int VERSION_SWITCH_UID = 10; private static final int VERSION_LATEST = VERSION_SWITCH_UID; private static final int VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH = 11; private static final int VERSION_LATEST = VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH; @VisibleForTesting public static final int TYPE_WARNING = 0x1; Loading @@ -203,6 +205,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final String ATTR_SUBSCRIBER_ID = "subscriberId"; private static final String ATTR_NETWORK_ID = "networkId"; private static final String ATTR_CYCLE_DAY = "cycleDay"; private static final String ATTR_CYCLE_LENGTH = "cycleLength"; private static final String ATTR_CYCLE_TIMEZONE = "cycleTimezone"; private static final String ATTR_WARNING_BYTES = "warningBytes"; private static final String ATTR_LIMIT_BYTES = "limitBytes"; Loading Loading @@ -585,9 +588,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (policy == null && meteredHint) { // policy doesn't exist, and AP is hinting that it's // metered: create an inferred policy. policy = new NetworkPolicy(template, CYCLE_NONE, Time.TIMEZONE_UTC, WARNING_DISABLED, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, meteredHint, true); policy = new NetworkPolicy(template, CYCLE_NONE, CYCLE_MONTHLY, Time.TIMEZONE_UTC, WARNING_DISABLED, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, meteredHint, true); addNetworkPolicyLocked(policy); } else if (policy != null && policy.inferred) { Loading Loading @@ -1125,11 +1128,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { time.setToNow(); final int cycleDay = time.monthDay; final int cycleLength = CYCLE_MONTHLY; final String cycleTimezone = time.timezone; final NetworkTemplate template = buildTemplateMobileAll(subscriberId); final NetworkPolicy policy = new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, true, true); final NetworkPolicy policy = new NetworkPolicy(template, cycleDay, cycleLength, cycleTimezone, warningBytes, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, true, true); addNetworkPolicyLocked(policy); } } Loading Loading @@ -1171,6 +1176,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { networkId = null; } final int cycleDay = readIntAttribute(in, ATTR_CYCLE_DAY); final int cycleLength; if (version >= VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH) { cycleLength = readIntAttribute(in, ATTR_CYCLE_LENGTH); } else { cycleLength = CYCLE_MONTHLY; } final String cycleTimezone; if (version >= VERSION_ADDED_TIMEZONE) { cycleTimezone = in.getAttributeValue(null, ATTR_CYCLE_TIMEZONE); Loading Loading @@ -1217,8 +1228,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final NetworkTemplate template = new NetworkTemplate( networkTemplate, subscriberId, networkId); mNetworkPolicy.put(template, new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred)); cycleLength, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred)); } else if (TAG_UID_POLICY.equals(tag)) { final int uid = readIntAttribute(in, ATTR_UID); Loading Loading @@ -1302,6 +1313,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { out.attribute(null, ATTR_NETWORK_ID, networkId); } writeIntAttribute(out, ATTR_CYCLE_DAY, policy.cycleDay); writeIntAttribute(out, ATTR_CYCLE_LENGTH, policy.cycleLength); out.attribute(null, ATTR_CYCLE_TIMEZONE, policy.cycleTimezone); writeLongAttribute(out, ATTR_WARNING_BYTES, policy.warningBytes); writeLongAttribute(out, ATTR_LIMIT_BYTES, policy.limitBytes); Loading Loading
core/java/android/net/NetworkPolicy.java +26 −3 Original line number Diff line number Diff line Loading @@ -31,12 +31,16 @@ import com.android.internal.util.Objects; */ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public static final int CYCLE_NONE = -1; public static final int CYCLE_DAILY = 0; public static final int CYCLE_WEEKLY = 1; public static final int CYCLE_MONTHLY = 2; public static final long WARNING_DISABLED = -1; public static final long LIMIT_DISABLED = -1; public static final long SNOOZE_NEVER = -1; public final NetworkTemplate template; public int cycleDay; public int cycleLength; public String cycleTimezone; public long warningBytes; public long limitBytes; Loading @@ -54,11 +58,26 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { SNOOZE_NEVER, metered, false); } @Deprecated public NetworkPolicy(NetworkTemplate template, int cycleDay, int cycleLength, String cycleTimezone, long warningBytes, long limitBytes, boolean metered) { this(template, cycleDay, cycleLength, cycleTimezone, warningBytes, limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, metered, false); } public NetworkPolicy(NetworkTemplate template, int cycleDay, String cycleTimezone, long warningBytes, long limitBytes, long lastWarningSnooze, long lastLimitSnooze, boolean metered, boolean inferred) { this(template, cycleDay, CYCLE_MONTHLY, cycleTimezone, warningBytes, limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, metered, false); } public NetworkPolicy(NetworkTemplate template, int cycleDay, int cycleLength, String cycleTimezone, long warningBytes, long limitBytes, long lastWarningSnooze, long lastLimitSnooze, boolean metered, boolean inferred) { this.template = checkNotNull(template, "missing NetworkTemplate"); this.cycleDay = cycleDay; this.cycleLength = cycleLength; this.cycleTimezone = checkNotNull(cycleTimezone, "missing cycleTimezone"); this.warningBytes = warningBytes; this.limitBytes = limitBytes; Loading @@ -71,6 +90,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public NetworkPolicy(Parcel in) { template = in.readParcelable(null); cycleDay = in.readInt(); cycleLength = in.readInt(); cycleTimezone = in.readString(); warningBytes = in.readLong(); limitBytes = in.readLong(); Loading @@ -84,6 +104,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(template, flags); dest.writeInt(cycleDay); dest.writeInt(cycleLength); dest.writeString(cycleTimezone); dest.writeLong(warningBytes); dest.writeLong(limitBytes); Loading Loading @@ -146,15 +167,16 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { @Override public int hashCode() { return Objects.hashCode(template, cycleDay, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred); return Objects.hashCode(template, cycleDay, cycleLength, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred); } @Override public boolean equals(Object obj) { if (obj instanceof NetworkPolicy) { final NetworkPolicy other = (NetworkPolicy) obj; return cycleDay == other.cycleDay && warningBytes == other.warningBytes return cycleDay == other.cycleDay && cycleLength == other.cycleLength && warningBytes == other.warningBytes && limitBytes == other.limitBytes && lastWarningSnooze == other.lastWarningSnooze && lastLimitSnooze == other.lastLimitSnooze && metered == other.metered Loading @@ -170,6 +192,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> { final StringBuilder builder = new StringBuilder("NetworkPolicy"); builder.append("[").append(template).append("]:"); builder.append(" cycleDay=").append(cycleDay); builder.append(", cycleLength=").append(cycleLength); builder.append(", cycleTimezone=").append(cycleTimezone); builder.append(", warningBytes=").append(warningBytes); builder.append(", limitBytes=").append(limitBytes); Loading
core/java/android/net/NetworkPolicyManager.java +55 −22 Original line number Diff line number Diff line Loading @@ -18,6 +18,9 @@ package android.net; import static android.content.pm.PackageManager.GET_SIGNATURES; import static android.net.NetworkPolicy.CYCLE_NONE; import static android.net.NetworkPolicy.CYCLE_DAILY; import static android.net.NetworkPolicy.CYCLE_MONTHLY; import static android.net.NetworkPolicy.CYCLE_WEEKLY; import static android.text.format.Time.MONTH_DAY; import android.content.Context; Loading Loading @@ -161,22 +164,30 @@ public class NetworkPolicyManager { final Time now = new Time(policy.cycleTimezone); now.set(currentTime); // first, find cycle boundary for current month // first, find cycle boundary for current cycle final Time cycle = new Time(now); cycle.hour = cycle.minute = cycle.second = 0; snapToCycleDay(cycle, policy.cycleDay); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); if (Time.compare(cycle, now) >= 0) { // cycle boundary is beyond now, use last cycle boundary; start by // pushing ourselves squarely into last month. final Time lastMonth = new Time(now); lastMonth.hour = lastMonth.minute = lastMonth.second = 0; lastMonth.monthDay = 1; lastMonth.month -= 1; lastMonth.normalize(true); // pushing ourselves squarely into last month, week or day final Time last = new Time(now); last.hour = last.minute = last.second = 0; cycle.set(lastMonth); snapToCycleDay(cycle, policy.cycleDay); if (policy.cycleLength == CYCLE_MONTHLY) { last.monthDay = 1; last.month -= 1; } else if (policy.cycleLength == CYCLE_WEEKLY) { last.monthDay -= 7; } else if (policy.cycleLength == CYCLE_DAILY) { last.monthDay -= 1; } last.normalize(true); cycle.set(last); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); } return cycle.toMillis(true); Loading @@ -191,22 +202,30 @@ public class NetworkPolicyManager { final Time now = new Time(policy.cycleTimezone); now.set(currentTime); // first, find cycle boundary for current month // first, find cycle boundary for current cycle final Time cycle = new Time(now); cycle.hour = cycle.minute = cycle.second = 0; snapToCycleDay(cycle, policy.cycleDay); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); if (Time.compare(cycle, now) <= 0) { // cycle boundary is before now, use next cycle boundary; start by // pushing ourselves squarely into next month. final Time nextMonth = new Time(now); nextMonth.hour = nextMonth.minute = nextMonth.second = 0; nextMonth.monthDay = 1; nextMonth.month += 1; nextMonth.normalize(true); // pushing ourselves squarely into next month, week or day final Time next = new Time(now); next.hour = next.minute = next.second = 0; cycle.set(nextMonth); snapToCycleDay(cycle, policy.cycleDay); if (policy.cycleLength == CYCLE_MONTHLY) { next.monthDay = 1; next.month += 1; } else if (policy.cycleLength == CYCLE_WEEKLY) { next.monthDay += 7; } else if (policy.cycleLength == CYCLE_DAILY) { next.monthDay += 1; } next.normalize(true); cycle.set(next); snapToCycleDay(cycle, policy.cycleDay, policy.cycleLength); } return cycle.toMillis(true); Loading @@ -230,6 +249,20 @@ public class NetworkPolicyManager { time.normalize(true); } /** * Snap to the cycle day for the current cycle length * * @hide */ public static void snapToCycleDay(Time time, int cycleDay, int cycleLength) { if (cycleLength == CYCLE_MONTHLY) { snapToCycleDay(time, cycleDay); } else if (cycleLength == CYCLE_WEEKLY) { time.monthDay += (cycleDay - time.weekDay); time.normalize(true); } } /** * Check if given UID can have a {@link #setUidPolicy(int, int)} defined, * usually to protect critical system services. Loading
services/java/com/android/server/net/NetworkPolicyManagerService.java +20 −8 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static android.net.ConnectivityManager.TYPE_WIFI; import static android.net.ConnectivityManager.TYPE_WIMAX; import static android.net.ConnectivityManager.isNetworkTypeMobile; import static android.net.NetworkPolicy.CYCLE_NONE; import static android.net.NetworkPolicy.CYCLE_MONTHLY; import static android.net.NetworkPolicy.LIMIT_DISABLED; import static android.net.NetworkPolicy.SNOOZE_NEVER; import static android.net.NetworkPolicy.WARNING_DISABLED; Loading Loading @@ -183,7 +184,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final int VERSION_SWITCH_APP_ID = 8; private static final int VERSION_ADDED_NETWORK_ID = 9; private static final int VERSION_SWITCH_UID = 10; private static final int VERSION_LATEST = VERSION_SWITCH_UID; private static final int VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH = 11; private static final int VERSION_LATEST = VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH; @VisibleForTesting public static final int TYPE_WARNING = 0x1; Loading @@ -203,6 +205,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final String ATTR_SUBSCRIBER_ID = "subscriberId"; private static final String ATTR_NETWORK_ID = "networkId"; private static final String ATTR_CYCLE_DAY = "cycleDay"; private static final String ATTR_CYCLE_LENGTH = "cycleLength"; private static final String ATTR_CYCLE_TIMEZONE = "cycleTimezone"; private static final String ATTR_WARNING_BYTES = "warningBytes"; private static final String ATTR_LIMIT_BYTES = "limitBytes"; Loading Loading @@ -585,9 +588,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (policy == null && meteredHint) { // policy doesn't exist, and AP is hinting that it's // metered: create an inferred policy. policy = new NetworkPolicy(template, CYCLE_NONE, Time.TIMEZONE_UTC, WARNING_DISABLED, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, meteredHint, true); policy = new NetworkPolicy(template, CYCLE_NONE, CYCLE_MONTHLY, Time.TIMEZONE_UTC, WARNING_DISABLED, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, meteredHint, true); addNetworkPolicyLocked(policy); } else if (policy != null && policy.inferred) { Loading Loading @@ -1125,11 +1128,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { time.setToNow(); final int cycleDay = time.monthDay; final int cycleLength = CYCLE_MONTHLY; final String cycleTimezone = time.timezone; final NetworkTemplate template = buildTemplateMobileAll(subscriberId); final NetworkPolicy policy = new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, true, true); final NetworkPolicy policy = new NetworkPolicy(template, cycleDay, cycleLength, cycleTimezone, warningBytes, LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, true, true); addNetworkPolicyLocked(policy); } } Loading Loading @@ -1171,6 +1176,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { networkId = null; } final int cycleDay = readIntAttribute(in, ATTR_CYCLE_DAY); final int cycleLength; if (version >= VERSION_ADDED_DATA_USAGE_CYCLE_LENGTH) { cycleLength = readIntAttribute(in, ATTR_CYCLE_LENGTH); } else { cycleLength = CYCLE_MONTHLY; } final String cycleTimezone; if (version >= VERSION_ADDED_TIMEZONE) { cycleTimezone = in.getAttributeValue(null, ATTR_CYCLE_TIMEZONE); Loading Loading @@ -1217,8 +1228,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final NetworkTemplate template = new NetworkTemplate( networkTemplate, subscriberId, networkId); mNetworkPolicy.put(template, new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred)); cycleLength, cycleTimezone, warningBytes, limitBytes, lastWarningSnooze, lastLimitSnooze, metered, inferred)); } else if (TAG_UID_POLICY.equals(tag)) { final int uid = readIntAttribute(in, ATTR_UID); Loading Loading @@ -1302,6 +1313,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { out.attribute(null, ATTR_NETWORK_ID, networkId); } writeIntAttribute(out, ATTR_CYCLE_DAY, policy.cycleDay); writeIntAttribute(out, ATTR_CYCLE_LENGTH, policy.cycleLength); out.attribute(null, ATTR_CYCLE_TIMEZONE, policy.cycleTimezone); writeLongAttribute(out, ATTR_WARNING_BYTES, policy.warningBytes); writeLongAttribute(out, ATTR_LIMIT_BYTES, policy.limitBytes); Loading