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.when;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.usage.NetworkStatsManager;
|
||||
import android.content.Context;
|
||||
@@ -191,15 +192,11 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
||||
PowerManager.WakeLock wakeLock =
|
||||
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.start();
|
||||
Handler.Callback callback = new NetworkStatsService.HandlerCallback(mService);
|
||||
final Handler handler = new Handler(mHandlerThread.getLooper(), callback);
|
||||
mService.setHandler(handler, callback);
|
||||
final NetworkStatsService.Dependencies deps = makeDependencies();
|
||||
mService = new NetworkStatsService(mServiceContext, mNetManager, mAlarmManager, wakeLock,
|
||||
mClock, mServiceContext.getSystemService(TelephonyManager.class), mSettings,
|
||||
mStatsFactory, new NetworkStatsObservers(), mStatsDir, getBaseDir(mStatsDir), deps);
|
||||
|
||||
mElapsedRealtime = 0L;
|
||||
|
||||
@@ -221,6 +218,16 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
||||
mNetworkObserver = networkObserver.getValue();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private NetworkStatsService.Dependencies makeDependencies() {
|
||||
return new NetworkStatsService.Dependencies() {
|
||||
@Override
|
||||
public HandlerThread makeHandlerThread() {
|
||||
return mHandlerThread;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
IoUtils.deleteContents(mStatsDir);
|
||||
@@ -233,6 +240,8 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
||||
|
||||
mSession.close();
|
||||
mService = null;
|
||||
|
||||
mHandlerThread.quitSafely();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user