compose: details: Link privacy policy to data safety section header

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-05-21 17:22:34 +08:00
parent 70d68dc872
commit e3215a6721
3 changed files with 18 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork
import com.aurora.gplayapi.data.models.Rating 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.gplayapi.data.models.details.TestingProgram
import com.aurora.store.BuildConfig import com.aurora.store.BuildConfig
@@ -81,7 +82,8 @@ class AppPreviewProvider : PreviewParameterProvider<App> {
Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE Manifest.permission.WRITE_EXTERNAL_STORAGE
) ),
privacyPolicyUrl = "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/POLICY.md",
) )
) )
} }

View File

@@ -465,7 +465,12 @@ private fun ScreenContentAppMainPane(
onClick = if (app.permissions.isNotEmpty()) onNavigateToDetailsPermission else null onClick = if (app.permissions.isNotEmpty()) onNavigateToDetailsPermission else null
) )
if (dataSafetyReport != null) AppDataSafety(report = dataSafetyReport) if (dataSafetyReport != null) {
AppDataSafety(
report = dataSafetyReport,
privacyPolicyUrl = app.privacyPolicyUrl
)
}
AppPrivacy( AppPrivacy(
report = exodusReport, report = exodusReport,

View File

@@ -8,11 +8,13 @@ package com.aurora.store.compose.ui.details.components
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter 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.App
import com.aurora.gplayapi.data.models.datasafety.Entry import com.aurora.gplayapi.data.models.datasafety.Entry
import com.aurora.gplayapi.data.models.datasafety.EntryType 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 * 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. * of the Column with proper vertical arrangement spacing in the AppDetailsScreen.
* @param report App's data safety report * @param report App's data safety report
* @param privacyPolicyUrl App's privacy policy URL
*/ */
@Composable @Composable
fun AppDataSafety(report: Report) { fun AppDataSafety(report: Report, privacyPolicyUrl: String) {
val context = LocalContext.current
HeaderComposable( HeaderComposable(
title = stringResource(R.string.details_data_safety_title), 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) -> report.entries.groupBy { it.type }.forEach { (type, entries) ->
@@ -77,6 +83,7 @@ fun AppDataSafety(report: Report) {
private fun AppDataSafetyPreview(@PreviewParameter(AppPreviewProvider::class) app: App) { private fun AppDataSafetyPreview(@PreviewParameter(AppPreviewProvider::class) app: App) {
Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) { Column(verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))) {
AppDataSafety( AppDataSafety(
privacyPolicyUrl = app.privacyPolicyUrl,
report = Report( report = Report(
packageName = app.packageName, packageName = app.packageName,
entries = listOf( entries = listOf(