DownloadFragment: Bring back force clear all menu action
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -24,4 +24,7 @@ interface DownloadDao {
|
|||||||
|
|
||||||
@Query("DELETE FROM download WHERE packageName = :packageName")
|
@Query("DELETE FROM download WHERE packageName = :packageName")
|
||||||
suspend fun delete(packageName: String)
|
suspend fun delete(packageName: String)
|
||||||
|
|
||||||
|
@Query("DELETE FROM download")
|
||||||
|
suspend fun deleteAll()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.aurora.store.data.room.download.DownloadDao
|
|||||||
import com.aurora.store.data.work.DownloadWorker
|
import com.aurora.store.data.work.DownloadWorker
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -94,6 +95,12 @@ class DownloadWorkerUtil @Inject constructor(
|
|||||||
.deleteRecursively()
|
.deleteRecursively()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun clearAllDownloads() {
|
||||||
|
Log.i(TAG, "Clearing all downloads!")
|
||||||
|
downloadDao.deleteAll()
|
||||||
|
File(PathUtil.getDownloadDirectory(context), "Downloads").deleteRecursively()
|
||||||
|
}
|
||||||
|
|
||||||
suspend fun clearFinishedDownloads() {
|
suspend fun clearFinishedDownloads() {
|
||||||
downloadsList.value.filter { it.isFinished }.forEach {
|
downloadsList.value.filter { it.isFinished }.forEach {
|
||||||
clearDownload(it.packageName, it.versionCode)
|
clearDownload(it.packageName, it.versionCode)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ object PathUtil {
|
|||||||
|
|
||||||
private const val libraries = "libraries"
|
private const val libraries = "libraries"
|
||||||
|
|
||||||
private fun getDownloadDirectory(context: Context): String {
|
fun getDownloadDirectory(context: Context): String {
|
||||||
return if (context.isExternalStorageEnable()) {
|
return if (context.isExternalStorageEnable()) {
|
||||||
getExternalPath(context)
|
getExternalPath(context)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -67,6 +67,11 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) {
|
|||||||
setNavigationOnClickListener { findNavController().navigateUp() }
|
setNavigationOnClickListener { findNavController().navigateUp() }
|
||||||
setOnMenuItemClickListener {
|
setOnMenuItemClickListener {
|
||||||
when (it.itemId) {
|
when (it.itemId) {
|
||||||
|
R.id.action_force_clear_all -> {
|
||||||
|
viewLifecycleOwner.lifecycleScope.launch(NonCancellable) {
|
||||||
|
downloadWorkerUtil.clearAllDownloads()
|
||||||
|
}
|
||||||
|
}
|
||||||
R.id.action_cancel_all -> {
|
R.id.action_cancel_all -> {
|
||||||
viewLifecycleOwner.lifecycleScope.launch(NonCancellable) {
|
viewLifecycleOwner.lifecycleScope.launch(NonCancellable) {
|
||||||
downloadWorkerUtil.cancelAll()
|
downloadWorkerUtil.cancelAll()
|
||||||
|
|||||||
@@ -24,4 +24,7 @@
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/action_clear_completed"
|
android:id="@+id/action_clear_completed"
|
||||||
android:title="@string/download_clear_finished" />
|
android:title="@string/download_clear_finished" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_force_clear_all"
|
||||||
|
android:title="@string/download_force_clear_all" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
Reference in New Issue
Block a user