Update: Make info blocks in AppSheet expandable

This commit is contained in:
machiav3lli 2022-05-31 03:24:17 +02:00
parent db5b22f5cf
commit a09692884e

View File

@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -65,6 +64,7 @@ import com.looker.droidify.screen.ScreenshotsFragment
import com.looker.droidify.service.Connection import com.looker.droidify.service.Connection
import com.looker.droidify.service.DownloadService import com.looker.droidify.service.DownloadService
import com.looker.droidify.ui.activities.MainActivityX import com.looker.droidify.ui.activities.MainActivityX
import com.looker.droidify.ui.compose.components.ExpandableBlock
import com.looker.droidify.ui.compose.components.ScreenshotItem import com.looker.droidify.ui.compose.components.ScreenshotItem
import com.looker.droidify.ui.compose.components.ScreenshotList import com.looker.droidify.ui.compose.components.ScreenshotList
import com.looker.droidify.ui.compose.components.SwitchPreference import com.looker.droidify.ui.compose.components.SwitchPreference
@ -562,10 +562,11 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
item { item {
val links = product.generateLinks(requireContext()) val links = product.generateLinks(requireContext())
if (links.isNotEmpty()) { if (links.isNotEmpty()) {
Text( ExpandableBlock(
text = stringResource(id = R.string.links), heading = stringResource(id = R.string.links),
color = MaterialTheme.colorScheme.primary positive = true,
) preExpanded = true
) {
links.forEach { link -> links.forEach { link ->
LinkItem( LinkItem(
linkType = link, linkType = link,
@ -580,12 +581,14 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
} }
} }
} }
}
item { item {
if (product.donates.isNotEmpty()) { if (product.donates.isNotEmpty()) {
Text( ExpandableBlock(
text = stringResource(id = R.string.donate), heading = stringResource(id = R.string.donate),
color = MaterialTheme.colorScheme.primary positive = true,
) preExpanded = false
) {
product.donates.forEach { product.donates.forEach {
LinkItem(linkType = DonateType(it, requireContext()), LinkItem(linkType = DonateType(it, requireContext()),
onClick = { link -> onClick = { link ->
@ -601,6 +604,7 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
} }
} }
} }
}
item { item {
product.displayRelease?.generatePermissionGroups(requireContext()) product.displayRelease?.generatePermissionGroups(requireContext())
?.let { list -> ?.let { list ->
@ -630,10 +634,11 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
} }
item { item {
if (product.antiFeatures.isNotEmpty()) { if (product.antiFeatures.isNotEmpty()) {
Text( ExpandableBlock(
text = stringResource(id = R.string.anti_features), heading = stringResource(id = R.string.anti_features),
color = MaterialTheme.colorScheme.secondary positive = false,
) preExpanded = false
) {
Text( Text(
text = product.antiFeatures.map { af -> text = product.antiFeatures.map { af ->
val titleId = val titleId =
@ -645,15 +650,18 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
) )
} }
} }
}
item { item {
if (product.whatsNew.isNotEmpty()) { if (product.whatsNew.isNotEmpty()) {
Text( ExpandableBlock(
text = stringResource(id = R.string.changes), heading = stringResource(id = R.string.changes),
color = MaterialTheme.colorScheme.primary positive = true,
) preExpanded = true
) {
HtmlTextBlock(description = product.whatsNew) HtmlTextBlock(description = product.whatsNew)
} }
} }
}
items(items = releaseItems) { items(items = releaseItems) {
ReleaseItem( ReleaseItem(