statemachine migration from base to modules-utils

Changes needed in order to not have a hidden dependency used by
modules-utils.
We are replacing the os.test.TestLooper by os.TestLooperManger

Bug: 198418216
Tag: #refactor
Test: atest ModulesUtilsTests
Ignore-AOSP-First: avoid merge-conflict with frameworks/base
Change-Id: I50ef57bdb869f3e8da7235943f34a8c66ce4b498
diff --git a/javatests/com/android/internal/util/StateMachineTest.java b/javatests/com/android/internal/util/StateMachineTest.java
index b85cb9c..ec3b049 100644
--- a/javatests/com/android/internal/util/StateMachineTest.java
+++ b/javatests/com/android/internal/util/StateMachineTest.java
@@ -21,11 +21,13 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.SystemClock;
-import android.os.test.TestLooper;
+import android.os.TestLooperManager;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
+import androidx.test.InstrumentationRegistry;
+
 import com.android.internal.util.StateMachine.LogRec;
 
 import junit.framework.TestCase;
@@ -411,15 +413,22 @@
     public void testStateMachineQuitNowAfterStart() throws Exception {
         if (WAIT_FOR_DEBUGGER) Debug.waitForDebugger();
 
-        TestLooper testLooper = new TestLooper();
-        StateMachineQuitNowAfterStartTest smQuitNowAfterStartTest =
-                new StateMachineQuitNowAfterStartTest(
-                        "smQuitNowAfterStartTest", testLooper.getLooper());
-        smQuitNowAfterStartTest.start();
-        smQuitNowAfterStartTest.quitNow();
-        if (smQuitNowAfterStartTest.isDbg()) tlog("testStateMachineQuitNowAfterStart E");
+        HandlerThread mThread = new HandlerThread("testStateMachineQuitNowAfterStart");
+        mThread.start();
 
-        testLooper.dispatchAll();
+        Looper mLooper = mThread.getLooper();
+        TestLooperManager looperManager = InstrumentationRegistry.getInstrumentation()
+                .acquireLooperManager(mLooper);
+        StateMachineQuitNowAfterStartTest smQuitNowAfterStartTest =
+                new StateMachineQuitNowAfterStartTest("smQuitNowAfterStartTest", mLooper);
+        synchronized(smQuitNowAfterStartTest) {
+            smQuitNowAfterStartTest.start();
+            smQuitNowAfterStartTest.quitNow();
+            if (smQuitNowAfterStartTest.isDbg()) tlog("testStateMachineQuitNowAfterStart E");
+
+            looperManager.release();
+            smQuitNowAfterStartTest.wait();
+        }
         dumpLogRecs(smQuitNowAfterStartTest.mLogRecs);
         assertEquals(2, smQuitNowAfterStartTest.mLogRecs.size());