Skip to content

Commit

Permalink
Multiplatform
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelbel committed Mar 24, 2024
1 parent 67d9cd5 commit 44723cb
Show file tree
Hide file tree
Showing 61 changed files with 547 additions and 473 deletions.
2 changes: 1 addition & 1 deletion androidApp/build.gradle.kts
Expand Up @@ -109,7 +109,7 @@ android {
applicationIdSuffix = MoviesBuildType.DEBUG.applicationIdSuffix
manifestPlaceholders += mapOf("appName" to "@string/app_name_dev")
isDefault = true
vcsInfo { include = true } // Version control system integration in App Quality Insights
//vcsInfo { include = true } // Version control system integration in App Quality Insights
}
create("benchmark") {
initWith(getByName("release"))
Expand Down
4 changes: 4 additions & 0 deletions build.gradle.kts
Expand Up @@ -30,4 +30,8 @@ subprojects {
if (name != "desktopApp") {
apply(plugin = "io.gitlab.arturbosch.detekt")
}
}

extra.apply {
set("jvmTarget", "11")
}
2 changes: 1 addition & 1 deletion core/analytics-kmp/build.gradle.kts
Expand Up @@ -8,7 +8,7 @@ kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion core/common-kmp/build.gradle.kts
@@ -1,21 +1,23 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.compose)
id("movies-android-hilt")
}

kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
jvm("desktop")

sourceSets {
commonMain.dependencies {
implementation(compose.material3)
implementation(libs.kotlinx.coroutines.core)
}
androidMain.dependencies {
Expand Down
Expand Up @@ -7,7 +7,7 @@ import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri

fun openUrl(
fun openUrlAndroid(
resultContract: ManagedActivityResultLauncher<Intent, ActivityResult>,
toolbarColor: Int,
url: String
Expand Down

This file was deleted.

@@ -1,8 +1,36 @@
@file:Suppress(
"EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING",
"EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE"
)

package org.michaelbel.movies.common.gender

expect sealed class GrammaticalGender
import org.michaelbel.movies.common.SealedString
import org.michaelbel.movies.common.gender.exceptions.InvalidGenderException

sealed class GrammaticalGender(
val value: Int
): SealedString {

data object NotSpecified: GrammaticalGender(0)

data object Neutral: GrammaticalGender(1)

data object Feminine: GrammaticalGender(2)

data object Masculine: GrammaticalGender(3)

companion object {
val VALUES = listOf(
NotSpecified,
Neutral,
Feminine,
Masculine
)

fun transform(gender: Int): GrammaticalGender {
return when (gender) {
0 -> NotSpecified
1 -> Neutral
2 -> Feminine
3 -> Masculine
else -> throw InvalidGenderException
}
}
}
}
@@ -0,0 +1,11 @@
package org.michaelbel.movies.common.browser

import java.awt.Desktop
import java.net.URI

fun openUrlDesktop(url: String) {
val desktop = if (Desktop.isDesktopSupported()) Desktop.getDesktop() else null
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(URI.create(url))
}
}

This file was deleted.

2 changes: 1 addition & 1 deletion core/debug-kmp/build.gradle.kts
Expand Up @@ -9,7 +9,7 @@ kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
Expand Down
Expand Up @@ -11,7 +11,6 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource
import org.michaelbel.movies.debug_kmp.R
import org.michaelbel.movies.ui.compose.iconbutton.CloseIcon
Expand All @@ -33,9 +32,7 @@ internal fun DebugToolbar(
navigationIcon = {
CloseIcon(
onClick = onNavigationIconClick,
modifier = Modifier
.windowInsetsPadding(displayCutoutWindowInsets)
.testTag("BackIconButton")
modifier = Modifier.windowInsetsPadding(displayCutoutWindowInsets)
)
},
colors = TopAppBarDefaults.topAppBarColors(
Expand Down
2 changes: 1 addition & 1 deletion core/interactor-kmp/build.gradle.kts
Expand Up @@ -8,7 +8,7 @@ kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -1,11 +1,6 @@
@file:Suppress(
"EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING",
"EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE"
)

package org.michaelbel.movies.interactor.entity

@JvmInline
expect value class Password(
value class Password(
val value: String
)
@@ -1,11 +1,6 @@
@file:Suppress(
"EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING",
"EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE"
)

package org.michaelbel.movies.interactor.entity

@JvmInline
expect value class Username(
value class Username(
val value: String
)
@@ -1,14 +1,18 @@
@file:Suppress("EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE")

package org.michaelbel.movies.interactor.ktx

import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.Saver
import org.michaelbel.movies.interactor.entity.Password

expect val Password.isNotEmpty: Boolean
val Password.isNotEmpty: Boolean
get() = value.isNotEmpty()

expect val Password.trim: Password
val Password.trim: Password
get() = Password(value.trim())

expect val PasswordSaver: Saver<MutableState<Password>, String>
val PasswordSaver: Saver<MutableState<Password>, String>
get() = Saver(
save = { it.value.value },
restore = { mutableStateOf(Password(it)) }
)
@@ -1,14 +1,18 @@
@file:Suppress("EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE")

package org.michaelbel.movies.interactor.ktx

import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.Saver
import org.michaelbel.movies.interactor.entity.Username

expect val Username.isNotEmpty: Boolean
val Username.isNotEmpty: Boolean
get() = value.isNotEmpty()

expect val Username.trim: Username
val Username.trim: Username
get() = Username(value.trim())

expect val UsernameSaver: Saver<MutableState<Username>, String>
val UsernameSaver: Saver<MutableState<Username>, String>
get() = Saver(
save = { it.value.value },
restore = { mutableStateOf(Username(it)) }
)
2 changes: 1 addition & 1 deletion core/navigation-kmp/build.gradle.kts
Expand Up @@ -7,7 +7,7 @@ kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
Expand Down

0 comments on commit 44723cb

Please sign in to comment.