Commit cc436a26 authored by wanglei's avatar wanglei

...

parent a88dce78
...@@ -33,7 +33,9 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV ...@@ -33,7 +33,9 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
inner class DownloadViewHolder(view: View) : ViewHolder(view) inner class DownloadViewHolder(view: View) : ViewHolder(view)
var downloadAction: (() -> Unit)? = null var downloadAction: (() -> Unit)? = null//下载按钮
var downloadFinishAction: ((id: Int) -> Unit)? = null//下载完成
var moreAction: ((archView: View, item: DownloadBean) -> Unit)? = null var moreAction: ((archView: View, item: DownloadBean) -> Unit)? = null
var itemClick: ((path: String) -> Unit)? = null var itemClick: ((path: String) -> Unit)? = null
...@@ -308,6 +310,7 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV ...@@ -308,6 +310,7 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
item.status = FileDownloader.getImpl().getStatus(item.url, item.path) item.status = FileDownloader.getImpl().getStatus(item.url, item.path)
item.time = System.currentTimeMillis() item.time = System.currentTimeMillis()
notifyItemChanged(position, "aaa") notifyItemChanged(position, "aaa")
task?.let { downloadFinishAction?.invoke(it.id) }
} }
override fun paused(task: BaseDownloadTask?, soFarBytes: Int, totalBytes: Int) { override fun paused(task: BaseDownloadTask?, soFarBytes: Int, totalBytes: Int) {
......
...@@ -29,9 +29,9 @@ object DownloadDialog { ...@@ -29,9 +29,9 @@ object DownloadDialog {
adapter: DownloadAdapter, adapter: DownloadAdapter,
list: List<DownloadBean>, list: List<DownloadBean>,
dismissAction: () -> Unit dismissAction: () -> Unit
) { ): BottomSheetDialog {
val TAG = "DownloadVideoDialog" val TAG = "DownloadVideoDialog"
val dialog = BottomSheetDialog(this,R.style.BottomSheetDialog) val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogDownloadVideoBinding.inflate(LayoutInflater.from(this)) val binding = DialogDownloadVideoBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root) dialog.setContentView(binding.root)
dialog.setCanceledOnTouchOutside(false) dialog.setCanceledOnTouchOutside(false)
...@@ -51,9 +51,6 @@ object DownloadDialog { ...@@ -51,9 +51,6 @@ object DownloadDialog {
//展开 //展开
behavior.state = BottomSheetBehavior.STATE_EXPANDED behavior.state = BottomSheetBehavior.STATE_EXPANDED
adapter.downloadAction = {
dialog.dismiss()
}
binding.rv.adapter = adapter binding.rv.adapter = adapter
adapter.submitList(list) adapter.submitList(list)
...@@ -65,10 +62,11 @@ object DownloadDialog { ...@@ -65,10 +62,11 @@ object DownloadDialog {
dialog.dismiss() dialog.dismiss()
startActivity(Intent(this, WebDownloadManagerActivity::class.java)) startActivity(Intent(this, WebDownloadManagerActivity::class.java))
} }
return dialog
} }
fun Context.showDownloadConfirmDialog(item: DownloadBean, download: () -> Unit) { fun Context.showDownloadConfirmDialog(item: DownloadBean, download: () -> Unit) {
val dialog = BottomSheetDialog(this,R.style.BottomSheetDialog) val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogDownloadConfirmBinding.inflate(LayoutInflater.from(this)) val binding = DialogDownloadConfirmBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root) dialog.setContentView(binding.root)
dialog.setCanceledOnTouchOutside(false) dialog.setCanceledOnTouchOutside(false)
...@@ -81,7 +79,7 @@ object DownloadDialog { ...@@ -81,7 +79,7 @@ object DownloadDialog {
Glide.with(this).load(item.url).centerCrop().into(binding.iv) Glide.with(this).load(item.url).centerCrop().into(binding.iv)
binding.editName.setText(item.url.split("/").last()) binding.editName.setText(item.url.split("/").last())
binding.tvSize.text=item.size.toFormatSize() binding.tvSize.text = item.size.toFormatSize()
binding.ivEdit.setOnClickListener { binding.ivEdit.setOnClickListener {
binding.editName.isEnabled = true binding.editName.isEnabled = true
binding.editName.setBackgroundResource(android.R.drawable.edit_text) binding.editName.setBackgroundResource(android.R.drawable.edit_text)
......
...@@ -2,7 +2,6 @@ package com.base.browserwhite.ui.activity.download ...@@ -2,7 +2,6 @@ package com.base.browserwhite.ui.activity.download
import android.annotation.SuppressLint import android.annotation.SuppressLint
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.marginRight
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.databinding.FragmentDownloadGuideBinding import com.base.browserwhite.databinding.FragmentDownloadGuideBinding
import com.base.browserwhite.ui.fragment.BaseFragment import com.base.browserwhite.ui.fragment.BaseFragment
......
package com.base.browserwhite.ui.activity.webbrowser package com.base.browserwhite.ui.activity.webbrowser
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog
import android.content.Context import android.content.Context
import android.net.Uri import android.net.Uri
import android.net.http.SslError import android.net.http.SslError
...@@ -23,9 +24,11 @@ import com.base.browserwhite.bean.DownloadBean ...@@ -23,9 +24,11 @@ import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.bean.HistoryBean import com.base.browserwhite.bean.HistoryBean
import com.base.browserwhite.databinding.FragmentWebViewBinding import com.base.browserwhite.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.activity.download.DownloadAdapter import com.base.browserwhite.ui.activity.download.DownloadAdapter
import com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadFinishDialog
import com.base.browserwhite.ui.fragment.BaseFragment import com.base.browserwhite.ui.fragment.BaseFragment
import com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadVideoDialog import com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadVideoDialog
import com.base.browserwhite.utils.ColorUtils import com.base.browserwhite.utils.ColorUtils
import com.base.browserwhite.utils.DownloadUtils
import com.base.browserwhite.utils.DownloadUtils.getDownloadJson import com.base.browserwhite.utils.DownloadUtils.getDownloadJson
import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean
import com.base.browserwhite.utils.DownloadUtils.saveDownloadRecordFile import com.base.browserwhite.utils.DownloadUtils.saveDownloadRecordFile
...@@ -68,6 +71,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -68,6 +71,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
loadWebView(url) loadWebView(url)
} }
var downloadDialog: Dialog? = null
override fun setListener() { override fun setListener() {
super.setListener() super.setListener()
binding.tvReload.setOnClickListener { binding.tvReload.setOnClickListener {
...@@ -94,15 +98,26 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -94,15 +98,26 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
downloadAdapter = DownloadAdapter() downloadAdapter = DownloadAdapter()
} }
downloadAdapter?.let { adapter -> downloadAdapter?.let { adapter ->
requireContext().showDownloadVideoDialog( downloadDialog = requireContext().showDownloadVideoDialog(
adapter, downloadList, adapter, downloadList,
dismissAction = { dismissAction = {
requireContext().saveDownloadRecordFile(downloadList) requireContext().saveDownloadRecordFile(downloadList)
downloadDialog = null
}, },
) )
} }
} }
downloadAdapter?.downloadAction = {
downloadDialog?.dismiss()
}
downloadAdapter?.downloadFinishAction = { id ->
downloadDialog?.dismiss()
val recordFile = requireContext().getDownloadJson()
val bean = DownloadUtils.getDownloadJsonBean(recordFile).filter { it.downloadId == id }
requireContext().showDownloadFinishDialog()
}
} }
...@@ -112,6 +127,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -112,6 +127,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
binding.progressBar.visibility = View.VISIBLE binding.progressBar.visibility = View.VISIBLE
binding.progressBar.progress = 0 binding.progressBar.progress = 0
downloadList.clear() downloadList.clear()
binding.flDownload.visibility = View.GONE
binding.webView.reload() binding.webView.reload()
} }
...@@ -259,7 +275,6 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -259,7 +275,6 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
private val downloadList = arrayListOf<DownloadBean>() private val downloadList = arrayListOf<DownloadBean>()
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
fun addVideoLink(addUri: String) { fun addVideoLink(addUri: String) {
val olderList = arrayListOf<DownloadBean>() val olderList = arrayListOf<DownloadBean>()
......
...@@ -127,7 +127,19 @@ class FileFragment : BaseFragment<FragmentFileBinding>() { ...@@ -127,7 +127,19 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
}) })
} }
binding.llDownload.setOnClickListener { binding.llDownload.setOnClickListener {
if (requireContext().checkStorePermission()) {
startActivity(Intent(requireContext(), WebDownloadManagerActivity::class.java))
} else {
requireContext().showGerPermission(
desc = "This feature requires access to your storage to manage your downloads. We will not transfer your data to any third-party services. Please grant permission so that we can provide you with better services.",
deny = { }, allow = {
val launcher = (requireActivity() as MainActivity).launcher
requireContext().requestStorePermission(launcher, result = {
if (it)
startActivity(Intent(requireContext(), WebDownloadManagerActivity::class.java)) startActivity(Intent(requireContext(), WebDownloadManagerActivity::class.java))
})
})
}
// startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply { // startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply {
// putExtra("url", "https://mixkit.co/free-stock-video/girl-dancing-happily-in-a-field-of-flowers-4702/") // putExtra("url", "https://mixkit.co/free-stock-video/girl-dancing-happily-in-a-field-of-flowers-4702/")
// }) // })
......
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