From b56c95dcf1f2a933628c13b92b44b349ede9528a Mon Sep 17 00:00:00 2001 From: Konstantin Tskhovrebov Date: Mon, 3 Feb 2025 20:47:49 +0100 Subject: [PATCH] Dagger-Hilt -> Kotlin-Inject --- app/build.gradle.kts | 8 +- .../com/daniebeler/pfpixelix/LoginActivity.kt | 30 ++- .../com/daniebeler/pfpixelix/MainActivity.kt | 20 +- .../com/daniebeler/pfpixelix/MyApplication.kt | 49 ++++- .../data/repository/AccountRepositoryImpl.kt | 2 +- .../data/repository/AuthRepositoryImpl.kt | 2 +- .../repository/CollectionRepositoryImpl.kt | 2 +- .../data/repository/CountryRepositoryImpl.kt | 2 +- .../DirectMessagesRepositoryImpl.kt | 2 +- .../data/repository/HashtagRepositoryImpl.kt | 2 +- .../repository/PostEditorRepositoryImpl.kt | 2 +- .../data/repository/PostRepositoryImpl.kt | 2 +- .../repository/SavedSearchesRepositoryImpl.kt | 4 +- .../data/repository/StorageRepositoryImpl.kt | 2 +- .../data/repository/TimelineRepositoryImpl.kt | 2 +- .../pfpixelix/di/AccountUseCaseModule.kt | 137 -------------- .../daniebeler/pfpixelix/di/AppComponent.kt | 176 ++++++++++++++++++ .../pfpixelix/di/AuthUseCaseModule.kt | 94 ---------- .../pfpixelix/di/CollectionUseCaseModule.kt | 50 ----- .../di/DirectMessagesUseCaseModule.kt | 38 ---- .../di/DomainSoftwareUseCaseModule.kt | 27 --- .../pfpixelix/di/EntryPointComponent.kt | 26 +++ .../daniebeler/pfpixelix/di/HashtagModule.kt | 43 ----- .../di/IconSelectionUseCaseModule.kt | 23 --- .../com/daniebeler/pfpixelix/di/Module.kt | 100 ---------- .../pfpixelix/di/NotificationUseCaseModule.kt | 20 -- .../pfpixelix/di/PostUseCaseModule.kt | 126 ------------- .../pfpixelix/di/RepositoryModule.kt | 132 ------------- .../daniebeler/pfpixelix/di/SearchModule.kt | 26 --- .../pfpixelix/di/SettingsUseCaseModule.kt | 84 --------- .../pfpixelix/di/TimelineUseCaseModule.kt | 44 ----- .../pfpixelix/di/TrendingUseCaseModule.kt | 37 ---- .../pfpixelix/di/ViewModelComponent.kt | 98 ++++++++++ .../pfpixelix/di/WorkerComponent.kt | 18 ++ .../daniebeler/pfpixelix/domain/model/Post.kt | 2 +- .../domain/usecase/AddNewLoginUseCase.kt | 2 + .../usecase/AddPostOfCollectionUseCase.kt | 2 + .../domain/usecase/BlockAccountUseCase.kt | 2 + .../domain/usecase/BookmarkPostUseCase.kt | 2 + .../domain/usecase/CreatePostUseCase.kt | 2 + .../domain/usecase/CreateReplyUseCase.kt | 2 + .../domain/usecase/DeleteMessageUseCase.kt | 2 + .../domain/usecase/DeletePostUseCase.kt | 2 + .../DisableAllCustomAppIconsUseCase.kt | 2 + .../usecase/EnableCustomAppIconUseCase.kt | 2 + .../domain/usecase/FinishLoginUseCase.kt | 2 + .../domain/usecase/FollowAccountUseCase.kt | 2 + .../domain/usecase/FollowHashtagUseCase.kt | 2 + .../usecase/GetAccountByUsernameUseCase.kt | 2 + .../domain/usecase/GetAccountUseCase.kt | 2 + .../usecase/GetAccountsFollowersUseCase.kt | 2 + .../usecase/GetAccountsFollowingUseCase.kt | 2 + .../usecase/GetAccountsWhoLikedPostUseCase.kt | 2 + .../domain/usecase/GetActiveAppIconUseCase.kt | 2 + .../domain/usecase/GetAuthDataUseCase.kt | 2 + .../usecase/GetBlockedAccountsUseCase.kt | 2 + .../usecase/GetBookmarkedPostsUseCase.kt | 2 + .../domain/usecase/GetChatUseCase.kt | 2 + .../domain/usecase/GetCollectionUseCase.kt | 2 + .../domain/usecase/GetCollectionsUseCase.kt | 2 + .../domain/usecase/GetConversationsUseCase.kt | 2 + .../usecase/GetCurrentLoginDataUseCase.kt | 2 + .../usecase/GetFollowedHashtagsUseCase.kt | 2 + .../usecase/GetGlobalTimelineUseCase.kt | 2 + .../usecase/GetHashtagTimelineUseCase.kt | 2 + .../domain/usecase/GetHashtagUseCase.kt | 2 + .../usecase/GetHideAltTextButtonUseCase.kt | 2 + .../domain/usecase/GetHomeTimelineUseCase.kt | 2 + .../domain/usecase/GetInstanceUseCase.kt | 2 + .../domain/usecase/GetLikedPostsUseCase.kt | 2 + .../domain/usecase/GetLocalTimelineUseCase.kt | 2 + .../domain/usecase/GetMutedAccountsUseCase.kt | 2 + .../usecase/GetMutualFollowersUseCase.kt | 2 + .../domain/usecase/GetNotificationsUseCase.kt | 2 + .../domain/usecase/GetOngoingLoginUseCase.kt | 2 + .../domain/usecase/GetOwnAccountUseCase.kt | 2 + .../usecase/GetOwnInstanceDomainUseCase.kt | 2 + .../domain/usecase/GetOwnPostsUseCase.kt | 2 + .../domain/usecase/GetPostUseCase.kt | 2 + .../usecase/GetPostsOfAccountUseCase.kt | 2 + .../usecase/GetPostsOfCollectionUseCase.kt | 2 + .../usecase/GetRelatedHashtagsUseCase.kt | 2 + .../domain/usecase/GetRelationshipsUseCase.kt | 2 + .../domain/usecase/GetRepliesUseCase.kt | 2 + .../domain/usecase/GetSettingsUseCase.kt | 2 + .../usecase/GetTrendingAccountsUseCase.kt | 2 + .../usecase/GetTrendingHashtagsUseCase.kt | 2 + .../domain/usecase/GetTrendingPostsUseCase.kt | 2 + .../usecase/GetUseInAppBrowserUseCase.kt | 2 + .../domain/usecase/GetViewUseCase.kt | 2 + .../domain/usecase/GetVolumeUseCase.kt | 2 + .../domain/usecase/LikePostUseCase.kt | 2 + .../pfpixelix/domain/usecase/LogoutUseCase.kt | 2 + .../domain/usecase/MuteAccountUseCase.kt | 2 + .../domain/usecase/ObtainTokenUseCase.kt | 2 + .../domain/usecase/OpenExternalUrlUseCase.kt | 2 + .../domain/usecase/ReblogPostUseCase.kt | 2 + .../domain/usecase/RemoveLoginDataUseCase.kt | 2 + .../usecase/RemovePostOfCollectionUseCase.kt | 2 + .../domain/usecase/SearchLocationUseCase.kt | 2 + .../pfpixelix/domain/usecase/SearchUseCase.kt | 2 + .../domain/usecase/SendMessageUseCase.kt | 2 + .../domain/usecase/SetViewUseCase.kt | 2 + .../domain/usecase/SetVolumeUseCase.kt | 2 + .../domain/usecase/StoreThemeUseCase.kt | 2 + .../domain/usecase/UnblockAccountUseCase.kt | 2 + .../domain/usecase/UnbookmarkPostUseCase.kt | 2 + .../domain/usecase/UnfollowAccountUseCase.kt | 2 + .../domain/usecase/UnfollowHashtagUseCase.kt | 2 + .../domain/usecase/UnlikePostUseCase.kt | 2 + .../domain/usecase/UnmuteAccountUseCase.kt | 2 + .../domain/usecase/UnreblogPostUseCase.kt | 2 + .../domain/usecase/UpdateAccountUseCase.kt | 2 + .../domain/usecase/UpdateCollectionUseCase.kt | 2 + .../usecase/UpdateCurrentUserUseCase.kt | 2 + .../domain/usecase/UpdateLoginDataUseCase.kt | 2 + .../domain/usecase/UpdateMediaUseCase.kt | 2 + .../domain/usecase/UpdatePostUseCase.kt | 2 + .../domain/usecase/UploadMediaUseCase.kt | 2 + .../domain/usecase/VerifyTokenUseCase.kt | 2 + .../usecase/nodeinfo/GetFediServerUseCase.kt | 2 + .../nodeinfo/GetFediSoftwareUseCase.kt | 2 + .../ui/composables/LoginComposable.kt | 4 +- .../ui/composables/LoginViewModel.kt | 4 +- .../collection/CollectionComposable.kt | 4 +- .../collection/CollectionViewModel.kt | 4 +- .../custom_account/CustomAccount.kt | 8 +- .../custom_account/CustomAccountViewModel.kt | 4 +- .../direct_messages/chat/ChatComposable.kt | 4 +- .../direct_messages/chat/ChatViewModel.kt | 4 +- .../conversations/ConversationsComposable.kt | 4 +- .../conversations/ConversationsViewModel.kt | 4 +- .../edit_post/EditPostComposable.kt | 4 +- .../edit_post/EditPostViewModel.kt | 4 +- .../edit_profile/EditProfileComposable.kt | 4 +- .../edit_profile/EditProfileViewModel.kt | 4 +- .../composables/explore/ExploreComposable.kt | 4 +- .../composables/explore/ExploreViewModel.kt | 4 +- .../TrendingAccountElement.kt | 4 +- .../TrendingAccountElementViewModel.kt | 4 +- .../TrendingAccountsComposable.kt | 4 +- .../TrendingAccountsViewModel.kt | 4 +- .../TrendingHashtagElement.kt | 4 +- .../TrendingHashtagElementViewModel.kt | 4 +- .../TrendingHashtagsComposable.kt | 4 +- .../TrendingHashtagsViewModel.kt | 4 +- .../trending_posts/TrendingPostsComposable.kt | 4 +- .../trending_posts/TrendingPostsViewModel.kt | 4 +- .../followers/FollowersComposable.kt | 4 +- .../followers/FollowersMainComposable.kt | 4 +- .../followers/FollowersViewModel.kt | 4 +- .../followers/FollowingComposable.kt | 4 +- ...hClickableHashtagsAndMentionsComposable.kt | 4 +- ...thClickableHashtagsAndMentionsViewModel.kt | 4 +- .../composables/mention/MentionComposable.kt | 4 +- .../composables/mention/MentionViewModel.kt | 4 +- .../composables/newpost/NewPostComposable.kt | 4 +- .../composables/newpost/NewPostViewModel.kt | 4 +- .../notifications/CustomNotification.kt | 4 +- .../CustomNotificationViewModel.kt | 4 +- .../notifications/NotificationsComposable.kt | 4 +- .../notifications/NotificationsViewModel.kt | 4 +- .../composables/post/CommentsBottomSheet.kt | 4 +- .../ui/composables/post/PostComposable.kt | 4 +- .../ui/composables/post/PostViewModel.kt | 7 +- .../post/reply/ReplyElementViewModel.kt | 4 +- .../other_profile/OtherProfileComposable.kt | 4 +- .../other_profile/OtherProfileViewModel.kt | 4 +- .../own_profile/AccountSwitchBottomSheet.kt | 4 +- .../own_profile/AccountSwitchViewModel.kt | 4 +- .../own_profile/OwnProfileComposable.kt | 4 +- .../own_profile/OwnProfileViewModel.kt | 4 +- .../server_stats/ServerStatsComposable.kt | 4 +- .../server_stats/ServerStatsViewModel.kt | 4 +- .../about_instance/AboutInstanceComposable.kt | 4 +- .../about_instance/AboutInstanceViewModel.kt | 4 +- .../about_pixelix/AboutPixelixComposable.kt | 4 +- .../about_pixelix/AboutPixelixViewModel.kt | 4 +- .../BlockedAccountsComposable.kt | 4 +- .../BlockedAccountsViewModel.kt | 4 +- .../BookmarkedPostsComposable.kt | 4 +- .../BookmarkedPostsViewModel.kt | 4 +- .../FollowedHashtagsComposable.kt | 4 +- .../FollowedHashtagsViewModel.kt | 4 +- .../icon_selection/IconSelectionComposable.kt | 4 +- .../icon_selection/IconSelectionViewModel.kt | 4 +- .../liked_posts/LikedPostsComposable.kt | 4 +- .../liked_posts/LikedPostsViewModel.kt | 4 +- .../muted_accounts/MutedAccountsComposable.kt | 4 +- .../muted_accounts/MutedAccountsViewModel.kt | 4 +- .../preferences/PreferencesComposable.kt | 4 +- .../preferences/PreferencesViewModel.kt | 4 +- .../single_post/SinglePostComposable.kt | 4 +- .../single_post/SinglePostViewModel.kt | 4 +- .../TextFieldLocationsComposable.kt | 4 +- .../TextFieldLocationsViewModel.kt | 4 +- .../TextFieldMentionsComposable.kt | 4 +- .../TextFieldMentionsViewModel.kt | 4 +- .../GlobalTimelineComposable.kt | 4 +- .../GlobalTimelineViewModel.kt | 4 +- .../HashtagTimelineComposable.kt | 4 +- .../HashtagTimelineViewModel.kt | 4 +- .../home_timeline/HomeTimelineComposable.kt | 4 +- .../home_timeline/HomeTimelineViewModel.kt | 4 +- .../local_timeline/LocalTimelineComposable.kt | 4 +- .../local_timeline/LocalTimelineViewModel.kt | 4 +- .../pfpixelix/utils/AuthDataSerializer.kt | 4 +- .../utils/SavedSearchesSerializer.kt | 8 +- .../CustomLatestImageStateDefinition.kt | 2 +- .../utils/LatestImageStoreSerializer.kt | 4 +- .../work_manager/LatestImageTask.kt | 11 +- .../CustomNotificationsStateDefinition.kt | 2 +- .../utils/NotificationsStoreSerializer.kt | 4 +- .../work_manager/NotificationsTask.kt | 11 +- build.gradle.kts | 1 - gradle/libs.versions.toml | 10 +- 216 files changed, 716 insertions(+), 1290 deletions(-) delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/AccountUseCaseModule.kt create mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/AppComponent.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/AuthUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/CollectionUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/DirectMessagesUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/DomainSoftwareUseCaseModule.kt create mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/EntryPointComponent.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/HashtagModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/IconSelectionUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/Module.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/NotificationUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/PostUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/RepositoryModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/SearchModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/SettingsUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/TimelineUseCaseModule.kt delete mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/TrendingUseCaseModule.kt create mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/ViewModelComponent.kt create mode 100644 app/src/main/java/com/daniebeler/pfpixelix/di/WorkerComponent.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 00c1ff6a..e7f7193e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,6 @@ plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsKotlinAndroid) - alias(libs.plugins.hilt) id("org.jetbrains.kotlin.plugin.serialization") id("com.google.devtools.ksp") alias(libs.plugins.compose.compiler) @@ -138,14 +137,13 @@ dependencies { implementation(libs.androidx.glance.material3) // work Manager implementation(libs.androidx.work.runtime.ktx) - implementation(libs.androidx.hilt.work) - implementation(libs.hilt.naviation) - implementation(libs.dagger.hilt) implementation(libs.ksoup) - ksp(libs.dagger.hilt.compiler) implementation(libs.kermit) implementation(libs.kotlinx.datetime) + + ksp(libs.kotlin.inject.compiler.ksp) + implementation(libs.kotlin.inject.runtime) } diff --git a/app/src/main/java/com/daniebeler/pfpixelix/LoginActivity.kt b/app/src/main/java/com/daniebeler/pfpixelix/LoginActivity.kt index 78595fb7..4b3cac8f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/LoginActivity.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/LoginActivity.kt @@ -15,7 +15,9 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.core.view.WindowCompat import com.daniebeler.pfpixelix.common.Resource +import com.daniebeler.pfpixelix.di.EntryPointComponent import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface +import com.daniebeler.pfpixelix.di.create import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.usecase.AddNewLoginUseCase import com.daniebeler.pfpixelix.domain.usecase.FinishLoginUseCase @@ -25,35 +27,17 @@ import com.daniebeler.pfpixelix.domain.usecase.UpdateLoginDataUseCase import com.daniebeler.pfpixelix.domain.usecase.VerifyTokenUseCase import com.daniebeler.pfpixelix.ui.composables.LoginComposable import com.daniebeler.pfpixelix.ui.theme.PixelixTheme -import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import javax.inject.Inject -@AndroidEntryPoint class LoginActivity : ComponentActivity() { - - @Inject lateinit var obtainTokenUseCase: ObtainTokenUseCase - - @Inject lateinit var verifyTokenUseCase: VerifyTokenUseCase - - @Inject lateinit var updateLoginDataUseCase: UpdateLoginDataUseCase - - @Inject lateinit var finishLoginUseCase: FinishLoginUseCase - - @Inject lateinit var newLoginDataUseCase: AddNewLoginUseCase - - - @Inject lateinit var getOngoingLoginUseCase: GetOngoingLoginUseCase - - @Inject lateinit var hostSelectionInterceptorInterface: HostSelectionInterceptorInterface @@ -61,6 +45,16 @@ class LoginActivity : ComponentActivity() { private var error: String by mutableStateOf("") override fun onCreate(savedInstanceState: Bundle?) { + EntryPointComponent::class.create(MyApplication.appComponent).let { + obtainTokenUseCase = it.obtainTokenUseCase + verifyTokenUseCase = it.verifyTokenUseCase + updateLoginDataUseCase = it.updateLoginDataUseCase + finishLoginUseCase = it.finishLoginUseCase + newLoginDataUseCase = it.newLoginDataUseCase + getOngoingLoginUseCase = it.getOngoingLoginUseCase + hostSelectionInterceptorInterface = it.hostSelectionInterceptorInterface + } + super.onCreate(savedInstanceState) enableEdgeToEdge() WindowCompat.setDecorFitsSystemWindows(window, false) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/MainActivity.kt b/app/src/main/java/com/daniebeler/pfpixelix/MainActivity.kt index 5bf2457b..7e21febd 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/MainActivity.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/MainActivity.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.net.Uri import android.os.Build import android.os.Bundle -import co.touchlab.kermit.Logger import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge @@ -63,9 +62,12 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument +import co.touchlab.kermit.Logger import coil.compose.AsyncImage import com.daniebeler.pfpixelix.common.Destinations +import com.daniebeler.pfpixelix.di.EntryPointComponent import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface +import com.daniebeler.pfpixelix.di.create import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.CountryRepository import com.daniebeler.pfpixelix.domain.usecase.GetCurrentLoginDataUseCase @@ -99,7 +101,6 @@ import com.daniebeler.pfpixelix.ui.composables.timelines.hashtag_timeline.Hashta import com.daniebeler.pfpixelix.ui.theme.PixelixTheme import com.daniebeler.pfpixelix.utils.Navigate import com.daniebeler.pfpixelix.utils.end -import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.cancelChildren import kotlinx.coroutines.delay import kotlinx.coroutines.flow.firstOrNull @@ -110,21 +111,12 @@ import kotlinx.serialization.json.Json import java.io.File import java.io.FileOutputStream import java.io.InputStream -import javax.inject.Inject -@AndroidEntryPoint class MainActivity : ComponentActivity() { - @Inject lateinit var currentLoginDataUseCase: GetCurrentLoginDataUseCase - - @Inject lateinit var hostSelectionInterceptorInterface: HostSelectionInterceptorInterface - - @Inject lateinit var repository: CountryRepository - - @Inject lateinit var verifyTokenUseCase: VerifyTokenUseCase companion object { @@ -139,6 +131,12 @@ class MainActivity : ComponentActivity() { @OptIn(ExperimentalMaterial3Api::class) override fun onCreate(savedInstanceState: Bundle?) { + EntryPointComponent::class.create(MyApplication.appComponent).let { + currentLoginDataUseCase = it.currentLoginDataUseCase + hostSelectionInterceptorInterface = it.hostSelectionInterceptorInterface + repository = it.repository + verifyTokenUseCase = it.verifyTokenUseCase + } super.onCreate(savedInstanceState) enableEdgeToEdge() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/MyApplication.kt b/app/src/main/java/com/daniebeler/pfpixelix/MyApplication.kt index 508c1fa0..a4d04530 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/MyApplication.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/MyApplication.kt @@ -1,24 +1,26 @@ package com.daniebeler.pfpixelix import android.app.Application -import android.os.Build -import androidx.hilt.work.HiltWorkerFactory +import android.content.Context import androidx.work.Configuration +import androidx.work.ListenableWorker +import androidx.work.WorkerFactory +import androidx.work.WorkerParameters import coil.ImageLoader import coil.ImageLoaderFactory import coil.disk.DiskCache import coil.memory.MemoryCache import coil.request.CachePolicy -import dagger.hilt.android.HiltAndroidApp -import javax.inject.Inject +import com.daniebeler.pfpixelix.di.AppComponent +import com.daniebeler.pfpixelix.di.WorkerComponent +import com.daniebeler.pfpixelix.di.create +import com.daniebeler.pfpixelix.widget.notifications.work_manager.LatestImageTask +import com.daniebeler.pfpixelix.widget.notifications.work_manager.NotificationsTask -@HiltAndroidApp class MyApplication : Application(), Configuration.Provider, ImageLoaderFactory { - @Inject - lateinit var workerFactory: HiltWorkerFactory - + private val workerFactory: WorkerFactory by lazy { MyWorkerFactory(appComponent) } override val workManagerConfiguration: Configuration get() = Configuration.Builder().setWorkerFactory(workerFactory).build() @@ -37,4 +39,35 @@ class MyApplication : Application(), Configuration.Provider, ImageLoaderFactory .build()) .build() } + + override fun onCreate() { + appComponent = AppComponent::class.create(this) + super.onCreate() + } + + companion object { + lateinit var appComponent: AppComponent + private set + } +} + +private class MyWorkerFactory( + private val appComponent: AppComponent +): WorkerFactory() { + override fun createWorker( + appContext: Context, + workerClassName: String, + workerParameters: WorkerParameters + ): ListenableWorker? { + val workerComponent = WorkerComponent::class.create( + appComponent, + appContext, + workerParameters + ) + return when(workerClassName) { + NotificationsTask::class.java.name -> workerComponent.notificationsTask + LatestImageTask::class.java.name -> workerComponent.latestImageTask + else -> null + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AccountRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AccountRepositoryImpl.kt index cd4c06dc..5b688146 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AccountRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AccountRepositoryImpl.kt @@ -14,7 +14,7 @@ import com.daniebeler.pfpixelix.utils.execute import io.ktor.client.request.forms.MultiPartFormDataContent import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class AccountRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AuthRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AuthRepositoryImpl.kt index d7fdfd34..47e8b256 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AuthRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/AuthRepositoryImpl.kt @@ -5,7 +5,7 @@ import com.daniebeler.pfpixelix.domain.model.AuthData import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository import kotlinx.coroutines.flow.first -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class AuthRepositoryImpl @Inject constructor(private val dataStore: DataStore) : AuthRepository { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CollectionRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CollectionRepositoryImpl.kt index 92caf46f..5c297f69 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CollectionRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CollectionRepositoryImpl.kt @@ -11,7 +11,7 @@ import com.daniebeler.pfpixelix.utils.NetworkCall import com.daniebeler.pfpixelix.utils.execute import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class CollectionRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CountryRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CountryRepositoryImpl.kt index 5dafeb87..68c7100f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CountryRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/CountryRepositoryImpl.kt @@ -39,7 +39,7 @@ import com.daniebeler.pfpixelix.utils.execute import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class CountryRepositoryImpl @Inject constructor( diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/DirectMessagesRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/DirectMessagesRepositoryImpl.kt index 05bc34b5..d0c9bf67 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/DirectMessagesRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/DirectMessagesRepositoryImpl.kt @@ -14,7 +14,7 @@ import com.daniebeler.pfpixelix.utils.NetworkCall import com.daniebeler.pfpixelix.utils.execute import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class DirectMessagesRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/HashtagRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/HashtagRepositoryImpl.kt index 4fb3bb1e..286f2d15 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/HashtagRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/HashtagRepositoryImpl.kt @@ -9,7 +9,7 @@ import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import com.daniebeler.pfpixelix.utils.NetworkCall import kotlinx.coroutines.flow.Flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class HashtagRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostEditorRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostEditorRepositoryImpl.kt index 8fdc2922..04b35199 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostEditorRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostEditorRepositoryImpl.kt @@ -28,7 +28,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.withContext import java.io.ByteArrayOutputStream -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class PostEditorRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostRepositoryImpl.kt index 6210e6ca..3072e09f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/PostRepositoryImpl.kt @@ -10,7 +10,7 @@ import com.daniebeler.pfpixelix.utils.NetworkCall import com.daniebeler.pfpixelix.utils.executeWithResponse import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class PostRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/SavedSearchesRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/SavedSearchesRepositoryImpl.kt index a1c731c7..9992996e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/SavedSearchesRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/SavedSearchesRepositoryImpl.kt @@ -8,10 +8,8 @@ import com.daniebeler.pfpixelix.domain.model.SavedSearchType import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository import kotlinx.coroutines.flow.Flow import java.lang.Exception -import javax.inject.Inject -import javax.inject.Singleton +import me.tatarka.inject.annotations.Inject -@Singleton class SavedSearchesRepositoryImpl @Inject constructor(private val dataStore: DataStore) : SavedSearchesRepository { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/StorageRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/StorageRepositoryImpl.kt index b9c5fb66..60965619 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/StorageRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/StorageRepositoryImpl.kt @@ -10,7 +10,7 @@ import com.daniebeler.pfpixelix.domain.repository.StorageRepository import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class StorageRepositoryImpl @Inject constructor( private val storage: DataStore diff --git a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/TimelineRepositoryImpl.kt b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/TimelineRepositoryImpl.kt index 4e62b71d..c0f1cf12 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/data/repository/TimelineRepositoryImpl.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/data/repository/TimelineRepositoryImpl.kt @@ -7,7 +7,7 @@ import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.TimelineRepository import com.daniebeler.pfpixelix.utils.NetworkCall import kotlinx.coroutines.flow.Flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject class TimelineRepositoryImpl @Inject constructor( private val pixelfedApi: PixelfedApi diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/AccountUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/AccountUseCaseModule.kt deleted file mode 100644 index 8b9201d4..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/AccountUseCaseModule.kt +++ /dev/null @@ -1,137 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import android.content.Context -import com.daniebeler.pfpixelix.domain.repository.AccountRepository -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.repository.PostRepository -import com.daniebeler.pfpixelix.domain.repository.StorageRepository -import com.daniebeler.pfpixelix.domain.usecase.BlockAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.FollowAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAccountByUsernameUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAccountsFollowersUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAccountsFollowingUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetCurrentLoginDataUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetMutualFollowersUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetOwnAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetOwnPostsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetPostsOfAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetRelationshipsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetSettingsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetViewUseCase -import com.daniebeler.pfpixelix.domain.usecase.MuteAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.SetViewUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnblockAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnfollowAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnmuteAccountUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdateAccountUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class AccountUseCaseModule { - - @Provides - @Singleton - fun provideGetAccountUseCase(accountRepository: AccountRepository): GetAccountUseCase = - GetAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetAccountByUsernameUseCase(accountRepository: AccountRepository): GetAccountByUsernameUseCase = - GetAccountByUsernameUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetOwnAccountUseCase( - currentLoginDataUseCase: GetCurrentLoginDataUseCase, accountRepository: AccountRepository - ): GetOwnAccountUseCase = GetOwnAccountUseCase(currentLoginDataUseCase, accountRepository) - - - @Provides - @Singleton - fun provideGetOwnPostsUseCase( - postRepository: PostRepository, currentLoginDataUseCase: GetCurrentLoginDataUseCase - ): GetOwnPostsUseCase = GetOwnPostsUseCase(postRepository, currentLoginDataUseCase) - - @Provides - @Singleton - fun provideGetPostsOfAccountUseCase( - postRepository: PostRepository, @ApplicationContext context: Context - ): GetPostsOfAccountUseCase = GetPostsOfAccountUseCase(postRepository, context) - - @Provides - @Singleton - fun provideFollowAccountUseCase(accountRepository: AccountRepository): FollowAccountUseCase = - FollowAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideUnfollowAccountUseCase(accountRepository: AccountRepository): UnfollowAccountUseCase = - UnfollowAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideMuteAccountUseCase(accountRepository: AccountRepository): MuteAccountUseCase = - MuteAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideUnmuteAccountUseCase(accountRepository: AccountRepository): UnmuteAccountUseCase = - UnmuteAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideBlockAccountUseCase(accountRepository: AccountRepository): BlockAccountUseCase = - BlockAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideUnblockAccountUseCase(accountRepository: AccountRepository): UnblockAccountUseCase = - UnblockAccountUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetRelationshipsUseCase(repository: CountryRepository): GetRelationshipsUseCase = - GetRelationshipsUseCase(repository) - - @Provides - @Singleton - fun provideGetMutualFollowersUseCase(accountRepository: AccountRepository): GetMutualFollowersUseCase = - GetMutualFollowersUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetAccountsFollowersUseCase(accountRepository: AccountRepository): GetAccountsFollowersUseCase = - GetAccountsFollowersUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetAccountsFollowingUseCase(accountRepository: AccountRepository): GetAccountsFollowingUseCase = - GetAccountsFollowingUseCase(accountRepository) - - @Provides - @Singleton - fun provideUpdateAccountUseCase(repository: AccountRepository): UpdateAccountUseCase = - UpdateAccountUseCase(repository) - - @Provides - @Singleton - fun provideGetViewUseCase(repository: StorageRepository): GetViewUseCase = - GetViewUseCase(repository) - - @Provides - @Singleton - fun provideSetViewUseCase(repository: StorageRepository): SetViewUseCase = - SetViewUseCase(repository) - - @Provides - @Singleton - fun provideGetSettingsUseCase(repository: AccountRepository): GetSettingsUseCase = - GetSettingsUseCase(repository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/AppComponent.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/AppComponent.kt new file mode 100644 index 00000000..b6e0513b --- /dev/null +++ b/app/src/main/java/com/daniebeler/pfpixelix/di/AppComponent.kt @@ -0,0 +1,176 @@ +package com.daniebeler.pfpixelix.di + +import HostSelectionInterceptor +import android.app.Application +import android.content.Context +import androidx.datastore.core.DataStore +import androidx.datastore.core.DataStoreFactory +import androidx.datastore.dataStoreFile +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.preferencesDataStore +import co.touchlab.kermit.Logger +import com.daniebeler.pfpixelix.data.remote.PixelfedApi +import com.daniebeler.pfpixelix.data.remote.createPixelfedApi +import com.daniebeler.pfpixelix.data.repository.AccountRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.AuthRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.CollectionRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.CountryRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.DirectMessagesRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.HashtagRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.PostEditorRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.PostRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.SavedSearchesRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.StorageRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.TimelineRepositoryImpl +import com.daniebeler.pfpixelix.data.repository.WidgetRepositoryImpl +import com.daniebeler.pfpixelix.domain.model.AuthData +import com.daniebeler.pfpixelix.domain.model.SavedSearches +import com.daniebeler.pfpixelix.domain.repository.AccountRepository +import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import com.daniebeler.pfpixelix.domain.repository.CollectionRepository +import com.daniebeler.pfpixelix.domain.repository.CountryRepository +import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository +import com.daniebeler.pfpixelix.domain.repository.HashtagRepository +import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository +import com.daniebeler.pfpixelix.domain.repository.PostRepository +import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository +import com.daniebeler.pfpixelix.domain.repository.StorageRepository +import com.daniebeler.pfpixelix.domain.repository.TimelineRepository +import com.daniebeler.pfpixelix.domain.repository.WidgetRepository +import com.daniebeler.pfpixelix.utils.AuthDataSerializer +import com.daniebeler.pfpixelix.utils.SavedSearchesSerializer +import de.jensklingenberg.ktorfit.Ktorfit +import de.jensklingenberg.ktorfit.converter.CallConverterFactory +import io.ktor.client.HttpClient +import io.ktor.client.plugins.HttpSend +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.plugins.logging.LogLevel +import io.ktor.client.plugins.logging.Logging +import io.ktor.client.plugins.plugin +import io.ktor.serialization.kotlinx.json.json +import kotlinx.serialization.json.Json +import me.tatarka.inject.annotations.Component +import me.tatarka.inject.annotations.Provides +import me.tatarka.inject.annotations.Scope + + +private val Context.dataStore by preferencesDataStore("settings") + +@Scope +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER) +annotation class AppSingleton + +@AppSingleton +@Component +abstract class AppComponent( + @get:Provides val androidApp: Application +) { + + @Provides + @AppSingleton + fun provideContext(): Context = androidApp + + @Provides + @AppSingleton + fun provideJson(): Json = Json { + ignoreUnknownKeys = true + isLenient = true + explicitNulls = false + } + + @Provides + @AppSingleton + fun provideUserDataStorePreferences( + applicationContext: Context + ): DataStore { + return applicationContext.dataStore + } + + + @Provides + @AppSingleton + fun provideHostSelectionInterceptor(): HostSelectionInterceptorInterface = + HostSelectionInterceptor() + + + @Provides + @AppSingleton + fun provideHttpClient( + json: Json, + hostSelectionInterceptor: HostSelectionInterceptorInterface + ): HttpClient = HttpClient { + install(ContentNegotiation) { json(json) } + install(Logging) { + logger = object : io.ktor.client.plugins.logging.Logger { + override fun log(message: String) { + Logger.v("HttpClient") { + message.lines().joinToString { "\n\t\t$it"} + } + } + } + level = LogLevel.BODY + } + }.apply { + plugin(HttpSend).intercept { request -> + with(hostSelectionInterceptor) { + intercept(request) + } + } + } + + + @Provides + @AppSingleton + fun provideKtorfit(client: HttpClient): Ktorfit = Ktorfit.Builder() + .converterFactories(CallConverterFactory()) + .httpClient(client) + .baseUrl("https://err.or/") + .build() + + + @Provides + @AppSingleton + fun providePixelfedApi(ktorfit: Ktorfit): PixelfedApi = + ktorfit.createPixelfedApi() + + @Provides + @AppSingleton + fun provideDataStore( context: Context): DataStore = + DataStoreFactory.create( + serializer = SavedSearchesSerializer, + produceFile = { context.dataStoreFile("saved_searches.json") } + ) + + @Provides + @AppSingleton + fun provideAuthDataStore(context: Context): DataStore = + DataStoreFactory.create( + serializer = AuthDataSerializer, + produceFile = { context.dataStoreFile("auth_data_datastore.json") } + ) + + @Provides + fun provideAccountRepository(impl: AccountRepositoryImpl): AccountRepository = impl + @Provides + fun provideAuthRepository(impl: AuthRepositoryImpl): AuthRepository = impl + @Provides + fun provideCollectionRepository(impl: CollectionRepositoryImpl): CollectionRepository = impl + @Provides + fun provideCountryRepository(impl: CountryRepositoryImpl): CountryRepository = impl + @Provides + fun provideDirectMessagesRepository(impl: DirectMessagesRepositoryImpl): DirectMessagesRepository = impl + @Provides + fun provideHashtagRepository(impl: HashtagRepositoryImpl): HashtagRepository = impl + @Provides + fun providePostEditorRepository(impl: PostEditorRepositoryImpl): PostEditorRepository = impl + @Provides + fun providePostRepository(impl: PostRepositoryImpl): PostRepository = impl + @Provides + fun provideSavedSearchesRepository(impl: SavedSearchesRepositoryImpl): SavedSearchesRepository = impl + @Provides + fun provideStorageRepository(impl: StorageRepositoryImpl): StorageRepository = impl + @Provides + fun provideTimelineRepository(impl: TimelineRepositoryImpl): TimelineRepository = impl + @Provides + fun provideWidgetRepository(impl: WidgetRepositoryImpl): WidgetRepository = impl +} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/AuthUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/AuthUseCaseModule.kt deleted file mode 100644 index 83a53b89..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/AuthUseCaseModule.kt +++ /dev/null @@ -1,94 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.AuthRepository -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.usecase.AddNewLoginUseCase -import com.daniebeler.pfpixelix.domain.usecase.FinishLoginUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAuthDataUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetCurrentLoginDataUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetOngoingLoginUseCase -import com.daniebeler.pfpixelix.domain.usecase.ObtainTokenUseCase -import com.daniebeler.pfpixelix.domain.usecase.RemoveLoginDataUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdateCurrentUserUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdateLoginDataUseCase -import com.daniebeler.pfpixelix.domain.usecase.VerifyTokenUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class AuthUseCaseModule { - - @Provides - @Singleton - fun provideObtainTokenUseCase(repository: CountryRepository): ObtainTokenUseCase = - ObtainTokenUseCase(repository) - - @Provides - @Singleton - fun provideVerifyTokenUseCase(repository: CountryRepository): VerifyTokenUseCase = - VerifyTokenUseCase(repository) - - @Provides - @Singleton - fun provideAddInitialLoginUseCase( - repository: AuthRepository, - hostSelectionInterceptorInterface: HostSelectionInterceptorInterface - ): AddNewLoginUseCase = - AddNewLoginUseCase(repository, hostSelectionInterceptorInterface) - - @Provides - @Singleton - fun provideUpdateLoginDataUseCase( - repository: AuthRepository, - hostSelectionInterceptorInterface: HostSelectionInterceptorInterface - ): UpdateLoginDataUseCase = - UpdateLoginDataUseCase(repository, hostSelectionInterceptorInterface) - - @Provides - @Singleton - fun provideGetOngoingLoginUseCase( - repository: AuthRepository, - ): GetOngoingLoginUseCase = - GetOngoingLoginUseCase(repository) - - @Provides - @Singleton - fun provideGetCurrentLoginDataUseCase( - repository: AuthRepository, - ): GetCurrentLoginDataUseCase = - GetCurrentLoginDataUseCase(repository) - - @Provides - @Singleton - fun provideGetAuthDataUseCase( - repository: AuthRepository, - ): GetAuthDataUseCase = - GetAuthDataUseCase(repository) - - @Provides - @Singleton - fun provideUpdateCurrentUserUseCase( - repository: AuthRepository, - hostSelectionInterceptorInterface: HostSelectionInterceptorInterface - ): UpdateCurrentUserUseCase = - UpdateCurrentUserUseCase(repository, hostSelectionInterceptorInterface) - - @Provides - @Singleton - fun provideFinishLoginUseCase( - repository: AuthRepository, - hostSelectionInterceptorInterface: HostSelectionInterceptorInterface - ): FinishLoginUseCase = - FinishLoginUseCase(repository, hostSelectionInterceptorInterface) - - @Provides - @Singleton - fun provideRemoveLoginDataUseCase( - repository: AuthRepository, - ): RemoveLoginDataUseCase = - RemoveLoginDataUseCase(repository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/CollectionUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/CollectionUseCaseModule.kt deleted file mode 100644 index 6d4c8eb3..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/CollectionUseCaseModule.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.CollectionRepository -import com.daniebeler.pfpixelix.domain.usecase.AddPostOfCollectionUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetCollectionUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetCollectionsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetPostsOfCollectionUseCase -import com.daniebeler.pfpixelix.domain.usecase.RemovePostOfCollectionUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdateCollectionUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class CollectionUseCaseModule { - - @Provides - @Singleton - fun provideGetCollectionsUseCase(repository: CollectionRepository): GetCollectionsUseCase = - GetCollectionsUseCase(repository) - - @Provides - @Singleton - fun provideGetCollectionUseCase(repository: CollectionRepository): GetCollectionUseCase = - GetCollectionUseCase(repository) - - @Provides - @Singleton - fun provideGetPostsOfCollectionUseCase(repository: CollectionRepository): GetPostsOfCollectionUseCase = - GetPostsOfCollectionUseCase(repository) - - @Provides - @Singleton - fun provideRemovePostsOfCollectionUseCase(repository: CollectionRepository): RemovePostOfCollectionUseCase = - RemovePostOfCollectionUseCase(repository) - - @Provides - @Singleton - fun provideAddPostsOfCollectionUseCase(repository: CollectionRepository): AddPostOfCollectionUseCase = - AddPostOfCollectionUseCase(repository) - - @Provides - @Singleton - fun provideUpdateCollectionUseCase(repository: CollectionRepository): UpdateCollectionUseCase = - UpdateCollectionUseCase(repository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/DirectMessagesUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/DirectMessagesUseCaseModule.kt deleted file mode 100644 index 0f21ae81..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/DirectMessagesUseCaseModule.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository -import com.daniebeler.pfpixelix.domain.usecase.DeleteMessageUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetChatUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetConversationsUseCase -import com.daniebeler.pfpixelix.domain.usecase.SendMessageUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class DirectMessagesUseCaseModule { - - @Provides - @Singleton - fun provideGetConversationsUseCase(repository: DirectMessagesRepository): GetConversationsUseCase = - GetConversationsUseCase(repository) - - @Provides - @Singleton - fun provideGetChatUseCase(repository: DirectMessagesRepository): GetChatUseCase = - GetChatUseCase(repository) - - @Provides - @Singleton - fun provideSendMessageUseCase(repository: DirectMessagesRepository): SendMessageUseCase = - SendMessageUseCase(repository) - - @Provides - @Singleton - fun provideDeleteMessageUseCase(repository: DirectMessagesRepository): DeleteMessageUseCase = - DeleteMessageUseCase(repository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/DomainSoftwareUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/DomainSoftwareUseCaseModule.kt deleted file mode 100644 index fca6c01a..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/DomainSoftwareUseCaseModule.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.usecase.nodeinfo.GetFediServerUseCase -import com.daniebeler.pfpixelix.domain.usecase.nodeinfo.GetFediSoftwareUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class DomainSoftwareUseCaseModule { - @Provides - @Singleton - fun provideGetDomainSoftwareUseCase( - countryRepository: CountryRepository - ): GetFediServerUseCase = GetFediServerUseCase(countryRepository) - - @Provides - @Singleton - fun provideGetFediSoftwareUseCase( - countryRepository: CountryRepository - ): GetFediSoftwareUseCase = GetFediSoftwareUseCase(countryRepository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/EntryPointComponent.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/EntryPointComponent.kt new file mode 100644 index 00000000..b3fcf35e --- /dev/null +++ b/app/src/main/java/com/daniebeler/pfpixelix/di/EntryPointComponent.kt @@ -0,0 +1,26 @@ +package com.daniebeler.pfpixelix.di + +import com.daniebeler.pfpixelix.domain.repository.CountryRepository +import com.daniebeler.pfpixelix.domain.usecase.AddNewLoginUseCase +import com.daniebeler.pfpixelix.domain.usecase.FinishLoginUseCase +import com.daniebeler.pfpixelix.domain.usecase.GetCurrentLoginDataUseCase +import com.daniebeler.pfpixelix.domain.usecase.GetOngoingLoginUseCase +import com.daniebeler.pfpixelix.domain.usecase.ObtainTokenUseCase +import com.daniebeler.pfpixelix.domain.usecase.UpdateLoginDataUseCase +import com.daniebeler.pfpixelix.domain.usecase.VerifyTokenUseCase +import me.tatarka.inject.annotations.Component + +@Component +abstract class EntryPointComponent( + @Component val appComponent: AppComponent +) { + abstract val obtainTokenUseCase: ObtainTokenUseCase + abstract val verifyTokenUseCase: VerifyTokenUseCase + abstract val updateLoginDataUseCase: UpdateLoginDataUseCase + abstract val finishLoginUseCase: FinishLoginUseCase + abstract val newLoginDataUseCase: AddNewLoginUseCase + abstract val getOngoingLoginUseCase: GetOngoingLoginUseCase + abstract val hostSelectionInterceptorInterface: HostSelectionInterceptorInterface + abstract val currentLoginDataUseCase: GetCurrentLoginDataUseCase + abstract val repository: CountryRepository +} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/HashtagModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/HashtagModule.kt deleted file mode 100644 index d8eacc56..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/HashtagModule.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.HashtagRepository -import com.daniebeler.pfpixelix.domain.usecase.FollowHashtagUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetFollowedHashtagsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetHashtagUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetRelatedHashtagsUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnfollowHashtagUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class HashtagModule { - - @Provides - @Singleton - fun provideGetHashtagUseCase(hashtagRepository: HashtagRepository): GetHashtagUseCase = - GetHashtagUseCase(hashtagRepository) - - @Provides - @Singleton - fun provideFollowHashtagUseCase(hashtagRepository: HashtagRepository): FollowHashtagUseCase = - FollowHashtagUseCase(hashtagRepository) - - @Provides - @Singleton - fun provideGetRelatedHashtagsUseCase(hashtagRepository: HashtagRepository): GetRelatedHashtagsUseCase = - GetRelatedHashtagsUseCase(hashtagRepository) - - @Provides - @Singleton - fun provideUnfollowHashtagUseCase(hashtagRepository: HashtagRepository): UnfollowHashtagUseCase = - UnfollowHashtagUseCase(hashtagRepository) - - @Provides - @Singleton - fun provideGetFollowedHashtagsUseCase(hashtagRepository: HashtagRepository): GetFollowedHashtagsUseCase = - GetFollowedHashtagsUseCase(hashtagRepository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/IconSelectionUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/IconSelectionUseCaseModule.kt deleted file mode 100644 index ff3ebd5c..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/IconSelectionUseCaseModule.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.usecase.DisableAllCustomAppIconsUseCase -import com.daniebeler.pfpixelix.domain.usecase.EnableCustomAppIconUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class IconSelectionUseCaseModule { - - @Provides - @Singleton - fun provideDisableAllCustomIconsUseCase(): DisableAllCustomAppIconsUseCase = - DisableAllCustomAppIconsUseCase() - - @Provides - @Singleton - fun provideEnableCustomIconUseCase(): EnableCustomAppIconUseCase = EnableCustomAppIconUseCase() -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/Module.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/Module.kt deleted file mode 100644 index 7827711f..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/Module.kt +++ /dev/null @@ -1,100 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import HostSelectionInterceptor -import android.content.Context -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences -import androidx.datastore.preferences.preferencesDataStore -import co.touchlab.kermit.Logger -import com.daniebeler.pfpixelix.data.remote.PixelfedApi -import com.daniebeler.pfpixelix.data.remote.createPixelfedApi -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import de.jensklingenberg.ktorfit.Ktorfit -import de.jensklingenberg.ktorfit.converter.CallConverterFactory -import io.ktor.client.HttpClient -import io.ktor.client.plugins.HttpSend -import io.ktor.client.plugins.contentnegotiation.ContentNegotiation -import io.ktor.client.plugins.logging.LogLevel -import io.ktor.client.plugins.logging.Logging -import io.ktor.client.plugins.plugin -import io.ktor.serialization.kotlinx.json.json -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.json.Json -import javax.inject.Singleton - - -private val Context.dataStore by preferencesDataStore("settings") - -@InstallIn(SingletonComponent::class) -@Module -class Module { - - - @OptIn(ExperimentalSerializationApi::class) - @Provides - @Singleton - fun provideJson(): Json = Json { - ignoreUnknownKeys = true - isLenient = true - explicitNulls = false - } - - @Provides - @Singleton - fun provideUserDataStorePreferences( - @ApplicationContext applicationContext: Context - ): DataStore { - return applicationContext.dataStore - } - - - @Provides - @Singleton - fun provideHostSelectionInterceptor(): HostSelectionInterceptorInterface = - HostSelectionInterceptor() - - - @Provides - @Singleton - fun provideHttpClient( - json: Json, - hostSelectionInterceptor: HostSelectionInterceptorInterface - ): HttpClient = HttpClient { - install(ContentNegotiation) { json(json) } - install(Logging) { - logger = object : io.ktor.client.plugins.logging.Logger { - override fun log(message: String) { - Logger.v("HttpClient") { - message.lines().joinToString { "\n\t\t$it"} - } - } - } - level = LogLevel.BODY - } - }.apply { - plugin(HttpSend).intercept { request -> - with(hostSelectionInterceptor) { - intercept(request) - } - } - } - - - @Provides - @Singleton - fun provideKtorfit(client: HttpClient): Ktorfit = Ktorfit.Builder() - .converterFactories(CallConverterFactory()) - .httpClient(client) - .baseUrl("https://err.or/") - .build() - - - @Provides - @Singleton - fun providePixelfedApi(ktorfit: Ktorfit): PixelfedApi = - ktorfit.createPixelfedApi() -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/NotificationUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/NotificationUseCaseModule.kt deleted file mode 100644 index 78347423..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/NotificationUseCaseModule.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.usecase.GetNotificationsUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class NotificationUseCaseModule { - - @Provides - @Singleton - fun provideGetNotificationsUseCase(repository: CountryRepository): GetNotificationsUseCase = - GetNotificationsUseCase(repository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/PostUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/PostUseCaseModule.kt deleted file mode 100644 index 72fca501..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/PostUseCaseModule.kt +++ /dev/null @@ -1,126 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.AccountRepository -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository -import com.daniebeler.pfpixelix.domain.repository.PostRepository -import com.daniebeler.pfpixelix.domain.repository.StorageRepository -import com.daniebeler.pfpixelix.domain.usecase.BookmarkPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.CreatePostUseCase -import com.daniebeler.pfpixelix.domain.usecase.CreateReplyUseCase -import com.daniebeler.pfpixelix.domain.usecase.DeletePostUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetAccountsWhoLikedPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetLikedPostsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetRepliesUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetVolumeUseCase -import com.daniebeler.pfpixelix.domain.usecase.LikePostUseCase -import com.daniebeler.pfpixelix.domain.usecase.ReblogPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.SetVolumeUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnbookmarkPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnlikePostUseCase -import com.daniebeler.pfpixelix.domain.usecase.UnreblogPostUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdateMediaUseCase -import com.daniebeler.pfpixelix.domain.usecase.UpdatePostUseCase -import com.daniebeler.pfpixelix.domain.usecase.UploadMediaUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class PostUseCaseModule { - - @Provides - @Singleton - fun provideGetPostUseCase(postRepository: PostRepository): GetPostUseCase = - GetPostUseCase(postRepository) - - @Provides - @Singleton - fun provideGetLikedPostsUseCase(postRepository: PostRepository): GetLikedPostsUseCase = - GetLikedPostsUseCase(postRepository) - - @Provides - @Singleton - fun provideBookmarkPostUseCase(postRepository: PostRepository): BookmarkPostUseCase = - BookmarkPostUseCase(postRepository) - - @Provides - @Singleton - fun provideUnbookmarkPostUseCase(postRepository: PostRepository): UnbookmarkPostUseCase = - UnbookmarkPostUseCase(postRepository) - - - @Provides - @Singleton - fun provideLikePostUseCase(postRepository: PostRepository): LikePostUseCase = - LikePostUseCase(postRepository) - - @Provides - @Singleton - fun provideUnlikePostUseCase(postRepository: PostRepository): UnlikePostUseCase = - UnlikePostUseCase(postRepository) - - @Provides - @Singleton - fun provideReblogPostUseCase(postRepository: PostRepository): ReblogPostUseCase = - ReblogPostUseCase(postRepository) - - @Provides - @Singleton - fun provideUnreblogPostUseCase(postRepository: PostRepository): UnreblogPostUseCase = - UnreblogPostUseCase(postRepository) - - @Provides - @Singleton - fun provideGetAccountsWhoLikedPostUseCase(accountRepository: AccountRepository): GetAccountsWhoLikedPostUseCase = - GetAccountsWhoLikedPostUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetRepliesUseCase(repository: CountryRepository): GetRepliesUseCase = - GetRepliesUseCase(repository) - - @Provides - @Singleton - fun provideCreateReplyUseCase(repository: CountryRepository): CreateReplyUseCase = - CreateReplyUseCase(repository) - - @Provides - @Singleton - fun provideDeletePostUseCase(postEditorRepository: PostEditorRepository): DeletePostUseCase = - DeletePostUseCase(postEditorRepository) - - @Provides - @Singleton - fun provideCreatePostUseCase(postEditorRepository: PostEditorRepository): CreatePostUseCase = - CreatePostUseCase(postEditorRepository) - - @Provides - @Singleton - fun provideUploadMediaUseCase(postEditorRepository: PostEditorRepository): UploadMediaUseCase = - UploadMediaUseCase(postEditorRepository) - - @Provides - @Singleton - fun provideUpdateMediaUseCase(postEditorRepository: PostEditorRepository): UpdateMediaUseCase = - UpdateMediaUseCase(postEditorRepository) - - @Provides - @Singleton - fun provideUpdatePostUseCase(postEditorRepository: PostEditorRepository): UpdatePostUseCase = - UpdatePostUseCase(postEditorRepository) - - @Provides - @Singleton - fun provideSetVolumeUseCase(storageRepository: StorageRepository): SetVolumeUseCase = - SetVolumeUseCase(storageRepository) - - @Provides - @Singleton - fun provideGetVolumeUseCase(storageRepository: StorageRepository): GetVolumeUseCase = - GetVolumeUseCase(storageRepository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/RepositoryModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/RepositoryModule.kt deleted file mode 100644 index 6f4483ec..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/RepositoryModule.kt +++ /dev/null @@ -1,132 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import android.content.Context -import androidx.datastore.core.DataStore -import androidx.datastore.core.DataStoreFactory -import androidx.datastore.dataStoreFile -import androidx.datastore.preferences.core.Preferences -import com.daniebeler.pfpixelix.data.remote.PixelfedApi -import com.daniebeler.pfpixelix.data.repository.AccountRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.AuthRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.CollectionRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.CountryRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.DirectMessagesRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.HashtagRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.PostEditorRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.PostRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.SavedSearchesRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.StorageRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.TimelineRepositoryImpl -import com.daniebeler.pfpixelix.data.repository.WidgetRepositoryImpl -import com.daniebeler.pfpixelix.domain.model.AuthData -import com.daniebeler.pfpixelix.domain.model.SavedSearches -import com.daniebeler.pfpixelix.domain.repository.AccountRepository -import com.daniebeler.pfpixelix.domain.repository.AuthRepository -import com.daniebeler.pfpixelix.domain.repository.CollectionRepository -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository -import com.daniebeler.pfpixelix.domain.repository.HashtagRepository -import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository -import com.daniebeler.pfpixelix.domain.repository.PostRepository -import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository -import com.daniebeler.pfpixelix.domain.repository.StorageRepository -import com.daniebeler.pfpixelix.domain.repository.TimelineRepository -import com.daniebeler.pfpixelix.domain.repository.WidgetRepository -import com.daniebeler.pfpixelix.utils.AuthDataSerializer -import com.daniebeler.pfpixelix.utils.SavedSearchesSerializer -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class RepositoryModule { - @Provides - @Singleton - fun savedSearchesRepository( - dataStore: DataStore - ): SavedSearchesRepository = SavedSearchesRepositoryImpl(dataStore) - - @Provides - @Singleton - fun provideDataStore(@ApplicationContext context: Context): DataStore = - DataStoreFactory.create(serializer = SavedSearchesSerializer(), - produceFile = { context.dataStoreFile("saved_searches.json") }) - - @Provides - @Singleton - fun provideStorageRepository( - dataStore: DataStore - ): StorageRepository = StorageRepositoryImpl(dataStore) - - @Provides - @Singleton - fun provideTimelineRepository( - pixelfedApi: PixelfedApi - ): TimelineRepository = TimelineRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun provideAccountRepository( - pixelfedApi: PixelfedApi - ): AccountRepository = AccountRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun provideCollectionRepository( - pixelfedApi: PixelfedApi - ): CollectionRepository = CollectionRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun provideDirectMessagesRepository( - pixelfedApi: PixelfedApi - ): DirectMessagesRepository = DirectMessagesRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun provideHashtagRepository( - pixelfedApi: PixelfedApi - ): HashtagRepository = HashtagRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun providePostRepository( - pixelfedApi: PixelfedApi - ): PostRepository = PostRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun providePostEditorRepository( - pixelfedApi: PixelfedApi - ): PostEditorRepository = PostEditorRepositoryImpl(pixelfedApi) - - @Provides - @Singleton - fun provideWidgetRepository( - pixelfedApi: PixelfedApi - ): WidgetRepository = WidgetRepositoryImpl(pixelfedApi) - - - @Provides - @Singleton - fun provideApiRepository( - dataStore: DataStore, - pixelfedApi: PixelfedApi - ): CountryRepository = CountryRepositoryImpl(dataStore, pixelfedApi) - - @Provides - @Singleton - fun provideAuthRepository( - dataStore: DataStore - ): AuthRepository = AuthRepositoryImpl(dataStore) - - @Provides - @Singleton - fun provideAuthDataStore(@ApplicationContext context: Context): DataStore = - DataStoreFactory.create(serializer = AuthDataSerializer(), - produceFile = { context.dataStoreFile("auth_data_datastore.json") }) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/SearchModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/SearchModule.kt deleted file mode 100644 index 60ff24c7..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/SearchModule.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.usecase.SearchLocationUseCase -import com.daniebeler.pfpixelix.domain.usecase.SearchUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class SearchModule { - - @Provides - @Singleton - fun provideSearchUseCase(repository: CountryRepository): SearchUseCase = - SearchUseCase(repository) - - @Provides - @Singleton - fun provideSearchLocationUseCase(repository: CountryRepository): SearchLocationUseCase = - SearchLocationUseCase(repository) - -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/SettingsUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/SettingsUseCaseModule.kt deleted file mode 100644 index 127a8cb6..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/SettingsUseCaseModule.kt +++ /dev/null @@ -1,84 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import com.daniebeler.pfpixelix.domain.repository.AccountRepository -import com.daniebeler.pfpixelix.domain.repository.AuthRepository -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.repository.PostRepository -import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository -import com.daniebeler.pfpixelix.domain.repository.StorageRepository -import com.daniebeler.pfpixelix.domain.usecase.GetActiveAppIconUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetBlockedAccountsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetBookmarkedPostsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetHideAltTextButtonUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetInstanceUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetMutedAccountsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetOwnInstanceDomainUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetUseInAppBrowserUseCase -import com.daniebeler.pfpixelix.domain.usecase.LogoutUseCase -import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase -import com.daniebeler.pfpixelix.domain.usecase.StoreThemeUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -class SettingsUseCaseModule { - - @Provides - @Singleton - fun provideGetHideAltTextButtonUseCase(repository: StorageRepository): GetHideAltTextButtonUseCase = - GetHideAltTextButtonUseCase(repository) - - @Provides - @Singleton - fun provideLogoutUseCase( - repository: AuthRepository, savedSearchesRepository: SavedSearchesRepository - ): LogoutUseCase = LogoutUseCase(repository, savedSearchesRepository) - - @Provides - @Singleton - fun provideGetBookmarkedPostsUseCase(postRepository: PostRepository): GetBookmarkedPostsUseCase = - GetBookmarkedPostsUseCase(postRepository) - - @Provides - @Singleton - fun provideGetMutedAccountsUseCase(accountRepository: AccountRepository): GetMutedAccountsUseCase = - GetMutedAccountsUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetBlockedAccountsUseCase(accountRepository: AccountRepository): GetBlockedAccountsUseCase = - GetBlockedAccountsUseCase(accountRepository) - - @Provides - @Singleton - fun provideGetInstanceUseCase(repository: CountryRepository): GetInstanceUseCase = - GetInstanceUseCase(repository) - - @Provides - @Singleton - fun provideGetOwnInstanceDomainUseCase(repository: AuthRepository): GetOwnInstanceDomainUseCase = - GetOwnInstanceDomainUseCase(repository) - - @Provides - @Singleton - fun provideOpenExternalUrlUseCase(): OpenExternalUrlUseCase = - OpenExternalUrlUseCase() - - @Provides - @Singleton - fun provideGetUseInAppBrowserUseCase(repository: StorageRepository): GetUseInAppBrowserUseCase = - GetUseInAppBrowserUseCase(repository) - - @Provides - @Singleton - fun provideStoreThemeUseCase(repository: StorageRepository): StoreThemeUseCase = - StoreThemeUseCase(repository) - - @Provides - @Singleton - fun provideGetAppIconUseCase(): GetActiveAppIconUseCase = GetActiveAppIconUseCase() -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/TimelineUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/TimelineUseCaseModule.kt deleted file mode 100644 index 6a84887a..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/TimelineUseCaseModule.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import android.content.Context -import com.daniebeler.pfpixelix.domain.repository.TimelineRepository -import com.daniebeler.pfpixelix.domain.usecase.GetGlobalTimelineUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetHashtagTimelineUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetHomeTimelineUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetLocalTimelineUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class TimelineUseCaseModule { - - @Provides - @Singleton - fun provideGetHomeTimelineUseCase( - timelineRepository: TimelineRepository, @ApplicationContext context: Context - ): GetHomeTimelineUseCase = GetHomeTimelineUseCase(timelineRepository, context) - - @Provides - @Singleton - fun provideGetLocalTimelineUseCase( - timelineRepository: TimelineRepository, @ApplicationContext context: Context - ): GetLocalTimelineUseCase = GetLocalTimelineUseCase(timelineRepository, context) - - @Provides - @Singleton - fun provideGetGlobalTimelineUseCase( - timelineRepository: TimelineRepository, @ApplicationContext context: Context - ): GetGlobalTimelineUseCase = GetGlobalTimelineUseCase(timelineRepository, context) - - @Provides - @Singleton - fun provideGetHashtagTimelineUseCase( - timelineRepository: TimelineRepository, @ApplicationContext context: Context - ): GetHashtagTimelineUseCase = GetHashtagTimelineUseCase(timelineRepository, context) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/TrendingUseCaseModule.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/TrendingUseCaseModule.kt deleted file mode 100644 index a9203f71..00000000 --- a/app/src/main/java/com/daniebeler/pfpixelix/di/TrendingUseCaseModule.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.daniebeler.pfpixelix.di - -import android.content.Context -import com.daniebeler.pfpixelix.domain.repository.CountryRepository -import com.daniebeler.pfpixelix.domain.repository.HashtagRepository -import com.daniebeler.pfpixelix.domain.repository.PostRepository -import com.daniebeler.pfpixelix.domain.usecase.GetTrendingAccountsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetTrendingHashtagsUseCase -import com.daniebeler.pfpixelix.domain.usecase.GetTrendingPostsUseCase -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -class TrendingUseCaseModule { - - @Provides - @Singleton - fun provideGetTrendingPostsUseCase( - postRepository: PostRepository, @ApplicationContext context: Context - ): GetTrendingPostsUseCase = GetTrendingPostsUseCase(postRepository, context) - - @Provides - @Singleton - fun provideGetTrendingAccountsUseCase(repository: CountryRepository): GetTrendingAccountsUseCase = - GetTrendingAccountsUseCase(repository) - - @Provides - @Singleton - fun provideGetTrendingHashtagsUseCase(hashtagRepository: HashtagRepository): GetTrendingHashtagsUseCase = - GetTrendingHashtagsUseCase(hashtagRepository) -} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/ViewModelComponent.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/ViewModelComponent.kt new file mode 100644 index 00000000..436c6832 --- /dev/null +++ b/app/src/main/java/com/daniebeler/pfpixelix/di/ViewModelComponent.kt @@ -0,0 +1,98 @@ +package com.daniebeler.pfpixelix.di + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import com.daniebeler.pfpixelix.MyApplication +import com.daniebeler.pfpixelix.ui.composables.LoginViewModel +import com.daniebeler.pfpixelix.ui.composables.collection.CollectionViewModel +import com.daniebeler.pfpixelix.ui.composables.custom_account.CustomAccountViewModel +import com.daniebeler.pfpixelix.ui.composables.direct_messages.chat.ChatViewModel +import com.daniebeler.pfpixelix.ui.composables.direct_messages.conversations.ConversationsViewModel +import com.daniebeler.pfpixelix.ui.composables.edit_post.EditPostViewModel +import com.daniebeler.pfpixelix.ui.composables.edit_profile.EditProfileViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.ExploreViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_accounts.TrendingAccountElementViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_accounts.TrendingAccountsViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_hashtags.TrendingHashtagElementViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_hashtags.TrendingHashtagsViewModel +import com.daniebeler.pfpixelix.ui.composables.explore.trending.trending_posts.TrendingPostsViewModel +import com.daniebeler.pfpixelix.ui.composables.followers.FollowersViewModel +import com.daniebeler.pfpixelix.ui.composables.hashtagMentionText.TextWithClickableHashtagsAndMentionsViewModel +import com.daniebeler.pfpixelix.ui.composables.mention.MentionViewModel +import com.daniebeler.pfpixelix.ui.composables.newpost.NewPostViewModel +import com.daniebeler.pfpixelix.ui.composables.notifications.CustomNotificationViewModel +import com.daniebeler.pfpixelix.ui.composables.notifications.NotificationsViewModel +import com.daniebeler.pfpixelix.ui.composables.post.PostViewModel +import com.daniebeler.pfpixelix.ui.composables.post.reply.ReplyElementViewModel +import com.daniebeler.pfpixelix.ui.composables.profile.other_profile.OtherProfileViewModel +import com.daniebeler.pfpixelix.ui.composables.profile.own_profile.AccountSwitchViewModel +import com.daniebeler.pfpixelix.ui.composables.profile.own_profile.OwnProfileViewModel +import com.daniebeler.pfpixelix.ui.composables.profile.server_stats.ServerStatsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.about_instance.AboutInstanceViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.about_pixelix.AboutPixelixViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.blocked_accounts.BlockedAccountsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.bookmarked_posts.BookmarkedPostsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.followed_hashtags.FollowedHashtagsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.icon_selection.IconSelectionViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.liked_posts.LikedPostsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.muted_accounts.MutedAccountsViewModel +import com.daniebeler.pfpixelix.ui.composables.settings.preferences.PreferencesViewModel +import com.daniebeler.pfpixelix.ui.composables.single_post.SinglePostViewModel +import com.daniebeler.pfpixelix.ui.composables.textfield_location.TextFieldLocationsViewModel +import com.daniebeler.pfpixelix.ui.composables.textfield_mentions.TextFieldMentionsViewModel +import com.daniebeler.pfpixelix.ui.composables.timelines.global_timeline.GlobalTimelineViewModel +import com.daniebeler.pfpixelix.ui.composables.timelines.hashtag_timeline.HashtagTimelineViewModel +import com.daniebeler.pfpixelix.ui.composables.timelines.home_timeline.HomeTimelineViewModel +import com.daniebeler.pfpixelix.ui.composables.timelines.local_timeline.LocalTimelineViewModel +import me.tatarka.inject.annotations.Component + +@Component +abstract class ViewModelComponent( + @Component val appComponent: AppComponent +) { + abstract val loginViewModel: LoginViewModel + abstract val collectionViewModel: CollectionViewModel + abstract val customAccountViewModel: CustomAccountViewModel + abstract val chatViewModel: ChatViewModel + abstract val aboutInstanceViewModel: AboutInstanceViewModel + abstract val aboutPixelixViewModel: AboutPixelixViewModel + abstract val accountSwitchViewModel: AccountSwitchViewModel + abstract val blockedAccountsViewModel: BlockedAccountsViewModel + abstract val bookmarkedPostsViewModel: BookmarkedPostsViewModel + abstract val replyElementViewModel: ReplyElementViewModel + abstract val customNotificationViewModel: CustomNotificationViewModel + abstract val editProfileViewModel: EditProfileViewModel + abstract val exploreViewModel: ExploreViewModel + abstract val followedHashtagsViewModel: FollowedHashtagsViewModel + abstract val followersViewModel: FollowersViewModel + abstract val globalTimelineViewModel: GlobalTimelineViewModel + abstract val hashtagTimelineViewModel: HashtagTimelineViewModel + abstract val homeTimelineViewModel: HomeTimelineViewModel + abstract val iconSelectionViewModel: IconSelectionViewModel + abstract val likedPostsViewModel: LikedPostsViewModel + abstract val localTimelineViewModel: LocalTimelineViewModel + abstract val mentionViewModel: MentionViewModel + abstract val mutedAccountsViewModel: MutedAccountsViewModel + abstract val newPostViewModel: NewPostViewModel + abstract val notificationsViewModel: NotificationsViewModel + abstract val otherProfileViewModel: OtherProfileViewModel + abstract val ownProfileViewModel: OwnProfileViewModel + abstract val postViewModel: PostViewModel + abstract val preferencesViewModel: PreferencesViewModel + abstract val serverStatsViewModel: ServerStatsViewModel + abstract val singlePostViewModel: SinglePostViewModel + abstract val textWithClickableHashtagsAndMentionsViewModel: TextWithClickableHashtagsAndMentionsViewModel + abstract val trendingAccountElementViewModel: TrendingAccountElementViewModel + abstract val trendingAccountsViewModel: TrendingAccountsViewModel + abstract val trendingHashtagElementViewModel: TrendingHashtagElementViewModel + abstract val trendingHashtagsViewModel: TrendingHashtagsViewModel + abstract val trendingPostsViewModel: TrendingPostsViewModel + abstract val conversationsViewModel: ConversationsViewModel + abstract val editPostViewModel: EditPostViewModel + abstract val textFieldLocationsViewModel: TextFieldLocationsViewModel + abstract val textFieldMentionsViewModel: TextFieldMentionsViewModel +} + +@Composable +internal fun injectViewModel(key: String, block: ViewModelComponent.() -> T): T = + remember(key) { ViewModelComponent::class.create(MyApplication.appComponent).block() } \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/di/WorkerComponent.kt b/app/src/main/java/com/daniebeler/pfpixelix/di/WorkerComponent.kt new file mode 100644 index 00000000..f908e416 --- /dev/null +++ b/app/src/main/java/com/daniebeler/pfpixelix/di/WorkerComponent.kt @@ -0,0 +1,18 @@ +package com.daniebeler.pfpixelix.di + +import android.content.Context +import androidx.work.WorkerParameters +import com.daniebeler.pfpixelix.widget.notifications.work_manager.LatestImageTask +import com.daniebeler.pfpixelix.widget.notifications.work_manager.NotificationsTask +import me.tatarka.inject.annotations.Component +import me.tatarka.inject.annotations.Provides + +@Component +abstract class WorkerComponent( + @Component val appComponent: AppComponent, + @get:Provides val context: Context, + @get:Provides val workerParameters: WorkerParameters +) { + abstract val notificationsTask: NotificationsTask + abstract val latestImageTask: LatestImageTask +} \ No newline at end of file diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/model/Post.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/model/Post.kt index 0f6a5f22..5f98fb07 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/model/Post.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/model/Post.kt @@ -1,6 +1,6 @@ package com.daniebeler.pfpixelix.domain.model -import javax.annotation.concurrent.Immutable +import androidx.compose.runtime.Immutable @Immutable data class diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddNewLoginUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddNewLoginUseCase.kt index 3e678005..4c7bdc13 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddNewLoginUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddNewLoginUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class AddNewLoginUseCase( private val authRepository: AuthRepository, private val hostSelectionInterceptorInterface: HostSelectionInterceptorInterface diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddPostOfCollectionUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddPostOfCollectionUseCase.kt index 05145910..d25ffa5b 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddPostOfCollectionUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/AddPostOfCollectionUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class AddPostOfCollectionUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BlockAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BlockAccountUseCase.kt index 57e4bc8c..87d5174d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BlockAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BlockAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class BlockAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BookmarkPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BookmarkPostUseCase.kt index 9f18eb07..599198e8 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BookmarkPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/BookmarkPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class BookmarkPostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreatePostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreatePostUseCase.kt index 9721f8fe..1f1a1de5 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreatePostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreatePostUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.data.remote.dto.CreatePostDto import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class CreatePostUseCase( private val postEditorRepository: PostEditorRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreateReplyUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreateReplyUseCase.kt index aaa84db3..77c58cd2 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreateReplyUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/CreateReplyUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class CreateReplyUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeleteMessageUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeleteMessageUseCase.kt index 3ab64d24..0217fb09 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeleteMessageUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeleteMessageUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class DeleteMessageUseCase( private val directMessagesRepository: DirectMessagesRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeletePostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeletePostUseCase.kt index 926fbcce..3a516e44 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeletePostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DeletePostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class DeletePostUseCase( private val postEditorRepository: PostEditorRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DisableAllCustomAppIconsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DisableAllCustomAppIconsUseCase.kt index 0c8e0b94..8dfe36ca 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DisableAllCustomAppIconsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/DisableAllCustomAppIconsUseCase.kt @@ -4,7 +4,9 @@ import android.content.ComponentName import android.content.Context import android.content.pm.PackageManager import com.daniebeler.pfpixelix.common.IconsHolder +import me.tatarka.inject.annotations.Inject +@Inject class DisableAllCustomAppIconsUseCase() { operator fun invoke(context: Context) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/EnableCustomAppIconUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/EnableCustomAppIconUseCase.kt index 711c58d1..f6db1e76 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/EnableCustomAppIconUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/EnableCustomAppIconUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import android.content.ComponentName import android.content.Context import android.content.pm.PackageManager +import me.tatarka.inject.annotations.Inject +@Inject class EnableCustomAppIconUseCase { operator fun invoke(context: Context, name: String) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FinishLoginUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FinishLoginUseCase.kt index 6296d3d7..98dcbe46 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FinishLoginUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FinishLoginUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class FinishLoginUseCase constructor( private val authRepository: AuthRepository, private val hostSelectionInterceptorInterface: HostSelectionInterceptorInterface diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowAccountUseCase.kt index 204ab8aa..fd2d1e22 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class FollowAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowHashtagUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowHashtagUseCase.kt index 5bf42bd2..430c7efb 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowHashtagUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/FollowHashtagUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class FollowHashtagUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountByUsernameUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountByUsernameUseCase.kt index 7d01f5be..248cbb99 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountByUsernameUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountByUsernameUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetAccountByUsernameUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountUseCase.kt index 49a9659c..34643706 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowersUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowersUseCase.kt index 3885dafa..b038ddb1 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowersUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowersUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetAccountsFollowersUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowingUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowingUseCase.kt index 8932f724..bf9584c4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowingUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsFollowingUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetAccountsFollowingUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsWhoLikedPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsWhoLikedPostUseCase.kt index 02b8ec16..8976e5b0 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsWhoLikedPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAccountsWhoLikedPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetAccountsWhoLikedPostUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetActiveAppIconUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetActiveAppIconUseCase.kt index 8e8c8770..51e81923 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetActiveAppIconUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetActiveAppIconUseCase.kt @@ -8,7 +8,9 @@ import androidx.compose.ui.graphics.asImageBitmap import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.drawable.toBitmap import com.daniebeler.pfpixelix.common.IconsHolder +import me.tatarka.inject.annotations.Inject +@Inject class GetActiveAppIconUseCase { operator fun invoke(context: Context): ImageBitmap? { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAuthDataUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAuthDataUseCase.kt index cef37958..2fe42888 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAuthDataUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetAuthDataUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.model.AuthData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class GetAuthDataUseCase(private val repository: AuthRepository) { suspend operator fun invoke(): AuthData { return repository.getAuthData() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBlockedAccountsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBlockedAccountsUseCase.kt index 98e58c28..5d6aa774 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBlockedAccountsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBlockedAccountsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetBlockedAccountsUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBookmarkedPostsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBookmarkedPostsUseCase.kt index 2a4287ba..1d81d274 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBookmarkedPostsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetBookmarkedPostsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetBookmarkedPostsUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetChatUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetChatUseCase.kt index 1c8878ef..16051af4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetChatUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetChatUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.domain.model.Chat import com.daniebeler.pfpixelix.domain.model.Conversation import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetChatUseCase( private val directMessagesRepository: DirectMessagesRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionUseCase.kt index d28d116f..cfbeb36e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Collection import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetCollectionUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionsUseCase.kt index c21b9b99..07de972b 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCollectionsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Collection import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetCollectionsUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetConversationsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetConversationsUseCase.kt index fb887b8c..a763bcfd 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetConversationsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetConversationsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Conversation import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetConversationsUseCase( private val directMessagesRepository: DirectMessagesRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCurrentLoginDataUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCurrentLoginDataUseCase.kt index f2e2ffcc..edc90b5a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCurrentLoginDataUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetCurrentLoginDataUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class GetCurrentLoginDataUseCase constructor(private val repository: AuthRepository) { suspend operator fun invoke(): LoginData? { return repository.getCurrentLoginData() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetFollowedHashtagsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetFollowedHashtagsUseCase.kt index 90dc13be..794860a7 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetFollowedHashtagsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetFollowedHashtagsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetFollowedHashtagsUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetGlobalTimelineUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetGlobalTimelineUseCase.kt index 5a14a5b8..148a93fa 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetGlobalTimelineUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetGlobalTimelineUseCase.kt @@ -7,7 +7,9 @@ import com.daniebeler.pfpixelix.domain.repository.TimelineRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetGlobalTimelineUseCase( private val timelineRepository: TimelineRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagTimelineUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagTimelineUseCase.kt index 676f2a9c..554f6043 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagTimelineUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagTimelineUseCase.kt @@ -8,7 +8,9 @@ import com.daniebeler.pfpixelix.domain.repository.TimelineRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetHashtagTimelineUseCase( private val timelineRepository: TimelineRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagUseCase.kt index 96d24b05..b31fa6bf 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHashtagUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetHashtagUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHideAltTextButtonUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHideAltTextButtonUseCase.kt index 2a602991..7ffcd7ea 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHideAltTextButtonUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHideAltTextButtonUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.StorageRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetHideAltTextButtonUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHomeTimelineUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHomeTimelineUseCase.kt index f7da5419..b96cecc7 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHomeTimelineUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetHomeTimelineUseCase.kt @@ -7,7 +7,9 @@ import com.daniebeler.pfpixelix.domain.repository.TimelineRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetHomeTimelineUseCase( private val timelineRepository: TimelineRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetInstanceUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetInstanceUseCase.kt index 97ec3266..f4638f94 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetInstanceUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetInstanceUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Instance import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetInstanceUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLikedPostsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLikedPostsUseCase.kt index 8a8c6d6f..c5281323 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLikedPostsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLikedPostsUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.domain.model.LikedPostsWithNext import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetLikedPostsUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLocalTimelineUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLocalTimelineUseCase.kt index 51f11525..2e367138 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLocalTimelineUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetLocalTimelineUseCase.kt @@ -7,7 +7,9 @@ import com.daniebeler.pfpixelix.domain.repository.TimelineRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetLocalTimelineUseCase( private val timelineRepository: TimelineRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutedAccountsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutedAccountsUseCase.kt index f648363f..f52b87b1 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutedAccountsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutedAccountsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetMutedAccountsUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutualFollowersUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutualFollowersUseCase.kt index 15d9886c..ea1fcbe0 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutualFollowersUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetMutualFollowersUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetMutualFollowersUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetNotificationsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetNotificationsUseCase.kt index 9b120f0c..314e5c99 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetNotificationsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetNotificationsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Notification import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetNotificationsUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOngoingLoginUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOngoingLoginUseCase.kt index 99034589..6fc1d909 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOngoingLoginUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOngoingLoginUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class GetOngoingLoginUseCase constructor(private val authRepository: AuthRepository) { suspend operator fun invoke(): LoginData? { return authRepository.getOngoingLogin() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnAccountUseCase.kt index ed4da62e..0e9d7329 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnAccountUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetOwnAccountUseCase( private val currentLoginDataUseCase: GetCurrentLoginDataUseCase, private val accountRepository: AccountRepository diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnInstanceDomainUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnInstanceDomainUseCase.kt index 4261f2bf..1d08e0a3 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnInstanceDomainUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnInstanceDomainUseCase.kt @@ -1,7 +1,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class GetOwnInstanceDomainUseCase( private val repository: AuthRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnPostsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnPostsUseCase.kt index d11b93bf..47718d4e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnPostsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetOwnPostsUseCase.kt @@ -6,7 +6,9 @@ import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetOwnPostsUseCase( private val postRepository: PostRepository, private val currentLoginDataUseCase: GetCurrentLoginDataUseCase ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostUseCase.kt index c48a0c78..cbae28cb 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetPostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfAccountUseCase.kt index 7c6829a9..16db7679 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfAccountUseCase.kt @@ -8,7 +8,9 @@ import com.daniebeler.pfpixelix.domain.repository.PostRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetPostsOfAccountUseCase( private val postRepository: PostRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfCollectionUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfCollectionUseCase.kt index 79c704b7..177750fe 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfCollectionUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetPostsOfCollectionUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.domain.model.Collection import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetPostsOfCollectionUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelatedHashtagsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelatedHashtagsUseCase.kt index 04a11d1c..c31c7dbd 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelatedHashtagsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelatedHashtagsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.RelatedHashtag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetRelatedHashtagsUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelationshipsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelationshipsUseCase.kt index a12e75ac..371eda3c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelationshipsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRelationshipsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetRelationshipsUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRepliesUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRepliesUseCase.kt index bf015801..898ebc4d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRepliesUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetRepliesUseCase.kt @@ -7,7 +7,9 @@ import com.daniebeler.pfpixelix.domain.repository.CountryRepository import com.fleeksoft.ksoup.Ksoup import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetRepliesUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetSettingsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetSettingsUseCase.kt index 0cb9eaa1..636a5b28 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetSettingsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetSettingsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Settings import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetSettingsUseCase( private val repository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingAccountsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingAccountsUseCase.kt index 59e5b86e..62460df7 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingAccountsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingAccountsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetTrendingAccountsUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingHashtagsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingHashtagsUseCase.kt index 42718fae..a6a05826 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingHashtagsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingHashtagsUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetTrendingHashtagsUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingPostsUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingPostsUseCase.kt index 0740dc25..8042978d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingPostsUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetTrendingPostsUseCase.kt @@ -7,7 +7,9 @@ import com.daniebeler.pfpixelix.domain.repository.PostRepository import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideSensitiveContentPrefUtil import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetTrendingPostsUseCase( private val postRepository: PostRepository, private val context: Context diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetUseInAppBrowserUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetUseInAppBrowserUseCase.kt index 41eef4b5..3554216e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetUseInAppBrowserUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetUseInAppBrowserUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.StorageRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetUseInAppBrowserUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetViewUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetViewUseCase.kt index f411129e..1bf15f80 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetViewUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetViewUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.StorageRepository import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class GetViewUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetVolumeUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetVolumeUseCase.kt index 9e6cc6a2..7dc3d05e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetVolumeUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/GetVolumeUseCase.kt @@ -6,7 +6,9 @@ import com.daniebeler.pfpixelix.domain.repository.CountryRepository import com.daniebeler.pfpixelix.domain.repository.StorageRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetVolumeUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LikePostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LikePostUseCase.kt index 34cde0af..2ca6f415 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LikePostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LikePostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class LikePostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LogoutUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LogoutUseCase.kt index 8e414888..ec3ae252 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LogoutUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/LogoutUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.AuthRepository import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository +import me.tatarka.inject.annotations.Inject +@Inject class LogoutUseCase( private val authRepository: AuthRepository, private val savedSearchesRepository: SavedSearchesRepository diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/MuteAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/MuteAccountUseCase.kt index 74ee57d1..240042b3 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/MuteAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/MuteAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class MuteAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ObtainTokenUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ObtainTokenUseCase.kt index 3fabc926..f83042ca 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ObtainTokenUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ObtainTokenUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.AccessToken import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class ObtainTokenUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/OpenExternalUrlUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/OpenExternalUrlUseCase.kt index 0bf512a7..246b92f4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/OpenExternalUrlUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/OpenExternalUrlUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import android.content.Context import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.UseInAppBrowserPrefUtil import com.daniebeler.pfpixelix.utils.Navigate +import me.tatarka.inject.annotations.Inject +@Inject class OpenExternalUrlUseCase { operator fun invoke(url: String, context: Context) { val useInAppBrowser = UseInAppBrowserPrefUtil.isEnable(context) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ReblogPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ReblogPostUseCase.kt index e5c4ac8a..41410e17 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ReblogPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/ReblogPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class ReblogPostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemoveLoginDataUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemoveLoginDataUseCase.kt index 33e215c9..23123276 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemoveLoginDataUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemoveLoginDataUseCase.kt @@ -1,7 +1,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class RemoveLoginDataUseCase(private val authRepository: AuthRepository) { suspend operator fun invoke(accountId: String) { authRepository.removeLoginData(accountId) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemovePostOfCollectionUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemovePostOfCollectionUseCase.kt index 5a289dec..3ba47783 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemovePostOfCollectionUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/RemovePostOfCollectionUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class RemovePostOfCollectionUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchLocationUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchLocationUseCase.kt index 78bab49d..4ffdcbda 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchLocationUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchLocationUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Place import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class SearchLocationUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchUseCase.kt index 1534b452..059a2dc4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SearchUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Search import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class SearchUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SendMessageUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SendMessageUseCase.kt index a8c46407..f820c2e6 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SendMessageUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SendMessageUseCase.kt @@ -6,7 +6,9 @@ import com.daniebeler.pfpixelix.domain.model.Conversation import com.daniebeler.pfpixelix.domain.model.Message import com.daniebeler.pfpixelix.domain.repository.DirectMessagesRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class SendMessageUseCase( private val directMessagesRepository: DirectMessagesRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetViewUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetViewUseCase.kt index e853468e..76c22894 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetViewUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetViewUseCase.kt @@ -2,7 +2,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.StorageRepository import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum +import me.tatarka.inject.annotations.Inject +@Inject class SetViewUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetVolumeUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetVolumeUseCase.kt index 11355770..d3715af6 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetVolumeUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/SetVolumeUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.repository.StorageRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class SetVolumeUseCase( private val repository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/StoreThemeUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/StoreThemeUseCase.kt index a44e0a6e..bd4c5aad 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/StoreThemeUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/StoreThemeUseCase.kt @@ -1,7 +1,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.domain.repository.StorageRepository +import me.tatarka.inject.annotations.Inject +@Inject class StoreThemeUseCase( private val storageRepository: StorageRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnblockAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnblockAccountUseCase.kt index ac23ed92..c4d88c5f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnblockAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnblockAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnblockAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnbookmarkPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnbookmarkPostUseCase.kt index bf4add80..8eba372d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnbookmarkPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnbookmarkPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnbookmarkPostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowAccountUseCase.kt index 6578e48c..b468b8fc 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnfollowAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowHashtagUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowHashtagUseCase.kt index 0c7ad01f..e221be10 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowHashtagUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnfollowHashtagUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.repository.HashtagRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnfollowHashtagUseCase( private val hashtagRepository: HashtagRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnlikePostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnlikePostUseCase.kt index 2de7a1c3..c87c7a3d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnlikePostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnlikePostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnlikePostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnmuteAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnmuteAccountUseCase.kt index f62eb4ea..f77bbfd8 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnmuteAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnmuteAccountUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Relationship import com.daniebeler.pfpixelix.domain.repository.AccountRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnmuteAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnreblogPostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnreblogPostUseCase.kt index 431d6eab..bd874d04 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnreblogPostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UnreblogPostUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UnreblogPostUseCase( private val postRepository: PostRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateAccountUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateAccountUseCase.kt index 0b22c7da..50e9b0b1 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateAccountUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateAccountUseCase.kt @@ -12,8 +12,10 @@ import io.ktor.client.request.forms.formData import io.ktor.http.Headers import io.ktor.http.HttpHeaders import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UpdateAccountUseCase( private val accountRepository: AccountRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCollectionUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCollectionUseCase.kt index 58daa741..0f5e3cbc 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCollectionUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCollectionUseCase.kt @@ -4,8 +4,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Collection import com.daniebeler.pfpixelix.domain.repository.CollectionRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UpdateCollectionUseCase( private val collectionRepository: CollectionRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCurrentUserUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCurrentUserUseCase.kt index 415a7e4a..11eb15c8 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCurrentUserUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateCurrentUserUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class UpdateCurrentUserUseCase(private val authRepository: AuthRepository, private val hostSelectionInterceptorInterface: HostSelectionInterceptorInterface) { suspend operator fun invoke(newLoginData: LoginData) { hostSelectionInterceptorInterface.setHost(newLoginData.baseUrl) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateLoginDataUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateLoginDataUseCase.kt index 7ee8649b..a8e86a44 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateLoginDataUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateLoginDataUseCase.kt @@ -3,7 +3,9 @@ package com.daniebeler.pfpixelix.domain.usecase import com.daniebeler.pfpixelix.di.HostSelectionInterceptorInterface import com.daniebeler.pfpixelix.domain.model.LoginData import com.daniebeler.pfpixelix.domain.repository.AuthRepository +import me.tatarka.inject.annotations.Inject +@Inject class UpdateLoginDataUseCase constructor( private val authRepository: AuthRepository, private val hostSelectionInterceptorInterface: HostSelectionInterceptorInterface diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateMediaUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateMediaUseCase.kt index 91ae256d..950872e9 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateMediaUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdateMediaUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.MediaAttachment import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UpdateMediaUseCase( private val postEditorRepository: PostEditorRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdatePostUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdatePostUseCase.kt index 2b970d6e..25218495 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdatePostUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UpdatePostUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.data.remote.dto.UpdatePostDto import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UpdatePostUseCase( private val postEditorRepository: PostEditorRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UploadMediaUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UploadMediaUseCase.kt index bf65a30a..6b840738 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UploadMediaUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/UploadMediaUseCase.kt @@ -6,7 +6,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.MediaAttachment import com.daniebeler.pfpixelix.domain.repository.PostEditorRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class UploadMediaUseCase( private val postEditorRepository: PostEditorRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/VerifyTokenUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/VerifyTokenUseCase.kt index 6d74e9f7..f7ddf043 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/VerifyTokenUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/VerifyTokenUseCase.kt @@ -4,7 +4,9 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow +import me.tatarka.inject.annotations.Inject +@Inject class VerifyTokenUseCase( private val repository: CountryRepository ) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediServerUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediServerUseCase.kt index ecca6c3a..a1380f87 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediServerUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediServerUseCase.kt @@ -5,7 +5,9 @@ import com.daniebeler.pfpixelix.domain.model.nodeinfo.FediServer import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetFediServerUseCase(private val countryRepository: CountryRepository) { operator fun invoke(domain: String): Flow> { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediSoftwareUseCase.kt b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediSoftwareUseCase.kt index f95a5e9e..569dbf83 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediSoftwareUseCase.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/domain/usecase/nodeinfo/GetFediSoftwareUseCase.kt @@ -6,7 +6,9 @@ import com.daniebeler.pfpixelix.domain.model.nodeinfo.FediSoftware import com.daniebeler.pfpixelix.domain.repository.CountryRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow +import me.tatarka.inject.annotations.Inject +@Inject class GetFediSoftwareUseCase(private val countryRepository: CountryRepository) { operator fun invoke(domain: String): Flow> = flow { emit(Resource.Loading()) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginComposable.kt index 506e812c..8129b019 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginComposable.kt @@ -52,7 +52,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.utils.Navigate import com.daniebeler.pfpixelix.utils.imeAwareInsets @@ -65,7 +65,7 @@ import kotlinx.coroutines.launch fun LoginComposable( isLoading: Boolean, error: String, - viewModel: LoginViewModel = hiltViewModel(key = "login-viewmodel-key") + viewModel: LoginViewModel = injectViewModel(key = "login-viewmodel-key") { loginViewModel } ) { val systemUiController = rememberSystemUiController() systemUiController.setSystemBarsColor( diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginViewModel.kt index 05c7fd47..4ede7f44 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/LoginViewModel.kt @@ -11,10 +11,8 @@ import com.daniebeler.pfpixelix.domain.repository.CountryRepository import com.daniebeler.pfpixelix.domain.usecase.AddNewLoginUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdateLoginDataUseCase import com.daniebeler.pfpixelix.utils.Navigate -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class LoginViewModel @Inject constructor( private val repository: CountryRepository, private val newLoginDataUseCase: AddNewLoginUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionComposable.kt index 5ad3f916..c65d6dfc 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionComposable.kt @@ -47,7 +47,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.ButtonRowElement @@ -60,7 +60,7 @@ import com.daniebeler.pfpixelix.utils.Share fun CollectionComposable( navController: NavController, collectionId: String, - viewModel: CollectionViewModel = hiltViewModel(key = "collection-viewmodel-key") + viewModel: CollectionViewModel = injectViewModel(key = "collection-viewmodel-key") { collectionViewModel } ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionViewModel.kt index cd42a87f..91fed5a8 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/collection/CollectionViewModel.kt @@ -14,12 +14,10 @@ import com.daniebeler.pfpixelix.domain.usecase.GetPostsOfCollectionUseCase import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase import com.daniebeler.pfpixelix.domain.usecase.RemovePostOfCollectionUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdateCollectionUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class CollectionViewModel @Inject constructor( private val getCollectionUseCase: GetCollectionUseCase, private val getPostsOfCollectionUseCase: GetPostsOfCollectionUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccount.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccount.kt index 285f8f2f..78a96a9c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccount.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccount.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -40,7 +40,7 @@ fun CustomAccount( account: Account, relationship: Relationship?, navController: NavController, - viewModel: CustomAccountViewModel = hiltViewModel(key = "custom-account" + account.id) + viewModel: CustomAccountViewModel = injectViewModel(key = "custom-account" + account.id) { customAccountViewModel } ) { CustomAccountPrivate( account = account, @@ -68,7 +68,7 @@ fun CustomAccount( relationship: Relationship?, navController: NavController, removeSavedSearch: () -> Unit, - viewModel: CustomAccountViewModel = hiltViewModel(key = "custom-account" + account.id) + viewModel: CustomAccountViewModel = injectViewModel(key = "custom-account" + account.id) { customAccountViewModel } ) { CustomAccountPrivate( account = account, @@ -87,7 +87,7 @@ fun CustomAccount( relationship: Relationship?, onClick: () -> Unit, navController: NavController, - viewModel: CustomAccountViewModel = hiltViewModel(key = "custom-account" + account.id) + viewModel: CustomAccountViewModel = injectViewModel(key = "custom-account" + account.id) { customAccountViewModel } ) { CustomAccountPrivate( account = account, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccountViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccountViewModel.kt index 1d7ee400..c7763856 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccountViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/custom_account/CustomAccountViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.FollowAccountUseCase import com.daniebeler.pfpixelix.domain.usecase.UnfollowAccountUseCase import com.daniebeler.pfpixelix.ui.composables.profile.RelationshipState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class CustomAccountViewModel @Inject constructor( private val followAccountUseCase: FollowAccountUseCase, private val unfollowAccountUseCase: UnfollowAccountUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatComposable.kt index c3afe9e6..a7c13acd 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatComposable.kt @@ -53,7 +53,7 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -69,7 +69,7 @@ import com.daniebeler.pfpixelix.utils.imeAwareInsets fun ChatComposable( navController: NavController, accountId: String, - viewModel: ChatViewModel = hiltViewModel(key = "chat$accountId") + viewModel: ChatViewModel = injectViewModel(key = "chat$accountId") { chatViewModel } ) { val lazyListState = rememberLazyListState() val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatViewModel.kt index 2f9f5530..789f94b7 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/chat/ChatViewModel.kt @@ -11,12 +11,10 @@ import com.daniebeler.pfpixelix.domain.model.Message import com.daniebeler.pfpixelix.domain.usecase.DeleteMessageUseCase import com.daniebeler.pfpixelix.domain.usecase.GetChatUseCase import com.daniebeler.pfpixelix.domain.usecase.SendMessageUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class ChatViewModel @Inject constructor( private val getChatUseCase: GetChatUseCase, private val sendMessageUseCase: SendMessageUseCase, private val deleteMessageUseCase: DeleteMessageUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsComposable.kt index 243a95ef..c828dbc2 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsComposable.kt @@ -50,7 +50,7 @@ import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfiniteListHandler @@ -66,7 +66,7 @@ import com.daniebeler.pfpixelix.utils.Navigate @Composable fun ConversationsComposable( navController: NavController, - viewModel: ConversationsViewModel = hiltViewModel(key = "conversations-viewmodel-key") + viewModel: ConversationsViewModel = injectViewModel(key = "conversations-viewmodel-key") { conversationsViewModel } ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsViewModel.kt index 383eab52..42777171 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/direct_messages/conversations/ConversationsViewModel.kt @@ -10,12 +10,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.usecase.GetConversationsUseCase import com.daniebeler.pfpixelix.domain.usecase.SearchUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class ConversationsViewModel @Inject constructor( private val getConversationsUseCase: GetConversationsUseCase, private val searchUseCase: SearchUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostComposable.kt index e0bf926c..a18a4afe 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostComposable.kt @@ -58,7 +58,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import coil.decode.VideoFrameDecoder @@ -74,7 +74,7 @@ import com.daniebeler.pfpixelix.ui.composables.textfield_mentions.TextFieldMenti @OptIn(ExperimentalMaterial3Api::class, ExperimentalGlideComposeApi::class) @Composable fun EditPostComposable( - postId: String, navController: NavController, viewModel: EditPostViewModel = hiltViewModel() + postId: String, navController: NavController, viewModel: EditPostViewModel = injectViewModel("editPostViewModel") { editPostViewModel } ) { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostViewModel.kt index bff2a2db..9cda4f6f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_post/EditPostViewModel.kt @@ -16,15 +16,13 @@ import com.daniebeler.pfpixelix.domain.model.Place import com.daniebeler.pfpixelix.domain.usecase.GetPostUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdateMediaUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdatePostUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class EditPostViewModel @Inject constructor( private val getPostUseCase: GetPostUseCase, private val updatePostUseCase: UpdatePostUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileComposable.kt index dcfd7cad..476527b9 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileComposable.kt @@ -50,7 +50,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.canhub.cropper.CropImageContract @@ -63,7 +63,7 @@ import com.daniebeler.pfpixelix.R @Composable fun EditProfileComposable( navController: NavController, - viewModel: EditProfileViewModel = hiltViewModel(key = "edit-profile-viewmodel-key") + viewModel: EditProfileViewModel = injectViewModel(key = "edit-profile-viewmodel-key") { editProfileViewModel } ) { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileViewModel.kt index 62ff0539..b339b56d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/edit_profile/EditProfileViewModel.kt @@ -11,12 +11,10 @@ import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetOwnAccountUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdateAccountUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class EditProfileViewModel @Inject constructor( private val getOwnAccountUseCase: GetOwnAccountUseCase, private val updateAccountUseCase: UpdateAccountUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreComposable.kt index 5b91c635..4d923b5c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreComposable.kt @@ -63,7 +63,7 @@ import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.traversalIndex import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -82,7 +82,7 @@ import kotlinx.coroutines.launch @Composable fun ExploreComposable( navController: NavController, - viewModel: ExploreViewModel = hiltViewModel(key = "search-viewmodel-key") + viewModel: ExploreViewModel = injectViewModel(key = "search-viewmodel-key") { exploreViewModel } ) { val context: Context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreViewModel.kt index a16329d8..5e740311 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/ExploreViewModel.kt @@ -12,15 +12,13 @@ import com.daniebeler.pfpixelix.domain.model.SavedSearchType import com.daniebeler.pfpixelix.domain.model.SavedSearches import com.daniebeler.pfpixelix.domain.repository.SavedSearchesRepository import com.daniebeler.pfpixelix.domain.usecase.SearchUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class ExploreViewModel @Inject constructor( private val searchUseCase: SearchUseCase, private val savedSearchesRepository: SavedSearchesRepository diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElement.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElement.kt index 6cee46ef..a59f7e16 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElement.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElement.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.ui.composables.CustomPost @@ -27,7 +27,7 @@ import com.daniebeler.pfpixelix.utils.Navigate fun TrendingAccountElement( account: Account, navController: NavController, - viewModel: TrendingAccountElementViewModel = hiltViewModel(key = account.id) + viewModel: TrendingAccountElementViewModel = injectViewModel(key = account.id) { trendingAccountElementViewModel } ) { val context = LocalContext.current LaunchedEffect(account) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElementViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElementViewModel.kt index 5bcfe610..a0a71aac 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElementViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountElementViewModel.kt @@ -9,12 +9,10 @@ import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetPostsOfAccountUseCase import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TrendingAccountElementViewModel @Inject constructor( private val getAccountPosts: GetPostsOfAccountUseCase, private val openExternalUrlUseCase: OpenExternalUrlUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsComposable.kt index c879bc73..ec51ac42 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsComposable.kt @@ -10,7 +10,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -22,7 +22,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.FullscreenLoadingComposabl @Composable fun TrendingAccountsComposable( navController: NavController, - viewModel: TrendingAccountsViewModel = hiltViewModel(key = "trending-accounts-key") + viewModel: TrendingAccountsViewModel = injectViewModel(key = "trending-accounts-key") { trendingAccountsViewModel } ) { PullToRefreshBox( isRefreshing = viewModel.trendingAccountsState.isRefreshing, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsViewModel.kt index f3052c69..21c35785 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_accounts/TrendingAccountsViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.usecase.GetRelationshipsUseCase import com.daniebeler.pfpixelix.domain.usecase.GetTrendingAccountsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TrendingAccountsViewModel @Inject constructor( private val getRelationshipsUseCase: GetRelationshipsUseCase, private val getTrendingAccountsUseCase: GetTrendingAccountsUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElement.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElement.kt index 69a6cdf5..cbbb0d8e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElement.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElement.kt @@ -26,7 +26,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.domain.model.Tag @@ -38,7 +38,7 @@ import java.util.Locale fun TrendingHashtagElement( hashtag: Tag, navController: NavController, - viewModel: TrendingHashtagElementViewModel = hiltViewModel(key = "the" + hashtag.name) + viewModel: TrendingHashtagElementViewModel = injectViewModel(key = "the" + hashtag.name) { trendingHashtagElementViewModel } ) { LaunchedEffect(hashtag) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElementViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElementViewModel.kt index d43208e9..e384b98e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElementViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagElementViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetHashtagTimelineUseCase import com.daniebeler.pfpixelix.domain.usecase.GetHashtagUseCase import com.daniebeler.pfpixelix.ui.composables.timelines.hashtag_timeline.HashtagState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TrendingHashtagElementViewModel @Inject constructor( private val getHashtagTimelineUseCase: GetHashtagTimelineUseCase, private val getHashtagUseCase: GetHashtagUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsComposable.kt index 30b67ff1..05e96f4e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsComposable.kt @@ -9,7 +9,7 @@ import androidx.compose.material3.pulltorefresh.PullToRefreshBox import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -21,7 +21,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.FullscreenLoadingComposabl @Composable fun TrendingHashtagsComposable( navController: NavController, - viewModel: TrendingHashtagsViewModel = hiltViewModel(key = "trending-hashtags-key") + viewModel: TrendingHashtagsViewModel = injectViewModel(key = "trending-hashtags-key") { trendingHashtagsViewModel } ) { PullToRefreshBox( isRefreshing = viewModel.trendingHashtagsState.isRefreshing, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsViewModel.kt index f1123266..fa21819f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_hashtags/TrendingHashtagsViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetTrendingHashtagsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TrendingHashtagsViewModel @Inject constructor( private val getTrendingHashtagsUseCase: GetTrendingHashtagsUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsComposable.kt index 26d9aff9..a040a29a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsComposable.kt @@ -6,7 +6,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfinitePostsGrid @@ -16,7 +16,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.EmptyState fun TrendingPostsComposable( range: String, navController: NavController, - viewModel: TrendingPostsViewModel = hiltViewModel(key = "trending-posts") + viewModel: TrendingPostsViewModel = injectViewModel(key = "trending-posts") { trendingPostsViewModel } ) { DisposableEffect(range) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsViewModel.kt index bd88d4d9..13721141 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/explore/trending/trending_posts/TrendingPostsViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetTrendingPostsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TrendingPostsViewModel @Inject constructor( private val getTrendingPostsUseCase: GetTrendingPostsUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersComposable.kt index a15638e9..6125454b 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersComposable.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfiniteListHandler @@ -29,7 +29,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.LoadingComposable @Composable fun FollowersComposable( navController: NavController, - viewModel: FollowersViewModel = hiltViewModel(key = "followers-viewmodel-key") + viewModel: FollowersViewModel = injectViewModel(key = "followers-viewmodel-key") { followersViewModel } ) { val lazyListState = rememberLazyListState() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersMainComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersMainComposable.kt index ae19d54c..68a5f0df 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersMainComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersMainComposable.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import kotlinx.coroutines.launch @@ -47,7 +47,7 @@ fun FollowersMainComposable( navController: NavController, accountId: String, page: String, - viewModel: FollowersViewModel = hiltViewModel(key = "followers-viewmodel-key") + viewModel: FollowersViewModel = injectViewModel(key = "followers-viewmodel-key") { followersViewModel } ) { LaunchedEffect(Unit) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersViewModel.kt index 2371e948..3e82b090 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowersViewModel.kt @@ -10,12 +10,10 @@ import com.daniebeler.pfpixelix.domain.usecase.GetAccountUseCase import com.daniebeler.pfpixelix.domain.usecase.GetAccountsFollowersUseCase import com.daniebeler.pfpixelix.domain.usecase.GetAccountsFollowingUseCase import com.daniebeler.pfpixelix.ui.composables.profile.AccountState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class FollowersViewModel @Inject constructor( private val getAccountsFollowingUseCase: GetAccountsFollowingUseCase, private val getAccountsFollowersUseCase: GetAccountsFollowersUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowingComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowingComposable.kt index ca93b0d5..aba4c72c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowingComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/followers/FollowingComposable.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfiniteListHandler @@ -30,7 +30,7 @@ import com.daniebeler.pfpixelix.utils.Navigate @Composable fun FollowingComposable( navController: NavController, - viewModel: FollowersViewModel = hiltViewModel(key = "followers-viewmodel-key") + viewModel: FollowersViewModel = injectViewModel(key = "followers-viewmodel-key") { followersViewModel } ) { val lazyListState = rememberLazyListState() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsComposable.kt index f62fd861..73d28d61 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsComposable.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.TextUnit -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.utils.Navigate @@ -39,7 +39,7 @@ fun HashtagsMentionsTextView( openUrl: (url: String) -> Unit, textSize: TextUnit? = null, maximumLines: Int = Int.MAX_VALUE, - viewModel: TextWithClickableHashtagsAndMentionsViewModel = hiltViewModel(key = "hashtags-mentions-tv$text") + viewModel: TextWithClickableHashtagsAndMentionsViewModel = injectViewModel(key = "hashtags-mentions-tv$text") { textWithClickableHashtagsAndMentionsViewModel } ) { var expanded by remember { mutableStateOf(false) } val maxLines = if (expanded) Int.MAX_VALUE else maximumLines diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsViewModel.kt index 92e5f026..2fdde6c4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/hashtagMentionText/TextWithClickableHashtagsAndMentionsViewModel.kt @@ -2,10 +2,8 @@ package com.daniebeler.pfpixelix.ui.composables.hashtagMentionText import androidx.lifecycle.ViewModel import com.daniebeler.pfpixelix.domain.usecase.GetCurrentLoginDataUseCase -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TextWithClickableHashtagsAndMentionsViewModel @Inject constructor( private val currentLoginDataUseCase: GetCurrentLoginDataUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionComposable.kt index 750ba61a..bcc97ed3 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionComposable.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.domain.model.Post @@ -56,7 +56,7 @@ import kotlinx.coroutines.launch fun MentionComposable( mentionId: String, navController: NavController, - viewModel: MentionViewModel = hiltViewModel(key = "mention$mentionId") + viewModel: MentionViewModel = injectViewModel(key = "mention$mentionId") { mentionViewModel } ) { val lazyListState = rememberLazyListState() val coroutineScope = rememberCoroutineScope() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionViewModel.kt index 34fec41a..1dc645b0 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/mention/MentionViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetPostUseCase import com.daniebeler.pfpixelix.domain.usecase.GetRepliesUseCase import com.daniebeler.pfpixelix.ui.composables.single_post.SinglePostState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class MentionViewModel @Inject constructor( private val getPostUseCase: GetPostUseCase, private val getRepliesUseCase: GetRepliesUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostComposable.kt index 928ba073..fbc2c7e6 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostComposable.kt @@ -60,7 +60,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import coil.decode.VideoFrameDecoder @@ -84,7 +84,7 @@ import com.daniebeler.pfpixelix.utils.imeAwareInsets fun NewPostComposable( navController: NavController, uris: List? = null, - viewModel: NewPostViewModel = hiltViewModel(key = "new-post-viewmodel-key") + viewModel: NewPostViewModel = injectViewModel(key = "new-post-viewmodel-key") { newPostViewModel } ) { val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostViewModel.kt index daff4bd7..d17065ac 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/newpost/NewPostViewModel.kt @@ -22,15 +22,13 @@ import com.daniebeler.pfpixelix.domain.usecase.UploadMediaUseCase import com.daniebeler.pfpixelix.utils.GetFile import com.daniebeler.pfpixelix.utils.MimeType import com.daniebeler.pfpixelix.utils.Navigate -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class NewPostViewModel @Inject constructor( private val uploadMediaUseCase: UploadMediaUseCase, private val updateMediaUseCase: UpdateMediaUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotification.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotification.kt index b0662640..e5132520 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotification.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotification.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -36,7 +36,7 @@ import com.daniebeler.pfpixelix.utils.Navigate fun CustomNotification( notification: Notification, navController: NavController, - viewModel: CustomNotificationViewModel = hiltViewModel(key = "custom-notification-viewmodel-key${notification.id}") + viewModel: CustomNotificationViewModel = injectViewModel(key = "custom-notification-viewmodel-key${notification.id}") { customNotificationViewModel } ) { var showImage = false var text = "" diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotificationViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotificationViewModel.kt index c3f15999..71225c8a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotificationViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/CustomNotificationViewModel.kt @@ -8,12 +8,10 @@ import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Post import com.daniebeler.pfpixelix.domain.usecase.GetPostUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class CustomNotificationViewModel @Inject constructor( private val getPostUseCase: GetPostUseCase ): ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsComposable.kt index 05d7744c..befa2b0f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsComposable.kt @@ -46,7 +46,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfiniteListHandler @@ -61,7 +61,7 @@ import com.daniebeler.pfpixelix.widget.notifications.NotificationWidgetReceiver @Composable fun NotificationsComposable( navController: NavController, - viewModel: NotificationsViewModel = hiltViewModel(key = "notifications-viewmodel-key") + viewModel: NotificationsViewModel = injectViewModel(key = "notifications-viewmodel-key") { notificationsViewModel } ) { val lazyListState = rememberLazyListState() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsViewModel.kt index 4996f10d..583aca70 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/notifications/NotificationsViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetNotificationsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class NotificationsViewModel @Inject constructor( private val getNotificationsUseCase: GetNotificationsUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/CommentsBottomSheet.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/CommentsBottomSheet.kt index ddf82e92..efc4159a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/CommentsBottomSheet.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/CommentsBottomSheet.kt @@ -57,7 +57,7 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -230,7 +230,7 @@ private fun ReplyElement( deleteReply: () -> Unit, myAccountId: String?, openUrl: (url: String) -> Unit, - viewModel: ReplyElementViewModel = hiltViewModel(key = reply.id) + viewModel: ReplyElementViewModel = injectViewModel(key = reply.id) { replyElementViewModel } ) { var timeAgo: String by remember { mutableStateOf("") } diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostComposable.kt index ce0475f9..56b7c35f 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostComposable.kt @@ -85,7 +85,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.zIndex -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner @@ -128,7 +128,7 @@ fun PostComposable( openReplies: Boolean = false, showReplies: Boolean = true, modifier: Modifier = Modifier, - viewModel: PostViewModel = hiltViewModel(key = "post" + post.id) + viewModel: PostViewModel = injectViewModel(key = "post" + post.id) { postViewModel } ) { val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostViewModel.kt index 4b9076b6..ecea3250 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/PostViewModel.kt @@ -38,8 +38,6 @@ import com.daniebeler.pfpixelix.ui.composables.post.reply.RepliesState import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.FocusModePrefUtil import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.HideAltTextButtonPrefUtil import com.daniebeler.pfpixelix.utils.TimeAgo -import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.cancel @@ -51,12 +49,11 @@ import java.io.FileNotFoundException import java.text.SimpleDateFormat import java.util.Date import java.util.Locale -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class PostViewModel @Inject constructor( - @ApplicationContext context: Context, + context: Context, private val getRepliesUseCase: GetRepliesUseCase, private val createReplyUseCase: CreateReplyUseCase, private val likePostUseCase: LikePostUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/reply/ReplyElementViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/reply/ReplyElementViewModel.kt index f34ce621..b17db26d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/reply/ReplyElementViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/post/reply/ReplyElementViewModel.kt @@ -12,12 +12,10 @@ import com.daniebeler.pfpixelix.domain.usecase.DeletePostUseCase import com.daniebeler.pfpixelix.domain.usecase.GetRepliesUseCase import com.daniebeler.pfpixelix.domain.usecase.LikePostUseCase import com.daniebeler.pfpixelix.domain.usecase.UnlikePostUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class ReplyElementViewModel @Inject constructor( private val getRepliesUseCase: GetRepliesUseCase, private val createReplyUseCase: CreateReplyUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileComposable.kt index c323f9e6..a30750f6 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileComposable.kt @@ -58,7 +58,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -82,7 +82,7 @@ fun OtherProfileComposable( navController: NavController, userId: String, byUsername: String?, - viewModel: OtherProfileViewModel = hiltViewModel(key = "other-profile$userId$byUsername") + viewModel: OtherProfileViewModel = injectViewModel(key = "other-profile$userId$byUsername") { otherProfileViewModel } ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileViewModel.kt index 5ac8b433..0d3b4cd3 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/other_profile/OtherProfileViewModel.kt @@ -32,13 +32,11 @@ import com.daniebeler.pfpixelix.ui.composables.profile.MutualFollowersState import com.daniebeler.pfpixelix.ui.composables.profile.PostsState import com.daniebeler.pfpixelix.ui.composables.profile.RelationshipState import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class OtherProfileViewModel @Inject constructor( private val getAccountUseCase: GetAccountUseCase, private val getAccountByUsernameUseCase: GetAccountByUsernameUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchBottomSheet.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchBottomSheet.kt index 7084a4e9..9b8e01d1 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchBottomSheet.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchBottomSheet.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.domain.model.loginDataToAccount import com.daniebeler.pfpixelix.gotoLoginActivity @@ -43,7 +43,7 @@ import kotlinx.coroutines.launch fun AccountSwitchBottomSheet( closeBottomSheet: () -> Unit, ownProfileViewModel: OwnProfileViewModel?, - viewModel: AccountSwitchViewModel = hiltViewModel(key = "account_switcher_viewmodel") + viewModel: AccountSwitchViewModel = injectViewModel(key = "account_switcher_viewmodel") { accountSwitchViewModel } ) { val context = LocalContext.current val showRemoveLoginDataAlert = remember { mutableStateOf("") } diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchViewModel.kt index 56278bf3..41099008 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/AccountSwitchViewModel.kt @@ -10,11 +10,9 @@ import com.daniebeler.pfpixelix.domain.usecase.GetAuthDataUseCase import com.daniebeler.pfpixelix.domain.usecase.RemoveLoginDataUseCase import com.daniebeler.pfpixelix.domain.usecase.UpdateCurrentUserUseCase import com.daniebeler.pfpixelix.utils.Navigate -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class AccountSwitchViewModel @Inject constructor( private val getAuthDataUseCase: GetAuthDataUseCase, private val updateCurrentUserUseCase: UpdateCurrentUserUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileComposable.kt index ff01c136..b28b7bac 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileComposable.kt @@ -45,7 +45,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfiniteListHandler @@ -63,7 +63,7 @@ import com.daniebeler.pfpixelix.utils.Navigate fun OwnProfileComposable( navController: NavController, openPreferencesDrawer: () -> Unit, - viewModel: OwnProfileViewModel = hiltViewModel(key = "own-profile-key") + viewModel: OwnProfileViewModel = injectViewModel(key = "own-profile-key") { ownProfileViewModel } ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileViewModel.kt index 266ef4c1..f82cca1b 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/own_profile/OwnProfileViewModel.kt @@ -25,13 +25,11 @@ import com.daniebeler.pfpixelix.ui.composables.profile.CollectionsState import com.daniebeler.pfpixelix.ui.composables.profile.DomainSoftwareState import com.daniebeler.pfpixelix.ui.composables.profile.PostsState import com.daniebeler.pfpixelix.ui.composables.profile.ViewEnum -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class OwnProfileViewModel @Inject constructor( private val getOwnAccountUseCase: GetOwnAccountUseCase, private val getOwnPostsUseCase: GetOwnPostsUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsComposable.kt index e235b959..597f015d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsComposable.kt @@ -41,14 +41,14 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import com.daniebeler.pfpixelix.R import java.util.Locale @OptIn(ExperimentalMaterial3Api::class) @Composable fun DomainSoftwareComposable( - domain: String, viewModel: ServerStatsViewModel = hiltViewModel(key = "serverstats$domain") + domain: String, viewModel: ServerStatsViewModel = injectViewModel(key = "serverstats$domain") { serverStatsViewModel } ) { val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsViewModel.kt index 9dd2ca25..349b24c9 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/profile/server_stats/ServerStatsViewModel.kt @@ -11,13 +11,11 @@ import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase import com.daniebeler.pfpixelix.domain.usecase.nodeinfo.GetFediServerUseCase import com.daniebeler.pfpixelix.domain.usecase.nodeinfo.GetFediSoftwareUseCase import com.daniebeler.pfpixelix.ui.composables.profile.DomainSoftwareState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import java.util.Locale -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class ServerStatsViewModel @Inject constructor( private val openExternalUrlUseCase: OpenExternalUrlUseCase, private val getFediServerUseCase: GetFediServerUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceComposable.kt index c946cc6f..e1160858 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceComposable.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import coil.compose.AsyncImage import com.daniebeler.pfpixelix.R @@ -49,7 +49,7 @@ import java.util.Locale @Composable fun AboutInstanceComposable( navController: NavController, - viewModel: AboutInstanceViewModel = hiltViewModel(key = "about-instance-key") + viewModel: AboutInstanceViewModel = injectViewModel(key = "about-instance-key") { aboutInstanceViewModel } ) { val lazyListState = rememberLazyListState() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceViewModel.kt index a5e77b18..1a11a082 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_instance/AboutInstanceViewModel.kt @@ -10,13 +10,11 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetInstanceUseCase import com.daniebeler.pfpixelix.domain.usecase.GetOwnInstanceDomainUseCase import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class AboutInstanceViewModel @Inject constructor( private val getInstanceUseCase: GetInstanceUseCase, private val getOwnInstanceDomainUseCase: GetOwnInstanceDomainUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixComposable.kt index f82474c6..72ea8729 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixComposable.kt @@ -44,7 +44,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.ButtonRowElement @@ -54,7 +54,7 @@ import com.daniebeler.pfpixelix.utils.Navigate @Composable fun AboutPixelixComposable( navController: NavController, - viewModel: AboutPixelixViewModel = hiltViewModel(key = "about-pixelix-viewmodel-key") + viewModel: AboutPixelixViewModel = injectViewModel(key = "about-pixelix-viewmodel-key") { aboutPixelixViewModel } ) { val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixViewModel.kt index 32219f4e..b5c103f7 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/about_pixelix/AboutPixelixViewModel.kt @@ -9,10 +9,8 @@ import androidx.compose.ui.graphics.ImageBitmap import androidx.lifecycle.ViewModel import com.daniebeler.pfpixelix.domain.usecase.GetActiveAppIconUseCase import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class AboutPixelixViewModel @Inject constructor( private val openExternalUrlUseCase: OpenExternalUrlUseCase, private val getActiveAppIconUseCase: GetActiveAppIconUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsComposable.kt index 26d97eea..c173e22d 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsComposable.kt @@ -26,7 +26,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -38,7 +38,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.FullscreenLoadingComposabl @Composable fun BlockedAccountsComposable( navController: NavController, - viewModel: BlockedAccountsViewModel = hiltViewModel(key = "blocked-accounts-key") + viewModel: BlockedAccountsViewModel = injectViewModel(key = "blocked-accounts-key") { blockedAccountsViewModel } ) { Scaffold(contentWindowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), topBar = { CenterAlignedTopAppBar(title = { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsViewModel.kt index a87988b8..ce05af2c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/blocked_accounts/BlockedAccountsViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.usecase.GetBlockedAccountsUseCase import com.daniebeler.pfpixelix.domain.usecase.UnblockAccountUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class BlockedAccountsViewModel @Inject constructor( private val getBlockedAccountsUseCase: GetBlockedAccountsUseCase, private val unblockAccountUseCase: UnblockAccountUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsComposable.kt index 3111e3f3..8c3ce392 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsComposable.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfinitePostsGrid @@ -31,7 +31,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @Composable fun BookmarkedPostsComposable( navController: NavController, - viewModel: BookmarkedPostsViewModel = hiltViewModel(key = "bookmarksviewmodel") + viewModel: BookmarkedPostsViewModel = injectViewModel(key = "bookmarksviewmodel") { bookmarkedPostsViewModel } ) { Scaffold(contentWindowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), topBar = { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsViewModel.kt index f72341a9..194a7a82 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/bookmarked_posts/BookmarkedPostsViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetBookmarkedPostsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class BookmarkedPostsViewModel @Inject constructor( private val getBookmarkedPostsUseCase: GetBookmarkedPostsUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsComposable.kt index e0df7cac..326b9222 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsComposable.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.CustomHashtag @@ -41,7 +41,7 @@ import com.daniebeler.pfpixelix.utils.Navigate @Composable fun FollowedHashtagsComposable( navController: NavController, - viewModel: FollowedHashtagsViewModel = hiltViewModel(key = "followed-hashtags-key") + viewModel: FollowedHashtagsViewModel = injectViewModel(key = "followed-hashtags-key") { followedHashtagsViewModel } ) { Scaffold(contentWindowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), topBar = { CenterAlignedTopAppBar(title = { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsViewModel.kt index 3900ba81..3d32f651 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/followed_hashtags/FollowedHashtagsViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Tag import com.daniebeler.pfpixelix.domain.usecase.GetFollowedHashtagsUseCase import com.daniebeler.pfpixelix.domain.usecase.GetHashtagUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class FollowedHashtagsViewModel @Inject constructor( private val getFollowedHashtagsUseCase: GetFollowedHashtagsUseCase, private val getHashtagUseCase: GetHashtagUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionComposable.kt index 92b8a995..9155dca4 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionComposable.kt @@ -46,7 +46,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R @@ -55,7 +55,7 @@ import com.daniebeler.pfpixelix.R @Composable fun IconSelectionComposable( navController: NavController, - viewModel: IconSelectionViewModel = hiltViewModel(key = "iconselectionvm") + viewModel: IconSelectionViewModel = injectViewModel(key = "iconselectionvm") { iconSelectionViewModel } ) { val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionViewModel.kt index c1d42917..09f3188a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/icon_selection/IconSelectionViewModel.kt @@ -13,10 +13,8 @@ import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.common.IconsHolder import com.daniebeler.pfpixelix.domain.usecase.DisableAllCustomAppIconsUseCase import com.daniebeler.pfpixelix.domain.usecase.EnableCustomAppIconUseCase -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class IconSelectionViewModel @Inject constructor( private val disableAllCustomAppIconsUseCase: DisableAllCustomAppIconsUseCase, private val enableCustomAppIconUseCase: EnableCustomAppIconUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsComposable.kt index c50a05e9..493d0899 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsComposable.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfinitePostsGrid @@ -32,7 +32,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @Composable fun LikedPostsComposable( navController: NavController, - viewModel: LikedPostsViewModel = hiltViewModel(key = "likey-posts-key") + viewModel: LikedPostsViewModel = injectViewModel(key = "likey-posts-key") { likedPostsViewModel } ) { Scaffold(contentWindowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), topBar = { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsViewModel.kt index 3c41bd3c..4075010a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/liked_posts/LikedPostsViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetLikedPostsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class LikedPostsViewModel @Inject constructor( private val getLikedPostsUseCase: GetLikedPostsUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsComposable.kt index 787d1457..1497d245 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsComposable.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -37,7 +37,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.FullscreenLoadingComposabl @Composable fun MutedAccountsComposable( navController: NavController, - viewModel: MutedAccountsViewModel = hiltViewModel(key = "muted-accounts-key") + viewModel: MutedAccountsViewModel = injectViewModel(key = "muted-accounts-key") { mutedAccountsViewModel } ) { Scaffold(contentWindowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), topBar = { CenterAlignedTopAppBar(title = { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsViewModel.kt index 815a75c0..b37d2e83 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/muted_accounts/MutedAccountsViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Account import com.daniebeler.pfpixelix.domain.usecase.GetMutedAccountsUseCase import com.daniebeler.pfpixelix.domain.usecase.UnmuteAccountUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class MutedAccountsViewModel @Inject constructor( private val getMutedAccountsUseCase: GetMutedAccountsUseCase, private val unmuteAccountUseCase: UnmuteAccountUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesComposable.kt index 6e910653..62a5295e 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesComposable.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.ClearCachePref @@ -50,7 +50,7 @@ import com.daniebeler.pfpixelix.ui.composables.settings.preferences.prefs.UseInA fun PreferencesComposable( navController: NavController, closePreferencesDrawer: () -> Unit, - viewModel: PreferencesViewModel = hiltViewModel(key = "preferences-viewmodel-key") + viewModel: PreferencesViewModel = injectViewModel(key = "preferences-viewmodel-key") { preferencesViewModel } ) { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() val context = LocalContext.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesViewModel.kt index 51a484e8..155fc9fb 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/settings/preferences/PreferencesViewModel.kt @@ -12,11 +12,9 @@ import com.daniebeler.pfpixelix.domain.usecase.GetActiveAppIconUseCase import com.daniebeler.pfpixelix.domain.usecase.GetOwnInstanceDomainUseCase import com.daniebeler.pfpixelix.domain.usecase.LogoutUseCase import com.daniebeler.pfpixelix.domain.usecase.OpenExternalUrlUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class PreferencesViewModel @Inject constructor( private val logoutUseCase: LogoutUseCase, private val getOwnInstanceDomainUseCase: GetOwnInstanceDomainUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostComposable.kt index 3a2aa14f..87833acd 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostComposable.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.post.PostComposable @@ -42,7 +42,7 @@ fun SinglePostComposable( postId: String, refresh: Boolean, openReplies: Boolean, - viewModel: SinglePostViewModel = hiltViewModel(key = "single-post$postId") + viewModel: SinglePostViewModel = injectViewModel(key = "single-post$postId") { singlePostViewModel } ) { val scrollState = rememberScrollState() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostViewModel.kt index 9dde81fd..139cdc9c 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/single_post/SinglePostViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetPostUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class SinglePostViewModel @Inject constructor( private val getPostUseCase: GetPostUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsComposable.kt index d1ef923e..4c02ac7a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsComposable.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import com.daniebeler.pfpixelix.domain.model.Place @Composable @@ -46,7 +46,7 @@ fun TextFieldLocationsComposable( modifier: Modifier?, imeAction: ImeAction, suggestionsBoxColor: Color, - viewModel: TextFieldLocationsViewModel = hiltViewModel() + viewModel: TextFieldLocationsViewModel = injectViewModel("textFieldLocationsViewModel") { textFieldLocationsViewModel } ) { LaunchedEffect(initialValue) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsViewModel.kt index 760e1ac8..7b44fc11 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_location/TextFieldLocationsViewModel.kt @@ -9,12 +9,10 @@ import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Place import com.daniebeler.pfpixelix.domain.usecase.SearchLocationUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TextFieldLocationsViewModel @Inject constructor( private val searchLocationUseCase: SearchLocationUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsComposable.kt index 22d368d6..7a718a06 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsComposable.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.getTextAfterSelection import androidx.compose.ui.text.input.getTextBeforeSelection import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import com.daniebeler.pfpixelix.R import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -48,7 +48,7 @@ fun TextFieldMentionsComposable( modifier: Modifier?, imeAction: ImeAction, suggestionsBoxColor: Color, - viewModel: TextFieldMentionsViewModel = hiltViewModel() + viewModel: TextFieldMentionsViewModel = injectViewModel("textFieldMentionsViewModel") { textFieldMentionsViewModel } ) { val keyboardController = LocalSoftwareKeyboardController.current diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsViewModel.kt index 83e633ec..e9cf2956 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/textfield_mentions/TextFieldMentionsViewModel.kt @@ -11,12 +11,10 @@ import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.SearchUseCase import com.daniebeler.pfpixelix.ui.composables.post.MentionSuggestionsState -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class TextFieldMentionsViewModel @Inject constructor( private val searchUseCase: SearchUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineComposable.kt index babfc3b5..2ce1a362 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineComposable.kt @@ -1,7 +1,7 @@ package com.daniebeler.pfpixelix.ui.composables.timelines.global_timeline import androidx.compose.runtime.Composable -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.ui.composables.InfinitePostsList import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -9,7 +9,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @Composable fun GlobalTimelineComposable( navController: NavController, - viewModel: GlobalTimelineViewModel = hiltViewModel(key = "global-timeline-key") + viewModel: GlobalTimelineViewModel = injectViewModel(key = "global-timeline-key") { globalTimelineViewModel } ) { InfinitePostsList(items = viewModel.globalTimelineState.globalTimeline, isLoading = viewModel.globalTimelineState.isLoading, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineViewModel.kt index 122b33e6..6f70efe2 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/global_timeline/GlobalTimelineViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetGlobalTimelineUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class GlobalTimelineViewModel @Inject constructor( private val getGlobalTimelineUseCase: GetGlobalTimelineUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineComposable.kt index fa2c16b0..a2897b54 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineComposable.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.FollowButton @@ -49,7 +49,7 @@ import java.util.Locale fun HashtagTimelineComposable( navController: NavController, hashtag: String, - viewModel: HashtagTimelineViewModel = hiltViewModel(key = "hashtag-timeline$hashtag") + viewModel: HashtagTimelineViewModel = injectViewModel(key = "hashtag-timeline$hashtag") { hashtagTimelineViewModel } ) { LaunchedEffect(hashtag) { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineViewModel.kt index 4953d44b..2256f669 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/hashtag_timeline/HashtagTimelineViewModel.kt @@ -14,12 +14,10 @@ import com.daniebeler.pfpixelix.domain.usecase.GetHashtagTimelineUseCase import com.daniebeler.pfpixelix.domain.usecase.GetHashtagUseCase import com.daniebeler.pfpixelix.domain.usecase.GetRelatedHashtagsUseCase import com.daniebeler.pfpixelix.domain.usecase.UnfollowHashtagUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class HashtagTimelineViewModel @Inject constructor( private val getHashtagUseCase: GetHashtagUseCase, private val followHashtagUseCase: FollowHashtagUseCase, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineComposable.kt index 694092a4..38f6dbee 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineComposable.kt @@ -7,7 +7,7 @@ import androidx.compose.material.icons.outlined.PhotoLibrary import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.R import com.daniebeler.pfpixelix.ui.composables.InfinitePostsList @@ -17,7 +17,7 @@ import com.daniebeler.pfpixelix.utils.Navigate @Composable fun HomeTimelineComposable( navController: NavController, - viewModel: HomeTimelineViewModel = hiltViewModel(key = "home-timeline-key") + viewModel: HomeTimelineViewModel = injectViewModel(key = "home-timeline-key") { homeTimelineViewModel } ) { Box(modifier = Modifier.fillMaxSize()) { InfinitePostsList(items = viewModel.homeTimelineState.homeTimeline, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineViewModel.kt index 2369d4a8..315f6122 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/home_timeline/HomeTimelineViewModel.kt @@ -9,12 +9,10 @@ import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.model.Settings import com.daniebeler.pfpixelix.domain.usecase.GetHomeTimelineUseCase import com.daniebeler.pfpixelix.domain.usecase.GetSettingsUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class HomeTimelineViewModel @Inject constructor( private val getHomeTimelineUseCase: GetHomeTimelineUseCase, private val getSettingsUseCase: GetSettingsUseCase diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineComposable.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineComposable.kt index 0878e733..5d8b5925 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineComposable.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineComposable.kt @@ -1,7 +1,7 @@ package com.daniebeler.pfpixelix.ui.composables.timelines.local_timeline import androidx.compose.runtime.Composable -import androidx.hilt.navigation.compose.hiltViewModel +import com.daniebeler.pfpixelix.di.injectViewModel import androidx.navigation.NavController import com.daniebeler.pfpixelix.ui.composables.InfinitePostsList import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @@ -9,7 +9,7 @@ import com.daniebeler.pfpixelix.ui.composables.states.EmptyState @Composable fun LocalTimelineComposable( navController: NavController, - viewModel: LocalTimelineViewModel = hiltViewModel(key = "local-timeline-key") + viewModel: LocalTimelineViewModel = injectViewModel(key = "local-timeline-key") { localTimelineViewModel } ) { InfinitePostsList(items = viewModel.localTimelineState.localTimeline, isLoading = viewModel.localTimelineState.isLoading, diff --git a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineViewModel.kt b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineViewModel.kt index d91c703e..898ed6af 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineViewModel.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/ui/composables/timelines/local_timeline/LocalTimelineViewModel.kt @@ -7,12 +7,10 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.daniebeler.pfpixelix.common.Resource import com.daniebeler.pfpixelix.domain.usecase.GetLocalTimelineUseCase -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject -@HiltViewModel class LocalTimelineViewModel @Inject constructor( private val getLocalTimelineUseCase: GetLocalTimelineUseCase ) : ViewModel() { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/utils/AuthDataSerializer.kt b/app/src/main/java/com/daniebeler/pfpixelix/utils/AuthDataSerializer.kt index 1eddc270..0613df7b 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/utils/AuthDataSerializer.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/utils/AuthDataSerializer.kt @@ -6,10 +6,8 @@ import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json import java.io.InputStream import java.io.OutputStream -import javax.inject.Singleton -@Singleton -class AuthDataSerializer: Serializer { +object AuthDataSerializer: Serializer { override val defaultValue: AuthData get() = AuthData() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/utils/SavedSearchesSerializer.kt b/app/src/main/java/com/daniebeler/pfpixelix/utils/SavedSearchesSerializer.kt index 970c961f..9d709188 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/utils/SavedSearchesSerializer.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/utils/SavedSearchesSerializer.kt @@ -1,19 +1,13 @@ package com.daniebeler.pfpixelix.utils -import android.content.Context -import androidx.datastore.core.DataStore import androidx.datastore.core.Serializer -import androidx.datastore.dataStore import com.daniebeler.pfpixelix.domain.model.SavedSearches import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json -import kotlinx.serialization.json.encodeToStream import java.io.InputStream import java.io.OutputStream -import javax.inject.Singleton -@Singleton -class SavedSearchesSerializer: Serializer { +object SavedSearchesSerializer: Serializer { override val defaultValue: SavedSearches get() = SavedSearches() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/CustomLatestImageStateDefinition.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/CustomLatestImageStateDefinition.kt index 41169635..92594c47 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/CustomLatestImageStateDefinition.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/CustomLatestImageStateDefinition.kt @@ -19,6 +19,6 @@ object CustomLatestImageStateDefinition : GlanceStateDefinition by dataStore(fileName, LatestImageStoreSerializer()) + private val Context.dataStore: DataStore by dataStore(fileName, LatestImageStoreSerializer) } diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/utils/LatestImageStoreSerializer.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/utils/LatestImageStoreSerializer.kt index 64de932f..950f2bdb 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/utils/LatestImageStoreSerializer.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/utils/LatestImageStoreSerializer.kt @@ -6,10 +6,8 @@ import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json import java.io.InputStream import java.io.OutputStream -import javax.inject.Singleton -@Singleton -class LatestImageStoreSerializer: Serializer { +object LatestImageStoreSerializer: Serializer { override val defaultValue: LatestImageStore get() = LatestImageStore() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/work_manager/LatestImageTask.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/work_manager/LatestImageTask.kt index a81f253a..8d12e850 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/work_manager/LatestImageTask.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/latest_image/work_manager/LatestImageTask.kt @@ -7,7 +7,6 @@ import android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION import android.content.pm.PackageManager import androidx.core.content.FileProvider.getUriForFile import androidx.datastore.core.DataStore -import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import coil.imageLoader @@ -18,13 +17,11 @@ import com.daniebeler.pfpixelix.domain.model.AuthData import com.daniebeler.pfpixelix.widget.WidgetRepositoryProvider import com.daniebeler.pfpixelix.widget.latest_image.updateLatestImageWidget import com.daniebeler.pfpixelix.widget.latest_image.updateLatestImageWidgetRefreshing -import dagger.assisted.Assisted -import dagger.assisted.AssistedInject +import me.tatarka.inject.annotations.Inject -@HiltWorker -class LatestImageTask @AssistedInject constructor( - @Assisted private val context: Context, - @Assisted workerParams: WorkerParameters, +class LatestImageTask @Inject constructor( + private val context: Context, + workerParams: WorkerParameters, private val dataStore: DataStore ) : CoroutineWorker(context, workerParams) { override suspend fun doWork(): Result { diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/CustomNotificationsStateDefinition.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/CustomNotificationsStateDefinition.kt index 5d08cfd3..0f5c56ef 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/CustomNotificationsStateDefinition.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/CustomNotificationsStateDefinition.kt @@ -19,6 +19,6 @@ object CustomNotificationsStateDefinition : GlanceStateDefinition by dataStore(fileName, NotificationsStoreSerializer()) + private val Context.dataStore: DataStore by dataStore(fileName, NotificationsStoreSerializer) } diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/utils/NotificationsStoreSerializer.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/utils/NotificationsStoreSerializer.kt index 1f4280b9..a36ae18a 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/utils/NotificationsStoreSerializer.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/utils/NotificationsStoreSerializer.kt @@ -6,10 +6,8 @@ import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json import java.io.InputStream import java.io.OutputStream -import javax.inject.Singleton -@Singleton -class NotificationsStoreSerializer: Serializer { +object NotificationsStoreSerializer: Serializer { override val defaultValue: NotificationsStore get() = NotificationsStore() diff --git a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/work_manager/NotificationsTask.kt b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/work_manager/NotificationsTask.kt index 27f293a5..7e9fb957 100644 --- a/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/work_manager/NotificationsTask.kt +++ b/app/src/main/java/com/daniebeler/pfpixelix/widget/notifications/work_manager/NotificationsTask.kt @@ -7,7 +7,6 @@ import android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION import android.content.pm.PackageManager import androidx.core.content.FileProvider.getUriForFile import androidx.datastore.core.DataStore -import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import coil.imageLoader @@ -19,13 +18,11 @@ import com.daniebeler.pfpixelix.widget.WidgetRepositoryProvider import com.daniebeler.pfpixelix.widget.notifications.models.NotificationStoreItem import com.daniebeler.pfpixelix.widget.notifications.updateNotificationsWidget import com.daniebeler.pfpixelix.widget.notifications.updateNotificationsWidgetRefreshing -import dagger.assisted.Assisted -import dagger.assisted.AssistedInject +import me.tatarka.inject.annotations.Inject -@HiltWorker -class NotificationsTask @AssistedInject constructor( - @Assisted private val context: Context, - @Assisted workerParams: WorkerParameters, +class NotificationsTask @Inject constructor( + private val context: Context, + workerParams: WorkerParameters, private val dataStore: DataStore ) : CoroutineWorker(context, workerParams) { override suspend fun doWork(): Result { diff --git a/build.gradle.kts b/build.gradle.kts index a0aadeb2..edf59c8c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,6 @@ buildscript { plugins { alias(libs.plugins.androidApplication) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false - alias(libs.plugins.hilt) apply false id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.ktorfit) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4fc7cb32..e3e3e191 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,8 +11,6 @@ coreKtx = "1.13.1" datastorePreferences = "1.1.1" glanceAppwidget = "1.1.1" glide = "4.12.0" -hilt = "2.49" -hiltWork = "1.2.0" kotlinSerialization = "2.0.0" kotlinxCollectionsImmutable = "0.3.5" kotlinxSerializationJson = "1.5.1" @@ -32,6 +30,7 @@ kermit = "2.0.4" kotlinx-datetime = "0.6.1" ktorfit = "2.2.0" ktor = "3.0.3" +kotlinInject = "0.7.2" [libraries] @@ -45,7 +44,6 @@ androidx-datastore = { module = "androidx.datastore:datastore", version.ref = "d androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" } androidx-glance-appwidget = { module = "androidx.glance:glance-appwidget", version.ref = "glanceAppwidget" } androidx-glance-material3 = { module = "androidx.glance:glance-material3" } -androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "hiltWork" } androidx-lifecycle-compiler = { module = "androidx.lifecycle:lifecycle-compiler", version.ref = "lifecycle" } androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" } @@ -67,10 +65,7 @@ coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } coil-video = { module = "io.coil-kt:coil-video", version.ref = "coil" } compiler = { module = "com.github.bumptech.glide:compiler", version.ref = "compiler" } compose = { module = "com.github.bumptech.glide:compose", version.ref = "compose" } -dagger-hilt = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } -dagger-hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" } glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } -hilt-naviation = "androidx.hilt:hilt-navigation-compose:1.2.0" kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlinSerialization" } kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } @@ -90,11 +85,12 @@ ktor-serialization-json = { module = "io.ktor:ktor-serialization-kotlinx-json", ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" } ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } +kotlin-inject-compiler-ksp = { module = "me.tatarka.inject:kotlin-inject-compiler-ksp", version.ref = "kotlinInject" } +kotlin-inject-runtime = { module = "me.tatarka.inject:kotlin-inject-runtime", version.ref = "kotlinInject" } [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ktorfit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktorfit" }