Commit 8b166a72 authored by wanglei's avatar wanglei

...

parent cc1d3bee
package com.base.browserwhite.ui.adapter package com.base.browserwhite.ui.activity.download
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
...@@ -51,6 +51,28 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV ...@@ -51,6 +51,28 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
binding.flMore.setOnClickListener { binding.flMore.setOnClickListener {
moreAction?.invoke(it, item) moreAction?.invoke(it, item)
} }
when (item.status) {
FileDownloadStatus.completed -> {
binding.flMore.visibility = View.VISIBLE
binding.flDownload.visibility = View.GONE
}
FileDownloadStatus.paused -> {
binding.flMore.visibility = View.GONE
binding.flDownload.visibility = View.VISIBLE
binding.circularProgressBar.progress = item.progress.toFloat()
}
FileDownloadStatus.progress -> {
binding.flMore.visibility = View.GONE
binding.flDownload.visibility = View.VISIBLE
binding.circularProgressBar.progress = item.progress.toFloat()
replaceListener(item)
}
}
binding.flDownload.setOnClickListener {
pauseResumeDownload(item)
}
} else if (item.uiType == 2) { } else if (item.uiType == 2) {
val binding = ItemDownloadCardBinding.bind(holder.itemView) val binding = ItemDownloadCardBinding.bind(holder.itemView)
......
...@@ -9,7 +9,6 @@ import androidx.core.view.updatePadding ...@@ -9,7 +9,6 @@ import androidx.core.view.updatePadding
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
import com.base.browserwhite.ui.adapter.DownloadAdapter
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.DialogViews.showGerPermission import com.base.browserwhite.ui.views.DialogViews.showGerPermission
import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
......
...@@ -19,7 +19,7 @@ import androidx.lifecycle.lifecycleScope ...@@ -19,7 +19,7 @@ import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.DownloadBean import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.bean.downloadBeanGson import com.base.browserwhite.bean.downloadBeanGson
import com.base.browserwhite.databinding.FragmentWebViewBinding import com.base.browserwhite.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.adapter.DownloadAdapter import com.base.browserwhite.ui.activity.download.DownloadAdapter
import com.base.browserwhite.ui.fragment.BaseFragment import com.base.browserwhite.ui.fragment.BaseFragment
import com.base.browserwhite.ui.views.DownloadDialog.showDownloadVideoDialog import com.base.browserwhite.ui.views.DownloadDialog.showDownloadVideoDialog
import com.base.browserwhite.utils.DownloadHelper.getDownloadJson import com.base.browserwhite.utils.DownloadHelper.getDownloadJson
...@@ -102,20 +102,31 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -102,20 +102,31 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
val recordFile = requireContext().getDownloadJson() val recordFile = requireContext().getDownloadJson()
val list = downloadList //已开始的任务
list.filter { val startedList = downloadList.filter {
it.status == FileDownloadStatus.completed ||
it.status == FileDownloadStatus.progress || it.status == FileDownloadStatus.progress ||
it.status == FileDownloadStatus.paused it.status == FileDownloadStatus.paused
}.forEach { it.time = System.currentTimeMillis() } }
startedList.forEach { it.time = System.currentTimeMillis() }
//完成的任务
val finishList = downloadList.filter { it.status == FileDownloadStatus.completed }
val olderList = getDownloadJsonBean(recordFile, downloadBeanGson).filter { !list.contains(it) } //以前的去除重叠的
val olderList =
getDownloadJsonBean(recordFile, downloadBeanGson).filter { !startedList.contains(it) || !startedList.contains(it) }
val arrayList = arrayListOf<DownloadBean>() val arrayList = arrayListOf<DownloadBean>()
arrayList.addAll(olderList) arrayList.addAll(olderList)
arrayList.addAll(list) arrayList.addAll(startedList)
arrayList.addAll(finishList)
arrayList.forEach {
LogEx.logDebug(TAG, "saveDownloadRecordFile ${it.name} ${it.downloadId} ${it.status} ")
}
val json = downloadBeanGson.toJson(list) val json = downloadBeanGson.toJson(arrayList)
recordFile.writeText(json) recordFile.writeText(json)
} }
......
...@@ -3,21 +3,13 @@ package com.base.browserwhite.ui.views ...@@ -3,21 +3,13 @@ package com.base.browserwhite.ui.views
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog import android.app.AlertDialog
import android.app.Dialog import android.app.Dialog
import android.app.DownloadManager
import android.content.Context import android.content.Context
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.view.Gravity import android.view.Gravity
import android.view.KeyEvent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.TextView
import android.widget.TextView.OnEditorActionListener
import android.widget.Toast
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject.BAIDU import com.base.browserwhite.bean.ConstObject.BAIDU
import com.base.browserwhite.bean.ConstObject.BING import com.base.browserwhite.bean.ConstObject.BING
...@@ -25,20 +17,11 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO ...@@ -25,20 +17,11 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
import com.base.browserwhite.bean.ConstObject.GOOGLE import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.YAHOO import com.base.browserwhite.bean.ConstObject.YAHOO
import com.base.browserwhite.bean.ConstObject.YANDEX import com.base.browserwhite.bean.ConstObject.YANDEX
import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.databinding.DialogDeleteTipBinding import com.base.browserwhite.databinding.DialogDeleteTipBinding
import com.base.browserwhite.databinding.DialogDownloadConfirmBinding
import com.base.browserwhite.databinding.DialogDownloadFinishBinding
import com.base.browserwhite.databinding.DialogDownloadVideoBinding
import com.base.browserwhite.databinding.DialogMediaMoreBinding import com.base.browserwhite.databinding.DialogMediaMoreBinding
import com.base.browserwhite.databinding.DialogMyAccountBinding import com.base.browserwhite.databinding.DialogMyAccountBinding
import com.base.browserwhite.databinding.DialogPermissonOpenBinding import com.base.browserwhite.databinding.DialogPermissonOpenBinding
import com.base.browserwhite.databinding.DialogSearchEngineBinding import com.base.browserwhite.databinding.DialogSearchEngineBinding
import com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity
import com.base.browserwhite.ui.adapter.DownloadAdapter
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.utils.LogEx
import com.bumptech.glide.Glide
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
......
...@@ -17,7 +17,7 @@ import com.base.browserwhite.databinding.DialogDownloadConfirmBinding ...@@ -17,7 +17,7 @@ import com.base.browserwhite.databinding.DialogDownloadConfirmBinding
import com.base.browserwhite.databinding.DialogDownloadFinishBinding import com.base.browserwhite.databinding.DialogDownloadFinishBinding
import com.base.browserwhite.databinding.DialogDownloadVideoBinding import com.base.browserwhite.databinding.DialogDownloadVideoBinding
import com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity import com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity
import com.base.browserwhite.ui.adapter.DownloadAdapter import com.base.browserwhite.ui.activity.download.DownloadAdapter
import com.base.browserwhite.utils.KotlinExt.toFormatSize import com.base.browserwhite.utils.KotlinExt.toFormatSize
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
......
...@@ -27,7 +27,7 @@ object DownloadHelper { ...@@ -27,7 +27,7 @@ object DownloadHelper {
fun getDownloadJsonBean(recordFile: File, gson: Gson = downloadBeanGson): List<DownloadBean> { fun getDownloadJsonBean(recordFile: File, gson: Gson = downloadBeanGson): List<DownloadBean> {
val olderText = recordFile.readText() val olderText = recordFile.readText()
val type: Type = object : TypeToken<List<DownloadBean>>() {}.type val type: Type = object : TypeToken<List<DownloadBean>>() {}.type
return gson.fromJson<List<DownloadBean>?>(olderText, type)?.filter { File(it.path).exists() } ?: listOf() return gson.fromJson<List<DownloadBean>?>(olderText, type)?: listOf()
} }
fun Context.getDownloadPath( fun Context.getDownloadPath(
......
...@@ -87,6 +87,37 @@ ...@@ -87,6 +87,37 @@
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
<FrameLayout
android:id="@+id/fl_download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.mikhaellopez.circularprogressbar.CircularProgressBar
android:id="@+id/circularProgressBar"
android:layout_width="30dp"
android:layout_height="30dp"
app:cpb_background_progressbar_color="#E8E8F1"
app:cpb_background_progressbar_width="3dp"
app:cpb_progress_direction="to_left"
app:cpb_progress_max="100"
app:cpb_progressbar_color="#0570EC"
app:cpb_progressbar_width="3dp"
app:cpb_round_border="true" />
<ImageView
android:id="@+id/iv_xiazai_zantin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/xiazhaiz_download"
tools:ignore="ContentDescription" />
</FrameLayout>
<View <View
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="1px" android:layout_height="1px"
......
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