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

Commit 46834287 authored by Aaron Huang's avatar Aaron Huang Committed by Automerger Merge Worker
Browse files

Merge "Have NetworkStats implements iterable" am: f66050e6 am: 466189f0 am: 6827583c

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1952101

Change-Id: I2336742558b1cf368291719e9d30ce5b0a3f6f1a
parents 9cedf463 6827583c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7571,11 +7571,12 @@ package android.net {
    field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
  }
  public final class NetworkStats implements android.os.Parcelable {
  public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable {
    ctor public NetworkStats(long, int);
    method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats);
    method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry);
    method public int describeContents();
    method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator();
    method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR;
+31 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -57,7 +58,7 @@ import java.util.function.Predicate;
 */
// @NotThreadSafe
@SystemApi
public final class NetworkStats implements Parcelable {
public final class NetworkStats implements Parcelable, Iterable<NetworkStats.Entry> {
    private static final String TAG = "NetworkStats";

    /**
@@ -677,6 +678,35 @@ public final class NetworkStats implements Parcelable {
        operations[i] = entry.operations;
    }

    /**
     * Iterate over Entry objects.
     *
     * Return an iterator of this object that will iterate through all contained Entry objects.
     *
     * This iterator does not support concurrent modification and makes no guarantee of fail-fast
     * behavior. If any method that can mutate the contents of this object is called while
     * iteration is in progress, either inside the loop or in another thread, then behavior is
     * undefined.
     * The remove() method is not implemented and will throw UnsupportedOperationException.
     * @hide
     */
    @SystemApi
    @NonNull public Iterator<Entry> iterator() {
        return new Iterator<Entry>() {
            int mIndex = 0;

            @Override
            public boolean hasNext() {
                return mIndex < size;
            }

            @Override
            public Entry next() {
                return getValues(mIndex++, null);
            }
        };
    }

    /**
     * Return specific stats entry.
     * @hide