diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2023-11-15 13:26:38 +0100 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2023-11-15 18:26:41 +0100 |
commit | f9b9e702465b4de29153b49e077c70a0ad78c89d (patch) | |
tree | 4157988ab08036321f28503a22ba48da08b29d1a | |
parent | 1d7b1e2d4099aac15e695696e6a0640d6e01e23f (diff) |
android: Add button to open privacy URL
In the About dialog, add a "Privacy Policy"
button when a privacy URL is set, i.e.
the `--with-privacy-policy-url=<URL>` autogen
option is used.
Clicking the button will fire an Intent
to open that URL.
Use a custom build config field as described at [1]
to make the privacy policy URL available to
the Java code.
[1] https://developer.android.com/build/gradle-tips#share-custom-fields-and-resource-values-with-your-app-code
Change-Id: I6e1a9aff885e4ce132284f49e722b3343fc51b79
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159445
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
-rw-r--r-- | android/Bootstrap/Makefile.shared | 1 | ||||
-rw-r--r-- | android/source/res/values-de/strings.xml | 1 | ||||
-rw-r--r-- | android/source/res/values/strings.xml | 1 | ||||
-rw-r--r-- | android/source/src/java/org/libreoffice/AboutDialogFragment.java | 11 |
4 files changed, 14 insertions, 0 deletions
diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared index ffb2c16a832d..682c98709630 100644 --- a/android/Bootstrap/Makefile.shared +++ b/android/Bootstrap/Makefile.shared @@ -113,5 +113,6 @@ liboSettings.gradle: $(BUILDDIR)/config_build.mk $(BUILDDIR)/config_host.mk && echo " minSdkVersion = $(ANDROID_API_LEVEL)" \ && echo " versionCode project.hasProperty('cmdVersionCode') ? cmdVersionCode.toInteger() : $(if $(versionCode),$(versionCode),1)" \ && echo " versionName '$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)$(LIBO_VERSION_SUFFIX)$(LIBO_VERSION_SUFFIX_SUFFIX)/$(shell cd $(SRCDIR) && git log -1 --format=%h)/$(OOO_VENDOR)'" \ + && echo " buildConfigField('String', 'PRIVACY_POLICY_URL', '\"$(PRIVACY_POLICY_URL)\"')" \ && echo "}" \ ) > $@ diff --git a/android/source/res/values-de/strings.xml b/android/source/res/values-de/strings.xml index 88fdbaedd73d..bd979b78f8ae 100644 --- a/android/source/res/values-de/strings.xml +++ b/android/source/res/values-de/strings.xml @@ -13,6 +13,7 @@ <string name="about_license">Lizenz anzeigen</string> <string name="about_notice">Hinweise anzeigen</string> + <string name="about_privacy_policy">Datenschutzerklärung</string> <string name="new_textdocument">Neues Textdokument</string> <string name="new_presentation">Neue Präsentation</string> diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index 77bfc8c110e0..d2262406136e 100644 --- a/android/source/res/values/strings.xml +++ b/android/source/res/values/strings.xml @@ -13,6 +13,7 @@ <string name="about_license">Show License</string> <string name="about_notice">Show Notice</string> + <string name="about_privacy_policy">Privacy Policy</string> <string name="create_file">Create New File</string> <string name="new_textdocument">New Text Document</string> diff --git a/android/source/src/java/org/libreoffice/AboutDialogFragment.java b/android/source/src/java/org/libreoffice/AboutDialogFragment.java index 17c43787e619..4abf9c14a35f 100644 --- a/android/source/src/java/org/libreoffice/AboutDialogFragment.java +++ b/android/source/src/java/org/libreoffice/AboutDialogFragment.java @@ -88,6 +88,17 @@ public class AboutDialogFragment extends DialogFragment { } }); + // when privacy policy URL is set (via '--with-privacy-policy-url=<url>' autogen option), + // add button to open that URL + final String privacyUrl = BuildConfig.PRIVACY_POLICY_URL; + if (!privacyUrl.isEmpty() && privacyUrl != "undefined") { + builder.setNeutralButton(R.string.about_privacy_policy, (DialogInterface dialog, int id) -> { + Intent openPrivacyUrlIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(privacyUrl)); + startActivity(openPrivacyUrlIntent); + dialog.dismiss(); + }); + } + return builder.create(); } |