diff --git a/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/MoveVideoInQueue.kt b/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/MoveVideoInQueue.kt new file mode 100644 index 0000000..36d0863 --- /dev/null +++ b/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/MoveVideoInQueue.kt @@ -0,0 +1,13 @@ +package org.fnives.tiktokdownloader.data.usecase + +import org.fnives.tiktokdownloader.data.local.VideoInPendingLocalSource +import org.fnives.tiktokdownloader.data.model.VideoInPending + +class MoveVideoInQueue( + private val videoInPendingLocalSource: VideoInPendingLocalSource +) { + + operator fun invoke(videoInPending: VideoInPending, to: VideoInPending) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/RemoveVideoFromQueueUseCase.kt b/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/RemoveVideoFromQueueUseCase.kt new file mode 100644 index 0000000..442b4e5 --- /dev/null +++ b/app/src/main/java/org/fnives/tiktokdownloader/data/usecase/RemoveVideoFromQueueUseCase.kt @@ -0,0 +1,13 @@ +package org.fnives.tiktokdownloader.data.usecase + +import org.fnives.tiktokdownloader.data.local.VideoInPendingLocalSource +import org.fnives.tiktokdownloader.data.model.VideoInPending + +class RemoveVideoFromQueueUseCase( + private val videoInPendingLocalSource: VideoInPendingLocalSource +) { + + operator fun invoke(videoInPending: VideoInPending) { + videoInPendingLocalSource.removeVideoFromQueue(videoInPending) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/fnives/tiktokdownloader/di/module/UseCaseModule.kt b/app/src/main/java/org/fnives/tiktokdownloader/di/module/UseCaseModule.kt index c2a3977..4602dd7 100644 --- a/app/src/main/java/org/fnives/tiktokdownloader/di/module/UseCaseModule.kt +++ b/app/src/main/java/org/fnives/tiktokdownloader/di/module/UseCaseModule.kt @@ -2,13 +2,16 @@ package org.fnives.tiktokdownloader.di.module import kotlinx.coroutines.Dispatchers import org.fnives.tiktokdownloader.data.usecase.AddVideoToQueueUseCase +import org.fnives.tiktokdownloader.data.usecase.MoveVideoInQueue +import org.fnives.tiktokdownloader.data.usecase.RemoveVideoFromQueueUseCase import org.fnives.tiktokdownloader.data.usecase.StateOfVideosObservableUseCase import org.fnives.tiktokdownloader.data.usecase.UrlVerificationUseCase import org.fnives.tiktokdownloader.data.usecase.VideoDownloadingProcessorUseCase class UseCaseModule( private val localSourceModule: LocalSourceModule, - private val networkModule: NetworkModule) { + private val networkModule: NetworkModule +) { val stateOfVideosObservableUseCase: StateOfVideosObservableUseCase get() = StateOfVideosObservableUseCase( @@ -24,7 +27,18 @@ class UseCaseModule( val addVideoToQueueUseCase: AddVideoToQueueUseCase get() = AddVideoToQueueUseCase( urlVerificationUseCase, - localSourceModule.videoInPendingLocalSource) + localSourceModule.videoInPendingLocalSource + ) + + val removeVideoFromQueueUseCase: RemoveVideoFromQueueUseCase + get() = RemoveVideoFromQueueUseCase( + localSourceModule.videoInPendingLocalSource + ) + + val moveVideoInQueue: MoveVideoInQueue + get() = MoveVideoInQueue( + localSourceModule.videoInPendingLocalSource + ) val videoDownloadingProcessorUseCase: VideoDownloadingProcessorUseCase by lazy { VideoDownloadingProcessorUseCase( diff --git a/app/src/main/java/org/fnives/tiktokdownloader/di/module/ViewModelModule.kt b/app/src/main/java/org/fnives/tiktokdownloader/di/module/ViewModelModule.kt index e12b6bf..db931be 100644 --- a/app/src/main/java/org/fnives/tiktokdownloader/di/module/ViewModelModule.kt +++ b/app/src/main/java/org/fnives/tiktokdownloader/di/module/ViewModelModule.kt @@ -24,6 +24,7 @@ class ViewModelModule(private val useCaseModule: UseCaseModule) { get() = QueueViewModel( useCaseModule.stateOfVideosObservableUseCase, useCaseModule.addVideoToQueueUseCase, + useCaseModule.removeVideoFromQueueUseCase, useCaseModule.videoDownloadingProcessorUseCase ) } \ No newline at end of file diff --git a/app/src/main/java/org/fnives/tiktokdownloader/ui/main/queue/QueueFragment.kt b/app/src/main/java/org/fnives/tiktokdownloader/ui/main/queue/QueueFragment.kt index 9943908..6b93229 100644 --- a/app/src/main/java/org/fnives/tiktokdownloader/ui/main/queue/QueueFragment.kt +++ b/app/src/main/java/org/fnives/tiktokdownloader/ui/main/queue/QueueFragment.kt @@ -9,7 +9,7 @@ import android.widget.EditText import androidx.core.net.toUri import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.Fragment -import androidx.lifecycle.Observer +import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import org.fnives.tiktokdownloader.R import org.fnives.tiktokdownloader.data.model.VideoState @@ -22,22 +22,21 @@ class QueueFragment : Fragment(R.layout.fragment_queue) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val recycler = view.findViewById(R.id.recycler) - val adapter = QueueItemAdapter( - itemClicked = viewModel::onItemClicked, - urlClicked = viewModel::onUrlClicked - ) - recycler.adapter = adapter + recyclerViewSetup(recycler) + navigationSetup() + val saveUrlCta = view.findViewById