Skip to content

Commit

Permalink
Add write extra xml inside application element option
Browse files Browse the repository at this point in the history
Add write extra xml inside application element option
  • Loading branch information
Craulback committed Mar 29, 2022
1 parent 1279634 commit fbf9371
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions buildozer/default.spec
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ fullscreen = 0
# use that parameter to provide a filename from where to load your custom XML arguments:
#android.extra_manifest_application_arguments = ./src/android/extra_manifest_application_arguments.xml

# (str) Extra xml to write directly inside the <application> element of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML arguments:
# android.extra_manifest_application_xml = ./src/android/extra_manifest_application.xml

# (str) Full name including package path of the Java class that implements Python Service
# use that parameter to set custom Java class instead of PythonService
#android.service_class_name = org.kivy.android.PythonService
Expand Down
9 changes: 8 additions & 1 deletion buildozer/targets/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -956,14 +956,21 @@ def execute_build_package(self, build_cmd):
extra_manifest_xml = self.buildozer.config.getdefault(
'app', 'android.extra_manifest_xml', '')
if extra_manifest_xml:
cmd.append('--extra-manifest-xml="{}"'.format(open(extra_manifest_xml, 'rt').read()))
cmd.append('--extra-manifest-xml="{}"'.format(open(extra_manifest_xml, 'rt').read().replace('"', '\\"')))

# support for extra-manifest-application-arguments
extra_manifest_application_arguments = self.buildozer.config.getdefault(
'app', 'android.extra_manifest_application_arguments', '')
if extra_manifest_application_arguments:
args_body = open(extra_manifest_application_arguments, 'rt').read().replace('"', '\\"').replace('\n', ' ').replace('\t', ' ')
cmd.append('--extra-manifest-application-arguments="{}"'.format(args_body))

# support for extra-manifest-application-xml
extra_manifest_application_xml = self.buildozer.config.getdefault(
'app', 'android.extra_manifest_application_xml', '')
if extra_manifest_application_xml:
args_body = open(extra_manifest_application_xml, 'rt').read().replace('"', '\\"')
cmd.append('--extra-manifest-application-xml="{}"'.format(args_body))

# support for gradle dependencies
gradle_dependencies = self.buildozer.config.getlist('app', 'android.gradle_dependencies', [])
Expand Down

0 comments on commit fbf9371

Please sign in to comment.