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 000000000..ae86b17f7 Binary files /dev/null and b/app-feature-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app-feature-preview/src/main/res/values/colors.xml b/app-feature-preview/src/main/res/values/colors.xml new file mode 100644 index 000000000..fa266431f --- /dev/null +++ b/app-feature-preview/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + + #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", )