From 53b32a0b3f589fe118d38dcf2c55d95e3854e6d8 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Thu, 7 Mar 2013 13:30:21 +0100 Subject: 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 --- src/android/java/AndroidManifest.xml | 6 +++++ .../qtproject/qt5/android/bindings/QtActivity.java | 31 ++++++++++------------ 2 files changed, 20 insertions(+), 17 deletions(-) (limited to 'src/android/java') 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 @@ + + + + + + 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 libraryList= new ArrayList(); + if (ai.metaData.containsKey("android.app.use_local_qt_libs") + && ai.metaData.getInt("android.app.use_local_qt_libs") == 1) { + ArrayList libraryList = new ArrayList(); - 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 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 -- cgit v1.2.3