mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 09:05:45 +00:00
2c440594a5
Backed out changeset 53513a959cf0 (bug 913985) Backed out changeset d23d1e678417 (bug 913985) Backed out changeset a9c9187b4f4a (bug 913985) Backed out changeset c6b02e4a3e35 (bug 913985) Backed out changeset 895dae322e3c (bug 913985) Backed out changeset 3d97e6a53313 (bug 913985) Backed out changeset 892bb017f8ba (bug 913985) --HG-- rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
111 lines
3.6 KiB
Java
111 lines
3.6 KiB
Java
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
package org.mozilla.gecko.gfx;
|
|
|
|
import org.mozilla.gecko.GeckoEvent;
|
|
import org.mozilla.gecko.GeckoThread;
|
|
import org.mozilla.gecko.mozglue.GeneratableAndroidBridgeTarget;
|
|
import org.mozilla.gecko.util.EventDispatcher;
|
|
import org.mozilla.gecko.util.GeckoEventListener;
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import android.graphics.PointF;
|
|
import android.view.KeyEvent;
|
|
import android.view.MotionEvent;
|
|
import android.view.View;
|
|
|
|
class NativePanZoomController implements PanZoomController, GeckoEventListener {
|
|
private final PanZoomTarget mTarget;
|
|
private final EventDispatcher mDispatcher;
|
|
private final CallbackRunnable mCallbackRunnable;
|
|
|
|
NativePanZoomController(PanZoomTarget target, View view, EventDispatcher dispatcher) {
|
|
mTarget = target;
|
|
mDispatcher = dispatcher;
|
|
mCallbackRunnable = new CallbackRunnable();
|
|
if (GeckoThread.checkLaunchState(GeckoThread.LaunchState.GeckoRunning)) {
|
|
init();
|
|
} else {
|
|
mDispatcher.registerEventListener("Gecko:Ready", this);
|
|
}
|
|
}
|
|
|
|
public void handleMessage(String event, JSONObject message) {
|
|
if ("Gecko:Ready".equals(event)) {
|
|
mDispatcher.unregisterEventListener("Gecko:Ready", this);
|
|
init();
|
|
}
|
|
}
|
|
|
|
public boolean onTouchEvent(MotionEvent event) {
|
|
GeckoEvent wrapped = GeckoEvent.createMotionEvent(event, true);
|
|
handleTouchEvent(wrapped);
|
|
return false;
|
|
}
|
|
|
|
public boolean onMotionEvent(MotionEvent event) {
|
|
// FIXME implement this
|
|
return false;
|
|
}
|
|
|
|
public boolean onKeyEvent(KeyEvent event) {
|
|
// FIXME implement this
|
|
return false;
|
|
}
|
|
|
|
public PointF getVelocityVector() {
|
|
// FIXME implement this
|
|
return new PointF(0, 0);
|
|
}
|
|
|
|
public void pageRectUpdated() {
|
|
// no-op in APZC, I think
|
|
}
|
|
|
|
public void abortPanning() {
|
|
// no-op in APZC, I think
|
|
}
|
|
|
|
public native void abortAnimation();
|
|
|
|
private native void init();
|
|
private native void handleTouchEvent(GeckoEvent event);
|
|
private native void handleMotionEvent(GeckoEvent event);
|
|
private native long runDelayedCallback();
|
|
|
|
public native void destroy();
|
|
public native void notifyDefaultActionPrevented(boolean prevented);
|
|
public native boolean getRedrawHint();
|
|
public native void setOverScrollMode(int overscrollMode);
|
|
public native int getOverScrollMode();
|
|
|
|
@GeneratableAndroidBridgeTarget(allowMultithread = true, stubName = "RequestContentRepaintWrapper")
|
|
private void requestContentRepaint(float x, float y, float width, float height, float resolution) {
|
|
mTarget.forceRedraw(new DisplayPortMetrics(x, y, x + width, y + height, resolution));
|
|
}
|
|
|
|
@GeneratableAndroidBridgeTarget(allowMultithread = true, stubName = "PostDelayedCallbackWrapper")
|
|
private void postDelayedCallback(long delay) {
|
|
mTarget.postDelayed(mCallbackRunnable, delay);
|
|
}
|
|
|
|
class CallbackRunnable implements Runnable {
|
|
@Override
|
|
public void run() {
|
|
long nextDelay = runDelayedCallback();
|
|
if (nextDelay >= 0) {
|
|
mTarget.postDelayed(this, nextDelay);
|
|
}
|
|
}
|
|
}
|
|
|
|
public native void updateScrollOffset(float cssX, float cssY);
|
|
|
|
public void setOverscrollHandler(final Overscroll listener) {
|
|
}
|
|
}
|