Refactor HandlerInjector to SettingsLib

- Plan to share the HandlerInjector class to System UI.

Bug: 194186477
Test: manual test
atest InternetResetHelperTest

Change-Id: I4b1b72ac7742bcfdd89ae61d9f88df1c64224f1f
This commit is contained in:
Weng Su
2021-07-20 23:40:43 +08:00
parent d8762def2c
commit 3563baee28
2 changed files with 8 additions and 26 deletions

View File

@@ -21,7 +21,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Process;
import android.text.TextUtils;
@@ -37,6 +36,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
import com.android.settingslib.utils.HandlerInjector;
import java.util.ArrayList;
import java.util.List;
@@ -86,7 +86,7 @@ public class InternetResetHelper implements LifecycleObserver,
public InternetResetHelper(Context context, Lifecycle lifecycle) {
mContext = context;
mHandlerInjector = new HandlerInjector(context);
mHandlerInjector = new HandlerInjector(context.getMainThreadHandler());
mWifiManager = mContext.getSystemService(WifiManager.class);
mWifiStateFilter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION);
@@ -239,24 +239,4 @@ public class InternetResetHelper implements LifecycleObserver,
mHandlerInjector.postDelayed(mTimeoutRunnable, RESTART_TIMEOUT_MS);
mConnectivitySubsystemsRecoveryManager.triggerSubsystemRestart(null /* reason */, this);
}
/**
* Wrapper for testing compatibility.
*/
@VisibleForTesting
static class HandlerInjector {
protected final Handler mHandler;
HandlerInjector(Context context) {
mHandler = context.getMainThreadHandler();
}
public void postDelayed(Runnable runnable, long delayMillis) {
mHandler.postDelayed(runnable, delayMillis);
}
public void removeCallbacks(Runnable runnable) {
mHandler.removeCallbacks(runnable);
}
}
}

View File

@@ -29,6 +29,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
import com.android.settingslib.utils.HandlerInjector;
import org.junit.Before;
import org.junit.Rule;
@@ -71,12 +73,12 @@ public class InternetResetHelperTest {
private FakeHandlerInjector mFakeHandlerInjector;
private static class FakeHandlerInjector extends InternetResetHelper.HandlerInjector {
private static class FakeHandlerInjector extends HandlerInjector {
private Runnable mRunnable;
FakeHandlerInjector(Context context) {
super(context);
FakeHandlerInjector(Handler handler) {
super(handler);
}
@Override
@@ -104,7 +106,7 @@ public class InternetResetHelperTest {
final Lifecycle lifecycle = mock(Lifecycle.class);
mInternetResetHelper = new InternetResetHelper(mContext, lifecycle);
mInternetResetHelper.mWorkerThread = mWorkerThread;
mFakeHandlerInjector = new FakeHandlerInjector(mContext);
mFakeHandlerInjector = new FakeHandlerInjector(mContext.getMainThreadHandler());
mInternetResetHelper.mHandlerInjector = mFakeHandlerInjector;
mInternetResetHelper.mConnectivitySubsystemsRecoveryManager =
mConnectivitySubsystemsRecoveryManager;