From 94d832eea3595c4ad0792737ab4bd9fc3cd8c4c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolf=20Montwe=CC=81?= Date: Tue, 4 Apr 2023 17:12:39 +0200 Subject: [PATCH] Add app module to preview features --- app-feature-preview/build.gradle.kts | 19 ++++ .../src/main/AndroidManifest.xml | 23 ++++ .../k9mail/feature/preview/FeatureActivity.kt | 22 ++++ .../preview/navigation/FeatureNavHost.kt | 26 +++++ .../k9mail/feature/preview/ui/FeatureApp.kt | 33 ++++++ .../drawable-v26/ic_launcher_monochrome.xml | 70 +++++++++++++ .../res/drawable/ic_launcher_foreground.xml | 99 ++++++++++++++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 ++ .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5537 bytes .../src/main/res/values/colors.xml | 9 ++ .../src/main/res/values/strings.xml | 3 + .../src/main/res/values/themes.xml | 10 ++ settings.gradle.kts | 1 + 13 files changed, 321 insertions(+) create mode 100644 app-feature-preview/build.gradle.kts create mode 100644 app-feature-preview/src/main/AndroidManifest.xml create mode 100644 app-feature-preview/src/main/java/app/k9mail/feature/preview/FeatureActivity.kt create mode 100644 app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt create mode 100644 app-feature-preview/src/main/java/app/k9mail/feature/preview/ui/FeatureApp.kt create mode 100644 app-feature-preview/src/main/res/drawable-v26/ic_launcher_monochrome.xml create mode 100644 app-feature-preview/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app-feature-preview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app-feature-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app-feature-preview/src/main/res/values/colors.xml create mode 100644 app-feature-preview/src/main/res/values/strings.xml create mode 100644 app-feature-preview/src/main/res/values/themes.xml diff --git a/app-feature-preview/build.gradle.kts b/app-feature-preview/build.gradle.kts new file mode 100644 index 000000000..5cd1a2d35 --- /dev/null +++ b/app-feature-preview/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + id(ThunderbirdPlugins.App.androidCompose) +} + +android { + namespace = "app.k9mail.feature.preview" + + defaultConfig { + applicationId = "net.thunderbird.feature.preview" + versionCode = 1 + versionName = "1.0" + } +} + +dependencies { + implementation(projects.core.ui.compose.designsystem) + + implementation(projects.feature.onboarding) +} diff --git a/app-feature-preview/src/main/AndroidManifest.xml b/app-feature-preview/src/main/AndroidManifest.xml new file mode 100644 index 000000000..5312e4e20 --- /dev/null +++ b/app-feature-preview/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/app-feature-preview/src/main/java/app/k9mail/feature/preview/FeatureActivity.kt b/app-feature-preview/src/main/java/app/k9mail/feature/preview/FeatureActivity.kt new file mode 100644 index 000000000..596373364 --- /dev/null +++ b/app-feature-preview/src/main/java/app/k9mail/feature/preview/FeatureActivity.kt @@ -0,0 +1,22 @@ +package app.k9mail.feature.preview + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.core.view.WindowCompat +import app.k9mail.feature.preview.ui.FeatureApp + +class FeatureActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + installSplashScreen() + + super.onCreate(savedInstanceState) + + WindowCompat.setDecorFitsSystemWindows(window, false) + + setContent { + FeatureApp() + } + } +} diff --git a/app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt b/app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt new file mode 100644 index 000000000..515db983c --- /dev/null +++ b/app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt @@ -0,0 +1,26 @@ +package app.k9mail.feature.preview.navigation + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import net.thunderbird.feature.onboarding.navigation.NAVIGATION_ROUTE_ONBOARDING +import net.thunderbird.feature.onboarding.navigation.onboardingScreen + +@Composable +fun FeatureNavHost( + navController: NavHostController, + modifier: Modifier = Modifier, + startDestination: String = NAVIGATION_ROUTE_ONBOARDING, +) { + NavHost( + navController = navController, + startDestination = startDestination, + modifier = modifier, + ) { + onboardingScreen( + onStartClick = { /* TODO */ }, + onImportClick = { /* TODO */ }, + ) + } +} diff --git a/app-feature-preview/src/main/java/app/k9mail/feature/preview/ui/FeatureApp.kt b/app-feature-preview/src/main/java/app/k9mail/feature/preview/ui/FeatureApp.kt new file mode 100644 index 000000000..baa3ceddb --- /dev/null +++ b/app-feature-preview/src/main/java/app/k9mail/feature/preview/ui/FeatureApp.kt @@ -0,0 +1,33 @@ +package app.k9mail.feature.preview.ui + +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.systemBars +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.navigation.compose.rememberNavController +import app.k9mail.core.ui.compose.designsystem.atom.Background +import app.k9mail.core.ui.compose.theme.K9Theme +import app.k9mail.feature.preview.navigation.FeatureNavHost + +@Composable +fun FeatureApp( + modifier: Modifier = Modifier, +) { + val navController = rememberNavController() + + K9Theme { + val contentPadding = WindowInsets.systemBars.asPaddingValues() + + Background( + modifier = Modifier + .fillMaxSize() + .padding(contentPadding) + .then(modifier), + ) { + FeatureNavHost(navController = navController) + } + } +} diff --git a/app-feature-preview/src/main/res/drawable-v26/ic_launcher_monochrome.xml b/app-feature-preview/src/main/res/drawable-v26/ic_launcher_monochrome.xml new file mode 100644 index 000000000..7ff75784e --- /dev/null +++ b/app-feature-preview/src/main/res/drawable-v26/ic_launcher_monochrome.xml @@ -0,0 +1,70 @@ + + + + + + + + + + diff --git a/app-feature-preview/src/main/res/drawable/ic_launcher_foreground.xml b/app-feature-preview/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..aefb4a327 --- /dev/null +++ b/app-feature-preview/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app-feature-preview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app-feature-preview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..67048fd38 --- /dev/null +++ b/app-feature-preview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app-feature-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app-feature-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ae86b17f7692d62626a91a2da1bd89714f23d423 GIT binary patch literal 5537 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 + + + #81C784 + + #FF388E3C + + #E8F5E9 + diff --git a/app-feature-preview/src/main/res/values/strings.xml b/app-feature-preview/src/main/res/values/strings.xml new file mode 100644 index 000000000..b40837eae --- /dev/null +++ b/app-feature-preview/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Thunderbird Features + diff --git a/app-feature-preview/src/main/res/values/themes.xml b/app-feature-preview/src/main/res/values/themes.xml new file mode 100644 index 000000000..dbb3e15dc --- /dev/null +++ b/app-feature-preview/src/main/res/values/themes.xml @@ -0,0 +1,10 @@ + + + + diff --git a/settings.gradle.kts b/settings.gradle.kts index 571fde310..f8c7083fe 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -22,6 +22,7 @@ rootProject.name = "k-9" includeBuild("build-plugin") include( + ":app-feature-preview", ":app-ui-catalog", )