- add sources.
[platform/framework/web/crosswalk.git] / src / base / android / java / src / org / chromium / base / SystemMessageHandler.java
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.
4
5 package org.chromium.base;
6
7 import android.os.Handler;
8 import android.os.Message;
9 import android.os.SystemClock;
10
11 import java.util.concurrent.atomic.AtomicBoolean;
12
13 class SystemMessageHandler extends Handler {
14
15     private static final int TIMER_MESSAGE = 1;
16     private static final int DELAYED_TIMER_MESSAGE = 2;
17
18     // Native class pointer set by the constructor of the SharedClient native class.
19     private int mMessagePumpDelegateNative = 0;
20
21     private SystemMessageHandler(int messagePumpDelegateNative) {
22         mMessagePumpDelegateNative = messagePumpDelegateNative;
23     }
24
25     @Override
26     public void handleMessage(Message msg) {
27         nativeDoRunLoopOnce(mMessagePumpDelegateNative);
28     }
29
30     @SuppressWarnings("unused")
31     @CalledByNative
32     private void setTimer() {
33         sendEmptyMessage(TIMER_MESSAGE);
34     }
35
36     @SuppressWarnings("unused")
37     @CalledByNative
38     private void setDelayedTimer(long millis) {
39         removeMessages(DELAYED_TIMER_MESSAGE);
40         sendEmptyMessageDelayed(DELAYED_TIMER_MESSAGE, millis);
41     }
42
43     @SuppressWarnings("unused")
44     @CalledByNative
45     private void removeTimer() {
46         removeMessages(TIMER_MESSAGE);
47     }
48
49     @CalledByNative
50     private static SystemMessageHandler create(int messagePumpDelegateNative) {
51         return new SystemMessageHandler(messagePumpDelegateNative);
52     }
53
54     private native void nativeDoRunLoopOnce(int messagePumpDelegateNative);
55 }