// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.base;
import android.os.Handler;
import android.os.Message;
class SystemMessageHandler extends Handler {
private static final int TIMER_MESSAGE = 1;
private static final int DELAYED_TIMER_MESSAGE = 2;
// Native class pointer set by the constructor of the SharedClient native class.
private long mMessagePumpDelegateNative = 0;
private SystemMessageHandler(long messagePumpDelegateNative) {
mMessagePumpDelegateNative = messagePumpDelegateNative;
}
@Override
public void handleMessage(Message msg) {
nativeDoRunLoopOnce(mMessagePumpDelegateNative);
}
@SuppressWarnings("unused")
@CalledByNative
private void setTimer() {
sendEmptyMessage(TIMER_MESSAGE);
}
@SuppressWarnings("unused")
@CalledByNative
private void setDelayedTimer(long millis) {
removeMessages(DELAYED_TIMER_MESSAGE);
sendEmptyMessageDelayed(DELAYED_TIMER_MESSAGE, millis);
}
@SuppressWarnings("unused")
@CalledByNative
private void removeTimer() {
removeMessages(TIMER_MESSAGE);
}
@CalledByNative
private static SystemMessageHandler create(long messagePumpDelegateNative) {
return new SystemMessageHandler(messagePumpDelegateNative);
}
private native void nativeDoRunLoopOnce(long messagePumpDelegateNative);
}