Remove setHandler in NetworkStatsService
Currently, internal handler is set by setHandler after constructing NSS object. This was introduced in ag/866187 to access the handler in the unit test. However, the design put NSS in a bad situation where all classes that need handler or executor could not be final and need to be dynamically allocated in order to get a valid handler. Thus, since the usage of handler is removed in previous patch, this change eliminate setHandler by initializing the handler in the constructor. Test: atest FrameworksNetTests Bug: 150664039 Change-Id: I794a24d00b0ca9fdc78091e7b9ab7307e0f034b7
This commit is contained in:
@@ -64,6 +64,7 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
import android.app.usage.NetworkStatsManager;
|
import android.app.usage.NetworkStatsManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -191,15 +192,11 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
PowerManager.WakeLock wakeLock =
|
PowerManager.WakeLock wakeLock =
|
||||||
powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
|
powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
|
||||||
|
|
||||||
mService = new NetworkStatsService(
|
|
||||||
mServiceContext, mNetManager, mAlarmManager, wakeLock, mClock,
|
|
||||||
mServiceContext.getSystemService(TelephonyManager.class), mSettings,
|
|
||||||
mStatsFactory, new NetworkStatsObservers(), mStatsDir, getBaseDir(mStatsDir));
|
|
||||||
mHandlerThread = new HandlerThread("HandlerThread");
|
mHandlerThread = new HandlerThread("HandlerThread");
|
||||||
mHandlerThread.start();
|
final NetworkStatsService.Dependencies deps = makeDependencies();
|
||||||
Handler.Callback callback = new NetworkStatsService.HandlerCallback(mService);
|
mService = new NetworkStatsService(mServiceContext, mNetManager, mAlarmManager, wakeLock,
|
||||||
final Handler handler = new Handler(mHandlerThread.getLooper(), callback);
|
mClock, mServiceContext.getSystemService(TelephonyManager.class), mSettings,
|
||||||
mService.setHandler(handler, callback);
|
mStatsFactory, new NetworkStatsObservers(), mStatsDir, getBaseDir(mStatsDir), deps);
|
||||||
|
|
||||||
mElapsedRealtime = 0L;
|
mElapsedRealtime = 0L;
|
||||||
|
|
||||||
@@ -216,11 +213,21 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
|
|
||||||
// catch INetworkManagementEventObserver during systemReady()
|
// catch INetworkManagementEventObserver during systemReady()
|
||||||
ArgumentCaptor<INetworkManagementEventObserver> networkObserver =
|
ArgumentCaptor<INetworkManagementEventObserver> networkObserver =
|
||||||
ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
|
ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
|
||||||
verify(mNetManager).registerObserver(networkObserver.capture());
|
verify(mNetManager).registerObserver(networkObserver.capture());
|
||||||
mNetworkObserver = networkObserver.getValue();
|
mNetworkObserver = networkObserver.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private NetworkStatsService.Dependencies makeDependencies() {
|
||||||
|
return new NetworkStatsService.Dependencies() {
|
||||||
|
@Override
|
||||||
|
public HandlerThread makeHandlerThread() {
|
||||||
|
return mHandlerThread;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
IoUtils.deleteContents(mStatsDir);
|
IoUtils.deleteContents(mStatsDir);
|
||||||
@@ -233,6 +240,8 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
|||||||
|
|
||||||
mSession.close();
|
mSession.close();
|
||||||
mService = null;
|
mService = null;
|
||||||
|
|
||||||
|
mHandlerThread.quitSafely();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user