Merge "Transfer ownership of NetworkStatsFactory to NetworkStatsService." am: bd94f0afd2 am: 92292f556b
am: f189d8ee94
Change-Id: Ibe2fcacb3779b3c6bc484fe6f398475bf5b6383b
This commit is contained in:
@@ -181,6 +181,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
|
||||
private final Context mContext;
|
||||
private final INetworkManagementService mNetworkManager;
|
||||
private final NetworkStatsFactory mStatsFactory;
|
||||
private final AlarmManager mAlarmManager;
|
||||
private final Clock mClock;
|
||||
private final TelephonyManager mTeleManager;
|
||||
@@ -336,8 +337,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
|
||||
NetworkStatsService service = new NetworkStatsService(context, networkManager, alarmManager,
|
||||
wakeLock, getDefaultClock(), TelephonyManager.getDefault(),
|
||||
new DefaultNetworkStatsSettings(context), new NetworkStatsObservers(),
|
||||
getDefaultSystemDir(), getDefaultBaseDir());
|
||||
new DefaultNetworkStatsSettings(context), new NetworkStatsFactory(),
|
||||
new NetworkStatsObservers(), getDefaultSystemDir(), getDefaultBaseDir());
|
||||
service.registerLocalService();
|
||||
|
||||
HandlerThread handlerThread = new HandlerThread(TAG);
|
||||
@@ -354,7 +355,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
NetworkStatsService(Context context, INetworkManagementService networkManager,
|
||||
AlarmManager alarmManager, PowerManager.WakeLock wakeLock, Clock clock,
|
||||
TelephonyManager teleManager, NetworkStatsSettings settings,
|
||||
NetworkStatsObservers statsObservers, File systemDir, File baseDir) {
|
||||
NetworkStatsFactory factory, NetworkStatsObservers statsObservers, File systemDir,
|
||||
File baseDir) {
|
||||
mContext = checkNotNull(context, "missing Context");
|
||||
mNetworkManager = checkNotNull(networkManager, "missing INetworkManagementService");
|
||||
mAlarmManager = checkNotNull(alarmManager, "missing AlarmManager");
|
||||
@@ -362,6 +364,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
mSettings = checkNotNull(settings, "missing NetworkStatsSettings");
|
||||
mTeleManager = checkNotNull(teleManager, "missing TelephonyManager");
|
||||
mWakeLock = checkNotNull(wakeLock, "missing WakeLock");
|
||||
mStatsFactory = checkNotNull(factory, "missing factory");
|
||||
mStatsObservers = checkNotNull(statsObservers, "missing NetworkStatsObservers");
|
||||
mSystemDir = checkNotNull(systemDir, "missing systemDir");
|
||||
mBaseDir = checkNotNull(baseDir, "missing baseDir");
|
||||
@@ -759,14 +762,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
|
||||
// TODO: switch to data layer stats once kernel exports
|
||||
// for now, read network layer stats and flatten across all ifaces
|
||||
final long token = Binder.clearCallingIdentity();
|
||||
final NetworkStats networkLayer;
|
||||
try {
|
||||
networkLayer = mNetworkManager.getNetworkStatsUidDetail(uid,
|
||||
NetworkStats.INTERFACES_ALL);
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(token);
|
||||
}
|
||||
final NetworkStats networkLayer = readNetworkStatsUidDetail(uid, INTERFACES_ALL, TAG_ALL);
|
||||
|
||||
// splice in operation counts
|
||||
networkLayer.spliceOperationsFrom(mUidOperations);
|
||||
@@ -1197,7 +1193,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
mobileIfaces.add(stackedIface);
|
||||
}
|
||||
|
||||
NetworkStatsFactory.noteStackedIface(stackedIface, baseIface);
|
||||
mStatsFactory.noteStackedIface(stackedIface, baseIface);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1227,7 +1223,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
final NetworkStats xtSnapshot = getNetworkStatsXt();
|
||||
Trace.traceEnd(TRACE_TAG_NETWORK);
|
||||
Trace.traceBegin(TRACE_TAG_NETWORK, "snapshotDev");
|
||||
final NetworkStats devSnapshot = mNetworkManager.getNetworkStatsSummaryDev();
|
||||
final NetworkStats devSnapshot = readNetworkStatsSummaryDev();
|
||||
Trace.traceEnd(TRACE_TAG_NETWORK);
|
||||
|
||||
// Tethering snapshot for dev and xt stats. Counts per-interface data from tethering stats
|
||||
@@ -1621,6 +1617,30 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
private NetworkStats readNetworkStatsSummaryDev() {
|
||||
try {
|
||||
return mStatsFactory.readNetworkStatsSummaryDev();
|
||||
} catch (IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private NetworkStats readNetworkStatsSummaryXt() {
|
||||
try {
|
||||
return mStatsFactory.readNetworkStatsSummaryXt();
|
||||
} catch (IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private NetworkStats readNetworkStatsUidDetail(int uid, String[] ifaces, int tag) {
|
||||
try {
|
||||
return mStatsFactory.readNetworkStatsDetail(uid, ifaces, tag);
|
||||
} catch (IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return snapshot of current UID statistics, including any
|
||||
* {@link TrafficStats#UID_TETHERING}, video calling data usage, and {@link #mUidOperations}
|
||||
@@ -1631,8 +1651,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
*/
|
||||
private NetworkStats getNetworkStatsUidDetail(String[] ifaces)
|
||||
throws RemoteException {
|
||||
final NetworkStats uidSnapshot = mNetworkManager.getNetworkStatsUidDetail(UID_ALL,
|
||||
ifaces);
|
||||
final NetworkStats uidSnapshot = readNetworkStatsUidDetail(UID_ALL, ifaces, TAG_ALL);
|
||||
|
||||
// fold tethering stats and operations into uid snapshot
|
||||
final NetworkStats tetherSnapshot = getNetworkStatsTethering(STATS_PER_UID);
|
||||
@@ -1662,7 +1681,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
||||
* Return snapshot of current XT statistics with video calling data usage statistics.
|
||||
*/
|
||||
private NetworkStats getNetworkStatsXt() throws RemoteException {
|
||||
final NetworkStats xtSnapshot = mNetworkManager.getNetworkStatsSummaryXt();
|
||||
final NetworkStats xtSnapshot = readNetworkStatsSummaryXt();
|
||||
|
||||
final TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(
|
||||
Context.TELEPHONY_SERVICE);
|
||||
|
||||
Reference in New Issue
Block a user