summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2013-03-07 13:30:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-21 15:26:58 +0100
commit53b32a0b3f589fe118d38dcf2c55d95e3854e6d8 (patch)
tree179ecc5812de9ec1a6d9d5e3a8ed3f32962e5d7c /src/android
parentb5a388192c886fd346daf461a8d738a1867c21e0 (diff)
Android: Fix use_local_libs when running from launcher
Use persistent data to specify the alternative location of Qt libraries instead of command line arguments, so that the application can be run from the launcher and not just from Qt Creator. Task-number: QTCREATORBUG-8643 Change-Id: I72df2905f3f35a3b924edd47d3a5387e674c97ac Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/java/AndroidManifest.xml6
-rw-r--r--src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java31
2 files changed, 20 insertions, 17 deletions
diff --git a/src/android/java/AndroidManifest.xml b/src/android/java/AndroidManifest.xml
index 7a77d6fd83..334e0f7648 100644
--- a/src/android/java/AndroidManifest.xml
+++ b/src/android/java/AndroidManifest.xml
@@ -9,6 +9,12 @@
<meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
<meta-data android:name="android.app.lib_name" android:value=""/>
+ <!-- Run with local libs -->
+ <meta-data android:name="android.app.use_local_qt_libs" android:value="0"/>
+ <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
+ <meta-data android:name="android.app.load_local_libs" android:value=""/>
+ <meta-data android:name="android.app.load_local_jars" android:value=""/>
+ <meta-data android:name="android.app.static_init_classes" android:value=""/>
<!-- Messages maps -->
<meta-data android:name="android.app.ministro_not_found_msg" android:value="@string/ministro_not_found_msg"/>
<meta-data android:name="android.app.ministro_needed_msg" android:value="@string/ministro_needed_msg"/>
diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
index c3d82bca8d..4b01d29143 100644
--- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
+++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
@@ -304,23 +304,22 @@ public class QtActivity extends Activity
m_qtLibs = getResources().getStringArray(resourceId);
}
- if (getIntent().getExtras()!= null
- && getIntent().getExtras().containsKey("use_local_qt_libs")
- && getIntent().getExtras().getString("use_local_qt_libs").equals("true")) {
- ArrayList<String> libraryList= new ArrayList<String>();
+ if (ai.metaData.containsKey("android.app.use_local_qt_libs")
+ && ai.metaData.getInt("android.app.use_local_qt_libs") == 1) {
+ ArrayList<String> libraryList = new ArrayList<String>();
- String localPrefix="/data/local/tmp/qt/";
- if (getIntent().getExtras().containsKey("libs_prefix"))
- localPrefix=getIntent().getExtras().getString("libs_prefix");
+ String localPrefix = "/data/local/tmp/qt/";
+ if (ai.metaData.containsKey("android.app.libs_prefix"))
+ localPrefix = ai.metaData.getString("android.app.libs_prefix");
if (m_qtLibs != null) {
for (int i=0;i<m_qtLibs.length;i++)
libraryList.add(localPrefix+"lib/lib"+m_qtLibs[i]+".so");
}
- if (getIntent().getExtras().containsKey("load_local_libs")) {
- String[] extraLibs=getIntent().getExtras().getString("load_local_libs").split(":");
- for (String lib:extraLibs) {
+ if (ai.metaData.containsKey("android.app.load_local_libs")) {
+ String[] extraLibs = ai.metaData.getString("android.app.load_local_libs").split(":");
+ for (String lib : extraLibs) {
if (lib.length() > 0)
libraryList.add(localPrefix + lib);
}
@@ -328,8 +327,8 @@ public class QtActivity extends Activity
String dexPaths = new String();
String pathSeparator = System.getProperty("path.separator", ":");
- if (getIntent().getExtras().containsKey("load_local_jars")) {
- String[] jarFiles = getIntent().getExtras().getString("load_local_jars").split(":");
+ if (ai.metaData.containsKey("android.app.load_local_jars")) {
+ String[] jarFiles = ai.metaData.getString("android.app.load_local_jars").split(":");
for (String jar:jarFiles) {
if (jar.length() > 0) {
if (dexPaths.length() > 0)
@@ -342,12 +341,10 @@ public class QtActivity extends Activity
Bundle loaderParams = new Bundle();
loaderParams.putInt(ERROR_CODE_KEY, 0);
loaderParams.putString(DEX_PATH_KEY, dexPaths);
- loaderParams.putString(LOADER_CLASS_NAME_KEY, getIntent().getExtras().containsKey("loader_class_name")
- ? getIntent().getExtras().getString("loader_class_name")
- : "org.qtproject.qt5.android.QtActivityDelegate");
- if (getIntent().getExtras().containsKey("static_init_classes")) {
+ loaderParams.putString(LOADER_CLASS_NAME_KEY, "org.qtproject.qt5.android.QtActivityDelegate");
+ if (ai.metaData.containsKey("android.app.static_init_classes")) {
loaderParams.putStringArray(STATIC_INIT_CLASSES_KEY,
- getIntent().getExtras().getString("static_init_classes").split(":"));
+ ai.metaData.getString("android.app.static_init_classes").split(":"));
}
loaderParams.putStringArrayList(NATIVE_LIBRARIES_KEY, libraryList);
loaderParams.putString(ENVIRONMENT_VARIABLES_KEY, ENVIRONMENT_VARIABLES