diff options
author | BogDan Vatra <bogdan@kde.org> | 2014-05-21 12:23:31 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-22 18:20:02 +0200 |
commit | 09ed9e3eae71efdcc769a83859fcfa976ed40694 (patch) | |
tree | 7a67d32c419f078a2dd1f2b94a2e61369673e514 /src/android/java | |
parent | 00470662e3ec296cd0619e1a5a71aebcb32d9a8a (diff) |
Android: Extract data for native style on startup
When Ministro is not in use, we need to extract style
information on startup in order for the native Android style
to work.
The code to extract data from the device is contributed from
the Ministro project.
[ChangeLog][Android] Enable using native style also when
Ministro deployment mechanism is not in use.
Task-number: QTBUG-36019
Change-Id: I2afef5219b4e8fbb2f3e387cbc5e570da1f41011
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src/android/java')
-rw-r--r-- | src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java | 17 |
1 files changed, 16 insertions, 1 deletions
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 f99bb84077..43b04d17f0 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 @@ -116,6 +116,7 @@ public class QtActivity extends Activity private static final String MAIN_LIBRARY_KEY = "main.library"; private static final String STATIC_INIT_CLASSES_KEY = "static.init.classes"; private static final String NECESSITAS_API_LEVEL_KEY = "necessitas.api.level"; + private static final String EXTRACT_STYLE_KEY = "extract.android.style"; /// Ministro server parameter keys private static final String REQUIRED_MODULES_KEY = "required.modules"; @@ -177,6 +178,7 @@ public class QtActivity extends Activity // * unstable - unstable repository, DO NOT use this repository in production, // this repository is used to push Qt snapshots. private String[] m_qtLibs = null; // required qt libs + private int m_displayDensity = -1; public QtActivity() { @@ -629,6 +631,17 @@ public class QtActivity extends Activity m_activityInfo.metaData.getString("android.app.static_init_classes").split(":")); } loaderParams.putStringArrayList(NATIVE_LIBRARIES_KEY, libraryList); + + + if (bundlingQtLibs) { + String themePath = pluginsPrefix + "android-style/"; + String stylePath = themePath + m_displayDensity + "/"; + if (!(new File(stylePath)).exists()) + loaderParams.putString(EXTRACT_STYLE_KEY, stylePath); + ENVIRONMENT_VARIABLES += "\tMINISTRO_ANDROID_STYLE_PATH=" + stylePath + + "\tQT_ANDROID_THEMES_ROOT_PATH=" + themePath; + } + loaderParams.putString(ENVIRONMENT_VARIABLES_KEY, ENVIRONMENT_VARIABLES + "\tQML2_IMPORT_PATH=" + pluginsPrefix + "/qml" + "\tQML_IMPORT_PATH=" + pluginsPrefix + "/imports" @@ -867,8 +880,10 @@ public class QtActivity extends Activity return; } + m_displayDensity = getResources().getDisplayMetrics().densityDpi; + ENVIRONMENT_VARIABLES += "\tQT_ANDROID_THEME=" + QT_ANDROID_DEFAULT_THEME - + "/\tQT_ANDROID_THEME_DISPLAY_DPI=" + getResources().getDisplayMetrics().densityDpi + "\t"; + + "/\tQT_ANDROID_THEME_DISPLAY_DPI=" + m_displayDensity + "\t"; if (null == getLastNonConfigurationInstance()) { // if splash screen is defined, then show it |