From e3215a6721c5284f08c6a5c4df7f4e16aba57dd0 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 May 2025 17:22:34 +0800 Subject: [PATCH] compose: details: Link privacy policy to data safety section header Signed-off-by: Aayush Gupta --- .../aurora/store/compose/composables/preview/App.kt | 4 +++- .../store/compose/ui/details/AppDetailsScreen.kt | 7 ++++++- .../compose/ui/details/components/AppDataSafety.kt | 11 +++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aurora/store/compose/composables/preview/App.kt b/app/src/main/java/com/aurora/store/compose/composables/preview/App.kt index 4b2d7a14a..826cb7baf 100644 --- a/app/src/main/java/com/aurora/store/compose/composables/preview/App.kt +++ b/app/src/main/java/com/aurora/store/compose/composables/preview/App.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Rating +import com.aurora.gplayapi.data.models.Support import com.aurora.gplayapi.data.models.details.TestingProgram import com.aurora.store.BuildConfig @@ -81,7 +82,8 @@ class AppPreviewProvider : PreviewParameterProvider { Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE - ) + ), + privacyPolicyUrl = "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/POLICY.md", ) ) } diff --git a/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt index 0d6c26484..b577ec726 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt @@ -465,7 +465,12 @@ private fun ScreenContentAppMainPane( onClick = if (app.permissions.isNotEmpty()) onNavigateToDetailsPermission else null ) - if (dataSafetyReport != null) AppDataSafety(report = dataSafetyReport) + if (dataSafetyReport != null) { + AppDataSafety( + report = dataSafetyReport, + privacyPolicyUrl = app.privacyPolicyUrl + ) + } AppPrivacy( report = exodusReport, diff --git a/app/src/main/java/com/aurora/store/compose/ui/details/components/AppDataSafety.kt b/app/src/main/java/com/aurora/store/compose/ui/details/components/AppDataSafety.kt index 9977b2894..5c6ad5bcd 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/details/components/AppDataSafety.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/details/components/AppDataSafety.kt @@ -8,11 +8,13 @@ package com.aurora.store.compose.ui.details.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter +import com.aurora.extensions.browse import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.datasafety.Entry import com.aurora.gplayapi.data.models.datasafety.EntryType @@ -26,12 +28,16 @@ import com.aurora.store.compose.composables.preview.AppPreviewProvider * Composable to display app's data safety report, supposed to be used as a part * of the Column with proper vertical arrangement spacing in the AppDetailsScreen. * @param report App's data safety report + * @param privacyPolicyUrl App's privacy policy URL */ @Composable -fun AppDataSafety(report: Report) { +fun AppDataSafety(report: Report, privacyPolicyUrl: String) { + val context = LocalContext.current + HeaderComposable( title = stringResource(R.string.details_data_safety_title), - subtitle = stringResource(R.string.details_data_safety_subtitle) + subtitle = stringResource(R.string.details_data_safety_subtitle), + onClick = { context.browse(privacyPolicyUrl) } ) report.entries.groupBy { it.type }.forEach { (type, entries) -> @@ -77,6 +83,7 @@ fun AppDataSafety(report: Report) { private fun AppDataSafetyPreview(@PreviewParameter(AppPreviewProvider::class) app: App) { Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) { AppDataSafety( + privacyPolicyUrl = app.privacyPolicyUrl, report = Report( packageName = app.packageName, entries = listOf(