tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 1affd958896f7f2cdf87ee21eda07667b4ea9ccc
parent 062bfd2cf57867fcf9a6a7305b32fca200b60a54
Author: John Oberhauser <j.git-global@obez.io>
Date:   Wed,  7 Jan 2026 16:24:41 +0000

Bug 2008833 - Creating a public theme preview parameter provider for compose previews to make it easier to create previews for light, dark, and private themes. r=android-reviewers,007,jdelorenzo

Differential Revision: https://phabricator.services.mozilla.com/D278055

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/creditcards/ui/DeleteCreditCardDialog.kt | 8++------
Amobile/android/fenix/app/src/main/java/org/mozilla/fenix/theme/ThemeProvider.kt | 27+++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/creditcards/ui/DeleteCreditCardDialog.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/creditcards/ui/DeleteCreditCardDialog.kt @@ -12,11 +12,11 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider import mozilla.components.compose.base.button.TextButton import org.mozilla.fenix.R import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.theme.Theme +import org.mozilla.fenix.theme.ThemeProvider /** * Composable for the delete credit card dialog. @@ -57,14 +57,10 @@ internal fun DeleteCreditCardDialog( ) } -private class ThemePreviewParameterProvider( - override val values: Sequence<Theme> = Theme.entries.asSequence(), -) : PreviewParameterProvider<Theme> - @Composable @Preview private fun PreviewDeleteCreditCardDialog( - @PreviewParameter(ThemePreviewParameterProvider::class) theme: Theme, + @PreviewParameter(ThemeProvider::class) theme: Theme, ) = FirefoxTheme(theme) { DeleteCreditCardDialog() } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/theme/ThemeProvider.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/theme/ThemeProvider.kt @@ -0,0 +1,27 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.theme + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider + +/** + * This class can be used in compose previews to generate previews for each theme type. + * + * Example: + * ``` + * @Preview + * @Composable + * private fun PreviewText( + * @PreviewParameter(ThemeProvider::class) theme: Theme, + * ) = FirefoxTheme(theme) { + * Surface { + * Text("hello") + * } + * } + * ``` + */ +class ThemeProvider : PreviewParameterProvider<Theme> { + override val values = Theme.entries.asSequence() +}