diff --git a/app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt b/app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt index 1e50d35f93..fca597faa8 100644 --- a/app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt +++ b/app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt @@ -4,9 +4,9 @@ import app.k9mail.auth.K9OAuthConfigurationFactory import app.k9mail.core.common.oauth.OAuthConfigurationFactory import app.k9mail.core.common.provider.AppNameProvider import app.k9mail.core.featureflag.FeatureFlagFactory +import app.k9mail.core.ui.theme.api.FeatureThemeProvider import app.k9mail.core.ui.theme.api.ThemeProvider import app.k9mail.dev.developmentModuleAdditions -import app.k9mail.feature.launcher.FeatureLauncherExternalContract.FeatureThemeProvider import app.k9mail.feature.widget.shortcut.LauncherShortcutActivity import app.k9mail.featureflag.K9FeatureFlagFactory import app.k9mail.provider.K9AppNameProvider diff --git a/app-k9mail/src/main/kotlin/app/k9mail/provider/K9FeatureThemeProvider.kt b/app-k9mail/src/main/kotlin/app/k9mail/provider/K9FeatureThemeProvider.kt index b02abc2373..2a10add64f 100644 --- a/app-k9mail/src/main/kotlin/app/k9mail/provider/K9FeatureThemeProvider.kt +++ b/app-k9mail/src/main/kotlin/app/k9mail/provider/K9FeatureThemeProvider.kt @@ -2,9 +2,9 @@ package app.k9mail.provider import androidx.compose.runtime.Composable import app.k9mail.core.ui.compose.theme2.k9mail.K9MailTheme2 -import app.k9mail.feature.launcher.FeatureLauncherExternalContract +import app.k9mail.core.ui.theme.api.FeatureThemeProvider -class K9FeatureThemeProvider : FeatureLauncherExternalContract.FeatureThemeProvider { +class K9FeatureThemeProvider : FeatureThemeProvider { @Composable override fun WithTheme(content: @Composable () -> Unit) { K9MailTheme2 { diff --git a/app-thunderbird/src/main/kotlin/net/thunderbird/android/ThunderbirdKoinModule.kt b/app-thunderbird/src/main/kotlin/net/thunderbird/android/ThunderbirdKoinModule.kt index 12f180d87e..92b41e1890 100644 --- a/app-thunderbird/src/main/kotlin/net/thunderbird/android/ThunderbirdKoinModule.kt +++ b/app-thunderbird/src/main/kotlin/net/thunderbird/android/ThunderbirdKoinModule.kt @@ -3,8 +3,8 @@ package net.thunderbird.android import app.k9mail.core.common.oauth.OAuthConfigurationFactory import app.k9mail.core.common.provider.AppNameProvider import app.k9mail.core.featureflag.FeatureFlagFactory +import app.k9mail.core.ui.theme.api.FeatureThemeProvider import app.k9mail.core.ui.theme.api.ThemeProvider -import app.k9mail.feature.launcher.FeatureLauncherExternalContract.FeatureThemeProvider import app.k9mail.feature.widget.shortcut.LauncherShortcutActivity import com.fsck.k9.AppConfig import com.fsck.k9.activity.MessageCompose diff --git a/app-thunderbird/src/main/kotlin/net/thunderbird/android/provider/TbFeatureThemeProvider.kt b/app-thunderbird/src/main/kotlin/net/thunderbird/android/provider/TbFeatureThemeProvider.kt index 436ee57057..115fa21bfe 100644 --- a/app-thunderbird/src/main/kotlin/net/thunderbird/android/provider/TbFeatureThemeProvider.kt +++ b/app-thunderbird/src/main/kotlin/net/thunderbird/android/provider/TbFeatureThemeProvider.kt @@ -2,9 +2,9 @@ package net.thunderbird.android.provider import androidx.compose.runtime.Composable import app.k9mail.core.ui.compose.theme2.thunderbird.ThunderbirdTheme2 -import app.k9mail.feature.launcher.FeatureLauncherExternalContract +import app.k9mail.core.ui.theme.api.FeatureThemeProvider -class TbFeatureThemeProvider : FeatureLauncherExternalContract.FeatureThemeProvider { +class TbFeatureThemeProvider : FeatureThemeProvider { @Composable override fun WithTheme(content: @Composable () -> Unit) { ThunderbirdTheme2 { diff --git a/core/ui/theme/README.md b/core/ui/theme/README.md new file mode 100644 index 0000000000..9e4e205c38 --- /dev/null +++ b/core/ui/theme/README.md @@ -0,0 +1,3 @@ +## Theme + +The app theme is provided by the `ThemeProvider` found in the `api` module and should be implemented in the app modules with the required app themes from the `core:compose` and `core:legacy` modules. diff --git a/core/ui/theme/api/build.gradle.kts b/core/ui/theme/api/build.gradle.kts index ada1396c97..b1f8504e42 100644 --- a/core/ui/theme/api/build.gradle.kts +++ b/core/ui/theme/api/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id(ThunderbirdPlugins.Library.android) + id(ThunderbirdPlugins.Library.androidCompose) } android { diff --git a/core/ui/theme/api/src/main/kotlin/app/k9mail/core/ui/theme/api/FeatureThemeProvider.kt b/core/ui/theme/api/src/main/kotlin/app/k9mail/core/ui/theme/api/FeatureThemeProvider.kt new file mode 100644 index 0000000000..70a3f53c44 --- /dev/null +++ b/core/ui/theme/api/src/main/kotlin/app/k9mail/core/ui/theme/api/FeatureThemeProvider.kt @@ -0,0 +1,13 @@ +package app.k9mail.core.ui.theme.api + +import androidx.compose.runtime.Composable + +/** + * Provides the compose theme for a feature. + */ +fun interface FeatureThemeProvider { + @Composable + fun WithTheme( + content: @Composable () -> Unit, + ) +} diff --git a/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/FeatureLauncherExternalContract.kt b/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/FeatureLauncherExternalContract.kt index aedf3178fe..589a6dfd48 100644 --- a/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/FeatureLauncherExternalContract.kt +++ b/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/FeatureLauncherExternalContract.kt @@ -1,22 +1,10 @@ package app.k9mail.feature.launcher -import androidx.compose.runtime.Composable - /** * Contract defining the external functionality of the feature launcher to be provided by the host application. */ interface FeatureLauncherExternalContract { - /** - * Provides the theme for the feature. - */ - fun interface FeatureThemeProvider { - @Composable - fun WithTheme( - content: @Composable () -> Unit, - ) - } - fun interface AccountSetupFinishedLauncher { fun launch(accountUuid: String?) } diff --git a/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/ui/FeatureLauncherApp.kt b/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/ui/FeatureLauncherApp.kt index 927c778a47..dfaa5f9424 100644 --- a/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/ui/FeatureLauncherApp.kt +++ b/feature/launcher/src/main/kotlin/app/k9mail/feature/launcher/ui/FeatureLauncherApp.kt @@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier import androidx.navigation.compose.rememberNavController import app.k9mail.core.ui.compose.common.activity.LocalActivity import app.k9mail.core.ui.compose.designsystem.atom.Surface -import app.k9mail.feature.launcher.FeatureLauncherExternalContract.FeatureThemeProvider +import app.k9mail.core.ui.theme.api.FeatureThemeProvider import app.k9mail.feature.launcher.navigation.FeatureLauncherNavHost import org.koin.compose.koinInject