Commit cc1d3bee authored by wanglei's avatar wanglei

...

parent bdee4010
...@@ -2,12 +2,10 @@ package com.base.browserwhite.ui.activity.download ...@@ -2,12 +2,10 @@ package com.base.browserwhite.ui.activity.download
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Environment
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.browserwhite.R
import com.base.browserwhite.bean.DownloadBean import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.databinding.ActivityWebDownloadManagerBinding import com.base.browserwhite.databinding.ActivityWebDownloadManagerBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
...@@ -22,6 +20,7 @@ import com.base.browserwhite.utils.IntentEx.shareAction ...@@ -22,6 +20,7 @@ import com.base.browserwhite.utils.IntentEx.shareAction
import com.base.browserwhite.utils.KotlinExt.toFormatTime import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.PermissionHelp.checkStorePermission import com.base.browserwhite.utils.PermissionHelp.checkStorePermission
import com.base.browserwhite.utils.PermissionHelp.requestStorePermission import com.base.browserwhite.utils.PermissionHelp.requestStorePermission
import com.google.gson.Gson
import java.io.File import java.io.File
class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBinding>() { class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBinding>() {
...@@ -43,8 +42,18 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin ...@@ -43,8 +42,18 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
showMediaMoreDialog(archView, showMediaMoreDialog(archView,
deleteAction = { deleteAction = {
showDeleteTipDialog { showDeleteTipDialog {
runCatching { File(item.path).delete() } runCatching {
File(item.path).delete()
saveDeleteJson(item)
}
adapter.remove(item) adapter.remove(item)
val list = adapter.items.filter { !it.isTime && it.time == item.time }
if (list.isEmpty()) {
adapter.items.filter { it.isTime && it.time == item.time }.forEach { timeBean ->
adapter.remove(timeBean)
}
binding.llEmpty.isVisible = adapter.items.isEmpty()
}
} }
}, },
shareAction = { shareAction = {
...@@ -65,6 +74,14 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin ...@@ -65,6 +74,14 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
} }
} }
private fun saveDeleteJson(item: DownloadBean) {
val recordFile = getDownloadJson()
val list = getDownloadJsonBean(recordFile).toMutableList()
list.removeIf { it.path == item.path }
val json = Gson().toJson(list)
recordFile.writeText(json)
}
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
...@@ -89,14 +106,13 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin ...@@ -89,14 +106,13 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
val beanList = arrayListOf<DownloadBean>() val beanList = arrayListOf<DownloadBean>()
val timeList = arrayListOf<String>() val timeList = arrayListOf<String>()
list.forEach { old -> list.sortedBy { it.time }.forEach { old ->
val time = old.time.toFormatTime() val time = old.time.toFormatTime()
if (!timeList.contains(time)) { if (!timeList.contains(time)) {
timeList.add(time) timeList.add(time)
beanList.add(DownloadBean(time = old.time).apply { isTime = true }) beanList.add(DownloadBean(time = old.time).apply { isTime = true })
} else {
beanList.add(old)
} }
beanList.add(old.apply { uiType = 1 })
} }
adapter.submitList(beanList) adapter.submitList(beanList)
} }
......
...@@ -103,7 +103,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -103,7 +103,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
val recordFile = requireContext().getDownloadJson() val recordFile = requireContext().getDownloadJson()
val list = downloadList val list = downloadList
list.filter { it.status != FileDownloadStatus.completed }.forEach { it.time = System.currentTimeMillis() } list.filter {
it.status == FileDownloadStatus.completed ||
it.status == FileDownloadStatus.progress ||
it.status == FileDownloadStatus.paused
}.forEach { it.time = System.currentTimeMillis() }
val olderList = getDownloadJsonBean(recordFile, downloadBeanGson).filter { !list.contains(it) } val olderList = getDownloadJsonBean(recordFile, downloadBeanGson).filter { !list.contains(it) }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment