summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/android/jar/CMakeLists.txt3
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java4
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java2
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java25
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtClipboardManager.java11
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtDisplayManager.java3
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java5
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java10
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtNative.java11
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/UsedFromNativeCode.java10
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java6
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidBinder.java3
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java3
13 files changed, 82 insertions, 14 deletions
diff --git a/src/android/jar/CMakeLists.txt b/src/android/jar/CMakeLists.txt
index f600598c4d..7bef9679c2 100644
--- a/src/android/jar/CMakeLists.txt
+++ b/src/android/jar/CMakeLists.txt
@@ -23,12 +23,13 @@ set(java_sources
src/org/qtproject/qt/android/QtNative.java
src/org/qtproject/qt/android/QtSurface.java
src/org/qtproject/qt/android/QtThread.java
- src/org/qtproject/qt/android/extras//QtAndroidBinder.java
+ src/org/qtproject/qt/android/extras/QtAndroidBinder.java
src/org/qtproject/qt/android/extras/QtAndroidServiceConnection.java
src/org/qtproject/qt/android/extras/QtNative.java
src/org/qtproject/qt/android/QtConstants.java
src/org/qtproject/qt/android/QtClipboardManager.java
src/org/qtproject/qt/android/QtDisplayManager.java
+ src/org/qtproject/qt/android/UsedFromNativeCode.java
)
qt_internal_add_jar(Qt${QtBase_VERSION_MAJOR}Android
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 e4bc395d3a..e2f0a3fe61 100644
--- a/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java
+++ b/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java
@@ -1129,10 +1129,6 @@ public class ExtractStyle {
return json;
}
- public JSONObject extractTextAppearanceInformation(int styleName, String qtClass, AttributeSet attributeSet) {
- return extractTextAppearanceInformation(styleName, qtClass, android.R.attr.textAppearance, attributeSet);
- }
-
public JSONObject extractTextAppearanceInformation(int styleName, String qtClass) {
return extractTextAppearanceInformation(styleName, qtClass, android.R.attr.textAppearance, null);
}
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java
index 45ed09a88a..1d70698ef7 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java
@@ -298,11 +298,13 @@ public class QtActivityBase extends Activity
QtNative.sendRequestPermissionsResult(requestCode, permissions, grantResults);
}
+ @UsedFromNativeCode
public void hideSplashScreen(final int duration)
{
m_delegate.hideSplashScreen(duration);
}
+ @UsedFromNativeCode
QtActivityDelegate getActivityDelegate()
{
return m_delegate;
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 b57576fa46..a4c776b4b3 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
@@ -85,15 +85,18 @@ public class QtActivityDelegate
return m_displayManager;
}
+ @UsedFromNativeCode
QtInputDelegate getInputDelegate() {
return m_inputDelegate;
}
+ @UsedFromNativeCode
QtLayout getQtLayout()
{
return m_layout;
}
+ @UsedFromNativeCode
public void setSystemUiVisibility(int systemUiVisibility)
{
QtNative.runAction(new Runnable() {
@@ -163,11 +166,6 @@ public class QtActivityDelegate
}
}
- public void onTerminate() {
- QtNative.terminateQt();
- QtNative.m_qtThread.exit();
- }
-
public void startNativeApplication(ArrayList<String> appParams, String mainLib)
{
if (m_surfaces != null)
@@ -307,6 +305,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void notifyLocationChange(int viewId)
{
if (m_accessibilityDelegate == null)
@@ -314,6 +313,7 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyLocationChange(viewId);
}
+ @UsedFromNativeCode
public void notifyObjectHide(int viewId, int parentId)
{
if (m_accessibilityDelegate == null)
@@ -321,6 +321,7 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyObjectHide(viewId, parentId);
}
+ @UsedFromNativeCode
public void notifyObjectFocus(int viewId)
{
if (m_accessibilityDelegate == null)
@@ -328,6 +329,7 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyObjectFocus(viewId);
}
+ @UsedFromNativeCode
public void notifyValueChanged(int viewId, String value)
{
if (m_accessibilityDelegate == null)
@@ -335,6 +337,7 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyValueChanged(viewId, value);
}
+ @UsedFromNativeCode
public void notifyScrolledEvent(int viewId)
{
if (m_accessibilityDelegate == null)
@@ -342,11 +345,13 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyScrolledEvent(viewId);
}
+ @UsedFromNativeCode
public void notifyQtAndroidPluginRunning(boolean running)
{
m_isPluginRunning = running;
}
+ @UsedFromNativeCode
public void initializeAccessibility()
{
final QtActivityDelegate currentDelegate = this;
@@ -386,6 +391,7 @@ public class QtActivityDelegate
}
}
+ @UsedFromNativeCode
public void resetOptionsMenu()
{
QtNative.runAction(new Runnable() {
@@ -396,6 +402,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void openOptionsMenu()
{
QtNative.runAction(new Runnable() {
@@ -414,6 +421,7 @@ public class QtActivityDelegate
m_contextMenuVisible = true;
}
+ @UsedFromNativeCode
public void openContextMenu(final int x, final int y, final int w, final int h)
{
m_layout.postDelayed(new Runnable() {
@@ -439,6 +447,7 @@ public class QtActivityDelegate
}, 100);
}
+ @UsedFromNativeCode
public void closeContextMenu()
{
QtNative.runAction(new Runnable() {
@@ -459,6 +468,7 @@ public class QtActivityDelegate
m_activity.getActionBar().show();
}
+ @UsedFromNativeCode
public void insertNativeView(int id, View view, int x, int y, int w, int h) {
QtNative.runAction(new Runnable() {
@Override
@@ -485,6 +495,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void createSurface(int id, boolean onTop, int x, int y, int w, int h, int imageDepth) {
QtNative.runAction(new Runnable() {
@Override
@@ -526,6 +537,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void setSurfaceGeometry(int id, int x, int y, int w, int h) {
QtNative.runAction(new Runnable() {
@Override
@@ -544,6 +556,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void destroySurface(int id) {
QtNative.runAction(new Runnable() {
@Override
@@ -577,6 +590,7 @@ public class QtActivityDelegate
return m_surfaces.size();
}
+ @UsedFromNativeCode
public void bringChildToFront(int id)
{
QtNative.runAction(new Runnable() {
@@ -597,6 +611,7 @@ public class QtActivityDelegate
});
}
+ @UsedFromNativeCode
public void bringChildToBack(int id)
{
QtNative.runAction(new Runnable() {
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtClipboardManager.java b/src/android/jar/src/org/qtproject/qt/android/QtClipboardManager.java
index 1737a6134a..1a6b74ddc4 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtClipboardManager.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtClipboardManager.java
@@ -59,6 +59,7 @@ public class QtClipboardManager
}
}
+ @UsedFromNativeCode
public void clearClipData()
{
if (m_clipboardManager != null) {
@@ -72,6 +73,8 @@ public class QtClipboardManager
}
m_usePrimaryClip = false;
}
+
+ @UsedFromNativeCode
public void setClipboardText(Context context, String text)
{
if (m_clipboardManager != null) {
@@ -101,11 +104,13 @@ public class QtClipboardManager
return false;
}
+ @UsedFromNativeCode
public boolean hasClipboardText()
{
return hasClipboardMimeType("text/(.*)");
}
+ @UsedFromNativeCode
public String getClipboardText()
{
try {
@@ -144,6 +149,7 @@ public class QtClipboardManager
}
}
+ @UsedFromNativeCode
public void setClipboardHtml(Context context, String text, String html)
{
if (m_clipboardManager != null) {
@@ -170,11 +176,13 @@ public class QtClipboardManager
return false;
}
+ @UsedFromNativeCode
public boolean hasClipboardHtml()
{
return hasClipboardMimeType("text/html");
}
+ @UsedFromNativeCode
public String getClipboardHtml()
{
try {
@@ -192,6 +200,7 @@ public class QtClipboardManager
return "";
}
+ @UsedFromNativeCode
public void setClipboardUri(Context context, String uriString)
{
if (m_clipboardManager != null) {
@@ -201,11 +210,13 @@ public class QtClipboardManager
}
}
+ @UsedFromNativeCode
public boolean hasClipboardUri()
{
return hasClipboardMimeType("text/uri-list");
}
+ @UsedFromNativeCode
private String[] getClipboardUris()
{
ArrayList<String> uris = new ArrayList<>();
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtDisplayManager.java b/src/android/jar/src/org/qtproject/qt/android/QtDisplayManager.java
index 2bbe28a331..cbbb2a1256 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtDisplayManager.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtDisplayManager.java
@@ -172,6 +172,7 @@ public class QtDisplayManager {
}
}
+ @UsedFromNativeCode
public static Display getDisplay(Context context, int displayId)
{
DisplayManager displayManager =
@@ -182,6 +183,7 @@ public class QtDisplayManager {
return null;
}
+ @UsedFromNativeCode
public static List<Display> getAvailableDisplays(Context context)
{
DisplayManager displayManager =
@@ -193,6 +195,7 @@ public class QtDisplayManager {
return new ArrayList<>();
}
+ @UsedFromNativeCode
public static Size getDisplaySize(Context displayContext, Display display)
{
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
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 ee53dcd9ac..97decb5826 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtInputDelegate.java
@@ -139,6 +139,7 @@ public class QtInputDelegate {
}
// Is the keyboard fully visible i.e. visible and no ongoing animation
+ @UsedFromNativeCode
public boolean isSoftwareKeyboardVisible()
{
return isKeyboardVisible() && !m_isKeyboardHidingAnimationOngoing;
@@ -182,6 +183,7 @@ public class QtInputDelegate {
}
+ @UsedFromNativeCode
public void resetSoftwareKeyboard()
{
if (m_imm == null)
@@ -452,6 +454,7 @@ public class QtInputDelegate {
});
}
+ @UsedFromNativeCode
public void updateSelection(final int selStart, final int selEnd,
final int candidatesStart, final int candidatesEnd)
{
@@ -466,6 +469,7 @@ public class QtInputDelegate {
});
}
+ @UsedFromNativeCode
public int getSelectHandleWidth()
{
int width = 0;
@@ -481,6 +485,7 @@ public class QtInputDelegate {
be adjusted.
mode is one of QAndroidInputContext::CursorHandleShowMode
*/
+ @UsedFromNativeCode
public void updateHandles(Activity activity, QtLayout layout, int mode,
int editX, int editY, int editButtons,
int x1, int y1, int x2, int y2, boolean rtl)
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 b53ec13369..bb077bc9d2 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtMessageDialogHelper.java
@@ -55,7 +55,7 @@ public class QtMessageDialogHelper
m_activity = activity;
}
-
+ @UsedFromNativeCode
public void setStandardIcon(int icon)
{
m_standardIcon = icon;
@@ -114,26 +114,31 @@ public class QtMessageDialogHelper
return null;
}
+ @UsedFromNativeCode
public void setTile(String title)
{
m_title = Html.fromHtml(title);
}
+ @UsedFromNativeCode
public void setText(String text)
{
m_text = Html.fromHtml(text);
}
+ @UsedFromNativeCode
public void setInformativeText(String informativeText)
{
m_informativeText = Html.fromHtml(informativeText);
}
+ @UsedFromNativeCode
public void setDetailedText(String text)
{
m_detailedText = Html.fromHtml(text);
}
+ @UsedFromNativeCode
public void addButton(int id, String text)
{
if (m_buttonsList == null)
@@ -150,7 +155,7 @@ public class QtMessageDialogHelper
return d;
}
-
+ @UsedFromNativeCode
public void show(long handler)
{
m_handler = handler;
@@ -314,6 +319,7 @@ public class QtMessageDialogHelper
});
}
+ @UsedFromNativeCode
public void hide()
{
m_activity.runOnUiThread( new Runnable() {
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 ab2042dc05..6cec72376a 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
@@ -59,6 +59,7 @@ public class QtNative
return m_started && (hasActivity || hasService);
}
+ @UsedFromNativeCode
public static ClassLoader classLoader()
{
return m_classLoader;
@@ -83,6 +84,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
public static Activity activity()
{
synchronized (m_mainActivityMutex) {
@@ -90,6 +92,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
public static Service service()
{
synchronized (m_mainActivityMutex) {
@@ -97,12 +100,14 @@ public class QtNative
}
}
+ @UsedFromNativeCode
public static Context getContext() {
if (m_activity != null)
return m_activity;
return m_service;
}
+ @UsedFromNativeCode
public static String[] getStringArray(String joinedString)
{
return joinedString.split(",");
@@ -154,6 +159,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
public static boolean openURL(Context context, String url, String mime)
{
final Uri uri = getUriWithValidPermission(context, url, "r");
@@ -207,6 +213,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
private static void runPendingCppRunnablesOnAndroidThread()
{
synchronized (m_mainActivityMutex) {
@@ -228,6 +235,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
private static void setViewVisibility(final View view, final boolean visible)
{
runAction(new Runnable() {
@@ -278,6 +286,7 @@ public class QtNative
});
}
+ @UsedFromNativeCode
public static int checkSelfPermission(String permission)
{
synchronized (m_mainActivityMutex) {
@@ -287,6 +296,7 @@ public class QtNative
}
}
+ @UsedFromNativeCode
private static byte[][] getSSLCertificates()
{
ArrayList<byte[]> certificateList = new ArrayList<>();
@@ -314,6 +324,7 @@ public class QtNative
return certificateArray;
}
+ @UsedFromNativeCode
private static String[] listAssetContent(android.content.res.AssetManager asset, String path) {
String [] list;
ArrayList<String> res = new ArrayList<>();
diff --git a/src/android/jar/src/org/qtproject/qt/android/UsedFromNativeCode.java b/src/android/jar/src/org/qtproject/qt/android/UsedFromNativeCode.java
new file mode 100644
index 0000000000..e0223c083f
--- /dev/null
+++ b/src/android/jar/src/org/qtproject/qt/android/UsedFromNativeCode.java
@@ -0,0 +1,10 @@
+// Copyright (C) 2023 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;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+public @interface UsedFromNativeCode { }
diff --git a/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java
index 4043746db6..dfabdadc63 100644
--- a/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java
@@ -324,6 +324,8 @@ public class QtAccessibilityDelegate extends View.AccessibilityDelegate
return event;
}
+ // This can be used for debug by performActionForVirtualViewId()
+ /** @noinspection unused*/
private void dumpNodes(int parentId)
{
Log.i(TAG, "A11Y hierarchy: " + parentId + " parent: " + QtNativeAccessibility.parentId(parentId));
@@ -369,8 +371,8 @@ public class QtAccessibilityDelegate extends View.AccessibilityDelegate
result.setPackageName(source.getPackageName());
result.setClassName(source.getClassName());
-// Spit out the entire hierarchy for debugging purposes
-// dumpNodes(-1);
+ // Spit out the entire hierarchy for debugging purposes
+ // dumpNodes(-1);
if (m_activityDelegate.getSurfaceCount() != 0) {
int[] ids = QtNativeAccessibility.childIdListForAccessibleObject(-1);
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 1270464576..34aec22c03 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
@@ -6,8 +6,11 @@ package org.qtproject.qt.android.extras;
import android.os.Binder;
import android.os.Parcel;
+import org.qtproject.qt.android.UsedFromNativeCode;
+
public class QtAndroidBinder extends Binder
{
+ @UsedFromNativeCode
public QtAndroidBinder(long id)
{
m_id = 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 3608051208..5d6dc97b84 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
@@ -7,8 +7,11 @@ import android.content.ComponentName;
import android.content.ServiceConnection;
import android.os.IBinder;
+import org.qtproject.qt.android.UsedFromNativeCode;
+
public class QtAndroidServiceConnection implements ServiceConnection
{
+ @UsedFromNativeCode
public QtAndroidServiceConnection(long id)
{
m_id = id;