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

Commit 08ce99e2 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Move to INetworkStatsSession with lifecycle.

Explicitly communicate lifecycle, enabling system_server to cache
stats when actively being used.

Bug: 6236498
Change-Id: Ieecc4b1d4fd46aeb5207c4ba9b450e04e9438d00
parent 11ca81e1
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -69,11 +69,13 @@ import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.INetworkPolicyManager;
import android.net.INetworkStatsService;
import android.net.INetworkStatsSession;
import android.net.NetworkPolicy;
import android.net.NetworkPolicyManager;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.net.TrafficStats;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.INetworkManagementService;
@@ -186,6 +188,8 @@ public class DataUsageSummary extends Fragment {
    private NetworkPolicyManager mPolicyManager;
    private ConnectivityManager mConnService;

    private INetworkStatsSession mStatsSession;

    private static final String PREF_FILE = "data_usage";
    private static final String PREF_SHOW_WIFI = "show_wifi";
    private static final String PREF_SHOW_ETHERNET = "show_ethernet";
@@ -285,6 +289,12 @@ public class DataUsageSummary extends Fragment {

        mUidDetailProvider = new UidDetailProvider(context);

        try {
            mStatsSession = mStatsService.openSession();
        } catch (RemoteException e) {
            throw new RuntimeException(e);
        }

        mTabHost = (TabHost) view.findViewById(android.R.id.tabhost);
        mTabsContainer = (ViewGroup) view.findViewById(R.id.tabs_container);
        mTabWidget = (TabWidget) view.findViewById(android.R.id.tabs);
@@ -533,6 +543,8 @@ public class DataUsageSummary extends Fragment {

        mUidDetailProvider.clearCache();
        mUidDetailProvider = null;

        TrafficStats.closeQuietly(mStatsSession);
    }

    @Override
@@ -1139,7 +1151,7 @@ public class DataUsageSummary extends Fragment {
            ChartData>() {
        /** {@inheritDoc} */
        public Loader<ChartData> onCreateLoader(int id, Bundle args) {
            return new ChartDataLoader(getActivity(), mStatsService, args);
            return new ChartDataLoader(getActivity(), mStatsSession, args);
        }

        /** {@inheritDoc} */
@@ -1170,7 +1182,7 @@ public class DataUsageSummary extends Fragment {
            NetworkStats>() {
        /** {@inheritDoc} */
        public Loader<NetworkStats> onCreateLoader(int id, Bundle args) {
            return new SummaryForAllUidLoader(getActivity(), mStatsService, args);
            return new SummaryForAllUidLoader(getActivity(), mStatsSession, args);
        }

        /** {@inheritDoc} */
+6 −6
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import static android.net.NetworkStatsHistory.FIELD_TX_BYTES;

import android.content.AsyncTaskLoader;
import android.content.Context;
import android.net.INetworkStatsService;
import android.net.INetworkStatsSession;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.os.Bundle;
@@ -40,7 +40,7 @@ public class ChartDataLoader extends AsyncTaskLoader<ChartData> {
    private static final String KEY_APP = "app";
    private static final String KEY_FIELDS = "fields";

    private final INetworkStatsService mStatsService;
    private final INetworkStatsSession mSession;
    private final Bundle mArgs;

    public static Bundle buildArgs(NetworkTemplate template, AppItem app) {
@@ -55,9 +55,9 @@ public class ChartDataLoader extends AsyncTaskLoader<ChartData> {
        return args;
    }

    public ChartDataLoader(Context context, INetworkStatsService statsService, Bundle args) {
    public ChartDataLoader(Context context, INetworkStatsSession session, Bundle args) {
        super(context);
        mStatsService = statsService;
        mSession = session;
        mArgs = args;
    }

@@ -85,7 +85,7 @@ public class ChartDataLoader extends AsyncTaskLoader<ChartData> {
    private ChartData loadInBackground(NetworkTemplate template, AppItem app, int fields)
            throws RemoteException {
        final ChartData data = new ChartData();
        data.network = mStatsService.getHistoryForNetwork(template, fields);
        data.network = mSession.getHistoryForNetwork(template, fields);

        if (app != null) {
            data.detailDefault = null;
@@ -128,7 +128,7 @@ public class ChartDataLoader extends AsyncTaskLoader<ChartData> {
    private NetworkStatsHistory collectHistoryForUid(
            NetworkTemplate template, int uid, int set, NetworkStatsHistory existing)
            throws RemoteException {
        final NetworkStatsHistory history = mStatsService.getHistoryForUid(
        final NetworkStatsHistory history = mSession.getHistoryForUid(
                template, uid, set, TAG_NONE, FIELD_RX_BYTES | FIELD_TX_BYTES);

        if (existing != null) {
+5 −6
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ package com.android.settings.net;

import android.content.AsyncTaskLoader;
import android.content.Context;
import android.net.INetworkStatsService;
import android.net.INetworkStatsSession;
import android.net.NetworkStats;
import android.net.NetworkTemplate;
import android.os.Bundle;
@@ -29,7 +29,7 @@ public class SummaryForAllUidLoader extends AsyncTaskLoader<NetworkStats> {
    private static final String KEY_START = "start";
    private static final String KEY_END = "end";

    private final INetworkStatsService mStatsService;
    private final INetworkStatsSession mSession;
    private final Bundle mArgs;

    public static Bundle buildArgs(NetworkTemplate template, long start, long end) {
@@ -40,10 +40,9 @@ public class SummaryForAllUidLoader extends AsyncTaskLoader<NetworkStats> {
        return args;
    }

    public SummaryForAllUidLoader(
            Context context, INetworkStatsService statsService, Bundle args) {
    public SummaryForAllUidLoader(Context context, INetworkStatsSession session, Bundle args) {
        super(context);
        mStatsService = statsService;
        mSession = session;
        mArgs = args;
    }

@@ -60,7 +59,7 @@ public class SummaryForAllUidLoader extends AsyncTaskLoader<NetworkStats> {
        final long end = mArgs.getLong(KEY_END);

        try {
            return mStatsService.getSummaryForAllUid(template, start, end, false);
            return mSession.getSummaryForAllUid(template, start, end, false);
        } catch (RemoteException e) {
            return null;
        }