summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2023-10-17 21:54:20 +0300
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2023-11-22 08:18:08 +0200
commit833e7c1629391496945e3812b35b61be206589c8 (patch)
treeb89e1bdc7fb1f89285fd7f8353d44b219f7b18fd
parent09afa7575276d7b500f17671a1ca9ca677767b44 (diff)
Android: add @UsedFromNativeCode annotation for java method used in c++
To get rid of unused method warnings in Java code for methods used only from C++ code and make it more visible which methods are used by native code. This annotation would need to be added to the relevant methods in this patch or future one. Use this annotation for all methods called from native code. And along the way remove few methods that are not used anywhere. Task-number: QTBUG-118077 Change-Id: Ie493fb057f4a93aff513f85e0936bc65a9bb304c Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
-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;