Merge changes I1d1f0d2d,Ifbd4a978
* changes: Communicate with BatteryStatsService through BatteryStatsManager Add a new API in BatteryStatsManager for connectivity service
This commit is contained in:
@@ -1038,6 +1038,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
public IBatteryStats getBatteryStatsService() {
|
public IBatteryStats getBatteryStatsService() {
|
||||||
return BatteryStatsService.getService();
|
return BatteryStatsService.getService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see BatteryStatsManager
|
||||||
|
*/
|
||||||
|
public void reportNetworkInterfaceForTransports(Context context, String iface,
|
||||||
|
int[] transportTypes) {
|
||||||
|
final BatteryStatsManager batteryStats =
|
||||||
|
context.getSystemService(BatteryStatsManager.class);
|
||||||
|
batteryStats.reportNetworkInterfaceForTransports(iface, transportTypes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConnectivityService(Context context) {
|
public ConnectivityService(Context context) {
|
||||||
@@ -6281,13 +6291,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
oldLp != null ? oldLp.getAllInterfaceNames() : null,
|
oldLp != null ? oldLp.getAllInterfaceNames() : null,
|
||||||
newLp != null ? newLp.getAllInterfaceNames() : null);
|
newLp != null ? newLp.getAllInterfaceNames() : null);
|
||||||
if (!interfaceDiff.added.isEmpty()) {
|
if (!interfaceDiff.added.isEmpty()) {
|
||||||
final IBatteryStats bs = mDeps.getBatteryStatsService();
|
|
||||||
for (final String iface : interfaceDiff.added) {
|
for (final String iface : interfaceDiff.added) {
|
||||||
try {
|
try {
|
||||||
if (DBG) log("Adding iface " + iface + " to network " + netId);
|
if (DBG) log("Adding iface " + iface + " to network " + netId);
|
||||||
mNetd.networkAddInterface(netId, iface);
|
mNetd.networkAddInterface(netId, iface);
|
||||||
wakeupModifyInterface(iface, caps, true);
|
wakeupModifyInterface(iface, caps, true);
|
||||||
bs.noteNetworkInterfaceForTransports(iface, caps.getTransportTypes());
|
mDeps.reportNetworkInterfaceForTransports(mContext, iface,
|
||||||
|
caps.getTransportTypes());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
loge("Exception adding interface: " + e);
|
loge("Exception adding interface: " + e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7808,7 +7808,8 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
|
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mBatteryStatsService).noteNetworkInterfaceForTransports(cellLp.getInterfaceName(),
|
verify(mDeps).reportNetworkInterfaceForTransports(mServiceContext,
|
||||||
|
cellLp.getInterfaceName(),
|
||||||
new int[] { TRANSPORT_CELLULAR });
|
new int[] { TRANSPORT_CELLULAR });
|
||||||
reset(mBatteryStatsService);
|
reset(mBatteryStatsService);
|
||||||
|
|
||||||
@@ -7817,7 +7818,8 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, wifiLp);
|
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, wifiLp);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mBatteryStatsService).noteNetworkInterfaceForTransports(wifiLp.getInterfaceName(),
|
verify(mDeps).reportNetworkInterfaceForTransports(mServiceContext,
|
||||||
|
wifiLp.getInterfaceName(),
|
||||||
new int[] { TRANSPORT_WIFI });
|
new int[] { TRANSPORT_WIFI });
|
||||||
reset(mBatteryStatsService);
|
reset(mBatteryStatsService);
|
||||||
|
|
||||||
@@ -7828,7 +7830,8 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
|
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mBatteryStatsService).noteNetworkInterfaceForTransports(cellLp.getInterfaceName(),
|
verify(mDeps).reportNetworkInterfaceForTransports(mServiceContext,
|
||||||
|
cellLp.getInterfaceName(),
|
||||||
new int[] { TRANSPORT_CELLULAR });
|
new int[] { TRANSPORT_CELLULAR });
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
}
|
}
|
||||||
@@ -7912,7 +7915,8 @@ public class ConnectivityServiceTest {
|
|||||||
assertRoutesAdded(cellNetId, ipv6Subnet, defaultRoute);
|
assertRoutesAdded(cellNetId, ipv6Subnet, defaultRoute);
|
||||||
verify(mMockDnsResolver, times(1)).createNetworkCache(eq(cellNetId));
|
verify(mMockDnsResolver, times(1)).createNetworkCache(eq(cellNetId));
|
||||||
verify(mMockNetd, times(1)).networkAddInterface(cellNetId, MOBILE_IFNAME);
|
verify(mMockNetd, times(1)).networkAddInterface(cellNetId, MOBILE_IFNAME);
|
||||||
verify(mBatteryStatsService).noteNetworkInterfaceForTransports(cellLp.getInterfaceName(),
|
verify(mDeps).reportNetworkInterfaceForTransports(mServiceContext,
|
||||||
|
cellLp.getInterfaceName(),
|
||||||
new int[] { TRANSPORT_CELLULAR });
|
new int[] { TRANSPORT_CELLULAR });
|
||||||
|
|
||||||
networkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
networkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
@@ -7933,8 +7937,8 @@ public class ConnectivityServiceTest {
|
|||||||
// Make sure BatteryStats was not told about any v4- interfaces, as none should have
|
// Make sure BatteryStats was not told about any v4- interfaces, as none should have
|
||||||
// come online yet.
|
// come online yet.
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mBatteryStatsService, never()).noteNetworkInterfaceForTransports(startsWith("v4-"),
|
verify(mDeps, never())
|
||||||
any());
|
.reportNetworkInterfaceForTransports(eq(mServiceContext), startsWith("v4-"), any());
|
||||||
|
|
||||||
verifyNoMoreInteractions(mMockNetd);
|
verifyNoMoreInteractions(mMockNetd);
|
||||||
verifyNoMoreInteractions(mMockDnsResolver);
|
verifyNoMoreInteractions(mMockDnsResolver);
|
||||||
@@ -7986,8 +7990,9 @@ public class ConnectivityServiceTest {
|
|||||||
assertTrue(ArrayUtils.contains(resolvrParams.servers, "8.8.8.8"));
|
assertTrue(ArrayUtils.contains(resolvrParams.servers, "8.8.8.8"));
|
||||||
|
|
||||||
for (final LinkProperties stackedLp : stackedLpsAfterChange) {
|
for (final LinkProperties stackedLp : stackedLpsAfterChange) {
|
||||||
verify(mBatteryStatsService).noteNetworkInterfaceForTransports(
|
verify(mDeps).reportNetworkInterfaceForTransports(
|
||||||
stackedLp.getInterfaceName(), new int[] { TRANSPORT_CELLULAR });
|
mServiceContext, stackedLp.getInterfaceName(),
|
||||||
|
new int[] { TRANSPORT_CELLULAR });
|
||||||
}
|
}
|
||||||
reset(mMockNetd);
|
reset(mMockNetd);
|
||||||
when(mMockNetd.interfaceGetCfg(CLAT_PREFIX + MOBILE_IFNAME))
|
when(mMockNetd.interfaceGetCfg(CLAT_PREFIX + MOBILE_IFNAME))
|
||||||
|
|||||||
Reference in New Issue
Block a user