diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java index 916f19d53f675..447292c9f3575 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -29,6 +29,7 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Iterator; import java.util.HashMap; import java.util.Vector; @@ -1863,6 +1864,20 @@ public class StateMachine { smh.removeMessages(what); } + /** + * Removes a message from the deferred messages queue. + */ + protected final void removeDeferredMessages(int what) { + SmHandler smh = mSmHandler; + if (smh == null) return; + + Iterator iterator = smh.mDeferredMessages.iterator(); + while (iterator.hasNext()) { + Message msg = iterator.next(); + if (msg.what == what) iterator.remove(); + } + } + /** * Validate that the message was sent by * {@link StateMachine#quit} or {@link StateMachine#quitNow}.