Kaydet (Commit) d339bba7 authored tarafından aleksandar-stefanovic's avatar aleksandar-stefanovic Kaydeden (comit) Christian Lohmaier

Removed static context from JavaPanZoomController

Removed static context, and edited the access levels of some methods
in the classes, along with some general code style fixes.

Change-Id: I89c71fa38eaafb5cda721602cfc8dad10ba7d26a
Reviewed-on: https://gerrit.libreoffice.org/33557Reviewed-by: 's avatarChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: 's avatarChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>
üst 644d92ad
......@@ -5,7 +5,7 @@
package org.mozilla.gecko.gfx;
import android.content.Context;
import org.libreoffice.LibreOfficeMainActivity;
import android.graphics.PointF;
import android.graphics.RectF;
import android.util.DisplayMetrics;
......@@ -20,7 +20,7 @@ public class GeckoLayerClient implements PanZoomTarget {
private LayerRenderer mLayerRenderer;
private Context mContext;
private LibreOfficeMainActivity mContext;
private IntSize mScreenSize;
private DisplayPortMetrics mDisplayPort;
......@@ -50,7 +50,7 @@ public class GeckoLayerClient implements PanZoomTarget {
private PanZoomController mPanZoomController;
private LayerView mView;
public GeckoLayerClient(Context context) {
public GeckoLayerClient(LibreOfficeMainActivity context) {
// we can fill these in with dummy values because they are always written
// to before being read
mContext = context;
......@@ -65,7 +65,7 @@ public class GeckoLayerClient implements PanZoomTarget {
public void setView(LayerView view) {
mView = view;
mPanZoomController = PanZoomController.Factory.create(this, view);
mPanZoomController = PanZoomController.Factory.create(mContext, this, view);
mView.connect(this);
}
......@@ -87,10 +87,6 @@ public class GeckoLayerClient implements PanZoomTarget {
mPanZoomController.destroy();
}
public Context getContext() {
return mContext;
}
Layer getRoot() {
return mIsReady ? mRootLayer : null;
}
......@@ -132,7 +128,7 @@ public class GeckoLayerClient implements PanZoomTarget {
sendResizeEventIfNecessary();
}
public PanZoomController getPanZoomController() {
PanZoomController getPanZoomController() {
return mPanZoomController;
}
......@@ -173,7 +169,7 @@ public class GeckoLayerClient implements PanZoomTarget {
});
}
void adjustViewport(DisplayPortMetrics displayPort) {
private void adjustViewport(DisplayPortMetrics displayPort) {
ImmutableViewportMetrics metrics = getViewportMetrics();
ImmutableViewportMetrics clampedMetrics = metrics.clamp();
......@@ -221,7 +217,7 @@ public class GeckoLayerClient implements PanZoomTarget {
}
}
DisplayPortMetrics getDisplayPort() {
private DisplayPortMetrics getDisplayPort() {
return mDisplayPort;
}
......@@ -235,7 +231,7 @@ public class GeckoLayerClient implements PanZoomTarget {
mRootLayer.endTransaction();
}
public void geometryChanged() {
private void geometryChanged() {
sendResizeEventIfNecessary();
if (getRedrawHint()) {
adjustViewport(null);
......@@ -342,7 +338,7 @@ public class GeckoLayerClient implements PanZoomTarget {
}
/* Root Layer Access */
public void reevaluateTiles() {
private void reevaluateTiles() {
mLowResLayer.reevaluateTiles(mViewportMetrics, mDisplayPort);
mRootLayer.reevaluateTiles(mViewportMetrics, mDisplayPort);
}
......
......@@ -28,7 +28,7 @@ import java.util.TimerTask;
* Many ideas are from Joe Hewitt's Scrollability:
* https://github.com/joehewitt/scrollability/
*/
public class JavaPanZoomController
class JavaPanZoomController
extends GestureDetector.SimpleOnGestureListener
implements PanZoomController, SimpleScaleGestureDetector.SimpleScaleGestureListener
{
......@@ -77,6 +77,7 @@ public class JavaPanZoomController
private final Axis mY;
private final TouchEventHandler mTouchEventHandler;
private Thread mMainThread;
private LibreOfficeMainActivity mContext;
/* The timer that handles flings or bounces. */
private Timer mAnimationTimer;
......@@ -91,7 +92,8 @@ public class JavaPanZoomController
/* Whether or not to wait for a double-tap before dispatching a single-tap */
private boolean mWaitForDoubleTap;
public JavaPanZoomController(PanZoomTarget target, View view) {
JavaPanZoomController(LibreOfficeMainActivity context, PanZoomTarget target, View view) {
mContext = context;
PAN_THRESHOLD = 1/16f * LOKitShell.getDpi(view.getContext());
MAX_SCROLL = 0.075f * LOKitShell.getDpi(view.getContext());
mTarget = target;
......@@ -100,7 +102,7 @@ public class JavaPanZoomController
mY = new AxisY(mSubscroller);
mTouchEventHandler = new TouchEventHandler(view.getContext(), view, this);
mMainThread = LibreOfficeMainActivity.mAppContext.getMainLooper().getThread();
mMainThread = mContext.getMainLooper().getThread();
checkMainThread();
setState(PanZoomState.NOTHING);
......@@ -111,7 +113,7 @@ public class JavaPanZoomController
mTouchEventHandler.destroy();
}
private static final float easeOut(float t) {
private static float easeOut(float t) {
// ease-out approx.
// -(t-1)^2+1
t = t-1;
......@@ -202,7 +204,7 @@ public class JavaPanZoomController
}
/** This function must be called on the UI thread. */
public void startingNewEventBlock(MotionEvent event, boolean waitingForTouchListeners) {
void startingNewEventBlock(MotionEvent event, boolean waitingForTouchListeners) {
checkMainThread();
mSubscroller.cancel();
if (waitingForTouchListeners && (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
......@@ -214,7 +216,7 @@ public class JavaPanZoomController
}
/** This function must be called on the UI thread. */
public void preventedTouchFinished() {
void preventedTouchFinished() {
checkMainThread();
if (mState == PanZoomState.WAITING_LISTENERS) {
// if we enter here, we just finished a block of events whose default actions
......@@ -276,7 +278,7 @@ public class JavaPanZoomController
private boolean handleTouchMove(MotionEvent event) {
if (mState == PanZoomState.PANNING_LOCKED || mState == PanZoomState.PANNING) {
if (getVelocity() > 18.0f) {
LibreOfficeMainActivity.mAppContext.hideSoftKeyboard();
mContext.hideSoftKeyboard();
}
}
......@@ -555,7 +557,7 @@ public class JavaPanZoomController
return getVelocity() < STOPPED_THRESHOLD;
}
PointF resetDisplacement() {
private PointF resetDisplacement() {
return new PointF(mX.resetDisplacement(), mY.resetDisplacement());
}
......@@ -593,7 +595,7 @@ public class JavaPanZoomController
protected abstract void animateFrame();
/* This should always run on the UI thread */
protected final void terminate() {
final void terminate() {
mAnimationTerminated = true;
}
}
......@@ -986,7 +988,7 @@ public class JavaPanZoomController
* While we usually use device pixels, zoomToRect must be specified in CSS
* pixels.
*/
public boolean animatedZoomTo(RectF zoomToRect) {
boolean animatedZoomTo(RectF zoomToRect) {
final float startZoom = getMetrics().zoomFactor;
RectF viewport = getMetrics().getViewport();
......@@ -1030,7 +1032,7 @@ public class JavaPanZoomController
* Move the viewport to the top-left point to and zoom to the desired
* zoom factor. Input zoom factor can be null, in this case leave the zoom unchanged.
*/
public boolean animatedMove(PointF topLeft, Float zoom) {
boolean animatedMove(PointF topLeft, Float zoom) {
RectF moveToRect = getMetrics().getCssViewport();
moveToRect.offsetTo(topLeft.x, topLeft.y);
......
......@@ -8,28 +8,29 @@ package org.mozilla.gecko.gfx;
import android.graphics.PointF;
import android.view.MotionEvent;
import android.view.View;
import org.libreoffice.LibreOfficeMainActivity;
public interface PanZoomController {
interface PanZoomController {
static class Factory {
static PanZoomController create(PanZoomTarget target, View view) {
return new JavaPanZoomController(target, view);
class Factory {
static PanZoomController create(LibreOfficeMainActivity context, PanZoomTarget target, View view) {
return new JavaPanZoomController(context, target, view);
}
}
public void destroy();
void destroy();
public boolean onTouchEvent(MotionEvent event);
public boolean onMotionEvent(MotionEvent event);
public void notifyDefaultActionPrevented(boolean prevented);
boolean onTouchEvent(MotionEvent event);
boolean onMotionEvent(MotionEvent event);
void notifyDefaultActionPrevented(boolean prevented);
public boolean getRedrawHint();
public PointF getVelocityVector();
boolean getRedrawHint();
PointF getVelocityVector();
public void pageRectUpdated();
public void abortPanning();
public void abortAnimation();
void pageRectUpdated();
void abortPanning();
void abortAnimation();
public void setOverScrollMode(int overscrollMode);
public int getOverScrollMode();
void setOverScrollMode(int overscrollMode);
int getOverScrollMode();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment