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:
@@ -21,7 +21,6 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -37,6 +36,7 @@ import androidx.preference.Preference;
|
|||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
|
|
||||||
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
|
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
|
||||||
|
import com.android.settingslib.utils.HandlerInjector;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -86,7 +86,7 @@ public class InternetResetHelper implements LifecycleObserver,
|
|||||||
|
|
||||||
public InternetResetHelper(Context context, Lifecycle lifecycle) {
|
public InternetResetHelper(Context context, Lifecycle lifecycle) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mHandlerInjector = new HandlerInjector(context);
|
mHandlerInjector = new HandlerInjector(context.getMainThreadHandler());
|
||||||
mWifiManager = mContext.getSystemService(WifiManager.class);
|
mWifiManager = mContext.getSystemService(WifiManager.class);
|
||||||
mWifiStateFilter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
mWifiStateFilter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
||||||
|
|
||||||
@@ -239,24 +239,4 @@ public class InternetResetHelper implements LifecycleObserver,
|
|||||||
mHandlerInjector.postDelayed(mTimeoutRunnable, RESTART_TIMEOUT_MS);
|
mHandlerInjector.postDelayed(mTimeoutRunnable, RESTART_TIMEOUT_MS);
|
||||||
mConnectivitySubsystemsRecoveryManager.triggerSubsystemRestart(null /* reason */, this);
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
|
||||||
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
|
|||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
|
import com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager;
|
||||||
|
import com.android.settingslib.utils.HandlerInjector;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
@@ -71,12 +73,12 @@ public class InternetResetHelperTest {
|
|||||||
|
|
||||||
private FakeHandlerInjector mFakeHandlerInjector;
|
private FakeHandlerInjector mFakeHandlerInjector;
|
||||||
|
|
||||||
private static class FakeHandlerInjector extends InternetResetHelper.HandlerInjector {
|
private static class FakeHandlerInjector extends HandlerInjector {
|
||||||
|
|
||||||
private Runnable mRunnable;
|
private Runnable mRunnable;
|
||||||
|
|
||||||
FakeHandlerInjector(Context context) {
|
FakeHandlerInjector(Handler handler) {
|
||||||
super(context);
|
super(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -104,7 +106,7 @@ public class InternetResetHelperTest {
|
|||||||
final Lifecycle lifecycle = mock(Lifecycle.class);
|
final Lifecycle lifecycle = mock(Lifecycle.class);
|
||||||
mInternetResetHelper = new InternetResetHelper(mContext, lifecycle);
|
mInternetResetHelper = new InternetResetHelper(mContext, lifecycle);
|
||||||
mInternetResetHelper.mWorkerThread = mWorkerThread;
|
mInternetResetHelper.mWorkerThread = mWorkerThread;
|
||||||
mFakeHandlerInjector = new FakeHandlerInjector(mContext);
|
mFakeHandlerInjector = new FakeHandlerInjector(mContext.getMainThreadHandler());
|
||||||
mInternetResetHelper.mHandlerInjector = mFakeHandlerInjector;
|
mInternetResetHelper.mHandlerInjector = mFakeHandlerInjector;
|
||||||
mInternetResetHelper.mConnectivitySubsystemsRecoveryManager =
|
mInternetResetHelper.mConnectivitySubsystemsRecoveryManager =
|
||||||
mConnectivitySubsystemsRecoveryManager;
|
mConnectivitySubsystemsRecoveryManager;
|
||||||
|
Reference in New Issue
Block a user