From f6ad69506a4299302c97c7a70275a81ffa225aed Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 2 Nov 2023 21:21:06 +0200 Subject: [PATCH] Android: add call QtActivity.appendApplicationParameters() to set args MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of having to set a field of the class QtActivity to set extra app parameters (i.e. passed when calling main()), make it doable via a new API call appendApplicationParameters(). Note that this is equivalent to setting the manifest metadata "android.app.arguments". Providing a dedicated method for this makes it cleaner and is the expected way. Task-number: QTBUG-115017 Task-number: QTBUG-114593 Change-Id: I407cb68e57fa9a1be24586e42cb947f9c7f4037e Reviewed-by: Tinja Paavoseppä --- .../qtproject/qt/android/QtActivityBase.java | 17 +++++++++-------- .../qt/android/bindings/QtActivity.java | 6 ------ 2 files changed, 9 insertions(+), 14 deletions(-) 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 b936bd4c95..504f50369e 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java @@ -21,13 +21,7 @@ import android.view.Window; public class QtActivityBase extends Activity { - private boolean m_optionsMenuIsVisible = false; - - // use this variable to pass any parameters to your application, - // the parameters must not contain any white spaces - // and must be separated with "\t" - // e.g "-param1\t-param2=value2\t-param3\tvalue3" - public String APPLICATION_PARAMETERS = null; + public String m_applicationParams = null; // use this variable to add any environment variables to your application. // the env vars must be separated with "\t" @@ -62,6 +56,13 @@ public class QtActivityBase extends Activity intent.putExtra(extraSourceInfoKey, sourceInformation); } + // Append any parameters to your application, + // the parameters must be "\t" separated. + protected void appendApplicationParameters(String params) + { + m_applicationParams += params; + } + private void handleActivityRestart() { if (QtNative.isStarted()) { boolean updated = m_delegate.updateActivityAfterRestart(this); @@ -99,7 +100,7 @@ public class QtActivityBase extends Activity addReferrer(getIntent()); QtActivityLoader loader = new QtActivityLoader(this); - loader.setApplicationParameters(APPLICATION_PARAMETERS); + loader.setApplicationParameters(m_applicationParams); loader.setEnvironmentVariables(ENVIRONMENT_VARIABLES); loader.loadQtLibraries(); diff --git a/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java index f31bd75fea..89ef564d55 100644 --- a/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java +++ b/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java @@ -19,12 +19,6 @@ public class QtActivity extends QtActivityBase private void setAppDetails() { - // use this variable to pass any parameters to your application, - // the parameters must not contain any white spaces - // and must be separated with "\t" - // e.g "-param1\t-param2=value2\t-param3\tvalue3" - APPLICATION_PARAMETERS = ""; - // Use this variable to add any environment variables to your application. // the env vars must be separated with "\t" // e.g. "ENV_VAR1=1\tENV_VAR2=2\t"