Skip to content

Commit

Permalink
Merge pull request #682 from igorescodro/update/k2
Browse files Browse the repository at this point in the history
2️⃣ Update Alkaa to use K2
  • Loading branch information
igorescodro authored May 20, 2024
2 parents 600763d + af0974a commit 5f26d06
Show file tree
Hide file tree
Showing 47 changed files with 158 additions and 104 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ google-services.json
freeline.py
freeline/
freeline_project_description.json

# Kotlin
.kotlin
4 changes: 1 addition & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ plugins {
id("kotlin-android")
id("com.escodro.kotlin-quality")
id("com.mikepenz.aboutlibraries.plugin")
alias(libs.plugins.compose.compiler)
}

android {
Expand Down Expand Up @@ -64,9 +65,6 @@ android {
compose = true
}

composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
}

packaging {
resources.excludes.apply {
Expand Down
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
plugins {
alias(libs.plugins.dependencyanalysis)
alias(libs.plugins.compose) apply false
alias(libs.plugins.compose.compiler) apply false
}
buildscript {
repositories {
Expand Down
8 changes: 3 additions & 5 deletions features/category-api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
import extension.commonDependencies
import extension.setFrameworkBaseName
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
id("com.escodro.multiplatform")
id("kotlin-parcelize")
id("com.escodro.kotlin-parcelable")
}

kotlin {
setFrameworkBaseName("categoryapi")

commonDependencies {
implementation(projects.libraries.parcelable)
api(libs.androidx.lifecycle.viewmodel)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.collections.immutable)
implementation(libs.moko.mvvm.core)
implementation(libs.moko.parcelize)
}
}

android {
namespace = "com.escodro.categoryapi"
}



Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.escodro.categoryapi.model

import dev.icerock.moko.parcelize.Parcelable
import dev.icerock.moko.parcelize.Parcelize
import com.escodro.parcelable.CommonParcelable
import com.escodro.parcelable.CommonParcelize

/**
* Data class to represent a View Category.
Expand All @@ -10,9 +10,9 @@ import dev.icerock.moko.parcelize.Parcelize
* @property name category name
* @property color category color
*/
@Parcelize
@CommonParcelize
data class Category(
val id: Long = 0,
val name: String,
val color: Int,
) : Parcelable
) : CommonParcelable
5 changes: 4 additions & 1 deletion features/category/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import extension.commonDependencies
import extension.commonTestDependencies
import extension.setFrameworkBaseName
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
id("com.escodro.multiplatform")
id("kotlin-parcelize")
id("com.escodro.kotlin-parcelable")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand All @@ -20,6 +22,7 @@ kotlin {
implementation(projects.libraries.coroutines)
implementation(projects.libraries.di)
implementation(projects.libraries.test)
implementation(projects.libraries.parcelable)

implementation(compose.runtime)
implementation(compose.material3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,19 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import com.escodro.categoryapi.model.Category
import dev.icerock.moko.parcelize.IgnoredOnParcel
import dev.icerock.moko.parcelize.Parcelable
import dev.icerock.moko.parcelize.Parcelize
import com.escodro.parcelable.CommonParcelable
import com.escodro.parcelable.CommonParcelize

@Stable
@Parcelize
@CommonParcelize
internal class CategoryBottomSheetState(
private val category: Category,
) : Parcelable {
) : CommonParcelable {

@IgnoredOnParcel
var id by mutableStateOf(category.id)
private var id by mutableStateOf(category.id)

@IgnoredOnParcel
var name by mutableStateOf(category.name)

@IgnoredOnParcel
var color by mutableStateOf(category.color)

fun isEditing(): Boolean =
Expand Down
1 change: 1 addition & 0 deletions features/glance/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
plugins {
id("com.escodro.android-compose")
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose.compiler)
}

dependencies {
Expand Down
13 changes: 4 additions & 9 deletions features/home/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import extension.commonDependencies
import extension.setFrameworkBaseName
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
id("com.escodro.multiplatform")
id("com.escodro.kotlin-parcelable")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand All @@ -18,6 +21,7 @@ kotlin {
implementation(projects.features.preference)
implementation(projects.libraries.navigation)
implementation(projects.libraries.appstate)
implementation(projects.libraries.parcelable)

implementation(compose.runtime)
implementation(compose.materialIconsExtended)
Expand All @@ -28,15 +32,6 @@ kotlin {
implementation(libs.moko.resources.compose)
implementation(libs.moko.mvvm.compose)
}

// Explicit dependency due to Moko issues with Kotlin 1.9.0
// https://github.com/icerockdev/moko-resources/issues/531
sourceSets {
val commonMain by getting
val androidMain by getting {
dependsOn(commonMain)
}
}
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ import cafe.adriel.voyager.core.screen.ScreenKey
import cafe.adriel.voyager.core.screen.uniqueScreenKey
import com.escodro.appstate.AppState
import com.escodro.home.presentation.Home
import com.escodro.parcelable.CommonParcelable
import com.escodro.parcelable.CommonParcelize

/**
* Alkaa's Home Screen.
*/
class HomeScreen(private val appState: AppState) : Screen {
@CommonParcelize
class HomeScreen(private val appState: AppState) : Screen, CommonParcelable {

override val key: ScreenKey = uniqueScreenKey

Expand Down
1 change: 1 addition & 0 deletions features/preference/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import extension.setFrameworkBaseName
plugins {
id("com.escodro.multiplatform")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ fun OpenSource(onUpPress: () -> Unit, modifier: Modifier = Modifier) {

@Composable
private fun OpenSourceContent(modifier: Modifier = Modifier) {
val licenses by MR.files.aboutlibraries.readTextAsState()
val licenses by MR.files.aboutlibraries_json.readTextAsState()

LibrariesContainer(
aboutLibsJson = licenses ?: "",
Expand Down
1 change: 1 addition & 0 deletions features/search/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import extension.setFrameworkBaseName
plugins {
id("com.escodro.multiplatform")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.ExitToApp
import androidx.compose.material.icons.filled.Search
import androidx.compose.material.icons.outlined.ExitToApp
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
Expand Down Expand Up @@ -143,7 +143,7 @@ private fun SearchTextField(text: String, onTextChange: (String) -> Unit) {
@Composable
private fun SearchEmptyContent() {
DefaultIconTextContent(
icon = Icons.Outlined.ExitToApp,
icon = Icons.AutoMirrored.Outlined.ExitToApp,
iconContentDescription = stringResource(MR.strings.search_cd_empty_list),
header = stringResource(MR.strings.search_header_empty),
)
Expand Down
5 changes: 4 additions & 1 deletion features/task/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import extension.commonDependencies
import extension.commonTestDependencies
import extension.setFrameworkBaseName
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
id("com.escodro.multiplatform")
id("kotlin-parcelize")
id("com.escodro.kotlin-parcelable")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand All @@ -20,6 +22,7 @@ kotlin {
implementation(projects.libraries.navigation)
implementation(projects.libraries.coroutines)
implementation(projects.libraries.designsystem)
implementation(projects.libraries.parcelable)

implementation(compose.runtime)
implementation(compose.material3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ import com.escodro.categoryapi.presentation.CategoryState
import com.escodro.designsystem.components.AlkaaLoadingContent
import com.escodro.designsystem.components.AlkaaToolbar
import com.escodro.designsystem.components.DefaultIconTextContent
import com.escodro.parcelable.CommonParcelable
import com.escodro.parcelable.CommonParcelize
import com.escodro.resources.MR
import com.escodro.task.model.Task
import com.escodro.task.presentation.category.CategorySelection
Expand All @@ -39,8 +41,6 @@ import com.escodro.task.presentation.detail.TaskDetailActions
import com.escodro.task.presentation.detail.TaskDetailSectionContent
import com.escodro.task.presentation.detail.alarm.AlarmSelection
import com.escodro.task.presentation.detail.alarm.TaskAlarmViewModel
import dev.icerock.moko.parcelize.Parcelable
import dev.icerock.moko.parcelize.Parcelize
import dev.icerock.moko.resources.compose.stringResource
import org.koin.compose.koinInject
import kotlin.jvm.JvmInline
Expand Down Expand Up @@ -209,10 +209,10 @@ private fun TaskDescriptionTextField(text: String?, onDescriptionChange: (String

@Suppress("ModifierOrder")
@JvmInline
@Parcelize
internal value class TaskId(val value: Long) : Parcelable
@CommonParcelize
internal value class TaskId(val value: Long) : CommonParcelable

@Suppress("ModifierOrder")
@JvmInline
@Parcelize
internal value class CategoryId(val value: Long?) : Parcelable
@CommonParcelize
internal value class CategoryId(val value: Long?) : CommonParcelable
1 change: 1 addition & 0 deletions features/tracker/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import extension.setFrameworkBaseName
plugins {
id("com.escodro.android-dynamic")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ kotlin.jvm.target.validation.mode=IGNORE
org.jetbrains.compose.experimental.uikit.enabled=true
kotlin.mpp.stability.nowarn=true
kotlin.mpp.androidSourceSetLayoutVersion=2
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true

# Ignore AtomicFU warnings - will be fixed in Kotlin 2.0
# (https://github.com/Kotlin/kotlinx-atomicfu/issues/376
Expand Down
14 changes: 8 additions & 6 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
version_code = "30006"
version_name = "3.0.6"
android_gradle_plugin = "8.4.1"
kotlin = "1.9.23"
kotlin = "2.0.0-RC3"
android_sdk_compile = "34"
android_sdk_target = "33"
android_sdk_min = "24"
Expand Down Expand Up @@ -32,12 +32,12 @@ datastore = "1.1.1"
glance = "1.0.0"
workmanager = "2.9.0"
lifecycle_viewmodel = "2.8.0"
annotation = "1.8.0"

# Compose
compose_compiler = "1.5.12"
compose_bom = "2024.05.00"
compose_activity = "1.9.0"
jb_compose_compiler = "1.6.2"
jb_compose_compiler = "1.6.10-rc03"
compose_windowsizeclass = "0.5.0"

# Koin
Expand All @@ -51,8 +51,7 @@ sqldelight = "2.0.0"

# Moko
moko = "0.16.1"
moko_parcelize = "0.9.0"
moko_resources = "0.23.0"
moko_resources = "0.24.0-beta-4"
moko_permissions = "0.18.0"

# AtomicFU
Expand Down Expand Up @@ -108,6 +107,7 @@ androidx_glance = { module = "androidx.glance:glance-appwidget", version.ref = "
androidx_glance_material3 = { module = "androidx.glance:glance-material3", version.ref = "glance" }
androidx_workmanager = { module = "androidx.work:work-runtime-ktx", version.ref = "workmanager" }
androidx_lifecycle_viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "lifecycle_viewmodel" }
androidx_annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }

compose_bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose_bom" }
compose_ui = { module = "androidx.compose.ui:ui" }
Expand Down Expand Up @@ -139,7 +139,6 @@ moko_mvvm_compose = { module = "dev.icerock.moko:mvvm-flow-compose", version.ref
moko_resources_generator = { module = "dev.icerock.moko:resources-generator", version.ref = "moko_resources" }
moko_resources_core = { module = "dev.icerock.moko:resources", version.ref = "moko_resources" }
moko_resources_compose = { module = "dev.icerock.moko:resources-compose", version.ref = "moko_resources" }
moko_parcelize = { module = "dev.icerock.moko:parcelize", version.ref = "moko_parcelize" }
moko_permissions_compose = { module = "dev.icerock.moko:permissions-compose", version.ref = "moko_permissions" }

# Voyager
Expand Down Expand Up @@ -176,3 +175,6 @@ dependencyanalysis = { id = "com.autonomousapps.dependency-analysis", version.re
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
compose = { id = "org.jetbrains.compose", version.ref = "jb_compose_compiler" }
moko_multiplatform_resources = { id = "dev.icerock.mobile.multiplatform-resources" }

compose_compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
6 changes: 6 additions & 0 deletions libraries/appstate/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
import extension.commonDependencies
import extension.setFrameworkBaseName
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

plugins {
id("com.escodro.multiplatform")
id("com.escodro.kotlin-parcelable")
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
}

kotlin {
setFrameworkBaseName("appstate")

commonDependencies {
implementation(projects.libraries.parcelable)

implementation(compose.runtime)

api(libs.compose.windowsizeclass)
}
}
Expand Down
Loading

0 comments on commit 5f26d06

Please sign in to comment.