From bbc7b598c3f430be99da8f27f5ceb2924e8acded Mon Sep 17 00:00:00 2001 From: "Hector A. Narvaez" Date: Fri, 2 Jun 2023 16:06:56 -0500 Subject: [PATCH] Remove injection of use case, make it to be provided through omh storage client --- .../com/omh/android/storage/api/OmhStorageClient.kt | 11 ++++++++++- .../omh/android/storage/sample/di/SingletonModule.kt | 5 ----- .../storage/sample/presentation/BaseViewModel.kt | 1 - .../presentation/file_viewer/FileViewerViewModel.kt | 11 +++++------ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt index af38c681..dd82feb3 100644 --- a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt +++ b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt @@ -2,6 +2,7 @@ package com.omh.android.storage.api import com.omh.android.auth.api.OmhAuthClient import com.omh.android.storage.api.domain.repository.FileRepository +import com.omh.android.storage.api.domain.usecase.GetFilesListWithParentIdUseCase abstract class OmhStorageClient protected constructor( protected val authClient: OmhAuthClient @@ -12,5 +13,13 @@ abstract class OmhStorageClient protected constructor( fun build(authClient: OmhAuthClient): OmhStorageClient } - abstract fun getRepository(): FileRepository + protected abstract fun getRepository(): FileRepository + + /* + * TODO: This must return an asynchronous task that can be executed with any library + * capable to manage this. In the future, this task must be implemented from auth + * and will not return an use case + */ + @SuppressWarnings("ForbiddenComment") + fun listFiles() = GetFilesListWithParentIdUseCase(getRepository()) } diff --git a/storage-sample/src/main/java/com/omh/android/storage/sample/di/SingletonModule.kt b/storage-sample/src/main/java/com/omh/android/storage/sample/di/SingletonModule.kt index 74ccf837..6390ce81 100644 --- a/storage-sample/src/main/java/com/omh/android/storage/sample/di/SingletonModule.kt +++ b/storage-sample/src/main/java/com/omh/android/storage/sample/di/SingletonModule.kt @@ -5,7 +5,6 @@ import com.omh.android.auth.api.OmhAuthClient import com.omh.android.auth.api.OmhAuthProvider import com.omh.android.storage.api.OmhStorageClient import com.omh.android.storage.api.OmhStorageProvider -import com.omh.android.storage.api.domain.usecase.GetFilesListWithParentIdUseCase import com.omh.android.storage.sample.BuildConfig import dagger.Module import dagger.Provides @@ -39,8 +38,4 @@ class SingletonModule { fun providesOmhStorageClient(omhAuthClient: OmhAuthClient): OmhStorageClient { return OmhStorageProvider.provideStorageClient(omhAuthClient) } - - @Provides - fun providesGetFilesListWithParentIdUseCase(omhStorageClient: OmhStorageClient) = - GetFilesListWithParentIdUseCase(omhStorageClient.getRepository()) } diff --git a/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/BaseViewModel.kt b/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/BaseViewModel.kt index 795961d7..a6da062d 100644 --- a/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/BaseViewModel.kt +++ b/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/BaseViewModel.kt @@ -7,7 +7,6 @@ import androidx.lifecycle.viewModelScope import com.omh.android.storage.sample.util.LOG_MESSAGE_EVENT import com.omh.android.storage.sample.util.TAG_VIEW_UPDATE import com.omh.android.storage.sample.util.launchSafe -import kotlinx.coroutines.CoroutineDispatcher abstract class BaseViewModel : ViewModel() { diff --git a/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/file_viewer/FileViewerViewModel.kt b/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/file_viewer/FileViewerViewModel.kt index 7ada3156..24b86ccc 100644 --- a/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/file_viewer/FileViewerViewModel.kt +++ b/storage-sample/src/main/java/com/omh/android/storage/sample/presentation/file_viewer/FileViewerViewModel.kt @@ -1,17 +1,15 @@ package com.omh.android.storage.sample.presentation.file_viewer -import com.omh.android.storage.api.domain.usecase.GetFilesListWithParentIdUseCase +import com.omh.android.storage.api.OmhStorageClient import com.omh.android.storage.api.domain.usecase.GetFilesListWithParentIdUseCaseParams import com.omh.android.storage.api.domain.usecase.OmhResult -import com.omh.android.storage.sample.di.DefaultDispatcher import com.omh.android.storage.sample.presentation.BaseViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.CoroutineDispatcher import javax.inject.Inject @HiltViewModel class FileViewerViewModel @Inject constructor( - private val getFilesListWithParentIdUseCase: GetFilesListWithParentIdUseCase, + private val omhStorageClient: OmhStorageClient ) : BaseViewModel() { var isGridLayoutManager = true @@ -33,9 +31,10 @@ class FileViewerViewModel @Inject constructor( private suspend fun refreshFileListEvent(parentId: String = "root") { setState(FileViewerViewState.Loading) + val listFiles = omhStorageClient.listFiles() + when ( - val result = - getFilesListWithParentIdUseCase(GetFilesListWithParentIdUseCaseParams(parentId)) + val result = listFiles(GetFilesListWithParentIdUseCaseParams(parentId)) ) { is OmhResult.OmhSuccess -> { setState(FileViewerViewState.Content(result.data.files))