summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2013-11-07 13:44:52 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-08 12:14:31 +0100
commitf0610b8b0811d459bb1a9d6c309c013c7e543f84 (patch)
tree7f8c979d3f07ecaa1c63f51fd1f09b0a027b7770
parent611ac50c1ed80bd6c6c15f2b39e720b6f7c1acb8 (diff)
androiddeployqt: Support default permissions/features for module
Read the permissions/features required for the module from the dependency XML and update the default AndroidManifest.xml to include these. Task-number: QTBUG-33953 Change-Id: I52edce7ebf826d242fbb49dcd8069c60a1381116 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
-rw-r--r--src/androiddeployqt/main.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/androiddeployqt/main.cpp b/src/androiddeployqt/main.cpp
index 5075a60d0..8a5e85100 100644
--- a/src/androiddeployqt/main.cpp
+++ b/src/androiddeployqt/main.cpp
@@ -165,6 +165,8 @@ struct Options
QString temporaryDirectoryName;
bool fetchedRemoteModificationDates;
QHash<QString, QDateTime> remoteModificationDates;
+ QStringList permissions;
+ QStringList features;
};
Options parseOptions()
@@ -859,6 +861,15 @@ bool updateAndroidManifest(Options &options)
replacements[QLatin1String("-- %%USE_LOCAL_QT_LIBS%% --")]
= (options.deploymentMechanism != Options::Ministro) ? QString::fromLatin1("1") : QString::fromLatin1("0");
+ QString permissions;
+ foreach (QString permission, options.permissions)
+ permissions += QString::fromLatin1("<uses-permission android:name=\"%1\" />\n").arg(permission);
+ replacements[QLatin1String("<!-- %%INSERT_PERMISSIONS -->")] = permissions;
+
+ QString features;
+ foreach (QString feature, options.features)
+ features += QString::fromLatin1("<uses-feature android:name=\"%1\" />\n").arg(feature);
+ replacements[QLatin1String("<!-- %%INSERT_FEATURES -->")] = features;
QString androidManifestPath = options.outputDirectory + QLatin1String("/AndroidManifest.xml");
if (!updateFile(androidManifestPath, replacements))
@@ -1102,6 +1113,12 @@ bool readAndroidDependencyXml(Options *options,
if (fileName.endsWith(QLatin1String(".so"))) {
remainingDependencies->insert(fileName);
}
+ } else if (reader.name() == QLatin1String("permission")) {
+ QString name = reader.attributes().value(QLatin1String("name")).toString();
+ options->permissions.append(name);
+ } else if (reader.name() == QLatin1String("feature")) {
+ QString name = reader.attributes().value(QLatin1String("name")).toString();
+ options->features.append(name);
}
}
}