From ec41bb4e2bdf43561b0872ede2f98ab49d12d16f Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Tue, 27 Feb 2024 11:17:09 +0000 Subject: [PATCH] Revert "Android: rectify the visibility of QtAndroid.jar class" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 523cf066285a648b10b277bb1b3b2c7b9d66d464. Reason for revert: To avoid QTBUG-122456 The revert is done for 6.7 only to avoid such regression before the release, and that gives us some time on dev to find proper ways to handle that, since the access restriction still makes sense because QtNative wasn't proper public API that's documented to start with. Fixes: QTBUG-122456 Change-Id: I2e175ba170df85b7537be20a8841407f1162c7ba Reviewed-by: Tinja Paavoseppä --- src/android/jar/CMakeLists.txt | 4 ++-- .../jar/src/org/qtproject/qt/android/CursorHandle.java | 2 +- .../jar/src/org/qtproject/qt/android/EditContextView.java | 2 +- .../jar/src/org/qtproject/qt/android/EditPopupMenu.java | 2 +- .../jar/src/org/qtproject/qt/android/ExtractStyle.java | 2 +- .../src/org/qtproject/qt/android/QtActivityDelegate.java | 4 +++- .../org/qtproject/qt/android/QtActivityDelegateBase.java | 2 ++ .../src/org/qtproject/qt/android/QtActivityLoader.java | 2 +- .../jar/src/org/qtproject/qt/android/QtEditText.java | 2 +- .../src/org/qtproject/qt/android/QtEmbeddedDelegate.java | 2 ++ .../src/org/qtproject/qt/android/QtInputConnection.java | 2 +- .../jar/src/org/qtproject/qt/android/QtInputDelegate.java | 3 +-- .../jar/src/org/qtproject/qt/android/QtLayout.java | 4 ++-- .../jar/src/org/qtproject/qt/android/QtLoader.java | 2 +- .../org/qtproject/qt/android/QtMessageDialogHelper.java | 2 +- .../jar/src/org/qtproject/qt/android/QtNative.java | 2 +- .../jar/src/org/qtproject/qt/android/QtServiceLoader.java | 2 +- .../jar/src/org/qtproject/qt/android/QtSurface.java | 2 +- .../jar/src/org/qtproject/qt/android/QtThread.java | 2 +- .../{ => accessibility}/QtAccessibilityDelegate.java | 8 ++++++-- .../{ => accessibility}/QtNativeAccessibility.java | 2 +- .../org/qtproject/qt/android/extras/QtAndroidBinder.java | 2 +- .../qt/android/extras/QtAndroidServiceConnection.java | 2 +- .../jar/src/org/qtproject/qt/android/extras/QtNative.java | 2 +- src/plugins/platforms/android/androidjniaccessibility.cpp | 2 +- 25 files changed, 36 insertions(+), 27 deletions(-) rename src/android/jar/src/org/qtproject/qt/android/{ => accessibility}/QtAccessibilityDelegate.java (98%) rename src/android/jar/src/org/qtproject/qt/android/{ => accessibility}/QtNativeAccessibility.java (94%) diff --git a/src/android/jar/CMakeLists.txt b/src/android/jar/CMakeLists.txt index 698853588c2..4e0274d140a 100644 --- a/src/android/jar/CMakeLists.txt +++ b/src/android/jar/CMakeLists.txt @@ -2,8 +2,8 @@ # SPDX-License-Identifier: BSD-3-Clause set(java_sources - src/org/qtproject/qt/android/QtAccessibilityDelegate.java - src/org/qtproject/qt/android/QtNativeAccessibility.java + src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java + src/org/qtproject/qt/android/accessibility/QtNativeAccessibility.java src/org/qtproject/qt/android/CursorHandle.java src/org/qtproject/qt/android/EditContextView.java src/org/qtproject/qt/android/EditPopupMenu.java diff --git a/src/android/jar/src/org/qtproject/qt/android/CursorHandle.java b/src/android/jar/src/org/qtproject/qt/android/CursorHandle.java index 7e601c05517..a998fdbe3b3 100644 --- a/src/android/jar/src/org/qtproject/qt/android/CursorHandle.java +++ b/src/android/jar/src/org/qtproject/qt/android/CursorHandle.java @@ -66,7 +66,7 @@ class CursorView extends ImageView } // Helper class that manages a cursor or selection handle -class CursorHandle implements ViewTreeObserver.OnPreDrawListener +public class CursorHandle implements ViewTreeObserver.OnPreDrawListener { private static final String QtTag = "QtCursorHandle"; private final View m_layout; diff --git a/src/android/jar/src/org/qtproject/qt/android/EditContextView.java b/src/android/jar/src/org/qtproject/qt/android/EditContextView.java index fbd32ed98b7..a7925f1c6f8 100644 --- a/src/android/jar/src/org/qtproject/qt/android/EditContextView.java +++ b/src/android/jar/src/org/qtproject/qt/android/EditContextView.java @@ -17,7 +17,7 @@ import android.widget.TextView; import java.util.HashMap; @SuppressLint("ViewConstructor") -class EditContextView extends LinearLayout implements View.OnClickListener +public class EditContextView extends LinearLayout implements View.OnClickListener { public static final int CUT_BUTTON = 1; public static final int COPY_BUTTON = 1 << 1; diff --git a/src/android/jar/src/org/qtproject/qt/android/EditPopupMenu.java b/src/android/jar/src/org/qtproject/qt/android/EditPopupMenu.java index 25be522c485..f24d834948a 100644 --- a/src/android/jar/src/org/qtproject/qt/android/EditPopupMenu.java +++ b/src/android/jar/src/org/qtproject/qt/android/EditPopupMenu.java @@ -13,7 +13,7 @@ import android.view.ViewTreeObserver; import android.widget.PopupWindow; // Helper class that manages a cursor or selection handle -class EditPopupMenu implements ViewTreeObserver.OnPreDrawListener, View.OnLayoutChangeListener, +public class EditPopupMenu implements ViewTreeObserver.OnPreDrawListener, View.OnLayoutChangeListener, EditContextView.OnClickListener { private final View m_layout; diff --git a/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java index 6780634317a..8823061dc0c 100644 --- a/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java @@ -61,7 +61,7 @@ import java.util.Map; import java.util.Objects; -class ExtractStyle { +public class ExtractStyle { // This used to be retrieved from android.R.styleable.ViewDrawableStates field via reflection, // but since the access to that is restricted, we need to have hard-coded here. diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java index 717cd079a4f..7b19d483f11 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -33,7 +33,9 @@ import android.widget.PopupMenu; import java.util.HashMap; -class QtActivityDelegate extends QtActivityDelegateBase +import org.qtproject.qt.android.accessibility.QtAccessibilityDelegate; + +public class QtActivityDelegate extends QtActivityDelegateBase { private static final String QtTAG = "QtActivityDelegate"; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java index 8625c1f6016..c8be7c89281 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java @@ -33,6 +33,8 @@ import android.widget.PopupMenu; import java.util.HashMap; +import org.qtproject.qt.android.accessibility.QtAccessibilityDelegate; + abstract class QtActivityDelegateBase { protected Activity m_activity; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java index 1a332385c2c..93ae9088178 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java @@ -22,7 +22,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.nio.charset.StandardCharsets; -class QtActivityLoader extends QtLoader { +public class QtActivityLoader extends QtLoader { private final Activity m_activity; public QtActivityLoader(Activity activity) diff --git a/src/android/jar/src/org/qtproject/qt/android/QtEditText.java b/src/android/jar/src/org/qtproject/qt/android/QtEditText.java index 45248872423..7e1198c52aa 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtEditText.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtEditText.java @@ -14,7 +14,7 @@ import android.view.KeyEvent; import org.qtproject.qt.android.QtInputConnection.QtInputConnectionListener; -class QtEditText extends View +public class QtEditText extends View { int m_initialCapsMode = 0; int m_imeOptions = 0; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java index 975b26b915e..43cde0cb33a 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java @@ -21,6 +21,8 @@ import android.view.ViewGroup; import java.util.ArrayList; import java.util.HashMap; +import org.qtproject.qt.android.accessibility.QtAccessibilityDelegate; + class QtEmbeddedDelegate extends QtActivityDelegateBase implements QtNative.AppStateDetailsListener { // TODO simplistic implementation with one QtView, expand to support multiple views QTBUG-117649 private QtView m_view; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java index 1bfe05e7ace..2d7d1a2b775 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java @@ -54,7 +54,7 @@ class QtNativeInputConnection static native boolean fullscreenMode(); } -class QtInputConnection extends BaseInputConnection +public class QtInputConnection extends BaseInputConnection { private static final int ID_SELECT_ALL = android.R.id.selectAll; private static final int ID_CUT = android.R.id.cut; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java index 206b0248770..cd1b675f2e9 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java @@ -21,8 +21,7 @@ import android.view.inputmethod.InputMethodManager; import org.qtproject.qt.android.QtInputConnection.QtInputConnectionListener; /** @noinspection FieldCanBeLocal*/ -class QtInputDelegate implements QtInputConnection.QtInputConnectionListener { - +public class QtInputDelegate implements QtInputConnection.QtInputConnectionListener { // keyboard methods public static native void keyDown(int key, int unicode, int modifier, boolean autoRepeat); public static native void keyUp(int key, int unicode, int modifier, boolean autoRepeat); diff --git a/src/android/jar/src/org/qtproject/qt/android/QtLayout.java b/src/android/jar/src/org/qtproject/qt/android/QtLayout.java index cf7e68926e0..95173d86059 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtLayout.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtLayout.java @@ -14,8 +14,8 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -class QtLayout extends ViewGroup { - +public class QtLayout extends ViewGroup +{ public QtLayout(Context context) { super(context); diff --git a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java index 3cc51448edb..69eca0d91da 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java @@ -28,7 +28,7 @@ import java.util.Objects; import dalvik.system.DexClassLoader; -abstract class QtLoader { +public abstract class QtLoader { protected static final String QtTAG = "QtLoader"; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java b/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java index b94ec71da87..b21f5295581 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java @@ -49,7 +49,7 @@ class ButtonStruct implements View.OnClickListener } } -class QtMessageDialogHelper +public class QtMessageDialogHelper { public QtMessageDialogHelper(Activity activity) diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java index e2f908e54a8..ec13401950c 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -30,7 +30,7 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; -class QtNative +public class QtNative { private static WeakReference m_activity = null; private static WeakReference m_service = null; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java index ce74ec21e77..5b6387e43a7 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java @@ -8,7 +8,7 @@ import android.app.Service; import android.content.ContextWrapper; import android.util.Log; -class QtServiceLoader extends QtLoader { +public class QtServiceLoader extends QtLoader { private final Service m_service; public QtServiceLoader(Service service) { diff --git a/src/android/jar/src/org/qtproject/qt/android/QtSurface.java b/src/android/jar/src/org/qtproject/qt/android/QtSurface.java index 3165de4811d..3db688d64f1 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtSurface.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtSurface.java @@ -12,7 +12,7 @@ import android.view.SurfaceHolder; import android.view.SurfaceView; @SuppressLint("ViewConstructor") -class QtSurface extends SurfaceView implements SurfaceHolder.Callback +public class QtSurface extends SurfaceView implements SurfaceHolder.Callback { private QtSurfaceInterface m_surfaceCallback; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtThread.java b/src/android/jar/src/org/qtproject/qt/android/QtThread.java index 359c1a72084..2d6f430b38b 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtThread.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtThread.java @@ -6,7 +6,7 @@ package org.qtproject.qt.android; import java.util.ArrayList; import java.util.concurrent.Semaphore; -class QtThread { +public class QtThread { private final ArrayList m_pendingRunnables = new ArrayList<>(); private boolean m_exit = false; private final Thread m_qtThread = new Thread(new Runnable() { diff --git a/src/android/jar/src/org/qtproject/qt/android/QtAccessibilityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java similarity index 98% rename from src/android/jar/src/org/qtproject/qt/android/QtAccessibilityDelegate.java rename to src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java index 991fb364916..ec5c721849c 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtAccessibilityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -package org.qtproject.qt.android; +package org.qtproject.qt.android.accessibility; import android.app.Activity; import android.content.Context; @@ -22,7 +22,11 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.CollectionInfo; import android.view.accessibility.AccessibilityNodeProvider; -class QtAccessibilityDelegate extends View.AccessibilityDelegate +import org.qtproject.qt.android.QtActivityDelegate; +import org.qtproject.qt.android.QtNative; +import org.qtproject.qt.android.QtLayout; + +public class QtAccessibilityDelegate extends View.AccessibilityDelegate { private static final String TAG = "Qt A11Y"; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNativeAccessibility.java b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtNativeAccessibility.java similarity index 94% rename from src/android/jar/src/org/qtproject/qt/android/QtNativeAccessibility.java rename to src/android/jar/src/org/qtproject/qt/android/accessibility/QtNativeAccessibility.java index dd2cead8cd0..9fd53948770 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNativeAccessibility.java +++ b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtNativeAccessibility.java @@ -1,7 +1,7 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -package org.qtproject.qt.android; +package org.qtproject.qt.android.accessibility; import android.graphics.Rect; import android.view.accessibility.AccessibilityNodeInfo; diff --git a/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidBinder.java b/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidBinder.java index bd837570fe4..34aec22c03a 100644 --- a/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidBinder.java +++ b/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidBinder.java @@ -8,7 +8,7 @@ import android.os.Parcel; import org.qtproject.qt.android.UsedFromNativeCode; -class QtAndroidBinder extends Binder +public class QtAndroidBinder extends Binder { @UsedFromNativeCode public QtAndroidBinder(long id) diff --git a/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java b/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java index b70b64e3ac2..5d6dc97b846 100644 --- a/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java +++ b/src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java @@ -9,7 +9,7 @@ import android.os.IBinder; import org.qtproject.qt.android.UsedFromNativeCode; -class QtAndroidServiceConnection implements ServiceConnection +public class QtAndroidServiceConnection implements ServiceConnection { @UsedFromNativeCode public QtAndroidServiceConnection(long id) diff --git a/src/android/jar/src/org/qtproject/qt/android/extras/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/extras/QtNative.java index f7ba8dd9b4e..658eae87a10 100644 --- a/src/android/jar/src/org/qtproject/qt/android/extras/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/extras/QtNative.java @@ -6,7 +6,7 @@ package org.qtproject.qt.android.extras; import android.os.IBinder; import android.os.Parcel; -class QtNative { +public class QtNative { // Binder public static native boolean onTransact(long id, int code, Parcel data, Parcel reply, int flags); diff --git a/src/plugins/platforms/android/androidjniaccessibility.cpp b/src/plugins/platforms/android/androidjniaccessibility.cpp index 8f1c76ca26b..119e0c9dea0 100644 --- a/src/plugins/platforms/android/androidjniaccessibility.cpp +++ b/src/plugins/platforms/android/androidjniaccessibility.cpp @@ -569,7 +569,7 @@ namespace QtAndroidAccessibility bool registerNatives(QJniEnvironment &env) { - if (!env.registerNativeMethods("org/qtproject/qt/android/QtNativeAccessibility", + if (!env.registerNativeMethods("org/qtproject/qt/android/accessibility/QtNativeAccessibility", methods, sizeof(methods) / sizeof(methods[0]))) { __android_log_print(ANDROID_LOG_FATAL,"Qt A11y", "RegisterNatives failed"); return false;