android/README.md                                                        |    
4 -
 android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java      |   
14 +----
 android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java |    
6 --
 android/source/src/java/org/mozilla/gecko/gfx/LayerView.java             |    
2 
 android/source/src/java/org/mozilla/gecko/gfx/PanZoomController.java     |   
28 ----------
 5 files changed, 10 insertions(+), 44 deletions(-)

New commits:
commit c6167305a85ff369bf56c462b2e11a4207bf68c3
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Nov 13 12:28:53 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Fri Nov 14 11:57:34 2025 +0100

    android: Drop JavaPanZoomController.mMainThread
    
    Instead call the logic to get the main thread directly
    in JavaPanZoomController.checkMainThread.
    
    Change-Id: I5fe02ba038b0e4ea954012e2a7296f59113e1eb6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193960
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git 
a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java 
b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
index 3c20228d1280..c9a9aca7907e 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
@@ -74,7 +74,6 @@ class JavaPanZoomController
     private final Axis mX;
     private final Axis mY;
     private final TouchEventHandler mTouchEventHandler;
-    private final Thread mMainThread;
     private final LibreOfficeMainActivity mContext;
 
     /* The timer that handles flings or bounces. */
@@ -99,7 +98,6 @@ class JavaPanZoomController
         mY = new AxisY();
         mTouchEventHandler = new TouchEventHandler(view.getContext(), this);
 
-        mMainThread = mContext.getMainLooper().getThread();
         checkMainThread();
 
         setState(PanZoomState.NOTHING);
@@ -124,7 +122,7 @@ class JavaPanZoomController
 
     // for debugging bug 713011; it can be taken out once that is resolved.
     private void checkMainThread() {
-        if (mMainThread != Thread.currentThread()) {
+        if (mContext.getMainLooper().getThread() != Thread.currentThread()) {
             // log with full stack trace
             Log.e(LOGTAG, "Uh-oh, we're running on the wrong thread!", new 
Exception());
         }
commit d1c3fe050ab5a50a73b652d52348712f0e475ff8
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Nov 13 12:19:37 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Fri Nov 14 11:57:24 2025 +0100

    android: Drop PanZoomController iface
    
    JavaPanZoomController is the only implementation.
    Use that one directly instead, which also removes
    the need for some casting in GeckoLayerClient.
    
    Change-Id: Id9c4a8ed154b66ac81274eb1648477163eb546a0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193959
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/android/README.md b/android/README.md
index 186208c3e118..6d4da9a96395 100644
--- a/android/README.md
+++ b/android/README.md
@@ -70,13 +70,13 @@ and rendering the layers to the document.
 - `GeckoLayerClient` (`org.mozilla.gecko.gfx.GeckoLayerClient`) is the middle 
man of the
   application, which connects all the bits together. It is the document view 
layer
   holder so the any management (including tiled rendering) usually go through 
this
-  class. It listens to draw requests and viewport changes from 
`PanZoomController`
+  class. It listens to draw requests and viewport changes from 
`JavaPanZoomController`
   (see "Touch events").
 
 ### Touch Events, Scrolling and Zooming
 
 The main class that handles the touch event, scrolling and zooming is 
`JavaPanZoomController`
-`org.mozilla.gecko.gfx.JavaPanZoomController` (implementation of 
`PanZoomController` interface).
+`org.mozilla.gecko.gfx.JavaPanZoomController`.
 When the user performs a touch action, the document view needs to change, 
which means the
 viewport changes. `JavaPanZoomController` changes the viewport and signals the 
change through
 `PanZoomTarget` (`org.mozilla.gecko.gfx.PanZoomTarget`).
diff --git 
a/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java 
b/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
index 2c6db0d22773..268874e6e5f1 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
@@ -43,7 +43,7 @@ public class GeckoLayerClient implements PanZoomTarget {
 
     private ZoomConstraints mZoomConstraints;
 
-    private final PanZoomController mPanZoomController;
+    private final JavaPanZoomController mPanZoomController;
     private final LayerView mView;
     private final DisplayPortCalculator mDisplayPortCalculator;
 
@@ -60,7 +60,7 @@ public class GeckoLayerClient implements PanZoomTarget {
         mViewportMetrics = new ImmutableViewportMetrics(displayMetrics);
 
         mView = view;
-        mPanZoomController = PanZoomController.Factory.create(mContext, this, 
mView);
+        mPanZoomController = new JavaPanZoomController(mContext, this, mView);
         mView.connect(this);
 
         mRootLayer = new DynamicTileLayer(mContext);
@@ -114,7 +114,7 @@ public class GeckoLayerClient implements PanZoomTarget {
         sendResizeEventIfNecessary(forceResizeEvent);
     }
 
-    PanZoomController getPanZoomController() {
+    JavaPanZoomController getPanZoomController() {
         return mPanZoomController;
     }
 
@@ -280,18 +280,14 @@ public class GeckoLayerClient implements PanZoomTarget {
     }
 
     public void zoomTo(RectF rect) {
-        if (mPanZoomController instanceof JavaPanZoomController) {
-            ((JavaPanZoomController) mPanZoomController).animatedZoomTo(rect);
-        }
+        mPanZoomController.animatedZoomTo(rect);
     }
 
     /**
      * Move the viewport to the desired point, and change the zoom level.
      */
     public void moveTo(PointF point, Float zoom) {
-        if (mPanZoomController instanceof JavaPanZoomController) {
-            ((JavaPanZoomController) mPanZoomController).animatedMove(point, 
zoom);
-        }
+        mPanZoomController.animatedMove(point, zoom);
     }
 
     public void zoomTo(float pageWidth, float pageHeight) {
diff --git 
a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java 
b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
index 317bf92bf187..3c20228d1280 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
@@ -30,7 +30,7 @@ import java.lang.StrictMath;
  */
 class JavaPanZoomController
         extends GestureDetector.SimpleOnGestureListener
-        implements PanZoomController, 
SimpleScaleGestureDetector.SimpleScaleGestureListener
+        implements SimpleScaleGestureDetector.SimpleScaleGestureListener
 {
     private static final String LOGTAG = "GeckoPanZoomController";
 
diff --git a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java 
b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
index 4de92ce95e66..7e483a27cd6f 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
@@ -39,7 +39,7 @@ public class LayerView extends FrameLayout {
     private static final String LOGTAG = LayerView.class.getName();
 
     private GeckoLayerClient mLayerClient;
-    private PanZoomController mPanZoomController;
+    private JavaPanZoomController mPanZoomController;
     private final GLController mGLController;
     private InputConnectionHandler mInputConnectionHandler;
     private LayerRenderer mRenderer;
diff --git 
a/android/source/src/java/org/mozilla/gecko/gfx/PanZoomController.java 
b/android/source/src/java/org/mozilla/gecko/gfx/PanZoomController.java
deleted file mode 100644
index 27c6b65dc558..000000000000
--- a/android/source/src/java/org/mozilla/gecko/gfx/PanZoomController.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- 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 android.graphics.PointF;
-import android.view.MotionEvent;
-import android.view.View;
-import org.libreoffice.LibreOfficeMainActivity;
-
-interface PanZoomController {
-
-    class Factory {
-        static PanZoomController create(LibreOfficeMainActivity context, 
PanZoomTarget target, View view) {
-            return new JavaPanZoomController(context, target, view);
-        }
-    }
-
-    boolean onTouchEvent(MotionEvent event);
-    boolean onMotionEvent(MotionEvent event);
-
-    boolean getRedrawHint();
-    PointF getVelocityVector();
-
-    void pageRectUpdated();
-}

Reply via email to