diff --git a/build-plugin/src/main/kotlin/ThunderbirdPlugins.kt b/build-plugin/src/main/kotlin/ThunderbirdPlugins.kt index 0045f00b20..12e28db49d 100644 --- a/build-plugin/src/main/kotlin/ThunderbirdPlugins.kt +++ b/build-plugin/src/main/kotlin/ThunderbirdPlugins.kt @@ -1,5 +1,8 @@ object ThunderbirdPlugins { + object App { + const val androidCompose = "thunderbird.app.android.compose" + } object Library { const val jvm = "thunderbird.library.jvm" } diff --git a/build-plugin/src/main/kotlin/thunderbird.app.android.compose.gradle.kts b/build-plugin/src/main/kotlin/thunderbird.app.android.compose.gradle.kts new file mode 100644 index 0000000000..1d2f167a44 --- /dev/null +++ b/build-plugin/src/main/kotlin/thunderbird.app.android.compose.gradle.kts @@ -0,0 +1,53 @@ +plugins { + id("thunderbird.app.android.default") +} + +android { + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get() + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + + lint { + warningsAsErrors = true + abortOnError = true + } + + packagingOptions { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } +} + +dependencies { + val composeBom = platform("androidx.compose:compose-bom:${libs.versions.androidxComposeBom.get()}") + implementation(composeBom) + androidTestImplementation(composeBom) + + implementation("androidx.compose.material:material") + + // Android Studio Preview support + implementation("androidx.compose.ui:ui-tooling-preview") + debugImplementation("androidx.compose.ui:ui-tooling") + + // UI Tests + debugImplementation("androidx.compose.ui:ui-test-manifest") + androidTestImplementation("androidx.compose.ui:ui-test-junit4") + + implementation("androidx.activity:activity-compose:1.6.1") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1") +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e922dd5ff2..bc6052ca20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,6 +19,8 @@ androidxCore = "1.9.0" androidxPreference = "1.2.0" androidxDrawerLayout = "1.1.1" androidxTransition = "1.4.1" +androidxComposeCompiler = "1.4.1" +androidxComposeBom = "2023.01.00" fastAdapter = "5.7.0" preferencesFix = "1.1.0" timber = "5.0.1"