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

Commit 35fcd6b0 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

Merge "Use merged NetworkTemplate to query data usage" into qt-dev

parents 9a086d9f c00a30eb
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -278,6 +278,12 @@ public class NetworkStatsManager {
            return null;
        }

        return querySummary(template, startTime, endTime);
    }

    /** @hide */
    public NetworkStats querySummary(NetworkTemplate template, long startTime,
            long endTime) throws SecurityException, RemoteException {
        NetworkStats result;
        result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
        result.startSummaryEnumeration();
@@ -296,6 +302,13 @@ public class NetworkStatsManager {
            NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL);
    }

    /** @hide */
    public NetworkStats queryDetailsForUid(NetworkTemplate template,
            long startTime, long endTime, int uid) throws SecurityException {
        return queryDetailsForUidTagState(template, startTime, endTime, uid,
                NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL);
    }

    /**
     * Query network usage statistics details for a given uid and tag.
     *
@@ -340,6 +353,13 @@ public class NetworkStatsManager {
        NetworkTemplate template;
        template = createTemplate(networkType, subscriberId);

        return queryDetailsForUidTagState(template, startTime, endTime, uid, tag, state);
    }

    /** @hide */
    public NetworkStats queryDetailsForUidTagState(NetworkTemplate template,
            long startTime, long endTime, int uid, int tag, int state) throws SecurityException {

        NetworkStats result;
        try {
            result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
+1 −3
Original line number Diff line number Diff line
@@ -175,9 +175,7 @@ public class DataUsageController {

    private long getUsageLevel(NetworkTemplate template, long start, long end) {
        try {
            final Bucket bucket = mNetworkStatsManager.querySummaryForDevice(
                    getNetworkType(template), getActiveSubscriberId(),
                    start, end);
            final Bucket bucket = mNetworkStatsManager.querySummaryForDevice(template, start, end);
            if (bucket != null) {
                return bucket.getRxBytes() + bucket.getTxBytes();
            }
+3 −3
Original line number Diff line number Diff line
@@ -37,14 +37,14 @@ public class NetworkCycleChartDataLoader

    private NetworkCycleChartDataLoader(Builder builder) {
        super(builder);
        mData = new ArrayList<NetworkCycleChartData>();
        mData = new ArrayList<>();
    }

    @Override
    void recordUsage(long start, long end) {
        try {
            final NetworkStats.Bucket bucket = mNetworkStatsManager.querySummaryForDevice(
                mNetworkType, mSubId, start, end);
                    mNetworkTemplate, start, end);
            final long total = bucket == null ? 0L : bucket.getRxBytes() + bucket.getTxBytes();
            if (total > 0L) {
                final NetworkCycleChartData.Builder builder = new NetworkCycleChartData.Builder();
@@ -81,7 +81,7 @@ public class NetworkCycleChartDataLoader
            long usage = 0L;
            try {
                final NetworkStats.Bucket bucket = mNetworkStatsManager.querySummaryForDevice(
                    mNetworkType, mSubId, bucketStart, bucketEnd);
                        mNetworkTemplate, bucketStart, bucketEnd);
                if (bucket != null) {
                    usage = bucket.getRxBytes() + bucket.getTxBytes();
                }
+5 −5
Original line number Diff line number Diff line
@@ -23,11 +23,11 @@ import android.app.usage.NetworkStats;
import android.content.Context;
import android.util.Log;

import androidx.annotation.VisibleForTesting;

import java.util.ArrayList;
import java.util.List;

import androidx.annotation.VisibleForTesting;

/**
 * Loader for network data usage history. It returns a list of usage data per billing cycle for the
 * specific Uid(s).
@@ -44,7 +44,7 @@ public class NetworkCycleDataForUidLoader extends
        super(builder);
        mUids = builder.mUids;
        mRetrieveDetail = builder.mRetrieveDetail;
        mData = new ArrayList<NetworkCycleDataForUid>();
        mData = new ArrayList<>();
    }

    @Override
@@ -54,7 +54,7 @@ public class NetworkCycleDataForUidLoader extends
            long totalForeground = 0L;
            for (int uid : mUids) {
                final NetworkStats stats = mNetworkStatsManager.queryDetailsForUid(
                    mNetworkType, mSubId, start, end, uid);
                        mNetworkTemplate, start, end, uid);
                final long usage = getTotalUsage(stats);
                if (usage > 0L) {
                    totalUsage += usage;
@@ -100,7 +100,7 @@ public class NetworkCycleDataForUidLoader extends

    private long getForegroundUsage(long start, long end, int uid) {
        final NetworkStats stats = mNetworkStatsManager.queryDetailsForUidTagState(
            mNetworkType, mSubId, start, end, uid, TAG_NONE, STATE_FOREGROUND);
                mNetworkTemplate, start, end, uid, TAG_NONE, STATE_FOREGROUND);
        return getTotalUsage(stats);
    }

+1 −13
Original line number Diff line number Diff line
@@ -49,18 +49,14 @@ import java.util.Iterator;
public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> {
    private static final String TAG = "NetworkCycleDataLoader";
    protected final NetworkStatsManager mNetworkStatsManager;
    protected final String mSubId;
    protected final int mNetworkType;
    protected final NetworkTemplate mNetworkTemplate;
    private final NetworkPolicy mPolicy;
    private final NetworkTemplate mNetworkTemplate;
    private final ArrayList<Long> mCycles;
    @VisibleForTesting
    final INetworkStatsService mNetworkStatsService;

    protected NetworkCycleDataLoader(Builder<?> builder) {
        super(builder.mContext);
        mSubId = builder.mSubId;
        mNetworkType = builder.mNetworkType;
        mNetworkTemplate = builder.mNetworkTemplate;
        mCycles = builder.mCycles;
        mNetworkStatsManager = (NetworkStatsManager)
@@ -180,8 +176,6 @@ public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> {

    public static abstract class Builder<T extends NetworkCycleDataLoader> {
        private final Context mContext;
        private String mSubId;
        private int mNetworkType;
        private NetworkTemplate mNetworkTemplate;
        private ArrayList<Long> mCycles;

@@ -189,14 +183,8 @@ public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> {
            mContext = context;
        }

        public Builder<T> setSubscriberId(String subId) {
            mSubId = subId;
            return this;
        }

        public Builder<T> setNetworkTemplate(NetworkTemplate template) {
            mNetworkTemplate = template;
            mNetworkType = DataUsageController.getNetworkType(template);
            return this;
        }

Loading