diff --git a/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt b/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt index ffde7027..a5dfcfbc 100644 --- a/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt +++ b/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt @@ -16,7 +16,7 @@ import kotlinx.coroutines.flow.* interface FileRepository { fun search(query: String): Flow> - suspend fun deleteFile(file: File) + fun deleteFile(file: File) } internal class FileRepositoryImpl( @@ -89,34 +89,13 @@ internal class FileRepositoryImpl( } } } - - /*hiddenItems.collectLatest { hiddenItems -> - val files = mutableListOf() - - val localFiles = withContext(Dispatchers.IO) { - LocalFile.search(context, query).sorted().filter { !hiddenItems.contains(it.key) } - } - files.addAll(localFiles) - send(localFiles) - - val cloudFiles = withContext(Dispatchers.IO) { - delay(300) - listOf( - async { OneDriveFile.search(context, query) }, - async { GDriveFile.search(context, query) }, - async { NextcloudFile.search(context, query, nextcloudClient) }, - async { OwncloudFile.search(context, query, owncloudClient) } - ).awaitAll().flatten() - } - yield() - files.addAll(cloudFiles.filter { !hiddenItems.contains(it.key) }) - send(files) - }*/ } - override suspend fun deleteFile(file: File) { - if (file.isDeletable) { - file.delete(context) + override fun deleteFile(file: File) { + scope.launch { + if (file.isDeletable) { + file.delete(context) + } } } } \ No newline at end of file diff --git a/files/src/main/java/de/mm20/launcher2/files/FilesViewModel.kt b/files/src/main/java/de/mm20/launcher2/files/FilesViewModel.kt deleted file mode 100644 index c038d48c..00000000 --- a/files/src/main/java/de/mm20/launcher2/files/FilesViewModel.kt +++ /dev/null @@ -1,16 +0,0 @@ -package de.mm20.launcher2.files - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import de.mm20.launcher2.search.data.File -import kotlinx.coroutines.launch - -class FilesViewModel( - private val filesRepository: FileRepository -): ViewModel() { - fun deleteFile(file: File) { - viewModelScope.launch { - filesRepository.deleteFile(file) - } - } -} \ No newline at end of file diff --git a/files/src/main/java/de/mm20/launcher2/files/Module.kt b/files/src/main/java/de/mm20/launcher2/files/Module.kt index a5492618..5e8660ea 100644 --- a/files/src/main/java/de/mm20/launcher2/files/Module.kt +++ b/files/src/main/java/de/mm20/launcher2/files/Module.kt @@ -6,5 +6,4 @@ import org.koin.dsl.module val filesModule = module { single { FileRepositoryImpl(androidContext(), get(), get()) } - viewModel { FilesViewModel(get()) } } \ No newline at end of file diff --git a/ui/src/main/java/de/mm20/launcher2/ui/legacy/search/FileDetailRepresentation.kt b/ui/src/main/java/de/mm20/launcher2/ui/legacy/search/FileDetailRepresentation.kt index 756281b8..ee7ed985 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/legacy/search/FileDetailRepresentation.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/legacy/search/FileDetailRepresentation.kt @@ -10,7 +10,7 @@ import androidx.lifecycle.repeatOnLifecycle import androidx.transition.Scene import com.google.android.material.dialog.MaterialAlertDialogBuilder import de.mm20.launcher2.badges.BadgeRepository -import de.mm20.launcher2.files.FilesViewModel +import de.mm20.launcher2.files.FileRepository import de.mm20.launcher2.icons.IconRepository import de.mm20.launcher2.ktx.dp import de.mm20.launcher2.ktx.lifecycleOwner @@ -23,8 +23,8 @@ import de.mm20.launcher2.ui.legacy.view.* import kotlinx.coroutines.Job import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.component.KoinComponent +import org.koin.core.component.get import org.koin.core.component.inject import java.text.DecimalFormat @@ -125,9 +125,8 @@ class FileDetailRepresentation : Representation, KoinComponent { ) ) .setPositiveButton(android.R.string.ok) { dialog, _ -> - val fileViewModel: FilesViewModel by (context as AppCompatActivity).viewModel() dialog.dismiss() - fileViewModel.deleteFile(file) + deleteFile(file) } .setNegativeButton(android.R.string.cancel) { dialog, _ -> dialog.dismiss() @@ -135,6 +134,11 @@ class FileDetailRepresentation : Representation, KoinComponent { .show() } + private fun deleteFile(file: File) { + val fileRepository: FileRepository = get() + fileRepository.deleteFile(file) + } + private fun share(context: Context, fileDetail: File) { val shareIntent = Intent(Intent.ACTION_SEND) shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)