From 92f11443f27b15f322312aae61c8546671437699 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Wed, 10 Jan 2024 13:17:59 +0530 Subject: [PATCH 1/6] Use Coil-multiplatform and compose-multiplatform resources --- android/build.gradle.kts | 2 +- .../baseline_sentiment_satisfied_24.xml | 15 ---- .../baseline_sentiment_satisfied_alt_24.xml | 21 ----- ...aseline_sentiment_very_dissatisfied_24.xml | 15 ---- .../main/res/drawable/ic_baseline_add_24.xml | 10 --- .../drawable/ic_baseline_arrow_back_24.xml | 11 --- .../ic_baseline_calendar_today_24.xml | 10 --- .../res/drawable/ic_baseline_check_24.xml | 10 --- .../res/drawable/ic_baseline_feedback_24.xml | 9 -- .../res/drawable/ic_baseline_person_24.xml | 10 --- .../drawable/ic_description_black_24dp.xml | 9 -- .../src/main/res/drawable/icon_company.xml | 9 -- .../src/main/res/drawable/icon_profile.xml | 9 -- .../src/main/res/drawable/icon_website.xml | 9 -- android/src/main/res/drawable/menu_info.xml | 9 -- .../src/main/res/drawable/menu_my_agenda.xml | 12 --- .../src/main/res/drawable/menu_schedule.xml | 9 -- .../src/main/res/drawable/menu_settings.xml | 12 --- .../src/main/res/drawable/menu_sponsor.xml | 9 -- android/src/main/res/values/strings.xml | 37 -------- gradle/libs.versions.toml | 5 +- shared-ui/build.gradle.kts | 10 +-- .../droidcon/ui/util/LocalImage.jvm.kt | 53 ------------ .../droidcon/ui/util/RemoteImage.jvm.kt | 60 ++++++------- .../ui/BottomNavigationView.kt | 18 +++- .../co.touchlab.droidcon/ui/FeedbackDialog.kt | 18 ++-- .../co.touchlab.droidcon/ui/icons/Add.kt | 34 -------- .../co.touchlab.droidcon/ui/icons/Aod.kt | 48 ----------- .../ui/icons/ArrowBack.kt | 31 ------- .../ui/icons/CalendarMonth.kt | 80 ------------------ .../co.touchlab.droidcon/ui/icons/Check.kt | 27 ------ .../ui/icons/DateRange.kt | 62 -------------- .../ui/icons/Description.kt | 47 ---------- .../co.touchlab.droidcon/ui/icons/Info.kt | 38 --------- .../co.touchlab.droidcon/ui/icons/Language.kt | 80 ------------------ .../ui/icons/LocalFireDepartment.kt | 38 --------- .../ui/icons/MainOutline.kt | 42 --------- .../ui/icons/Notifications.kt | 40 --------- .../co.touchlab.droidcon/ui/icons/Person.kt | 33 -------- .../co.touchlab.droidcon/ui/icons/Schedule.kt | 41 --------- .../ui/icons/SentientVerySatisfied.kt | 49 ----------- .../ui/icons/SentimentNeutral.kt | 52 ------------ .../ui/icons/SentimentVeryDissatisfied.kt | 52 ------------ .../co.touchlab.droidcon/ui/icons/Settings.kt | 66 --------------- .../co.touchlab.droidcon/ui/icons/Warning.kt | 37 -------- .../ui/session/SessionDetailView.kt | 31 ++++--- .../ui/session/SessionListView.kt | 2 +- .../ui/session/SpeakerDetailView.kt | 38 ++++++--- .../ui/settings/AboutView.kt | 13 ++- .../ui/settings/SettingsView.kt | 4 +- .../ui/sponsors/SponsorDetailView.kt | 40 ++++++--- .../ui/sponsors/SponsorsView.kt | 20 +++-- .../ui/util/DcDrawableResource.kt | 18 ++++ .../co.touchlab.droidcon/ui/util/Image.kt | 45 ++++++++++ .../ui/util/LocalImage.kt | 12 --- .../ui/util/RemoteImage.kt | 12 --- .../drawable}/about_droidcon.png | Bin .../drawable}/about_kotlin.png | Bin .../drawable}/about_touchlab.png | Bin .../composeResources}/drawable/linkedin.xml | 0 .../composeResources}/drawable/twitter.xml | 0 .../ui/settings/PlatformSpecificSettings.kt | 2 +- .../touchlab/droidcon/ui/util/LocalImage.kt | 51 ----------- .../touchlab/droidcon/ui/util/RemoteImage.kt | 27 ------ .../touchlab/droidcon/ui/util/ToSkiaImage.kt | 55 ------------ 65 files changed, 230 insertions(+), 1438 deletions(-) delete mode 100755 android/src/main/res/drawable/baseline_sentiment_satisfied_24.xml delete mode 100755 android/src/main/res/drawable/baseline_sentiment_satisfied_alt_24.xml delete mode 100755 android/src/main/res/drawable/baseline_sentiment_very_dissatisfied_24.xml delete mode 100644 android/src/main/res/drawable/ic_baseline_add_24.xml delete mode 100644 android/src/main/res/drawable/ic_baseline_arrow_back_24.xml delete mode 100644 android/src/main/res/drawable/ic_baseline_calendar_today_24.xml delete mode 100644 android/src/main/res/drawable/ic_baseline_check_24.xml delete mode 100755 android/src/main/res/drawable/ic_baseline_feedback_24.xml delete mode 100644 android/src/main/res/drawable/ic_baseline_person_24.xml delete mode 100644 android/src/main/res/drawable/ic_description_black_24dp.xml delete mode 100644 android/src/main/res/drawable/icon_company.xml delete mode 100644 android/src/main/res/drawable/icon_profile.xml delete mode 100644 android/src/main/res/drawable/icon_website.xml delete mode 100644 android/src/main/res/drawable/menu_info.xml delete mode 100644 android/src/main/res/drawable/menu_my_agenda.xml delete mode 100644 android/src/main/res/drawable/menu_schedule.xml delete mode 100644 android/src/main/res/drawable/menu_settings.xml delete mode 100644 android/src/main/res/drawable/menu_sponsor.xml delete mode 100644 shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.jvm.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Add.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Aod.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/ArrowBack.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/CalendarMonth.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Check.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/DateRange.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Description.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Info.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Language.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/LocalFireDepartment.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/MainOutline.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Notifications.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Person.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Schedule.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentientVerySatisfied.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentNeutral.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentVeryDissatisfied.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Settings.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Warning.kt create mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt create mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/LocalImage.kt delete mode 100644 shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/RemoteImage.kt rename {android/src/main/res/drawable-nodpi => shared-ui/src/commonMain/resources/composeResources/drawable}/about_droidcon.png (100%) rename {android/src/main/res/drawable-nodpi => shared-ui/src/commonMain/resources/composeResources/drawable}/about_kotlin.png (100%) rename {android/src/main/res/drawable-nodpi => shared-ui/src/commonMain/resources/composeResources/drawable}/about_touchlab.png (100%) rename {android/src/main/res => shared-ui/src/commonMain/resources/composeResources}/drawable/linkedin.xml (100%) rename {android/src/main/res => shared-ui/src/commonMain/resources/composeResources}/drawable/twitter.xml (100%) delete mode 100644 shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.kt delete mode 100644 shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.kt delete mode 100644 shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/ToSkiaImage.kt diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 0c0e5b5e3..db6380159 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -83,7 +83,7 @@ dependencies { implementation(libs.koin.core) implementation(libs.koin.android) implementation(libs.kotlinx.datetime) - implementation(libs.accompanist.coil) + implementation(libs.coil.compose) implementation(libs.accompanist.navigationAnimation) implementation(platform(libs.firebase.bom)) implementation(libs.firebase.analytics) diff --git a/android/src/main/res/drawable/baseline_sentiment_satisfied_24.xml b/android/src/main/res/drawable/baseline_sentiment_satisfied_24.xml deleted file mode 100755 index df46cd46d..000000000 --- a/android/src/main/res/drawable/baseline_sentiment_satisfied_24.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/android/src/main/res/drawable/baseline_sentiment_satisfied_alt_24.xml b/android/src/main/res/drawable/baseline_sentiment_satisfied_alt_24.xml deleted file mode 100755 index 50f2eb1da..000000000 --- a/android/src/main/res/drawable/baseline_sentiment_satisfied_alt_24.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/android/src/main/res/drawable/baseline_sentiment_very_dissatisfied_24.xml b/android/src/main/res/drawable/baseline_sentiment_very_dissatisfied_24.xml deleted file mode 100755 index 0acea2e57..000000000 --- a/android/src/main/res/drawable/baseline_sentiment_very_dissatisfied_24.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/android/src/main/res/drawable/ic_baseline_add_24.xml b/android/src/main/res/drawable/ic_baseline_add_24.xml deleted file mode 100644 index eb232541d..000000000 --- a/android/src/main/res/drawable/ic_baseline_add_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_baseline_arrow_back_24.xml b/android/src/main/res/drawable/ic_baseline_arrow_back_24.xml deleted file mode 100644 index 2a31b2ef3..000000000 --- a/android/src/main/res/drawable/ic_baseline_arrow_back_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_baseline_calendar_today_24.xml b/android/src/main/res/drawable/ic_baseline_calendar_today_24.xml deleted file mode 100644 index 1cf969c70..000000000 --- a/android/src/main/res/drawable/ic_baseline_calendar_today_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_baseline_check_24.xml b/android/src/main/res/drawable/ic_baseline_check_24.xml deleted file mode 100644 index 0432fa69b..000000000 --- a/android/src/main/res/drawable/ic_baseline_check_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_baseline_feedback_24.xml b/android/src/main/res/drawable/ic_baseline_feedback_24.xml deleted file mode 100755 index 4dfcdda51..000000000 --- a/android/src/main/res/drawable/ic_baseline_feedback_24.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_baseline_person_24.xml b/android/src/main/res/drawable/ic_baseline_person_24.xml deleted file mode 100644 index 6bdced2dc..000000000 --- a/android/src/main/res/drawable/ic_baseline_person_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/ic_description_black_24dp.xml b/android/src/main/res/drawable/ic_description_black_24dp.xml deleted file mode 100644 index 38c33351c..000000000 --- a/android/src/main/res/drawable/ic_description_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/icon_company.xml b/android/src/main/res/drawable/icon_company.xml deleted file mode 100644 index 8924cc83f..000000000 --- a/android/src/main/res/drawable/icon_company.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/icon_profile.xml b/android/src/main/res/drawable/icon_profile.xml deleted file mode 100644 index 38c33351c..000000000 --- a/android/src/main/res/drawable/icon_profile.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/icon_website.xml b/android/src/main/res/drawable/icon_website.xml deleted file mode 100644 index d976b4244..000000000 --- a/android/src/main/res/drawable/icon_website.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/menu_info.xml b/android/src/main/res/drawable/menu_info.xml deleted file mode 100644 index ca7688031..000000000 --- a/android/src/main/res/drawable/menu_info.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/menu_my_agenda.xml b/android/src/main/res/drawable/menu_my_agenda.xml deleted file mode 100644 index d66a31a47..000000000 --- a/android/src/main/res/drawable/menu_my_agenda.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/android/src/main/res/drawable/menu_schedule.xml b/android/src/main/res/drawable/menu_schedule.xml deleted file mode 100644 index e8dad0ccf..000000000 --- a/android/src/main/res/drawable/menu_schedule.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/menu_settings.xml b/android/src/main/res/drawable/menu_settings.xml deleted file mode 100644 index f3164bc81..000000000 --- a/android/src/main/res/drawable/menu_settings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/android/src/main/res/drawable/menu_sponsor.xml b/android/src/main/res/drawable/menu_sponsor.xml deleted file mode 100644 index 10cca1169..000000000 --- a/android/src/main/res/drawable/menu_sponsor.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index 9a2622b30..c7f9d72c1 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -7,43 +7,6 @@ Feedback Time! Your Feedback is Requested. - Schedule Droidcon London 2023 - Session - This session hasn\'t started yet. - This session is happening now. - This session has already ended. - This session conflicts with another session in your schedule. - Do not attend - Attend - Info - Description - Speaker - Info - There are no sessions planned. - in %s - My Agenda - You are not attending any sessions. - - Sponsors - Sponsors could not be loaded. - Sponsor - Description - - Settings - Enable feedback - Enable reminders - - What did you think of \"%s\"? - (Optional) Suggest improvements - Bad - Normal - Good - Submit - Close and disable feedback - Skip feedback - - Add feedback - Change your feedback diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b4df9cbf6..02b060018 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,6 @@ compose-compiler = "1.5.8-dev-k1.9.22-42b6ec2b037" composeNavigation = "2.7.6" compose-jb = "1.6.0-dev1357" -accompanistCoil = "0.15.0" accompanistNavigationAnimation = "0.32.0" splashscreen = "1.0.1" junit = "4.13.2" @@ -46,13 +45,15 @@ android-desugaring = "2.0.4" koin = "3.5.3" uuid = "0.8.2" ktlint = "11.0.0" +coil = "3.0.0-alpha02" [libraries] +coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" } +coil-network = { module = "io.coil-kt.coil3:coil-network", version.ref = "coil" } sqliter = { module = "co.touchlab:sqliter-driver", version.ref = "sqliter" } compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "compose-compiler" } androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "splashscreen" } -accompanist-coil = { module = "com.google.accompanist:accompanist-coil", version.ref = "accompanistCoil" } accompanist-navigationAnimation = { module = "com.google.accompanist:accompanist-navigation-animation", version.ref = "accompanistNavigationAnimation" } firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" } firebase-analytics = { module = "com.google.firebase:firebase-analytics-ktx", version = "_" } diff --git a/shared-ui/build.gradle.kts b/shared-ui/build.gradle.kts index e5854daeb..514abedca 100644 --- a/shared-ui/build.gradle.kts +++ b/shared-ui/build.gradle.kts @@ -80,6 +80,9 @@ kotlin { api(libs.multiplatformSettings.core) api(libs.uuid) + implementation(libs.coil.compose) + implementation(libs.coil.network) + implementation(libs.bundles.ktor.common) implementation(libs.bundles.sqldelight.common) @@ -97,6 +100,8 @@ kotlin { implementation(libs.hyperdrive.multiplatformx.api) // implementation(libs.hyperdrive.multiplatformx.compose) + @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) + implementation(compose.components.resources) } } commonTest { @@ -106,11 +111,6 @@ kotlin { implementation(libs.koin.test) } } - androidMain { - dependencies { - implementation(libs.accompanist.coil) - } - } val androidUnitTest by getting { dependencies { implementation(libs.test.junit) diff --git a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.jvm.kt b/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.jvm.kt deleted file mode 100644 index 2a4e01de4..000000000 --- a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.jvm.kt +++ /dev/null @@ -1,53 +0,0 @@ -package co.touchlab.droidcon.ui.util // ktlint-disable filename - -import android.annotation.SuppressLint -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource -import co.touchlab.droidcon.ui.icons.Warning -import co.touchlab.droidcon.ui.theme.Dimensions - -// Use of the function getIdentifier is discouraged, but we need to use it since the drawable names are defined in the common code for both -// platforms and on each platform we need to get the drawable according to provided name. -@SuppressLint("ComposableNaming", "DiscouragedApi") -@Composable -internal actual fun __LocalImage(imageResourceName: String, modifier: Modifier, contentDescription: String?) { - val context = LocalContext.current - val imageRes = context.resources.getIdentifier(imageResourceName, "drawable", context.packageName).takeIf { it != 0 } - if (imageRes != null) { - androidx.compose.foundation.Image( - modifier = modifier, - painter = painterResource(id = imageRes), - contentDescription = contentDescription, - contentScale = ContentScale.FillWidth - ) - } else { - Row( - modifier = modifier.background(MaterialTheme.colorScheme.primary, RoundedCornerShape(Dimensions.Padding.half)), - verticalAlignment = Alignment.CenterVertically - ) { - Spacer(modifier = Modifier.weight(1f)) - Icon( - imageVector = Icons.Default.Warning, - contentDescription = contentDescription, - modifier = Modifier.padding(Dimensions.Padding.half), - tint = Color.White - ) - Text("Image not supported", modifier = Modifier.padding(Dimensions.Padding.default), color = Color.White) - Spacer(modifier = Modifier.weight(1f)) - } - } -} diff --git a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt b/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt index e2bd179e4..9c9f089e4 100644 --- a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt +++ b/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt @@ -1,30 +1,30 @@ -package co.touchlab.droidcon.ui.util // ktlint-disable filename - -import android.annotation.SuppressLint -import androidx.compose.foundation.Image -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.ContentScale -import coil.annotation.ExperimentalCoilApi -import coil.compose.LocalImageLoader -import coil.compose.rememberImagePainter - -@SuppressLint("ComposableNaming") -@OptIn(ExperimentalCoilApi::class) -@Composable -internal actual fun __RemoteImage(imageUrl: String, modifier: Modifier, contentDescription: String?) { - val painter = rememberImagePainter( - data = imageUrl, - imageLoader = LocalImageLoader.current, - builder = { - placeholder(0) - } - ) - - Image( - painter = painter, - contentDescription = contentDescription, - contentScale = ContentScale.Crop, - modifier = modifier - ) -} +//package co.touchlab.droidcon.ui.util // ktlint-disable filename +// +//import android.annotation.SuppressLint +//import androidx.compose.foundation.Image +//import androidx.compose.runtime.Composable +//import androidx.compose.ui.Modifier +//import androidx.compose.ui.layout.ContentScale +//import coil.annotation.ExperimentalCoilApi +//import coil.compose.LocalImageLoader +//import coil.compose.rememberImagePainter +// +//@SuppressLint("ComposableNaming") +//@OptIn(ExperimentalCoilApi::class) +//@Composable +//internal actual fun __RemoteImage(imageUrl: String, modifier: Modifier, contentDescription: String?) { +// val painter = rememberImagePainter( +// data = imageUrl, +// imageLoader = LocalImageLoader.current, +// builder = { +// placeholder(0) +// } +// ) +// +// Image( +// painter = painter, +// contentDescription = contentDescription, +// contentScale = ContentScale.Crop, +// modifier = modifier +// ) +//} diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt index 6d9fe8be9..01b865dcd 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt @@ -3,6 +3,10 @@ package co.touchlab.droidcon.ui import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.CalendarMonth +import androidx.compose.material.icons.filled.LocalFireDepartment +import androidx.compose.material.icons.filled.Schedule +import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationBar @@ -13,18 +17,24 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import co.touchlab.droidcon.ui.icons.CalendarMonth -import co.touchlab.droidcon.ui.icons.LocalFireDepartment -import co.touchlab.droidcon.ui.icons.Schedule -import co.touchlab.droidcon.ui.icons.Settings import co.touchlab.droidcon.ui.session.SessionListView import co.touchlab.droidcon.ui.settings.SettingsView import co.touchlab.droidcon.ui.sponsors.SponsorsView +import co.touchlab.droidcon.ui.util.dcImageLoader import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.viewmodel.ApplicationViewModel +import coil3.annotation.ExperimentalCoilApi +import coil3.compose.setSingletonImageLoaderFactory +import droidcon.generated.resources.Res +import org.jetbrains.compose.resources.vectorResource +@OptIn(ExperimentalCoilApi::class) @Composable internal fun BottomNavigationView(viewModel: ApplicationViewModel, modifier: Modifier = Modifier) { + + setSingletonImageLoaderFactory { context -> + dcImageLoader(context, true) + } val selectedTab by viewModel.observeSelectedTab.observeAsState() Scaffold( diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FeedbackDialog.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FeedbackDialog.kt index 884bf158d..572c89287 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FeedbackDialog.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FeedbackDialog.kt @@ -12,6 +12,9 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.SentimentNeutral +import androidx.compose.material.icons.filled.SentimentVeryDissatisfied +import androidx.compose.material.icons.filled.SentimentVerySatisfied import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -28,9 +31,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import co.touchlab.droidcon.ui.icons.SentimentNeutral -import co.touchlab.droidcon.ui.icons.SentimentVeryDissatisfied -import co.touchlab.droidcon.ui.icons.SentimentVerySatisfied import co.touchlab.droidcon.ui.theme.Dimensions import co.touchlab.droidcon.ui.util.Dialog import co.touchlab.droidcon.ui.util.observeAsState @@ -60,7 +60,7 @@ internal fun FeedbackDialog(feedback: FeedbackDialogViewModel) { ) { val selected by feedback.observeRating.observeAsState() - FeedbackDialogViewModel.Rating.values().forEach { rating -> + FeedbackDialogViewModel.Rating.entries.forEach { rating -> val image = when (rating) { FeedbackDialogViewModel.Rating.Dissatisfied -> Icons.Default.SentimentVeryDissatisfied FeedbackDialogViewModel.Rating.Normal -> Icons.Default.SentimentNeutral @@ -84,7 +84,10 @@ internal fun FeedbackDialog(feedback: FeedbackDialogViewModel) { value = comment, onValueChange = { feedback.comment = it }, placeholder = { - Text(text = "(Optional) Suggest improvement", style = MaterialTheme.typography.bodyLarge) + Text( + text = "(Optional) Suggest improvement", + style = MaterialTheme.typography.bodyLarge + ) }, textStyle = MaterialTheme.typography.bodyLarge, modifier = Modifier @@ -108,7 +111,10 @@ internal fun FeedbackDialog(feedback: FeedbackDialogViewModel) { ) } TextButton(onClick = feedback::closeAndDisableTapped) { - Text(text = "CLOSE AND DISABLE FEEDBACK", color = MaterialTheme.colorScheme.primary) + Text( + text = "CLOSE AND DISABLE FEEDBACK", + color = MaterialTheme.colorScheme.primary + ) } TextButton(onClick = feedback::skipTapped) { Text(text = "SKIP FEEDBACK", color = MaterialTheme.colorScheme.primary) diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Add.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Add.kt deleted file mode 100644 index 3b18b5f28..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Add.kt +++ /dev/null @@ -1,34 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Add: ImageVector - get() { - if (_add != null) { - return _add!! - } - _add = materialIcon(name = "Filled.Add") { - materialPath { - moveTo(19.0f, 13.0f) - horizontalLineToRelative(-6.0f) - verticalLineToRelative(6.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-6.0f) - horizontalLineTo(5.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(6.0f) - verticalLineTo(5.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(6.0f) - horizontalLineToRelative(6.0f) - verticalLineToRelative(2.0f) - close() - } - } - return _add!! - } - -private var _add: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Aod.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Aod.kt deleted file mode 100644 index baf75b9c7..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Aod.kt +++ /dev/null @@ -1,48 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Aod: ImageVector - get() { - if (_aod != null) { - return _aod!! - } - _aod = materialIcon(name = "Filled.Aod") { - materialPath { - moveTo(17.0f, 1.01f) - lineTo(7.0f, 1.0f) - curveTo(5.9f, 1.0f, 5.0f, 1.9f, 5.0f, 3.0f) - verticalLineToRelative(18.0f) - curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f) - horizontalLineToRelative(10.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - verticalLineTo(3.0f) - curveTo(19.0f, 1.9f, 18.1f, 1.01f, 17.0f, 1.01f) - close() - moveTo(17.0f, 18.0f) - horizontalLineTo(7.0f) - verticalLineTo(6.0f) - horizontalLineToRelative(10.0f) - verticalLineTo(18.0f) - close() - moveTo(8.0f, 10.0f) - horizontalLineToRelative(8.0f) - verticalLineToRelative(1.5f) - horizontalLineTo(8.0f) - verticalLineTo(10.0f) - close() - moveTo(9.0f, 13.0f) - horizontalLineToRelative(6.0f) - verticalLineToRelative(1.5f) - horizontalLineTo(9.0f) - verticalLineTo(13.0f) - close() - } - } - return _aod!! - } - -private var _aod: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/ArrowBack.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/ArrowBack.kt deleted file mode 100644 index dbdb6a0b3..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/ArrowBack.kt +++ /dev/null @@ -1,31 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.ArrowBack: ImageVector - get() { - if (_arrowBack != null) { - return _arrowBack!! - } - _arrowBack = materialIcon(name = "Filled.ArrowBack") { - materialPath { - moveTo(20.0f, 11.0f) - horizontalLineTo(7.83f) - lineToRelative(5.59f, -5.59f) - lineTo(12.0f, 4.0f) - lineToRelative(-8.0f, 8.0f) - lineToRelative(8.0f, 8.0f) - lineToRelative(1.41f, -1.41f) - lineTo(7.83f, 13.0f) - horizontalLineTo(20.0f) - verticalLineToRelative(-2.0f) - close() - } - } - return _arrowBack!! - } - -private var _arrowBack: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/CalendarMonth.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/CalendarMonth.kt deleted file mode 100644 index ba4c9d1f9..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/CalendarMonth.kt +++ /dev/null @@ -1,80 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.CalendarMonth: ImageVector - get() { - if (_calendarMonth != null) { - return _calendarMonth!! - } - _calendarMonth = materialIcon(name = "Filled.CalendarMonth") { - materialPath { - moveTo(19.0f, 4.0f) - horizontalLineToRelative(-1.0f) - verticalLineTo(2.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(2.0f) - horizontalLineTo(8.0f) - verticalLineTo(2.0f) - horizontalLineTo(6.0f) - verticalLineToRelative(2.0f) - horizontalLineTo(5.0f) - curveTo(3.89f, 4.0f, 3.01f, 4.9f, 3.01f, 6.0f) - lineTo(3.0f, 20.0f) - curveToRelative(0.0f, 1.1f, 0.89f, 2.0f, 2.0f, 2.0f) - horizontalLineToRelative(14.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - verticalLineTo(6.0f) - curveTo(21.0f, 4.9f, 20.1f, 4.0f, 19.0f, 4.0f) - close() - moveTo(19.0f, 20.0f) - horizontalLineTo(5.0f) - verticalLineTo(10.0f) - horizontalLineToRelative(14.0f) - verticalLineTo(20.0f) - close() - moveTo(9.0f, 14.0f) - horizontalLineTo(7.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(14.0f) - close() - moveTo(13.0f, 14.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(14.0f) - close() - moveTo(17.0f, 14.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(14.0f) - close() - moveTo(9.0f, 18.0f) - horizontalLineTo(7.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(18.0f) - close() - moveTo(13.0f, 18.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(18.0f) - close() - moveTo(17.0f, 18.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineTo(18.0f) - close() - } - } - return _calendarMonth!! - } - -private var _calendarMonth: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Check.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Check.kt deleted file mode 100644 index f1044fc0e..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Check.kt +++ /dev/null @@ -1,27 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Check: ImageVector - get() { - if (_check != null) { - return _check!! - } - _check = materialIcon(name = "Filled.Check") { - materialPath { - moveTo(9.0f, 16.17f) - lineTo(4.83f, 12.0f) - lineToRelative(-1.42f, 1.41f) - lineTo(9.0f, 19.0f) - lineTo(21.0f, 7.0f) - lineToRelative(-1.41f, -1.41f) - close() - } - } - return _check!! - } - -private var _check: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/DateRange.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/DateRange.kt deleted file mode 100644 index 765b41d21..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/DateRange.kt +++ /dev/null @@ -1,62 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.DateRange: ImageVector - get() { - if (_dateRange != null) { - return _dateRange!! - } - _dateRange = materialIcon(name = "Filled.DateRange") { - materialPath { - moveTo(9.0f, 11.0f) - lineTo(7.0f, 11.0f) - verticalLineToRelative(2.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(-2.0f) - close() - moveTo(13.0f, 11.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(2.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(-2.0f) - close() - moveTo(17.0f, 11.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(2.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(-2.0f) - close() - moveTo(19.0f, 4.0f) - horizontalLineToRelative(-1.0f) - lineTo(18.0f, 2.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(2.0f) - lineTo(8.0f, 4.0f) - lineTo(8.0f, 2.0f) - lineTo(6.0f, 2.0f) - verticalLineToRelative(2.0f) - lineTo(5.0f, 4.0f) - curveToRelative(-1.11f, 0.0f, -1.99f, 0.9f, -1.99f, 2.0f) - lineTo(3.0f, 20.0f) - curveToRelative(0.0f, 1.1f, 0.89f, 2.0f, 2.0f, 2.0f) - horizontalLineToRelative(14.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - lineTo(21.0f, 6.0f) - curveToRelative(0.0f, -1.1f, -0.9f, -2.0f, -2.0f, -2.0f) - close() - moveTo(19.0f, 20.0f) - lineTo(5.0f, 20.0f) - lineTo(5.0f, 9.0f) - horizontalLineToRelative(14.0f) - verticalLineToRelative(11.0f) - close() - } - } - return _dateRange!! - } - -private var _dateRange: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Description.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Description.kt deleted file mode 100644 index 9a4e5a8cf..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Description.kt +++ /dev/null @@ -1,47 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Description: ImageVector - get() { - if (_description != null) { - return _description!! - } - _description = materialIcon(name = "Filled.Description") { - materialPath { - moveTo(14.0f, 2.0f) - lineTo(6.0f, 2.0f) - curveToRelative(-1.1f, 0.0f, -1.99f, 0.9f, -1.99f, 2.0f) - lineTo(4.0f, 20.0f) - curveToRelative(0.0f, 1.1f, 0.89f, 2.0f, 1.99f, 2.0f) - lineTo(18.0f, 22.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - lineTo(20.0f, 8.0f) - lineToRelative(-6.0f, -6.0f) - close() - moveTo(16.0f, 18.0f) - lineTo(8.0f, 18.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(8.0f) - verticalLineToRelative(2.0f) - close() - moveTo(16.0f, 14.0f) - lineTo(8.0f, 14.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(8.0f) - verticalLineToRelative(2.0f) - close() - moveTo(13.0f, 9.0f) - lineTo(13.0f, 3.5f) - lineTo(18.5f, 9.0f) - lineTo(13.0f, 9.0f) - close() - } - } - return _description!! - } - -private var _description: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Info.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Info.kt deleted file mode 100644 index f02afde6e..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Info.kt +++ /dev/null @@ -1,38 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Info: ImageVector - get() { - if (_info != null) { - return _info!! - } - _info = materialIcon(name = "Filled.Info") { - materialPath { - moveTo(12.0f, 2.0f) - curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f) - reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f) - reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f) - close() - moveTo(13.0f, 17.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-6.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(6.0f) - close() - moveTo(13.0f, 9.0f) - horizontalLineToRelative(-2.0f) - lineTo(11.0f, 7.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(2.0f) - close() - } - } - return _info!! - } - -private var _info: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Language.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Language.kt deleted file mode 100644 index 878fc25d8..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Language.kt +++ /dev/null @@ -1,80 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Language: ImageVector - get() { - if (_language != null) { - return _language!! - } - _language = materialIcon(name = "Filled.Language") { - materialPath { - moveTo(11.99f, 2.0f) - curveTo(6.47f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.47f, 10.0f, 9.99f, 10.0f) - curveTo(17.52f, 22.0f, 22.0f, 17.52f, 22.0f, 12.0f) - reflectiveCurveTo(17.52f, 2.0f, 11.99f, 2.0f) - close() - moveTo(18.92f, 8.0f) - horizontalLineToRelative(-2.95f) - curveToRelative(-0.32f, -1.25f, -0.78f, -2.45f, -1.38f, -3.56f) - curveToRelative(1.84f, 0.63f, 3.37f, 1.91f, 4.33f, 3.56f) - close() - moveTo(12.0f, 4.04f) - curveToRelative(0.83f, 1.2f, 1.48f, 2.53f, 1.91f, 3.96f) - horizontalLineToRelative(-3.82f) - curveToRelative(0.43f, -1.43f, 1.08f, -2.76f, 1.91f, -3.96f) - close() - moveTo(4.26f, 14.0f) - curveTo(4.1f, 13.36f, 4.0f, 12.69f, 4.0f, 12.0f) - reflectiveCurveToRelative(0.1f, -1.36f, 0.26f, -2.0f) - horizontalLineToRelative(3.38f) - curveToRelative(-0.08f, 0.66f, -0.14f, 1.32f, -0.14f, 2.0f) - curveToRelative(0.0f, 0.68f, 0.06f, 1.34f, 0.14f, 2.0f) - lineTo(4.26f, 14.0f) - close() - moveTo(5.08f, 16.0f) - horizontalLineToRelative(2.95f) - curveToRelative(0.32f, 1.25f, 0.78f, 2.45f, 1.38f, 3.56f) - curveToRelative(-1.84f, -0.63f, -3.37f, -1.9f, -4.33f, -3.56f) - close() - moveTo(8.03f, 8.0f) - lineTo(5.08f, 8.0f) - curveToRelative(0.96f, -1.66f, 2.49f, -2.93f, 4.33f, -3.56f) - curveTo(8.81f, 5.55f, 8.35f, 6.75f, 8.03f, 8.0f) - close() - moveTo(12.0f, 19.96f) - curveToRelative(-0.83f, -1.2f, -1.48f, -2.53f, -1.91f, -3.96f) - horizontalLineToRelative(3.82f) - curveToRelative(-0.43f, 1.43f, -1.08f, 2.76f, -1.91f, 3.96f) - close() - moveTo(14.34f, 14.0f) - lineTo(9.66f, 14.0f) - curveToRelative(-0.09f, -0.66f, -0.16f, -1.32f, -0.16f, -2.0f) - curveToRelative(0.0f, -0.68f, 0.07f, -1.35f, 0.16f, -2.0f) - horizontalLineToRelative(4.68f) - curveToRelative(0.09f, 0.65f, 0.16f, 1.32f, 0.16f, 2.0f) - curveToRelative(0.0f, 0.68f, -0.07f, 1.34f, -0.16f, 2.0f) - close() - moveTo(14.59f, 19.56f) - curveToRelative(0.6f, -1.11f, 1.06f, -2.31f, 1.38f, -3.56f) - horizontalLineToRelative(2.95f) - curveToRelative(-0.96f, 1.65f, -2.49f, 2.93f, -4.33f, 3.56f) - close() - moveTo(16.36f, 14.0f) - curveToRelative(0.08f, -0.66f, 0.14f, -1.32f, 0.14f, -2.0f) - curveToRelative(0.0f, -0.68f, -0.06f, -1.34f, -0.14f, -2.0f) - horizontalLineToRelative(3.38f) - curveToRelative(0.16f, 0.64f, 0.26f, 1.31f, 0.26f, 2.0f) - reflectiveCurveToRelative(-0.1f, 1.36f, -0.26f, 2.0f) - horizontalLineToRelative(-3.38f) - close() - } - } - return _language!! - } - -private var _language: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/LocalFireDepartment.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/LocalFireDepartment.kt deleted file mode 100644 index 2d597158f..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/LocalFireDepartment.kt +++ /dev/null @@ -1,38 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.LocalFireDepartment: ImageVector - get() { - if (_localFireDepartment != null) { - return _localFireDepartment!! - } - _localFireDepartment = materialIcon(name = "Filled.LocalFireDepartment") { - materialPath { - moveTo(19.48f, 12.35f) - curveToRelative(-1.57f, -4.08f, -7.16f, -4.3f, -5.81f, -10.23f) - curveToRelative(0.1f, -0.44f, -0.37f, -0.78f, -0.75f, -0.55f) - curveTo(9.29f, 3.71f, 6.68f, 8.0f, 8.87f, 13.62f) - curveToRelative(0.18f, 0.46f, -0.36f, 0.89f, -0.75f, 0.59f) - curveToRelative(-1.81f, -1.37f, -2.0f, -3.34f, -1.84f, -4.75f) - curveToRelative(0.06f, -0.52f, -0.62f, -0.77f, -0.91f, -0.34f) - curveTo(4.69f, 10.16f, 4.0f, 11.84f, 4.0f, 14.37f) - curveToRelative(0.38f, 5.6f, 5.11f, 7.32f, 6.81f, 7.54f) - curveToRelative(2.43f, 0.31f, 5.06f, -0.14f, 6.95f, -1.87f) - curveTo(19.84f, 18.11f, 20.6f, 15.03f, 19.48f, 12.35f) - close() - moveTo(10.2f, 17.38f) - curveToRelative(1.44f, -0.35f, 2.18f, -1.39f, 2.38f, -2.31f) - curveToRelative(0.33f, -1.43f, -0.96f, -2.83f, -0.09f, -5.09f) - curveToRelative(0.33f, 1.87f, 3.27f, 3.04f, 3.27f, 5.08f) - curveTo(15.84f, 17.59f, 13.1f, 19.76f, 10.2f, 17.38f) - close() - } - } - return _localFireDepartment!! - } - -private var _localFireDepartment: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/MainOutline.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/MainOutline.kt deleted file mode 100644 index 5d56f17f4..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/MainOutline.kt +++ /dev/null @@ -1,42 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.MailOutline: ImageVector - get() { - if (_mailOutline != null) { - return _mailOutline!! - } - _mailOutline = materialIcon(name = "Filled.MailOutline") { - materialPath { - moveTo(20.0f, 4.0f) - lineTo(4.0f, 4.0f) - curveToRelative(-1.1f, 0.0f, -1.99f, 0.9f, -1.99f, 2.0f) - lineTo(2.0f, 18.0f) - curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f) - horizontalLineToRelative(16.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - lineTo(22.0f, 6.0f) - curveToRelative(0.0f, -1.1f, -0.9f, -2.0f, -2.0f, -2.0f) - close() - moveTo(20.0f, 18.0f) - lineTo(4.0f, 18.0f) - lineTo(4.0f, 8.0f) - lineToRelative(8.0f, 5.0f) - lineToRelative(8.0f, -5.0f) - verticalLineToRelative(10.0f) - close() - moveTo(12.0f, 11.0f) - lineTo(4.0f, 6.0f) - horizontalLineToRelative(16.0f) - lineToRelative(-8.0f, 5.0f) - close() - } - } - return _mailOutline!! - } - -private var _mailOutline: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Notifications.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Notifications.kt deleted file mode 100644 index f5b6f8f6f..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Notifications.kt +++ /dev/null @@ -1,40 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Notifications: ImageVector - get() { - if (_notifications != null) { - return _notifications!! - } - _notifications = materialIcon(name = "Filled.Notifications") { - materialPath { - moveTo(12.0f, 22.0f) - curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f) - horizontalLineToRelative(-4.0f) - curveToRelative(0.0f, 1.1f, 0.89f, 2.0f, 2.0f, 2.0f) - close() - moveTo(18.0f, 16.0f) - verticalLineToRelative(-5.0f) - curveToRelative(0.0f, -3.07f, -1.64f, -5.64f, -4.5f, -6.32f) - lineTo(13.5f, 4.0f) - curveToRelative(0.0f, -0.83f, -0.67f, -1.5f, -1.5f, -1.5f) - reflectiveCurveToRelative(-1.5f, 0.67f, -1.5f, 1.5f) - verticalLineToRelative(0.68f) - curveTo(7.63f, 5.36f, 6.0f, 7.92f, 6.0f, 11.0f) - verticalLineToRelative(5.0f) - lineToRelative(-2.0f, 2.0f) - verticalLineToRelative(1.0f) - horizontalLineToRelative(16.0f) - verticalLineToRelative(-1.0f) - lineToRelative(-2.0f, -2.0f) - close() - } - } - return _notifications!! - } - -private var _notifications: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Person.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Person.kt deleted file mode 100644 index 5706c2ed1..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Person.kt +++ /dev/null @@ -1,33 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Person: ImageVector - get() { - if (_person != null) { - return _person!! - } - _person = materialIcon(name = "Filled.Person") { - materialPath { - moveTo(12.0f, 12.0f) - curveToRelative(2.21f, 0.0f, 4.0f, -1.79f, 4.0f, -4.0f) - reflectiveCurveToRelative(-1.79f, -4.0f, -4.0f, -4.0f) - reflectiveCurveToRelative(-4.0f, 1.79f, -4.0f, 4.0f) - reflectiveCurveToRelative(1.79f, 4.0f, 4.0f, 4.0f) - close() - moveTo(12.0f, 14.0f) - curveToRelative(-2.67f, 0.0f, -8.0f, 1.34f, -8.0f, 4.0f) - verticalLineToRelative(2.0f) - horizontalLineToRelative(16.0f) - verticalLineToRelative(-2.0f) - curveToRelative(0.0f, -2.66f, -5.33f, -4.0f, -8.0f, -4.0f) - close() - } - } - return _person!! - } - -private var _person: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Schedule.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Schedule.kt deleted file mode 100644 index cf337aee6..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Schedule.kt +++ /dev/null @@ -1,41 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Schedule: ImageVector - get() { - if (_schedule != null) { - return _schedule!! - } - _schedule = materialIcon(name = "Filled.Schedule") { - materialPath { - moveTo(11.99f, 2.0f) - curveTo(6.47f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.47f, 10.0f, 9.99f, 10.0f) - curveTo(17.52f, 22.0f, 22.0f, 17.52f, 22.0f, 12.0f) - reflectiveCurveTo(17.52f, 2.0f, 11.99f, 2.0f) - close() - moveTo(12.0f, 20.0f) - curveToRelative(-4.42f, 0.0f, -8.0f, -3.58f, -8.0f, -8.0f) - reflectiveCurveToRelative(3.58f, -8.0f, 8.0f, -8.0f) - reflectiveCurveToRelative(8.0f, 3.58f, 8.0f, 8.0f) - reflectiveCurveToRelative(-3.58f, 8.0f, -8.0f, 8.0f) - close() - } - materialPath { - moveTo(12.5f, 7.0f) - horizontalLineTo(11.0f) - verticalLineToRelative(6.0f) - lineToRelative(5.25f, 3.15f) - lineToRelative(0.75f, -1.23f) - lineToRelative(-4.5f, -2.67f) - close() - } - } - return _schedule!! - } - -private var _schedule: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentientVerySatisfied.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentientVerySatisfied.kt deleted file mode 100644 index 3207c0d98..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentientVerySatisfied.kt +++ /dev/null @@ -1,49 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.SentimentVerySatisfied: ImageVector - get() { - if (_sentimentVerySatisfied != null) { - return _sentimentVerySatisfied!! - } - _sentimentVerySatisfied = materialIcon(name = "Filled.SentimentVerySatisfied") { - materialPath { - moveTo(15.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(8.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(11.99f, 2.0f) - curveTo(6.47f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.47f, 10.0f, 9.99f, 10.0f) - curveTo(17.52f, 22.0f, 22.0f, 17.52f, 22.0f, 12.0f) - reflectiveCurveTo(17.52f, 2.0f, 11.99f, 2.0f) - close() - moveTo(12.0f, 20.0f) - curveToRelative(-4.42f, 0.0f, -8.0f, -3.58f, -8.0f, -8.0f) - reflectiveCurveToRelative(3.58f, -8.0f, 8.0f, -8.0f) - reflectiveCurveToRelative(8.0f, 3.58f, 8.0f, 8.0f) - reflectiveCurveToRelative(-3.58f, 8.0f, -8.0f, 8.0f) - close() - moveTo(7.0f, 14.0f) - curveToRelative(0.78f, 2.34f, 2.72f, 4.0f, 5.0f, 4.0f) - reflectiveCurveToRelative(4.22f, -1.66f, 5.0f, -4.0f) - lineTo(7.0f, 14.0f) - close() - } - } - return _sentimentVerySatisfied!! - } - -private var _sentimentVerySatisfied: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentNeutral.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentNeutral.kt deleted file mode 100644 index a70599786..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentNeutral.kt +++ /dev/null @@ -1,52 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.SentimentNeutral: ImageVector - get() { - if (_sentimentNeutral != null) { - return _sentimentNeutral!! - } - _sentimentNeutral = materialIcon(name = "Filled.SentimentNeutral") { - materialPath { - moveTo(9.0f, 15.5f) - horizontalLineToRelative(6.0f) - verticalLineToRelative(1.0f) - horizontalLineTo(9.0f) - verticalLineToRelative(-1.0f) - close() - } - materialPath { - moveTo(15.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(8.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(11.99f, 2.0f) - curveTo(6.47f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.47f, 10.0f, 9.99f, 10.0f) - curveTo(17.52f, 22.0f, 22.0f, 17.52f, 22.0f, 12.0f) - reflectiveCurveTo(17.52f, 2.0f, 11.99f, 2.0f) - close() - moveTo(12.0f, 20.0f) - curveToRelative(-4.42f, 0.0f, -8.0f, -3.58f, -8.0f, -8.0f) - reflectiveCurveToRelative(3.58f, -8.0f, 8.0f, -8.0f) - reflectiveCurveToRelative(8.0f, 3.58f, 8.0f, 8.0f) - reflectiveCurveToRelative(-3.58f, 8.0f, -8.0f, 8.0f) - close() - } - } - return _sentimentNeutral!! - } - -private var _sentimentNeutral: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentVeryDissatisfied.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentVeryDissatisfied.kt deleted file mode 100644 index 9f3921eaa..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/SentimentVeryDissatisfied.kt +++ /dev/null @@ -1,52 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.SentimentVeryDissatisfied: ImageVector - get() { - if (_sentimentVeryDissatisfied != null) { - return _sentimentVeryDissatisfied!! - } - _sentimentVeryDissatisfied = materialIcon(name = "Filled.SentimentVeryDissatisfied") { - materialPath { - moveTo(15.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(8.5f, 9.5f) - moveToRelative(-1.5f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, 3.0f, 0.0f) - arcToRelative(1.5f, 1.5f, 0.0f, true, true, -3.0f, 0.0f) - } - materialPath { - moveTo(11.99f, 2.0f) - curveTo(6.47f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f) - reflectiveCurveToRelative(4.47f, 10.0f, 9.99f, 10.0f) - curveTo(17.52f, 22.0f, 22.0f, 17.52f, 22.0f, 12.0f) - reflectiveCurveTo(17.52f, 2.0f, 11.99f, 2.0f) - close() - moveTo(12.0f, 20.0f) - curveToRelative(-4.42f, 0.0f, -8.0f, -3.58f, -8.0f, -8.0f) - reflectiveCurveToRelative(3.58f, -8.0f, 8.0f, -8.0f) - reflectiveCurveToRelative(8.0f, 3.58f, 8.0f, 8.0f) - reflectiveCurveToRelative(-3.58f, 8.0f, -8.0f, 8.0f) - close() - moveTo(12.0f, 14.0f) - curveToRelative(-2.33f, 0.0f, -4.32f, 1.45f, -5.12f, 3.5f) - horizontalLineToRelative(1.67f) - curveToRelative(0.69f, -1.19f, 1.97f, -2.0f, 3.45f, -2.0f) - reflectiveCurveToRelative(2.75f, 0.81f, 3.45f, 2.0f) - horizontalLineToRelative(1.67f) - curveToRelative(-0.8f, -2.05f, -2.79f, -3.5f, -5.12f, -3.5f) - close() - } - } - return _sentimentVeryDissatisfied!! - } - -private var _sentimentVeryDissatisfied: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Settings.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Settings.kt deleted file mode 100644 index b9efc5fba..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Settings.kt +++ /dev/null @@ -1,66 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Settings: ImageVector - get() { - if (_settings != null) { - return _settings!! - } - _settings = materialIcon(name = "Filled.Settings") { - materialPath { - moveTo(19.14f, 12.94f) - curveToRelative(0.04f, -0.3f, 0.06f, -0.61f, 0.06f, -0.94f) - curveToRelative(0.0f, -0.32f, -0.02f, -0.64f, -0.07f, -0.94f) - lineToRelative(2.03f, -1.58f) - curveToRelative(0.18f, -0.14f, 0.23f, -0.41f, 0.12f, -0.61f) - lineToRelative(-1.92f, -3.32f) - curveToRelative(-0.12f, -0.22f, -0.37f, -0.29f, -0.59f, -0.22f) - lineToRelative(-2.39f, 0.96f) - curveToRelative(-0.5f, -0.38f, -1.03f, -0.7f, -1.62f, -0.94f) - lineTo(14.4f, 2.81f) - curveToRelative(-0.04f, -0.24f, -0.24f, -0.41f, -0.48f, -0.41f) - horizontalLineToRelative(-3.84f) - curveToRelative(-0.24f, 0.0f, -0.43f, 0.17f, -0.47f, 0.41f) - lineTo(9.25f, 5.35f) - curveTo(8.66f, 5.59f, 8.12f, 5.92f, 7.63f, 6.29f) - lineTo(5.24f, 5.33f) - curveToRelative(-0.22f, -0.08f, -0.47f, 0.0f, -0.59f, 0.22f) - lineTo(2.74f, 8.87f) - curveTo(2.62f, 9.08f, 2.66f, 9.34f, 2.86f, 9.48f) - lineToRelative(2.03f, 1.58f) - curveTo(4.84f, 11.36f, 4.8f, 11.69f, 4.8f, 12.0f) - reflectiveCurveToRelative(0.02f, 0.64f, 0.07f, 0.94f) - lineToRelative(-2.03f, 1.58f) - curveToRelative(-0.18f, 0.14f, -0.23f, 0.41f, -0.12f, 0.61f) - lineToRelative(1.92f, 3.32f) - curveToRelative(0.12f, 0.22f, 0.37f, 0.29f, 0.59f, 0.22f) - lineToRelative(2.39f, -0.96f) - curveToRelative(0.5f, 0.38f, 1.03f, 0.7f, 1.62f, 0.94f) - lineToRelative(0.36f, 2.54f) - curveToRelative(0.05f, 0.24f, 0.24f, 0.41f, 0.48f, 0.41f) - horizontalLineToRelative(3.84f) - curveToRelative(0.24f, 0.0f, 0.44f, -0.17f, 0.47f, -0.41f) - lineToRelative(0.36f, -2.54f) - curveToRelative(0.59f, -0.24f, 1.13f, -0.56f, 1.62f, -0.94f) - lineToRelative(2.39f, 0.96f) - curveToRelative(0.22f, 0.08f, 0.47f, 0.0f, 0.59f, -0.22f) - lineToRelative(1.92f, -3.32f) - curveToRelative(0.12f, -0.22f, 0.07f, -0.47f, -0.12f, -0.61f) - lineTo(19.14f, 12.94f) - close() - moveTo(12.0f, 15.6f) - curveToRelative(-1.98f, 0.0f, -3.6f, -1.62f, -3.6f, -3.6f) - reflectiveCurveToRelative(1.62f, -3.6f, 3.6f, -3.6f) - reflectiveCurveToRelative(3.6f, 1.62f, 3.6f, 3.6f) - reflectiveCurveTo(13.98f, 15.6f, 12.0f, 15.6f) - close() - } - } - return _settings!! - } - -private var _settings: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Warning.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Warning.kt deleted file mode 100644 index 80c1d391d..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/icons/Warning.kt +++ /dev/null @@ -1,37 +0,0 @@ -package co.touchlab.droidcon.ui.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector - -public val Icons.Filled.Warning: ImageVector - get() { - if (_warning != null) { - return _warning!! - } - _warning = materialIcon(name = "Filled.Warning") { - materialPath { - moveTo(1.0f, 21.0f) - horizontalLineToRelative(22.0f) - lineTo(12.0f, 2.0f) - lineTo(1.0f, 21.0f) - close() - moveTo(13.0f, 18.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-2.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(2.0f) - close() - moveTo(13.0f, 14.0f) - horizontalLineToRelative(-2.0f) - verticalLineToRelative(-4.0f) - horizontalLineToRelative(2.0f) - verticalLineToRelative(4.0f) - close() - } - } - return _warning!! - } - -private var _warning: ImageVector? = null diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt index 010c4f0dc..6ac495dbb 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt @@ -15,7 +15,10 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.BookmarkAdded +import androidx.compose.material.icons.filled.Description +import androidx.compose.material.icons.filled.Info import androidx.compose.material.icons.outlined.BookmarkAdd import androidx.compose.material3.Button import androidx.compose.material3.Divider @@ -43,11 +46,8 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import co.touchlab.droidcon.dto.WebLink import co.touchlab.droidcon.ui.FeedbackDialog -import co.touchlab.droidcon.ui.icons.ArrowBack -import co.touchlab.droidcon.ui.icons.Description -import co.touchlab.droidcon.ui.icons.Info import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.RemoteImage +import co.touchlab.droidcon.ui.util.DcAsyncImage import co.touchlab.droidcon.ui.util.WebLinkText import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.util.NavigationController @@ -55,6 +55,8 @@ import co.touchlab.droidcon.util.NavigationStack import co.touchlab.droidcon.viewmodel.session.SessionDetailViewModel import co.touchlab.droidcon.viewmodel.session.SpeakerListItemViewModel +private const val LOG_TAG = "SessionDetailView" + @OptIn(ExperimentalMaterial3Api::class) @Composable internal fun SessionDetailView(viewModel: SessionDetailViewModel) { @@ -75,7 +77,7 @@ internal fun SessionDetailView(viewModel: SessionDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Default.ArrowBack, + imageVector = Icons.Filled.ArrowBack, contentDescription = "Back", ) } @@ -113,7 +115,8 @@ internal fun SessionDetailView(viewModel: SessionDetailViewModel) { containerColor = MaterialTheme.colorScheme.secondaryContainer, contentColor = MaterialTheme.colorScheme.secondary ) { - val icon = if (isAttending) Icons.Default.BookmarkAdded else Icons.Outlined.BookmarkAdd + val icon = + if (isAttending) Icons.Default.BookmarkAdded else Icons.Outlined.BookmarkAdd val description = if (isAttending) { "Do not attend" } else { @@ -211,7 +214,10 @@ private fun HeaderView(title: String, locationInfo: String) { @Composable private fun InfoView(status: String) { - Row(modifier = Modifier.fillMaxWidth().padding(top = Dimensions.Padding.default), verticalAlignment = Alignment.CenterVertically) { + Row( + modifier = Modifier.fillMaxWidth().padding(top = Dimensions.Padding.default), + verticalAlignment = Alignment.CenterVertically + ) { Icon( imageVector = Icons.Default.Info, contentDescription = "Info", @@ -266,11 +272,16 @@ private fun SpeakerView(speaker: SpeakerListItemViewModel) { Row(verticalAlignment = Alignment.CenterVertically) { val imageUrl = speaker.avatarUrl?.string if (imageUrl != null) { - RemoteImage( - imageUrl = imageUrl, + DcAsyncImage( + logTag = LOG_TAG, + model = imageUrl, contentDescription = speaker.info, modifier = Modifier.width(80.dp) - .padding(start = Dimensions.Padding.default, end = Dimensions.Padding.default, top = Dimensions.Padding.half) + .padding( + start = Dimensions.Padding.default, + end = Dimensions.Padding.default, + top = Dimensions.Padding.half + ) .clip(CircleShape) .aspectRatio(1f) .background(MaterialTheme.colorScheme.primary), diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionListView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionListView.kt index 394cd392a..84653b340 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionListView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionListView.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.DateRange import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -48,7 +49,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp -import co.touchlab.droidcon.ui.icons.DateRange import co.touchlab.droidcon.ui.theme.Dimensions import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.util.NavigationStack diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt index 332341839..183beb9c4 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt @@ -1,5 +1,6 @@ package co.touchlab.droidcon.ui.session +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.aspectRatio @@ -11,6 +12,9 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.filled.Description +import androidx.compose.material.icons.filled.Language import androidx.compose.material3.Divider import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -31,15 +35,17 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import co.touchlab.droidcon.composite.Url import co.touchlab.droidcon.dto.WebLink -import co.touchlab.droidcon.ui.icons.ArrowBack -import co.touchlab.droidcon.ui.icons.Description -import co.touchlab.droidcon.ui.icons.Language import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.LocalImage -import co.touchlab.droidcon.ui.util.RemoteImage +import co.touchlab.droidcon.ui.util.DcAsyncImage +import co.touchlab.droidcon.ui.util.DcDrawableResource +import co.touchlab.droidcon.ui.util.DrawableType import co.touchlab.droidcon.ui.util.WebLinkText import co.touchlab.droidcon.util.NavigationController import co.touchlab.droidcon.viewmodel.session.SpeakerDetailViewModel +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource + +private const val LOG_TAG = "SpeakerDetailView" @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -53,7 +59,7 @@ internal fun SpeakerDetailView(viewModel: SpeakerDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Default.ArrowBack, + imageVector = Icons.Filled.ArrowBack, contentDescription = "Back", ) } @@ -94,14 +100,15 @@ private fun HeaderView(name: String, tagLine: String, imageUrl: Url?) { verticalAlignment = Alignment.CenterVertically, ) { if (imageUrl != null) { - RemoteImage( - imageUrl = imageUrl.string, + DcAsyncImage( + logTag = LOG_TAG, + model = imageUrl.string, contentDescription = name, modifier = Modifier .width(100.dp) .padding(Dimensions.Padding.default) .clip(CircleShape) - .aspectRatio(1f), + .aspectRatio(1f) ) } @@ -129,14 +136,16 @@ private fun HeaderView(name: String, tagLine: String, imageUrl: Url?) { } } +@OptIn(ExperimentalResourceApi::class) @Composable private fun SocialView(url: WebLink, iconName: String) { Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { - LocalImage( - imageResourceName = iconName, + Image( + painter = painterResource(DcDrawableResource(iconName, DrawableType.VECTOR)), + contentDescription = null, modifier = Modifier .padding(Dimensions.Padding.default) - .size(28.dp), + .size(28.dp) ) WebLinkText( text = url.link, @@ -174,7 +183,10 @@ private fun SocialView(url: WebLink, icon: ImageVector) { @Composable private fun BioView(bio: String, webLinks: List) { - Row(modifier = Modifier.fillMaxWidth().padding(vertical = Dimensions.Padding.half), verticalAlignment = Alignment.Top) { + Row( + modifier = Modifier.fillMaxWidth().padding(vertical = Dimensions.Padding.half), + verticalAlignment = Alignment.Top + ) { Icon( imageVector = Icons.Default.Description, contentDescription = null, diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt index 4b341933b..ff5cc6a06 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt @@ -1,10 +1,12 @@ package co.touchlab.droidcon.ui.settings +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -12,13 +14,14 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight -import co.touchlab.droidcon.ui.icons.Info import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.LocalImage import co.touchlab.droidcon.ui.util.WebLinkText +import co.touchlab.droidcon.ui.util.DcDrawableResource import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.viewmodel.settings.AboutItemViewModel import co.touchlab.droidcon.viewmodel.settings.AboutViewModel +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource @Composable internal fun AboutView(viewModel: AboutViewModel) { @@ -28,6 +31,7 @@ internal fun AboutView(viewModel: AboutViewModel) { } } +@OptIn(ExperimentalResourceApi::class) @Composable private fun AboutItemView(viewModel: AboutItemViewModel) { Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.Top) { @@ -53,8 +57,9 @@ private fun AboutItemView(viewModel: AboutItemViewModel) { modifier = Modifier.padding(end = Dimensions.Padding.default), ) - LocalImage( - imageResourceName = viewModel.icon, + Image( + painter = painterResource(DcDrawableResource(viewModel.icon)), + contentDescription = null, modifier = Modifier .fillMaxWidth() .padding( diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/SettingsView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/SettingsView.kt index 69bda6e13..b95b70f24 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/SettingsView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/SettingsView.kt @@ -9,6 +9,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.MailOutline +import androidx.compose.material.icons.filled.Notifications import androidx.compose.material3.Divider import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -25,8 +27,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.unit.dp -import co.touchlab.droidcon.ui.icons.MailOutline -import co.touchlab.droidcon.ui.icons.Notifications import co.touchlab.droidcon.ui.theme.Dimensions import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.viewmodel.settings.SettingsViewModel diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt index 75679b3b6..e48cd0100 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt @@ -14,6 +14,9 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.filled.Description +import androidx.compose.material.icons.filled.Person import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -31,18 +34,17 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import co.touchlab.droidcon.composite.Url -import co.touchlab.droidcon.ui.icons.ArrowBack -import co.touchlab.droidcon.ui.icons.Description -import co.touchlab.droidcon.ui.icons.Person import co.touchlab.droidcon.ui.session.SpeakerDetailView import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.RemoteImage +import co.touchlab.droidcon.ui.util.DcAsyncImage import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.util.NavigationController import co.touchlab.droidcon.util.NavigationStack import co.touchlab.droidcon.viewmodel.session.SpeakerListItemViewModel import co.touchlab.droidcon.viewmodel.sponsor.SponsorDetailViewModel +private const val LOG_TAG = "SponsorDetailView" + @OptIn(ExperimentalMaterial3Api::class) @Composable internal fun SponsorDetailView(viewModel: SponsorDetailViewModel) { @@ -61,7 +63,7 @@ internal fun SponsorDetailView(viewModel: SponsorDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Default.ArrowBack, + imageVector = Icons.Filled.ArrowBack, contentDescription = "Back", ) } @@ -75,7 +77,11 @@ internal fun SponsorDetailView(viewModel: SponsorDetailViewModel) { .padding(paddingValues) .verticalScroll(scrollState), ) { - HeaderView(name = viewModel.name, groupTitle = viewModel.groupName, imageUrl = viewModel.imageUrl) + HeaderView( + name = viewModel.name, + groupTitle = viewModel.groupName, + imageUrl = viewModel.imageUrl + ) viewModel.abstract?.let { DescriptionView(description = it) @@ -124,8 +130,9 @@ private fun HeaderView(name: String, groupTitle: String, imageUrl: Url?) { } if (imageUrl != null) { - RemoteImage( - imageUrl = imageUrl.string, + DcAsyncImage( + logTag = LOG_TAG, + model = imageUrl.string, modifier = Modifier .width(120.dp) .padding(horizontal = Dimensions.Padding.default) @@ -185,18 +192,27 @@ private fun RepresentativeInfoView(profile: SpeakerListItemViewModel) { contentScale = ContentScale.Crop, modifier = Modifier .width(80.dp) - .padding(start = Dimensions.Padding.default, end = Dimensions.Padding.default, top = Dimensions.Padding.half) + .padding( + start = Dimensions.Padding.default, + end = Dimensions.Padding.default, + top = Dimensions.Padding.half + ) .clip(CircleShape) .aspectRatio(1f) .background(MaterialTheme.colorScheme.primary), ) } else { - RemoteImage( - imageUrl = imageUrl.string, + DcAsyncImage( + logTag = LOG_TAG, + model = imageUrl.string, contentDescription = profile.info, modifier = Modifier .width(80.dp) - .padding(start = Dimensions.Padding.default, end = Dimensions.Padding.default, top = Dimensions.Padding.half) + .padding( + start = Dimensions.Padding.default, + end = Dimensions.Padding.default, + top = Dimensions.Padding.half + ) .clip(CircleShape) .aspectRatio(1f) .background(MaterialTheme.colorScheme.primary), diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorsView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorsView.kt index b86c64cb1..fd717aef3 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorsView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorsView.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.DateRange import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -38,15 +39,18 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import co.touchlab.droidcon.ui.icons.DateRange import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.RemoteImage +import co.touchlab.droidcon.ui.util.DcAsyncImage import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.util.NavigationStack import co.touchlab.droidcon.viewmodel.sponsor.SponsorGroupViewModel import co.touchlab.droidcon.viewmodel.sponsor.SponsorListViewModel +import coil3.compose.LocalPlatformContext +import coil3.request.ImageRequest import kotlin.math.min +private const val LOG_TAG = "SponsorsView" + @OptIn(ExperimentalMaterial3Api::class) @Composable internal fun SponsorsView(viewModel: SponsorListViewModel) { @@ -95,7 +99,10 @@ internal fun SponsorsView(viewModel: SponsorListViewModel) { @Composable private fun SponsorGroupView(sponsorGroup: SponsorGroupViewModel) { Card( - modifier = Modifier.padding(vertical = Dimensions.Padding.quarter, horizontal = Dimensions.Padding.half) + modifier = Modifier.padding( + vertical = Dimensions.Padding.quarter, + horizontal = Dimensions.Padding.half + ) ) { Column(modifier = Modifier.fillMaxWidth()) { Text( @@ -131,8 +138,11 @@ private fun SponsorGroupView(sponsorGroup: SponsorGroupViewModel) { ) { val imageUrl = sponsor.validImageUrl if (imageUrl != null) { - RemoteImage( - imageUrl = imageUrl, + DcAsyncImage( + logTag = LOG_TAG, + model = ImageRequest.Builder(LocalPlatformContext.current) + .data(imageUrl) + .build(), contentDescription = sponsor.name, ) } else { diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt new file mode 100644 index 000000000..6c3994419 --- /dev/null +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt @@ -0,0 +1,18 @@ +package co.touchlab.droidcon.ui.util + +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.ResourceItem + +enum class DrawableType(val extension: String) { + PNG(".png"), + VECTOR(".xml") +} + +@Suppress("FunctionName") +fun DcDrawableResource(name: String, type: DrawableType = DrawableType.PNG) = + DrawableResource( + id = "drawable:$name", + items = setOf( + ResourceItem(setOf(), "composeResources/drawable/$name${type.extension}") + ) + ) \ No newline at end of file diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt new file mode 100644 index 000000000..460c433d0 --- /dev/null +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt @@ -0,0 +1,45 @@ +package co.touchlab.droidcon.ui.util + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import co.touchlab.kermit.Logger +import coil3.ImageLoader +import coil3.PlatformContext +import coil3.compose.AsyncImage +import coil3.request.crossfade +import coil3.util.DebugLogger + +@Composable +fun DcAsyncImage( + logTag: String, + model: Any?, + contentDescription: String?, + modifier: Modifier = Modifier, +) { + AsyncImage( + modifier = modifier, + model = model, + contentDescription = contentDescription, + onError = { + Logger.e( + messageString = logTag, + throwable = it.result.throwable, + tag = "AsyncImage OnError Request = ${it.result.request}\n" + ) + }, + ) +} + +fun dcImageLoader( + context: PlatformContext, + debug: Boolean = false, +): ImageLoader { + return ImageLoader.Builder(context) + .crossfade(true) + .apply { + if (debug) { + logger(DebugLogger()) + } + } + .build() +} \ No newline at end of file diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/LocalImage.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/LocalImage.kt deleted file mode 100644 index b5680f415..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/LocalImage.kt +++ /dev/null @@ -1,12 +0,0 @@ -package co.touchlab.droidcon.ui.util - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier - -@Composable -internal expect fun __LocalImage(imageResourceName: String, modifier: Modifier, contentDescription: String?) - -@Composable -internal fun LocalImage(imageResourceName: String, modifier: Modifier = Modifier, contentDescription: String? = null) { - __LocalImage(imageResourceName, modifier, contentDescription) -} diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/RemoteImage.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/RemoteImage.kt deleted file mode 100644 index 0246c1101..000000000 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/RemoteImage.kt +++ /dev/null @@ -1,12 +0,0 @@ -package co.touchlab.droidcon.ui.util - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier - -@Composable -internal expect fun __RemoteImage(imageUrl: String, modifier: Modifier, contentDescription: String?) - -@Composable -internal fun RemoteImage(imageUrl: String, modifier: Modifier = Modifier, contentDescription: String? = null) { - __RemoteImage(imageUrl, modifier, contentDescription) -} diff --git a/android/src/main/res/drawable-nodpi/about_droidcon.png b/shared-ui/src/commonMain/resources/composeResources/drawable/about_droidcon.png similarity index 100% rename from android/src/main/res/drawable-nodpi/about_droidcon.png rename to shared-ui/src/commonMain/resources/composeResources/drawable/about_droidcon.png diff --git a/android/src/main/res/drawable-nodpi/about_kotlin.png b/shared-ui/src/commonMain/resources/composeResources/drawable/about_kotlin.png similarity index 100% rename from android/src/main/res/drawable-nodpi/about_kotlin.png rename to shared-ui/src/commonMain/resources/composeResources/drawable/about_kotlin.png diff --git a/android/src/main/res/drawable-nodpi/about_touchlab.png b/shared-ui/src/commonMain/resources/composeResources/drawable/about_touchlab.png similarity index 100% rename from android/src/main/res/drawable-nodpi/about_touchlab.png rename to shared-ui/src/commonMain/resources/composeResources/drawable/about_touchlab.png diff --git a/android/src/main/res/drawable/linkedin.xml b/shared-ui/src/commonMain/resources/composeResources/drawable/linkedin.xml similarity index 100% rename from android/src/main/res/drawable/linkedin.xml rename to shared-ui/src/commonMain/resources/composeResources/drawable/linkedin.xml diff --git a/android/src/main/res/drawable/twitter.xml b/shared-ui/src/commonMain/resources/composeResources/drawable/twitter.xml similarity index 100% rename from android/src/main/res/drawable/twitter.xml rename to shared-ui/src/commonMain/resources/composeResources/drawable/twitter.xml diff --git a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/settings/PlatformSpecificSettings.kt b/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/settings/PlatformSpecificSettings.kt index e76e69e55..88e5132be 100644 --- a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/settings/PlatformSpecificSettings.kt +++ b/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/settings/PlatformSpecificSettings.kt @@ -1,9 +1,9 @@ package co.touchlab.droidcon.ui.settings import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Aod import androidx.compose.material3.Divider import androidx.compose.runtime.Composable -import co.touchlab.droidcon.ui.icons.Aod import co.touchlab.droidcon.viewmodel.settings.SettingsViewModel @Composable diff --git a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.kt b/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.kt deleted file mode 100644 index 7ebac55be..000000000 --- a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/LocalImage.kt +++ /dev/null @@ -1,51 +0,0 @@ -package co.touchlab.droidcon.ui.util - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.painter.BitmapPainter -import androidx.compose.ui.graphics.toComposeImageBitmap -import androidx.compose.ui.layout.ContentScale -import co.touchlab.droidcon.ui.icons.Warning -import co.touchlab.droidcon.ui.theme.Dimensions -import platform.UIKit.UIImage - -@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) -@Composable -internal actual fun __LocalImage(imageResourceName: String, modifier: Modifier, contentDescription: String?) { - val painter = remember { UIImage.imageNamed(imageResourceName)?.toSkiaImage()?.toComposeImageBitmap()?.let(::BitmapPainter) } - if (painter != null) { - androidx.compose.foundation.Image( - modifier = modifier, - painter = painter, - contentDescription = contentDescription, - contentScale = ContentScale.FillWidth, - ) - } else { - Row( - modifier = modifier.background(MaterialTheme.colorScheme.primary, RoundedCornerShape(Dimensions.Padding.half)), - verticalAlignment = Alignment.CenterVertically, - ) { - Spacer(modifier = Modifier.weight(1f)) - Icon( - imageVector = Icons.Default.Warning, - contentDescription = contentDescription, - modifier = Modifier.padding(Dimensions.Padding.half), - tint = Color.White, - ) - Text("Image not supported", modifier = Modifier.padding(Dimensions.Padding.default), color = Color.White) - Spacer(modifier = Modifier.weight(1f)) - } - } -} diff --git a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.kt b/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.kt deleted file mode 100644 index ce57c910c..000000000 --- a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.kt +++ /dev/null @@ -1,27 +0,0 @@ -package co.touchlab.droidcon.ui.util - -import androidx.compose.foundation.Image -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.Modifier -import com.seiko.imageloader.ImageLoaderBuilder -import com.seiko.imageloader.LocalImageLoader -import com.seiko.imageloader.rememberAsyncImagePainter - -@Composable -internal actual fun __RemoteImage(imageUrl: String, modifier: Modifier, contentDescription: String?) { - CompositionLocalProvider( - LocalImageLoader provides ImageLoaderBuilder().build(), - ) { - val resource = rememberAsyncImagePainter( - url = imageUrl, - imageLoader = LocalImageLoader.current, - ) - - Image( - painter = resource, - contentDescription = contentDescription, - modifier = modifier, - ) - } -} diff --git a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/ToSkiaImage.kt b/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/ToSkiaImage.kt deleted file mode 100644 index 8aa2044f1..000000000 --- a/shared-ui/src/iosMain/kotlin/co/touchlab/droidcon/ui/util/ToSkiaImage.kt +++ /dev/null @@ -1,55 +0,0 @@ -package co.touchlab.droidcon.ui.util - -import kotlinx.cinterop.ExperimentalForeignApi -import kotlinx.cinterop.get -import org.jetbrains.skia.ColorAlphaType -import org.jetbrains.skia.ColorType -import org.jetbrains.skia.Image -import org.jetbrains.skia.ImageInfo -import platform.CoreFoundation.CFDataGetBytePtr -import platform.CoreFoundation.CFDataGetLength -import platform.CoreFoundation.CFRelease -import platform.CoreGraphics.CGColorSpaceCreateDeviceRGB -import platform.CoreGraphics.CGDataProviderCopyData -import platform.CoreGraphics.CGImageAlphaInfo -import platform.CoreGraphics.CGImageCreateCopyWithColorSpace -import platform.CoreGraphics.CGImageGetAlphaInfo -import platform.CoreGraphics.CGImageGetBytesPerRow -import platform.CoreGraphics.CGImageGetDataProvider -import platform.CoreGraphics.CGImageGetHeight -import platform.CoreGraphics.CGImageGetWidth -import platform.UIKit.UIImage - -// TODO: Add support for remaining color spaces when the Skia library supports them. -@ExperimentalForeignApi -internal fun UIImage.toSkiaImage(): Image? { - val imageRef = CGImageCreateCopyWithColorSpace(this.CGImage, CGColorSpaceCreateDeviceRGB()) ?: return null - - val width = CGImageGetWidth(imageRef).toInt() - val height = CGImageGetHeight(imageRef).toInt() - - val bytesPerRow = CGImageGetBytesPerRow(imageRef) - val data = CGDataProviderCopyData(CGImageGetDataProvider(imageRef)) - val bytePointer = CFDataGetBytePtr(data) - val length = CFDataGetLength(data) - val alphaInfo = CGImageGetAlphaInfo(imageRef) - - val alphaType = when (alphaInfo) { - CGImageAlphaInfo.kCGImageAlphaPremultipliedFirst, CGImageAlphaInfo.kCGImageAlphaPremultipliedLast -> ColorAlphaType.PREMUL - CGImageAlphaInfo.kCGImageAlphaFirst, CGImageAlphaInfo.kCGImageAlphaLast -> ColorAlphaType.UNPREMUL - CGImageAlphaInfo.kCGImageAlphaNone, CGImageAlphaInfo.kCGImageAlphaNoneSkipFirst, CGImageAlphaInfo.kCGImageAlphaNoneSkipLast -> ColorAlphaType.OPAQUE - else -> ColorAlphaType.UNKNOWN - } - - val byteArray = ByteArray(length.toInt()) { index -> - bytePointer!![index].toByte() - } - CFRelease(data) - CFRelease(imageRef) - - return Image.makeRaster( - imageInfo = ImageInfo(width = width, height = height, colorType = ColorType.RGBA_8888, alphaType = alphaType), - bytes = byteArray, - rowBytes = bytesPerRow.toInt(), - ) -} From 1de9d5c795fac33603a369f9b094f9627c726f4f Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Tue, 16 Jan 2024 19:53:40 +0530 Subject: [PATCH 2/6] Delete unwanted file --- .../droidcon/ui/util/RemoteImage.jvm.kt | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt diff --git a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt b/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt deleted file mode 100644 index 9c9f089e4..000000000 --- a/shared-ui/src/androidMain/kotlin/co/touchlab/droidcon/ui/util/RemoteImage.jvm.kt +++ /dev/null @@ -1,30 +0,0 @@ -//package co.touchlab.droidcon.ui.util // ktlint-disable filename -// -//import android.annotation.SuppressLint -//import androidx.compose.foundation.Image -//import androidx.compose.runtime.Composable -//import androidx.compose.ui.Modifier -//import androidx.compose.ui.layout.ContentScale -//import coil.annotation.ExperimentalCoilApi -//import coil.compose.LocalImageLoader -//import coil.compose.rememberImagePainter -// -//@SuppressLint("ComposableNaming") -//@OptIn(ExperimentalCoilApi::class) -//@Composable -//internal actual fun __RemoteImage(imageUrl: String, modifier: Modifier, contentDescription: String?) { -// val painter = rememberImagePainter( -// data = imageUrl, -// imageLoader = LocalImageLoader.current, -// builder = { -// placeholder(0) -// } -// ) -// -// Image( -// painter = painter, -// contentDescription = contentDescription, -// contentScale = ContentScale.Crop, -// modifier = modifier -// ) -//} From b219c09a4bc1d8fba98e7444aa8204148ee418bc Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Tue, 16 Jan 2024 19:55:53 +0530 Subject: [PATCH 3/6] Use default icons --- .../kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt | 2 +- .../co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt index 6ac495dbb..5f1dac88d 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SessionDetailView.kt @@ -77,7 +77,7 @@ internal fun SessionDetailView(viewModel: SessionDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Filled.ArrowBack, + imageVector = Icons.Default.ArrowBack, contentDescription = "Back", ) } diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt index e48cd0100..98f19ae99 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/sponsors/SponsorDetailView.kt @@ -63,7 +63,7 @@ internal fun SponsorDetailView(viewModel: SponsorDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Filled.ArrowBack, + imageVector = Icons.Default.ArrowBack, contentDescription = "Back", ) } From ca1504ff2d96b2c9413d54e35bffdb83bb41b856 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Tue, 16 Jan 2024 19:56:36 +0530 Subject: [PATCH 4/6] Use default icon --- .../kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt index 183beb9c4..b0a798d0c 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/session/SpeakerDetailView.kt @@ -59,7 +59,7 @@ internal fun SpeakerDetailView(viewModel: SpeakerDetailViewModel) { navigationIcon = { IconButton(onClick = { NavigationController.root.handleBackPress() }) { Icon( - imageVector = Icons.Filled.ArrowBack, + imageVector = Icons.Default.ArrowBack, contentDescription = "Back", ) } From 9a95a58b4bf0196a0d87a13836b470ad6edb91b6 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Wed, 17 Jan 2024 19:48:33 +0530 Subject: [PATCH 5/6] lint formatting --- .../kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt | 3 --- .../kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt | 2 +- .../kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt | 2 +- .../commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt index 01b865dcd..465975f0c 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/BottomNavigationView.kt @@ -25,13 +25,10 @@ import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.viewmodel.ApplicationViewModel import coil3.annotation.ExperimentalCoilApi import coil3.compose.setSingletonImageLoaderFactory -import droidcon.generated.resources.Res -import org.jetbrains.compose.resources.vectorResource @OptIn(ExperimentalCoilApi::class) @Composable internal fun BottomNavigationView(viewModel: ApplicationViewModel, modifier: Modifier = Modifier) { - setSingletonImageLoaderFactory { context -> dcImageLoader(context, true) } diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt index ff5cc6a06..c55913183 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/settings/AboutView.kt @@ -15,8 +15,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import co.touchlab.droidcon.ui.theme.Dimensions -import co.touchlab.droidcon.ui.util.WebLinkText import co.touchlab.droidcon.ui.util.DcDrawableResource +import co.touchlab.droidcon.ui.util.WebLinkText import co.touchlab.droidcon.ui.util.observeAsState import co.touchlab.droidcon.viewmodel.settings.AboutItemViewModel import co.touchlab.droidcon.viewmodel.settings.AboutViewModel diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt index 6c3994419..a9504e6ff 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/DcDrawableResource.kt @@ -15,4 +15,4 @@ fun DcDrawableResource(name: String, type: DrawableType = DrawableType.PNG) = items = setOf( ResourceItem(setOf(), "composeResources/drawable/$name${type.extension}") ) - ) \ No newline at end of file + ) diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt index 460c433d0..117aa3cbc 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/util/Image.kt @@ -42,4 +42,4 @@ fun dcImageLoader( } } .build() -} \ No newline at end of file +} From 558153c61c460659e9348ffc46e24825448cc333 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Sun, 28 Jan 2024 09:53:16 +0530 Subject: [PATCH 6/6] Minor updates --- gradle/libs.versions.toml | 2 +- ios/build.gradle.kts | 20 ++++----- shared-ui/build.gradle.kts | 92 +++++++++++++++++--------------------- shared/build.gradle.kts | 69 +++++++++++++--------------- 4 files changed, 82 insertions(+), 101 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 02b060018..cfaa198e7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ compileSdk = "34" # Dependencies kotlin = "1.9.22" -android-gradle-plugin = "8.2.1" +android-gradle-plugin = "8.2.2" coroutines = "1.7.3" kotlinx-datetime = "0.5.0" ktor = "2.3.7" diff --git a/ios/build.gradle.kts b/ios/build.gradle.kts index 650d78a14..039f05b9c 100644 --- a/ios/build.gradle.kts +++ b/ios/build.gradle.kts @@ -24,18 +24,16 @@ kotlin { optIn("kotlinx.coroutines.ExperimentalCoroutinesApi") } } - iosMain { - dependencies { - implementation(compose.ui) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.runtime) + iosMain.dependencies { + implementation(compose.ui) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.runtime) - api(project(":shared")) - api(project(":shared-ui")) - api(libs.kermit) - api(libs.kermit.simple) - } + api(project(":shared")) + api(project(":shared-ui")) + api(libs.kermit) + api(libs.kermit.simple) } } diff --git a/shared-ui/build.gradle.kts b/shared-ui/build.gradle.kts index 514abedca..e553708d6 100644 --- a/shared-ui/build.gradle.kts +++ b/shared-ui/build.gradle.kts @@ -69,59 +69,51 @@ kotlin { version = "1.0" sourceSets { - commonMain { - dependencies { - implementation(project(":shared")) - - api(libs.kermit) - api(libs.kermit.crashlytics) - api(libs.kotlinx.coroutines.core) - api(libs.kotlinx.datetime) - api(libs.multiplatformSettings.core) - api(libs.uuid) - - implementation(libs.coil.compose) - implementation(libs.coil.network) - - implementation(libs.bundles.ktor.common) - implementation(libs.bundles.sqldelight.common) - - implementation(libs.stately.common) - implementation(libs.koin.core) - - implementation(compose.ui) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - // Moved from implementation to api due to below issue - // https://issuetracker.google.com/issues/294869453 - // https://github.com/JetBrains/compose-multiplatform/issues/3927 - api(compose.runtime) - - implementation(libs.hyperdrive.multiplatformx.api) - // implementation(libs.hyperdrive.multiplatformx.compose) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } + commonMain.dependencies { + implementation(project(":shared")) + + api(libs.kermit) + api(libs.kermit.crashlytics) + api(libs.kotlinx.coroutines.core) + api(libs.kotlinx.datetime) + api(libs.multiplatformSettings.core) + api(libs.uuid) + + implementation(libs.coil.compose) + implementation(libs.coil.network) + + implementation(libs.bundles.ktor.common) + implementation(libs.bundles.sqldelight.common) + + implementation(libs.stately.common) + implementation(libs.koin.core) + + implementation(compose.ui) + implementation(compose.foundation) + implementation(compose.material3) + implementation(compose.materialIconsExtended) + // Moved from implementation to api due to below issue + // https://issuetracker.google.com/issues/294869453 + // https://github.com/JetBrains/compose-multiplatform/issues/3927 + api(compose.runtime) + + implementation(libs.hyperdrive.multiplatformx.api) + // implementation(libs.hyperdrive.multiplatformx.compose) + @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) + implementation(compose.components.resources) } - commonTest { - dependencies { - implementation(libs.multiplatformSettings.test) - implementation(libs.kotlin.test.common) - implementation(libs.koin.test) - } + commonTest.dependencies { + implementation(libs.multiplatformSettings.test) + implementation(libs.kotlin.test.common) + implementation(libs.koin.test) } - val androidUnitTest by getting { - dependencies { - implementation(libs.test.junit) - implementation(libs.test.junitKtx) - implementation(libs.test.coroutines) - } + getByName("androidUnitTest").dependencies { + implementation(libs.test.junit) + implementation(libs.test.junitKtx) + implementation(libs.test.coroutines) } - iosMain { - dependencies { - implementation(libs.imageLoader) - } + iosMain.dependencies { + implementation(libs.imageLoader) } } diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 60e5cf525..d7be2ec3c 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -50,6 +50,7 @@ android { } kotlin { + @Suppress("OPT_IN_USAGE") compilerOptions { // common compiler options applied to all Kotlin source sets freeCompilerArgs.add("-Xexpect-actual-classes") @@ -65,51 +66,41 @@ kotlin { version = "1.0" sourceSets { - commonMain { - dependencies { - api(libs.kermit) - api(libs.kermit.crashlytics) - api(libs.kotlinx.coroutines.core) - api(libs.kotlinx.datetime) - api(libs.multiplatformSettings.core) - api(libs.uuid) + commonMain.dependencies { + api(libs.kermit) + api(libs.kermit.crashlytics) + api(libs.kotlinx.coroutines.core) + api(libs.kotlinx.datetime) + api(libs.multiplatformSettings.core) + api(libs.uuid) - implementation(libs.bundles.ktor.common) - implementation(libs.bundles.sqldelight.common) + implementation(libs.bundles.ktor.common) + implementation(libs.bundles.sqldelight.common) - implementation(libs.stately.common) - implementation(libs.koin.core) - implementation(libs.korio) - } + implementation(libs.stately.common) + implementation(libs.koin.core) + implementation(libs.korio) } - commonTest { - dependencies { - implementation(libs.multiplatformSettings.test) - implementation(libs.kotlin.test.common) - implementation(libs.koin.test) - } + commonTest.dependencies { + implementation(libs.multiplatformSettings.test) + implementation(libs.kotlin.test.common) + implementation(libs.koin.test) } - androidMain { - dependencies { - implementation(libs.sqldelight.driver.android) - implementation(libs.kotlinx.coroutines.android) - implementation(libs.ktor.client.okhttp) - implementation(libs.androidx.core) - } + androidMain.dependencies { + implementation(libs.sqldelight.driver.android) + implementation(libs.kotlinx.coroutines.android) + implementation(libs.ktor.client.okhttp) + implementation(libs.androidx.core) } - val androidUnitTest by getting { - dependencies { - implementation(libs.test.junit) - implementation(libs.test.junitKtx) - implementation(libs.test.coroutines) - } + getByName("androidUnitTest").dependencies { + implementation(libs.test.junit) + implementation(libs.test.junitKtx) + implementation(libs.test.coroutines) } - iosMain { - dependencies { - implementation(libs.sqldelight.driver.ios) - implementation(libs.sqliter) - implementation(libs.ktor.client.ios) - } + iosMain.dependencies { + implementation(libs.sqldelight.driver.ios) + implementation(libs.sqliter) + implementation(libs.ktor.client.ios) } }