1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.chromium.base;
7 import android.os.Handler;
8 import android.os.Message;
9 import android.os.SystemClock;
11 import java.util.concurrent.atomic.AtomicBoolean;
13 class SystemMessageHandler extends Handler {
15 private static final int TIMER_MESSAGE = 1;
16 private static final int DELAYED_TIMER_MESSAGE = 2;
18 // Native class pointer set by the constructor of the SharedClient native class.
19 private int mMessagePumpDelegateNative = 0;
21 private SystemMessageHandler(int messagePumpDelegateNative) {
22 mMessagePumpDelegateNative = messagePumpDelegateNative;
26 public void handleMessage(Message msg) {
27 nativeDoRunLoopOnce(mMessagePumpDelegateNative);
30 @SuppressWarnings("unused")
32 private void setTimer() {
33 sendEmptyMessage(TIMER_MESSAGE);
36 @SuppressWarnings("unused")
38 private void setDelayedTimer(long millis) {
39 removeMessages(DELAYED_TIMER_MESSAGE);
40 sendEmptyMessageDelayed(DELAYED_TIMER_MESSAGE, millis);
43 @SuppressWarnings("unused")
45 private void removeTimer() {
46 removeMessages(TIMER_MESSAGE);
50 private static SystemMessageHandler create(int messagePumpDelegateNative) {
51 return new SystemMessageHandler(messagePumpDelegateNative);
54 private native void nativeDoRunLoopOnce(int messagePumpDelegateNative);