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

Commit fcde0225 authored by Lei Yu's avatar Lei Yu Committed by android-build-merger
Browse files

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

am: 35fcd6b0

Change-Id: I1030f49eb9e24ad8bc4a10c3ab8890c34d20f8f6
parents 0937d639 35fcd6b0
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