From dbd9688ca112ea9157760f5f734f3c42d397ee8d Mon Sep 17 00:00:00 2001 From: Diego Beraldin Date: Sun, 17 Dec 2023 23:36:07 +0100 Subject: [PATCH] refactor: move ImagePreloadManager to core-utils (#321) --- .../core/commonui/lemmyui/di/Utils.kt | 9 +++++++++ .../core/commonui/lemmyui/di/Utils.kt | 5 +++++ .../core/commonui/lemmyui/di/Utils.kt | 12 ++++++++++++ .../raccoonforlemmy/core/commonui/di/Utils.kt | 17 ----------------- .../communitydetail/CommunityDetailScreen.kt | 2 +- .../communitydetail/CommunityDetailViewModel.kt | 2 +- .../core/commonui/di/CommonUiModule.kt | 1 + .../raccoonforlemmy/core/commonui/di/Utils.kt | 6 ------ .../core/commonui/image/ImagePreloadManager.kt | 6 ------ .../commonui/postdetail/PostDetailScreen.kt | 2 +- .../commonui/saveditems/SavedItemsScreen.kt | 2 +- .../commonui/userdetail/UserDetailScreen.kt | 2 +- .../commonui/userdetail/UserDetailViewModel.kt | 2 +- .../core/commonui/DefaultImagePreloadManager.kt | 10 ---------- .../raccoonforlemmy/core/commonui/di/Utils.kt | 12 ------------ core-utils/build.gradle.kts | 1 + .../raccoonforlemmy/core/utils/di/Utils.kt | 13 +++++++++++++ .../imagepreload}/DefaultImagePreloadManager.kt | 3 +-- .../raccoonforlemmy/core/utils/di/Utils.kt | 5 +++++ .../utils/imagepreload/ImagePreloadManager.kt | 6 ++++++ .../raccoonforlemmy/core/utils/di/Utils.kt | 11 +++++++++++ .../imagepreload/DefaultImagePreloadManager.kt | 8 ++++++++ .../feature/home/postlist/PostListScreen.kt | 2 +- .../feature/home/postlist/PostListViewModel.kt | 2 +- .../ManageSubscriptionsScreen.kt | 2 +- .../detail/MultiCommunityScreen.kt | 2 +- .../detail/MultiCommunityViewModel.kt | 2 +- 27 files changed, 83 insertions(+), 64 deletions(-) create mode 100644 core-commonui/lemmyui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt create mode 100644 core-commonui/lemmyui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt create mode 100644 core-commonui/lemmyui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt delete mode 100644 core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/image/ImagePreloadManager.kt delete mode 100644 core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt create mode 100644 core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt rename {core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui => core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload}/DefaultImagePreloadManager.kt (70%) create mode 100644 core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt create mode 100644 core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/ImagePreloadManager.kt create mode 100644 core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt create mode 100644 core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt diff --git a/core-commonui/lemmyui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt b/core-commonui/lemmyui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt new file mode 100644 index 000000000..32614054b --- /dev/null +++ b/core-commonui/lemmyui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt @@ -0,0 +1,9 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di + +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection +import org.koin.java.KoinJavaComponent + +actual fun getFabNestedScrollConnection(): FabNestedScrollConnection { + val res: FabNestedScrollConnection by KoinJavaComponent.inject(FabNestedScrollConnection::class.java) + return res +} \ No newline at end of file diff --git a/core-commonui/lemmyui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt b/core-commonui/lemmyui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt new file mode 100644 index 000000000..20cfbaa4c --- /dev/null +++ b/core-commonui/lemmyui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt @@ -0,0 +1,5 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di + +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection + +expect fun getFabNestedScrollConnection(): FabNestedScrollConnection diff --git a/core-commonui/lemmyui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt b/core-commonui/lemmyui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt new file mode 100644 index 000000000..c4697a079 --- /dev/null +++ b/core-commonui/lemmyui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/lemmyui/di/Utils.kt @@ -0,0 +1,12 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di + +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection +import org.koin.core.component.KoinComponent +import org.koin.core.component.inject + +actual fun getFabNestedScrollConnection(): FabNestedScrollConnection = + LemmyUiDiHelper.fabNestedScrollConnection + +object LemmyUiDiHelper : KoinComponent { + val fabNestedScrollConnection: FabNestedScrollConnection by inject() +} \ No newline at end of file diff --git a/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt b/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt index 65c1d29ed..14043ae10 100644 --- a/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt +++ b/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt @@ -4,7 +4,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.TextToolbar import com.github.diegoberaldin.raccoonforlemmy.core.commonui.CustomTextToolbar -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.DefaultImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.commonui.ban.BanUserMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.chat.InboxChatMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.communityInfo.CommunityInfoMviModel @@ -13,10 +12,8 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.Crea import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.drawer.ModalDrawerMviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.instanceinfo.InstanceInfoMviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.remove.RemoveMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.reportlist.ReportListMviModel @@ -27,22 +24,8 @@ import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.CommunityModel import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.PostModel import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.UserModel import org.koin.core.parameter.parametersOf -import org.koin.dsl.module import org.koin.java.KoinJavaComponent.inject -actual val imagePreloadModule = module { - single { - DefaultImagePreloadManager( - context = get(), - ) - } -} - -actual fun getFabNestedScrollConnection(): FabNestedScrollConnection { - val res: FabNestedScrollConnection by inject(FabNestedScrollConnection::class.java) - return res -} - actual fun getPostDetailViewModel( post: PostModel, otherInstance: String, diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt index c9f7825a4..48e77284a 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt @@ -85,7 +85,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.Crea import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getCommunityDetailViewModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.instanceinfo.InstanceInfoScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CommunityHeader @@ -93,6 +92,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.RawContentDialog import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailScreen diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailViewModel.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailViewModel.kt index 18061ea4d..38ee9a903 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailViewModel.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailViewModel.kt @@ -3,10 +3,10 @@ package com.github.diegoberaldin.raccoonforlemmy.core.commonui.communitydetail import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ThemeRepository import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviModel import com.github.diegoberaldin.raccoonforlemmy.core.architecture.MviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenter import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent import com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository.SettingsRepository +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.utils.share.ShareHelper import com.github.diegoberaldin.raccoonforlemmy.core.utils.vibrate.HapticFeedback import com.github.diegoberaldin.raccoonforlemmy.core.utils.zombiemode.ZombieModeHelper diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/CommonUiModule.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/CommonUiModule.kt index f156fed63..5ff4009e6 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/CommonUiModule.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/CommonUiModule.kt @@ -35,6 +35,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.selectcommunity.Se import com.github.diegoberaldin.raccoonforlemmy.core.commonui.userdetail.UserDetailMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.userdetail.UserDetailViewModel import com.github.diegoberaldin.raccoonforlemmy.core.navigation.di.navigationModule +import com.github.diegoberaldin.raccoonforlemmy.core.utils.di.imagePreloadModule import com.github.diegoberaldin.raccoonforlemmy.core.utils.di.utilsModule import org.koin.dsl.module diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt index 468dbd39e..49dbed016 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt @@ -12,7 +12,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.Creat import com.github.diegoberaldin.raccoonforlemmy.core.commonui.drawer.ModalDrawerMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.instanceinfo.InstanceInfoMviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.remove.RemoveMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.reportlist.ReportListMviModel @@ -22,11 +21,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.userdetail.UserDet import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.CommunityModel import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.PostModel import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.UserModel -import org.koin.core.module.Module - -expect val imagePreloadModule: Module - -expect fun getFabNestedScrollConnection(): FabNestedScrollConnection expect fun getPostDetailViewModel( post: PostModel, diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/image/ImagePreloadManager.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/image/ImagePreloadManager.kt deleted file mode 100644 index b4b2d5340..000000000 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/image/ImagePreloadManager.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.diegoberaldin.raccoonforlemmy.core.commonui.image - -interface ImagePreloadManager { - fun preload(url: String) -} - diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt index f73ecd77b..c6cb1b56d 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt @@ -83,7 +83,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.Swipeab import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.CreateCommentScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getPostDetailViewModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CollapsedCommentCard @@ -92,6 +91,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CommentCar import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.RawContentDialog import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.remove.RemoveScreen diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt index 003a479ad..6e925df12 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt @@ -56,13 +56,13 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.Floatin import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.SectionSelector import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.CreateCommentScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getSavedItemsViewModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CommentCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.RawContentDialog import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailScreen diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt index 69945070b..fc74f28eb 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt @@ -79,7 +79,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.Swipeab import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.CreateCommentScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getUserDetailViewModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CommentCard @@ -89,6 +88,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.UserHeader +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.RawContentDialog import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailScreen diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailViewModel.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailViewModel.kt index 2cc266d8f..93c638080 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailViewModel.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailViewModel.kt @@ -3,10 +3,10 @@ package com.github.diegoberaldin.raccoonforlemmy.core.commonui.userdetail import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ThemeRepository import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviModel import com.github.diegoberaldin.raccoonforlemmy.core.architecture.MviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenter import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent import com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository.SettingsRepository +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.utils.share.ShareHelper import com.github.diegoberaldin.raccoonforlemmy.core.utils.vibrate.HapticFeedback import com.github.diegoberaldin.raccoonforlemmy.domain.identity.repository.ApiConfigurationRepository diff --git a/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt b/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt deleted file mode 100644 index 1c44570b1..000000000 --- a/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.github.diegoberaldin.raccoonforlemmy.core.commonui - -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager - -class DefaultImagePreloadManager() : ImagePreloadManager { - - override fun preload(url: String) { - // no-op - } -} \ No newline at end of file diff --git a/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt b/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt index 609bdc033..58441dacc 100644 --- a/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt +++ b/core-commonui/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/di/Utils.kt @@ -3,7 +3,6 @@ package com.github.diegoberaldin.raccoonforlemmy.core.commonui.di import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalTextToolbar import androidx.compose.ui.platform.TextToolbar -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.DefaultImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.commonui.ban.BanUserMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.chat.InboxChatMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.communityInfo.CommunityInfoMviModel @@ -12,7 +11,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.Crea import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.drawer.ModalDrawerMviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.instanceinfo.InstanceInfoMviModel import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.FabNestedScrollConnection @@ -28,16 +26,6 @@ import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.UserModel import org.koin.core.component.KoinComponent import org.koin.core.component.inject import org.koin.core.parameter.parametersOf -import org.koin.dsl.module - -actual val imagePreloadModule = module { - single { - DefaultImagePreloadManager() - } -} ΓΈ - - actual fun getFabNestedScrollConnection(): FabNestedScrollConnection = - CommonUiViewModelHelper.fabNestedScrollConnection actual fun getPostDetailViewModel( post: PostModel, diff --git a/core-utils/build.gradle.kts b/core-utils/build.gradle.kts index 48dd6ff43..6d74a7362 100644 --- a/core-utils/build.gradle.kts +++ b/core-utils/build.gradle.kts @@ -54,6 +54,7 @@ kotlin { implementation(libs.androidx.activity.compose) implementation(libs.androidx.activity) implementation(libs.ktor.android) + implementation(libs.coil) implementation(libs.firebase.crashlytics) } } diff --git a/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt new file mode 100644 index 000000000..165e86e7a --- /dev/null +++ b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt @@ -0,0 +1,13 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.utils.di + +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.DefaultImagePreloadManager +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager +import org.koin.dsl.module + +actual val imagePreloadModule = module { + single { + DefaultImagePreloadManager( + context = get(), + ) + } +} \ No newline at end of file diff --git a/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt similarity index 70% rename from core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt rename to core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt index 97ce4c3fd..2d2c1f23b 100644 --- a/core-commonui/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/DefaultImagePreloadManager.kt +++ b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt @@ -1,9 +1,8 @@ -package com.github.diegoberaldin.raccoonforlemmy.core.commonui +package com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload import android.content.Context import coil.imageLoader import coil.request.ImageRequest -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager class DefaultImagePreloadManager( private val context: Context, diff --git a/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt b/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt new file mode 100644 index 000000000..8c84dfb48 --- /dev/null +++ b/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt @@ -0,0 +1,5 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.utils.di + +import org.koin.core.module.Module + +expect val imagePreloadModule: Module \ No newline at end of file diff --git a/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/ImagePreloadManager.kt b/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/ImagePreloadManager.kt new file mode 100644 index 000000000..1c3a48cb1 --- /dev/null +++ b/core-utils/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/ImagePreloadManager.kt @@ -0,0 +1,6 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload + +interface ImagePreloadManager { + fun preload(url: String) +} + diff --git a/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt b/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt new file mode 100644 index 000000000..e41cdc9eb --- /dev/null +++ b/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/di/Utils.kt @@ -0,0 +1,11 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.utils.di + +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.DefaultImagePreloadManager +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager +import org.koin.dsl.module + +actual val imagePreloadModule = module { + single { + DefaultImagePreloadManager() + } +} \ No newline at end of file diff --git a/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt b/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt new file mode 100644 index 000000000..f0de42ffb --- /dev/null +++ b/core-utils/src/iosMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/imagepreload/DefaultImagePreloadManager.kt @@ -0,0 +1,8 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload + +class DefaultImagePreloadManager() : ImagePreloadManager { + + override fun preload(url: String) { + // no-op + } +} \ No newline at end of file diff --git a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt index a5ed758bb..ecc091bbe 100644 --- a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt +++ b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt @@ -64,12 +64,12 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.Swipeab import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createcomment.CreateCommentScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createpost.CreatePostScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.ListingTypeBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.RawContentDialog import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet diff --git a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListViewModel.kt b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListViewModel.kt index e9ab85749..f0bfca513 100644 --- a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListViewModel.kt +++ b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListViewModel.kt @@ -3,11 +3,11 @@ package com.github.diegoberaldin.raccoonforlemmy.feature.home.postlist import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ThemeRepository import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviModel import com.github.diegoberaldin.raccoonforlemmy.core.architecture.MviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.notifications.ContentResetCoordinator import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenter import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent import com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository.SettingsRepository +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.utils.share.ShareHelper import com.github.diegoberaldin.raccoonforlemmy.core.utils.vibrate.HapticFeedback import com.github.diegoberaldin.raccoonforlemmy.core.utils.zombiemode.ZombieModeHelper diff --git a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/managesubscriptions/ManageSubscriptionsScreen.kt b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/managesubscriptions/ManageSubscriptionsScreen.kt index 51ecb7716..18025b79d 100644 --- a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/managesubscriptions/ManageSubscriptionsScreen.kt +++ b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/managesubscriptions/ManageSubscriptionsScreen.kt @@ -48,11 +48,11 @@ import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycl import com.github.diegoberaldin.raccoonforlemmy.core.commonui.communitydetail.CommunityDetailScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.FloatingActionButtonMenu import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.FloatingActionButtonMenuItem -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.CommunityItem import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.MultiCommunityItem import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.selectcommunity.CommunityItemPlaceholder import com.github.diegoberaldin.raccoonforlemmy.core.navigation.di.getNavigationCoordinator import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick diff --git a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityScreen.kt b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityScreen.kt index e3c10b7c5..49eedaeb8 100644 --- a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityScreen.kt +++ b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityScreen.kt @@ -62,12 +62,12 @@ import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.Floatin import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.FloatingActionButtonMenuItem import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.SwipeableCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.createreport.CreateReportScreen -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ZoomableImageScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.Option import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.OptionId import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCard import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder +import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection import com.github.diegoberaldin.raccoonforlemmy.core.commonui.modals.SortBottomSheet import com.github.diegoberaldin.raccoonforlemmy.core.commonui.postdetail.PostDetailScreen import com.github.diegoberaldin.raccoonforlemmy.core.commonui.userdetail.UserDetailScreen diff --git a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityViewModel.kt b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityViewModel.kt index 307eb5cfb..89e13367a 100644 --- a/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityViewModel.kt +++ b/feature-search/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/search/multicommunity/detail/MultiCommunityViewModel.kt @@ -3,11 +3,11 @@ package com.github.diegoberaldin.raccoonforlemmy.feature.search.multicommunity.d import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ThemeRepository import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviModel import com.github.diegoberaldin.raccoonforlemmy.core.architecture.MviModel -import com.github.diegoberaldin.raccoonforlemmy.core.commonui.image.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenter import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.MultiCommunityModel import com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository.SettingsRepository +import com.github.diegoberaldin.raccoonforlemmy.core.utils.imagepreload.ImagePreloadManager import com.github.diegoberaldin.raccoonforlemmy.core.utils.share.ShareHelper import com.github.diegoberaldin.raccoonforlemmy.core.utils.vibrate.HapticFeedback import com.github.diegoberaldin.raccoonforlemmy.domain.identity.repository.ApiConfigurationRepository