summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java13
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java2
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java4
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtLoader.java32
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtNative.java4
5 files changed, 26 insertions, 29 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 1a4b0c6703..f3e23b9da1 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java
@@ -21,7 +21,7 @@ import android.view.Window;
public class QtActivityBase extends Activity
{
- private String m_applicationParams = null;
+ private String m_applicationParams = "";
private boolean m_isCustomThemeSet = false;
private boolean m_retainNonConfigurationInstance = false;
@@ -50,11 +50,16 @@ public class QtActivityBase extends Activity
intent.putExtra(extraSourceInfoKey, sourceInformation);
}
- // Append any parameters to your application,
- // the parameters must be "\t" separated.
+ // Append any parameters to your application.
+ // Either a whitespace or a tab is accepted as a separator between parameters.
/** @noinspection unused*/
public void appendApplicationParameters(String params)
{
+ if (params == null || params.isEmpty())
+ return;
+
+ if (!m_applicationParams.isEmpty())
+ m_applicationParams += " ";
m_applicationParams += params;
}
@@ -95,7 +100,7 @@ public class QtActivityBase extends Activity
addReferrer(getIntent());
QtActivityLoader loader = new QtActivityLoader(this);
- loader.setApplicationParameters(m_applicationParams);
+ loader.appendApplicationParameters(m_applicationParams);
loader.loadQtLibraries();
m_delegate.startNativeApplication(loader.getApplicationParameters(),
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 964a0a871c..35cc259126 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
@@ -114,7 +114,7 @@ class QtActivityDelegate
}
}
- public void startNativeApplication(ArrayList<String> appParams, String mainLib)
+ public void startNativeApplication(String appParams, String mainLib)
{
if (m_surfaces != null)
return;
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 89185e3c45..6f15a7326e 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java
@@ -125,7 +125,7 @@ class QtActivityLoader extends QtLoader {
String intentArgs = intent.getStringExtra("applicationArguments");
if (intentArgs != null)
- setApplicationParameters(intentArgs);
+ appendApplicationParameters(intentArgs);
Bundle extras = intent.getExtras();
if (extras == null) {
@@ -144,7 +144,7 @@ class QtActivityLoader extends QtLoader {
if (extras.containsKey("extraappparams")) {
String extraAppParams = extras.getString("extraappparams");
- setApplicationParameters(getDecodedUtfString(extraAppParams));
+ appendApplicationParameters(getDecodedUtfString(extraAppParams));
}
} else {
Log.d(QtNative.QtTAG, "Not in debug mode! It is not allowed to use extra arguments " +
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 fa7277fc8b..352645fc07 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java
@@ -38,7 +38,7 @@ abstract class QtLoader {
protected ComponentInfo m_contextInfo;
protected String m_mainLib;
- protected ArrayList<String> m_applicationParameters = new ArrayList<>();
+ protected String m_applicationParameters = "";
protected HashMap<String, String> m_environmentVariables = new HashMap<>();
/**
@@ -91,7 +91,7 @@ abstract class QtLoader {
String backgroundRunning = getMetaData("android.app.background_running");
setEnvironmentVariable("QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED", backgroundRunning);
setEnvironmentVariable("QTRACE_LOCATION", getMetaData("android.app.trace_location"));
- setApplicationParameters(getMetaData("android.app.arguments"));
+ appendApplicationParameters(getMetaData("android.app.arguments"));
}
private ArrayList<String> preferredAbiLibs(String[] libs) {
@@ -164,31 +164,22 @@ abstract class QtLoader {
* the main library's main() function. This is assembled from
* a combination of static values and also metadata dependent values.
**/
- public ArrayList<String> getApplicationParameters() {
+ public String getApplicationParameters() {
return m_applicationParameters;
}
/**
- * Adds a parameter string to the internal array list of parameters.
- **/
- public void setApplicationParameter(String param)
- {
- if (param == null || param.isEmpty())
- return;
- m_applicationParameters.add(param);
- }
-
- /**
* Adds a list of parameters to the internal array list of parameters.
- * This expects the parameters separated by '\t'.
+ * Either a whitespace or a tab is accepted as a separator between parameters.
**/
- public void setApplicationParameters(String params)
+ public void appendApplicationParameters(String params)
{
if (params == null || params.isEmpty())
return;
- for (String param : params.split("\t"))
- setApplicationParameter(param);
+ if (!m_applicationParameters.isEmpty())
+ m_applicationParameters += " ";
+ m_applicationParameters += params;
}
/**
@@ -208,15 +199,16 @@ abstract class QtLoader {
/**
* Sets a list of keys/values string to as environment variables.
* This expects the key/value to be separated by '=', and parameters
- * to be separated by '\t'.
- * Ex: key1=val1\tkey2=val2\tkey3=val3
+ * to be separated by tabs or space.
**/
public void setEnvironmentVariables(String environmentVariables)
{
if (environmentVariables == null || environmentVariables.isEmpty())
return;
- for (String variable : environmentVariables.split("\t")) {
+ environmentVariables = environmentVariables.replaceAll("\t", " ");
+
+ for (String variable : environmentVariables.split(" ")) {
String[] keyValue = variable.split("=", 2);
if (keyValue.length < 2 || keyValue[0].isEmpty())
continue;
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 b321e1e052..ee67362fec 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
@@ -278,11 +278,11 @@ class QtNative
runAction(() -> view.setVisibility(visible ? View.VISIBLE : View.GONE));
}
- public static void startApplication(ArrayList<String> params, String mainLib)
+ public static void startApplication(String params, String mainLib)
{
synchronized (m_mainActivityMutex) {
m_qtThread.run(() -> {
- final String qtParams = mainLib + "\t" + String.join("\t", params);
+ final String qtParams = mainLib + " " + params;
if (!startQtAndroidPlugin(qtParams))
Log.e(QtTAG, "An error occurred while starting the Qt Android plugin");
});