Merge "create library for mainline module" am: c59870928e

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1818896

Change-Id: I048c27593314c00706f29db19b6d20ed4b899ae2
This commit is contained in:
Treehugger Robot
2021-09-07 14:00:18 +00:00
committed by Automerger Merge Worker
4 changed files with 65 additions and 44 deletions

View File

@@ -380,6 +380,27 @@ filegroup {
], ],
} }
java_library {
name: "modules-utils-statemachine",
srcs: [
"com/android/internal/util/IState.java",
"com/android/internal/util/State.java",
"com/android/internal/util/StateMachine.java",
],
libs: [
"framework-annotations-lib",
"unsupportedappusage",
],
sdk_version: "module_current",
min_sdk_version: "29",
visibility: ["//visibility:public"],
apex_available: [
"//apex_available:anyapex",
"//apex_available:platform",
],
}
filegroup { filegroup {
name: "framework-ims-common-shared-srcs", name: "framework-ims-common-shared-srcs",
srcs: [ srcs: [

View File

@@ -27,12 +27,12 @@ import android.os.Message;
public interface IState { public interface IState {
/** /**
* Returned by processMessage to indicate the the message was processed. * Returned by processMessage to indicate the message was processed.
*/ */
static final boolean HANDLED = true; static final boolean HANDLED = true;
/** /**
* Returned by processMessage to indicate the the message was NOT processed. * Returned by processMessage to indicate the message was NOT processed.
*/ */
static final boolean NOT_HANDLED = false; static final boolean NOT_HANDLED = false;

View File

@@ -48,7 +48,7 @@ import java.util.Vector;
* in Object Oriented programming and are used to perform initialization and * in Object Oriented programming and are used to perform initialization and
* cleanup of the state respectively. The <code>getName</code> method returns the * cleanup of the state respectively. The <code>getName</code> method returns the
* name of the state; the default implementation returns the class name. It may be * name of the state; the default implementation returns the class name. It may be
* desirable to have <code>getName</code> return the the state instance name instead, * desirable to have <code>getName</code> return the state instance name instead,
* in particular if a particular state class has multiple instances.</p> * in particular if a particular state class has multiple instances.</p>
* *
* <p>When a state machine is created, <code>addState</code> is used to build the * <p>When a state machine is created, <code>addState</code> is used to build the
@@ -433,14 +433,14 @@ public class StateMachine {
/** /**
* Convenience constant that maybe returned by processMessage * Convenience constant that maybe returned by processMessage
* to indicate the the message was processed and is not to be * to indicate the message was processed and is not to be
* processed by parent states * processed by parent states
*/ */
public static final boolean HANDLED = true; public static final boolean HANDLED = true;
/** /**
* Convenience constant that maybe returned by processMessage * Convenience constant that maybe returned by processMessage
* to indicate the the message was NOT processed and is to be * to indicate the message was NOT processed and is to be
* processed by parent states * processed by parent states
*/ */
public static final boolean NOT_HANDLED = false; public static final boolean NOT_HANDLED = false;

View File

@@ -542,83 +542,83 @@ public class StateMachineTest extends TestCase {
public void testStateMachineEnterExitTransitionToTest() throws Exception { public void testStateMachineEnterExitTransitionToTest() throws Exception {
//if (WAIT_FOR_DEBUGGER) Debug.waitForDebugger(); //if (WAIT_FOR_DEBUGGER) Debug.waitForDebugger();
StateMachineEnterExitTransitionToTest smEnterExitTranstionToTest = StateMachineEnterExitTransitionToTest smEnterExitTransitionToTest =
new StateMachineEnterExitTransitionToTest("smEnterExitTranstionToTest"); new StateMachineEnterExitTransitionToTest("smEnterExitTransitionToTest");
smEnterExitTranstionToTest.start(); smEnterExitTransitionToTest.start();
if (smEnterExitTranstionToTest.isDbg()) { if (smEnterExitTransitionToTest.isDbg()) {
tlog("testStateMachineEnterExitTransitionToTest E"); tlog("testStateMachineEnterExitTransitionToTest E");
} }
synchronized (smEnterExitTranstionToTest) { synchronized (smEnterExitTransitionToTest) {
smEnterExitTranstionToTest.sendMessage(TEST_CMD_1); smEnterExitTransitionToTest.sendMessage(TEST_CMD_1);
try { try {
// wait for the messages to be handled // wait for the messages to be handled
smEnterExitTranstionToTest.wait(); smEnterExitTransitionToTest.wait();
} catch (InterruptedException e) { } catch (InterruptedException e) {
tloge("testStateMachineEnterExitTransitionToTest: exception while waiting " tloge("testStateMachineEnterExitTransitionToTest: exception while waiting "
+ e.getMessage()); + e.getMessage());
} }
} }
dumpLogRecs(smEnterExitTranstionToTest); dumpLogRecs(smEnterExitTransitionToTest);
assertEquals(9, smEnterExitTranstionToTest.getLogRecCount()); assertEquals(9, smEnterExitTransitionToTest.getLogRecCount());
LogRec lr; LogRec lr;
lr = smEnterExitTranstionToTest.getLogRec(0); lr = smEnterExitTransitionToTest.getLogRec(0);
assertEquals(ENTER, lr.getInfo()); assertEquals(ENTER, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS1, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS1, lr.getState());
lr = smEnterExitTranstionToTest.getLogRec(1); lr = smEnterExitTransitionToTest.getLogRec(1);
assertEquals(EXIT, lr.getInfo()); assertEquals(EXIT, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS1, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS1, lr.getState());
lr = smEnterExitTranstionToTest.getLogRec(2); lr = smEnterExitTransitionToTest.getLogRec(2);
assertEquals(ENTER, lr.getInfo()); assertEquals(ENTER, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS2, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS2, lr.getState());
lr = smEnterExitTranstionToTest.getLogRec(3); lr = smEnterExitTransitionToTest.getLogRec(3);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(smEnterExitTranstionToTest.mS2, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS2, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS2, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS2, lr.getOriginalState());
assertEquals(smEnterExitTranstionToTest.mS3, lr.getDestState()); assertEquals(smEnterExitTransitionToTest.mS3, lr.getDestState());
lr = smEnterExitTranstionToTest.getLogRec(4); lr = smEnterExitTransitionToTest.getLogRec(4);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(smEnterExitTranstionToTest.mS2, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS2, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS2, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS2, lr.getOriginalState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getDestState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getDestState());
assertEquals(EXIT, lr.getInfo()); assertEquals(EXIT, lr.getInfo());
lr = smEnterExitTranstionToTest.getLogRec(5); lr = smEnterExitTransitionToTest.getLogRec(5);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(ENTER, lr.getInfo()); assertEquals(ENTER, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS3, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS3, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS3, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS3, lr.getOriginalState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getDestState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getDestState());
lr = smEnterExitTranstionToTest.getLogRec(6); lr = smEnterExitTransitionToTest.getLogRec(6);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(EXIT, lr.getInfo()); assertEquals(EXIT, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS3, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS3, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS3, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS3, lr.getOriginalState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getDestState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getDestState());
lr = smEnterExitTranstionToTest.getLogRec(7); lr = smEnterExitTransitionToTest.getLogRec(7);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(ENTER, lr.getInfo()); assertEquals(ENTER, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getOriginalState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getDestState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getDestState());
lr = smEnterExitTranstionToTest.getLogRec(8); lr = smEnterExitTransitionToTest.getLogRec(8);
assertEquals(TEST_CMD_1, lr.getWhat()); assertEquals(TEST_CMD_1, lr.getWhat());
assertEquals(EXIT, lr.getInfo()); assertEquals(EXIT, lr.getInfo());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getState());
assertEquals(smEnterExitTranstionToTest.mS4, lr.getOriginalState()); assertEquals(smEnterExitTransitionToTest.mS4, lr.getOriginalState());
if (smEnterExitTranstionToTest.isDbg()) { if (smEnterExitTransitionToTest.isDbg()) {
tlog("testStateMachineEnterExitTransitionToTest X"); tlog("testStateMachineEnterExitTransitionToTest X");
} }
} }