From f03d04241fffbd50f568a115bb0859233b0fdb89 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 24 Aug 2023 10:26:11 +0200 Subject: [PATCH] [app] some compose fixes fix previews that required inaccessible classes and make a view expand/scrollable --- .../main/java/org/fdroid/fdroid/compose/ComposeUtils.kt | 6 ++++-- .../org/fdroid/fdroid/views/repos/AddRepoErrorScreen.kt | 8 ++++++-- .../org/fdroid/fdroid/views/repos/AddRepoIntroScreen.kt | 3 +++ .../org/fdroid/fdroid/views/repos/RepoPreviewScreen.kt | 8 ++++++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/compose/ComposeUtils.kt b/app/src/main/java/org/fdroid/fdroid/compose/ComposeUtils.kt index 2df332a80..202c9ab33 100644 --- a/app/src/main/java/org/fdroid/fdroid/compose/ComposeUtils.kt +++ b/app/src/main/java/org/fdroid/fdroid/compose/ComposeUtils.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em @@ -33,8 +34,9 @@ object ComposeUtils { layoutDirection = layoutDirection, ) val newColors = (colors ?: MaterialTheme.colors).let { c -> - if (!c.isLight && Preferences.get().isPureBlack) c.copy(background = Color.Black) - else c + if (!LocalInspectionMode.current && !c.isLight && Preferences.get().isPureBlack) { + c.copy(background = Color.Black) + } else c } MaterialTheme( colors = newColors, diff --git a/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoErrorScreen.kt b/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoErrorScreen.kt index 0de347af3..aa8eb28f4 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoErrorScreen.kt +++ b/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoErrorScreen.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -52,8 +53,11 @@ fun AddRepoErrorScreen(paddingValues: PaddingValues, state: AddRepoError) { val title = when (state.errorType) { INVALID_FINGERPRINT -> stringResource(R.string.bad_fingerprint) UNKNOWN_SOURCES_DISALLOWED -> { - val context = LocalContext.current - getDisallowInstallUnknownSourcesErrorMessage(context) + if (LocalInspectionMode.current) { + stringResource(R.string.has_disallow_install_unknown_sources) + } else { + getDisallowInstallUnknownSourcesErrorMessage(LocalContext.current) + } } INVALID_INDEX -> stringResource(R.string.repo_invalid) diff --git a/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoIntroScreen.kt b/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoIntroScreen.kt index 976976065..0ef476e34 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoIntroScreen.kt +++ b/app/src/main/java/org/fdroid/fdroid/views/repos/AddRepoIntroScreen.kt @@ -14,6 +14,8 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.ButtonDefaults import androidx.compose.material.ContentAlpha import androidx.compose.material.Icon @@ -114,6 +116,7 @@ fun AddRepoIntroContent(paddingValues: PaddingValues, onFetchRepo: (String) -> U horizontalAlignment = CenterHorizontally, modifier = Modifier .fillMaxSize() + .verticalScroll(rememberScrollState()) .padding(16.dp) .padding(paddingValues), ) { diff --git a/app/src/main/java/org/fdroid/fdroid/views/repos/RepoPreviewScreen.kt b/app/src/main/java/org/fdroid/fdroid/views/repos/RepoPreviewScreen.kt index 0fc7932e6..49d90e032 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/repos/RepoPreviewScreen.kt +++ b/app/src/main/java/org/fdroid/fdroid/views/repos/RepoPreviewScreen.kt @@ -1,5 +1,6 @@ package org.fdroid.fdroid.views.repos +import android.content.res.Configuration import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement.spacedBy @@ -95,7 +96,10 @@ fun RepoPreviewHeader( localeList: LocaleListCompat, isPreview: Boolean, ) { - Column(verticalArrangement = spacedBy(8.dp)) { + Column( + verticalArrangement = spacedBy(8.dp), + modifier = Modifier.fillMaxWidth(), + ) { val repo = state.repo ?: error("repo was null") val res = LocalContext.current.resources Row( @@ -240,8 +244,8 @@ fun RepoPreviewScreenFetchingPreview() { } } -@Preview @Composable +@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES, widthDp = 720, heightDp = 360) fun RepoPreviewScreenNewMirrorPreview() { val repo = FDroidApp.createSwapRepo("https://example.org", "foo bar") FDroidContent {