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

Commit 16ef5779 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "API to adjust network stats. DO NOT MERGE." into jb-mr1-dev

parents 18a91725 e7ed1ce4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -45,4 +45,7 @@ interface INetworkStatsService {
    /** Advise persistance threshold; may be overridden internally. */
    void advisePersistThreshold(long thresholdBytes);

    /** Adjust recorded network stats. */
    void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets, long txBytes, long txPackets, long operationCount);

}
+28 −0
Original line number Diff line number Diff line
@@ -88,6 +88,13 @@ public class TrafficStats {
     */
    public static final int TAG_SYSTEM_BACKUP = 0xFFFFFF03;

    /**
     * Default tag value for cloud messaging traffic.
     *
     * @hide
     */
    public static final int TAG_SYSTEM_CLOUD_MESSAGING = 0xFFFFFF04;

    private static INetworkStatsService sStatsService;

    private synchronized static INetworkStatsService getStatsService() {
@@ -246,6 +253,27 @@ public class TrafficStats {
        }
    }

    /**
     * Adjust network statistics for the given UID and tag by the requested
     * amount. This can be used to correctly account network usage performed on
     * behalf of another application. Values can be negative.
     * <p>
     * Requires that caller holds
     * {@link android.Manifest.permission#MODIFY_NETWORK_ACCOUNTING} permission.
     *
     * @see #setThreadStatsUid(int)
     * @hide
     */
    public static void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets,
            long txBytes, long txPackets, long operationCount) {
        try {
            getStatsService().adjustNetworkStats(
                    uid, tag, rxBytes, rxPackets, txBytes, txPackets, operationCount);
        } catch (RemoteException e) {
            throw new RuntimeException(e);
        }
    }

    /** {@hide} */
    public static void closeQuietly(INetworkStatsSession session) {
        // TODO: move to NetworkStatsService once it exists
+8 −0
Original line number Diff line number Diff line
@@ -695,6 +695,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        mGlobalAlertBytes = mSettings.getGlobalAlertBytes(mPersistThreshold);
    }

    @Override
    public void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets, long txBytes,
            long txPackets, long operationCount) {
        mContext.enforceCallingOrSelfPermission(MODIFY_NETWORK_ACCOUNTING, TAG);

        // TODO: store adjusted network stats in separate data structure
    }

    /**
     * Receiver that watches for {@link IConnectivityManager} to claim network
     * interfaces. Used to associate {@link TelephonyManager#getSubscriberId()}