diff --git a/application/platforms/android/gradle/AndroidManifest.xml b/application/platforms/android/gradle/AndroidManifest.xml
index 4096f9430..6af90d3d4 100644
--- a/application/platforms/android/gradle/AndroidManifest.xml
+++ b/application/platforms/android/gradle/AndroidManifest.xml
@@ -8,7 +8,7 @@
-
-
-
diff --git a/application/platforms/android/src/main/res/values/themes.xml b/application/platforms/android/src/main/res/values/themes.xml
index 067ad80a0..1bf466d9f 100644
--- a/application/platforms/android/src/main/res/values/themes.xml
+++ b/application/platforms/android/src/main/res/values/themes.xml
@@ -2,6 +2,6 @@
diff --git a/tools/create_android_build.py b/tools/create_android_build.py
index 7eb7217f2..9f4af3841 100755
--- a/tools/create_android_build.py
+++ b/tools/create_android_build.py
@@ -88,6 +88,10 @@ def main():
parser.add_argument('--swappy',
help = 'Add Swappy support',
action = 'store_true')
+ parser.add_argument('--activity-name',
+ help = 'Use custom activity name')
+ parser.add_argument('--activity-path',
+ help = 'Path to custom Android activity code')
args = parser.parse_args()
abis = ['arm64-v8a'] if args.abis is None else args.abis
@@ -99,7 +103,7 @@ def main():
manifest = os.path.join(gradle_base, 'AndroidManifest.xml')
build_gradle = os.path.join(gradle_base, 'build.gradle')
- settings_gradle = os.path.join(gradle_base, 'settings.gradle')
+ settings_gradle = os.path.join(gradle_base, 'settings_custom.gradle' if args.activity_name else 'settings.gradle')
toplevel_gradle = os.path.join(gradle_base, 'toplevel.build.gradle')
gradle_properties = os.path.join(gradle_base, 'gradle.properties')
if (not os.path.isfile(manifest)) or \
@@ -122,10 +126,12 @@ def main():
# Write out AndroidManifest.xml
with open(manifest, 'r') as f:
+ activity_name = args.activity_name if args.activity_name else 'net.themaister.granite.GraniteActivity'
manifest_data = f.read()
manifest_data = manifest_data \
.replace('$$ICON$$', args.activity_icon_drawable) \
.replace('$$NATIVE_TARGET$$', args.native_target) \
+ .replace('$$ACTIVITY_NAME$$', activity_name) \
.replace('$$VERSION_CODE$$', args.version_code) \
.replace('$$VERSION_NAME$$', args.version_name)
@@ -177,7 +183,8 @@ def main():
.replace('$$PHYSICS$$', 'ON' if args.physics else 'OFF') \
.replace('$$SHADER_OPTIMIZE$$', 'ON' if args.optimize else 'OFF') \
.replace('$$FOSSILIZE$$', 'ON' if args.fossilize else 'OFF') \
- .replace('$$SWAPPY$$', 'ON' if args.swappy else 'OFF')
+ .replace('$$SWAPPY$$', 'ON' if args.swappy else 'OFF') \
+ .replace('$$EXTRA_DEPENDENCIES$$', "api project(':custom:android')" if args.activity_name else '')
with open(target_build_gradle, 'w') as dump_file:
print(data, file = dump_file)
@@ -196,6 +203,10 @@ def main():
.replace('$$APP$$', granite_app) \
.replace('$$GRANITE_ANDROID_ACTIVITY_PATH$$', granite_android_activity)
+ if args.activity_path:
+ android_activity = find_relative_path(output_settings_gradle, args.activity_path)
+ data = data.replace('$$ANDROID_ACTIVITY_PATH$$', android_activity)
+
with open(output_settings_gradle, 'w') as dump_file:
print(data, file = dump_file)