From 1d5e13cc2452605c0629991a9d46225688d7a486 Mon Sep 17 00:00:00 2001 From: darken Date: Fri, 21 Jan 2022 12:18:59 +0100 Subject: [PATCH] Improve permission texts, privacy policy link and layouts. --- .../eu/darken/capod/common/BuildConfigWrap.kt | 3 ++- .../java/eu/darken/capod/common/PrivacyPolicy.kt | 5 +++++ .../debug/recording/core/RecorderModule.kt | 2 +- .../debug/recording/ui/RecorderActivityVM.kt | 2 +- .../capod/main/ui/overview/OverviewFragmentVM.kt | 3 --- .../main/ui/overview/cards/PermissionCardVH.kt | 13 +++++++++---- .../capod/main/ui/settings/SettingsFragment.kt | 2 +- .../main/ui/settings/SettingsIndexFragment.kt | 7 ++++++- .../ui/settings/support/SupportFragmentVM.kt | 2 +- .../main/res/layout/overview_permission_item.xml | 11 +++++------ app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/preferences_index.xml | 16 ++++++---------- 12 files changed, 38 insertions(+), 30 deletions(-) create mode 100644 app/src/main/java/eu/darken/capod/common/PrivacyPolicy.kt diff --git a/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt b/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt index 5d1df5b6..88d25db3 100644 --- a/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt +++ b/app/src/main/java/eu/darken/capod/common/BuildConfigWrap.kt @@ -16,5 +16,6 @@ object BuildConfigWrap { val VERSION_NAME: String = BuildConfig.VERSION_NAME val GIT_SHA: String = BuildConfig.GITSHA - val VERSION_DESCRIPTION: String = "v$VERSION_NAME ($VERSION_CODE) [$GIT_SHA] ${FLAVOR}_$BUILD_TYPE" + val VERSION_DESCRIPTION_LONG: String = "v$VERSION_NAME ($VERSION_CODE) [$GIT_SHA] ${FLAVOR}_$BUILD_TYPE" + val VERSION_DESCRIPTION_SHORT: String = "v$VERSION_NAME [$GIT_SHA] $FLAVOR" } diff --git a/app/src/main/java/eu/darken/capod/common/PrivacyPolicy.kt b/app/src/main/java/eu/darken/capod/common/PrivacyPolicy.kt new file mode 100644 index 00000000..89cdd055 --- /dev/null +++ b/app/src/main/java/eu/darken/capod/common/PrivacyPolicy.kt @@ -0,0 +1,5 @@ +package eu.darken.capod.common + +object PrivacyPolicy { + const val URL = "https://raw.githubusercontent.com/d4rken/capod-public/main/PRIVACY_POLICY.md" +} \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderModule.kt b/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderModule.kt index e87fb8c2..66b249f0 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderModule.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderModule.kt @@ -58,7 +58,7 @@ class RecorderModule @Inject constructor( context.startServiceCompat(Intent(context, RecorderService::class.java)) log(TAG, INFO) { "Build.Fingerprint: ${Build.FINGERPRINT}" } - log(TAG, INFO) { "BuildConfig.Versions: ${BuildConfigWrap.VERSION_DESCRIPTION}" } + log(TAG, INFO) { "BuildConfig.Versions: ${BuildConfigWrap.VERSION_DESCRIPTION_LONG}" } copy( recorder = newRecorder diff --git a/app/src/main/java/eu/darken/capod/common/debug/recording/ui/RecorderActivityVM.kt b/app/src/main/java/eu/darken/capod/common/debug/recording/ui/RecorderActivityVM.kt index ee018286..bf761580 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/recording/ui/RecorderActivityVM.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/recording/ui/RecorderActivityVM.kt @@ -89,7 +89,7 @@ class RecorderActivityVM @Inject constructor( type = "application/zip" addCategory(Intent.CATEGORY_DEFAULT) - putExtra(Intent.EXTRA_SUBJECT, "CAPod DebugLog - ${BuildConfigWrap.VERSION_DESCRIPTION})") + putExtra(Intent.EXTRA_SUBJECT, "CAPod DebugLog - ${BuildConfigWrap.VERSION_DESCRIPTION_LONG})") putExtra(Intent.EXTRA_TEXT, "Your text here.") addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt index 20a51c9e..5d0e7edc 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt @@ -116,9 +116,6 @@ class OverviewFragmentVM @Inject constructor( PermissionCardVH.Item( permission = perm, onRequest = { requestPermissionEvent.postValue(it) }, - onPPAction = { - webpageTool.open("https://raw.githubusercontent.com/d4rken/capod-public/main/PRIVACY_POLICY.md") - } ) } .run { items.addAll(this) } diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/PermissionCardVH.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/PermissionCardVH.kt index 8992fa15..aa2e12a7 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/PermissionCardVH.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/PermissionCardVH.kt @@ -1,7 +1,10 @@ package eu.darken.capod.main.ui.overview.cards +import android.text.Html +import android.text.method.LinkMovementMethod import android.view.ViewGroup import eu.darken.capod.R +import eu.darken.capod.common.PrivacyPolicy import eu.darken.capod.common.lists.binding import eu.darken.capod.common.lists.differ.DifferItem import eu.darken.capod.common.permissions.Permission @@ -25,15 +28,17 @@ class PermissionCardVH(parent: ViewGroup) : permissionLabel.setText(item.permission.labelRes) permissionDescription.setText(item.permission.descriptionRes) grantAction.setOnClickListener { item.onRequest(item.permission) } - ppAction.setOnClickListener { - item.onPPAction() + privacyPolicy.apply { + movementMethod = LinkMovementMethod.getInstance() + val ppText = getString(R.string.settings_privacy_policy_label) + val ppLink = PrivacyPolicy.URL + text = Html.fromHtml("$ppText", 0) } } data class Item( val permission: Permission, - val onRequest: (Permission) -> Unit, - val onPPAction: () -> Unit + val onRequest: (Permission) -> Unit ) : OverviewAdapter.Item { override val stableId: Long = permission.hashCode().toLong() diff --git a/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsFragment.kt b/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsFragment.kt index 71c31bd8..a447ad62 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsFragment.kt @@ -68,7 +68,7 @@ class SettingsFragment : Fragment2(R.layout.settings_fragment), } ui.toolbar.apply { - subtitle = BuildConfigWrap.VERSION_DESCRIPTION + subtitle = BuildConfigWrap.VERSION_DESCRIPTION_SHORT setNavigationOnClickListener { requireActivity().onBackPressed() } } diff --git a/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsIndexFragment.kt b/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsIndexFragment.kt index b5e932a8..80d62cb7 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsIndexFragment.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/settings/SettingsIndexFragment.kt @@ -7,6 +7,7 @@ import dagger.hilt.android.AndroidEntryPoint import eu.darken.androidstarter.common.preferences.Settings import eu.darken.capod.R import eu.darken.capod.common.BuildConfigWrap +import eu.darken.capod.common.PrivacyPolicy import eu.darken.capod.common.WebpageTool import eu.darken.capod.common.uix.PreferenceFragment2 import eu.darken.capod.main.core.GeneralSettings @@ -34,7 +35,11 @@ class SettingsIndexFragment : PreferenceFragment2() { } override fun onPreferencesCreated() { - findPreference("core.changelog")!!.summary = BuildConfigWrap.VERSION_DESCRIPTION + findPreference("core.changelog")!!.summary = BuildConfigWrap.VERSION_DESCRIPTION_LONG + findPreference("core.privacy")!!.setOnPreferenceClickListener { + webpageTool.open(PrivacyPolicy.URL) + true + } super.onPreferencesCreated() } diff --git a/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt b/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt index 0cb5b19c..0ef26103 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/settings/support/SupportFragmentVM.kt @@ -29,7 +29,7 @@ class SupportFragmentVM @Inject constructor( bodyInfo.append("--- Infos for the developer ---\n") - bodyInfo.append("App version: ").append(BuildConfigWrap.VERSION_DESCRIPTION).append("\n") + bodyInfo.append("App version: ").append(BuildConfigWrap.VERSION_DESCRIPTION_LONG).append("\n") bodyInfo.append("Device: ").append(Build.FINGERPRINT).append("\n") bodyInfo.append("Install ID: ").append(installId.id).append("\n") diff --git a/app/src/main/res/layout/overview_permission_item.xml b/app/src/main/res/layout/overview_permission_item.xml index 80ac9421..dfe84b66 100644 --- a/app/src/main/res/layout/overview_permission_item.xml +++ b/app/src/main/res/layout/overview_permission_item.xml @@ -49,16 +49,15 @@ app:layout_constraintTop_toBottomOf="@id/permission_label" tools:text="Lorem Ipsum" /> - @@ -73,7 +72,7 @@ android:text="@string/general_grant_permission_action" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@id/permission_description" /> + app:layout_constraintTop_toBottomOf="@id/privacy_policy" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d4108021..ef94f60f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,7 @@ Background location access CAPod uses \"background location access\" to enable features like \"Show popup\" and \"AutoConnect\" while the app is closed. Background location access allows the app to receive Bluetooth Low Energy data while it is in the background. This app will NOT use Bluetooth data to determine your location. Disable battery optimizations - Battery optimizations prevent this app on some Android devices from receiving Bluetooth data while the app is in the background. + Battery optimizations prevent this app from reliably receiving Bluetooth data while the app is in the background. Headphones: %1$s Headphones diff --git a/app/src/main/res/xml/preferences_index.xml b/app/src/main/res/xml/preferences_index.xml index 388327a7..ff53ca88 100644 --- a/app/src/main/res/xml/preferences_index.xml +++ b/app/src/main/res/xml/preferences_index.xml @@ -20,16 +20,6 @@ app:title="@string/settings_support_label" /> - - - - - + + \ No newline at end of file