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.content.Context
......@@ -51,6 +51,28 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
binding.flMore.setOnClickListener {
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) {
val binding = ItemDownloadCardBinding.bind(holder.itemView)
......
......@@ -9,7 +9,6 @@ import androidx.core.view.updatePadding
import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.databinding.ActivityWebDownloadManagerBinding
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.showGerPermission
import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
......
......@@ -19,7 +19,7 @@ import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.bean.downloadBeanGson
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.views.DownloadDialog.showDownloadVideoDialog
import com.base.browserwhite.utils.DownloadHelper.getDownloadJson
......@@ -102,20 +102,31 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
val recordFile = requireContext().getDownloadJson()
val list = downloadList
list.filter {
it.status == FileDownloadStatus.completed ||
it.status == FileDownloadStatus.progress ||
//已开始的任务
val startedList = downloadList.filter {
it.status == FileDownloadStatus.progress ||
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>()
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)
}
......
......@@ -3,21 +3,13 @@ package com.base.browserwhite.ui.views
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.Dialog
import android.app.DownloadManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.view.Gravity
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
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.bean.ConstObject.BAIDU
import com.base.browserwhite.bean.ConstObject.BING
......@@ -25,20 +17,11 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.YAHOO
import com.base.browserwhite.bean.ConstObject.YANDEX
import com.base.browserwhite.bean.DownloadBean
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.DialogMyAccountBinding
import com.base.browserwhite.databinding.DialogPermissonOpenBinding
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.BottomSheetDialog
......
......@@ -17,7 +17,7 @@ import com.base.browserwhite.databinding.DialogDownloadConfirmBinding
import com.base.browserwhite.databinding.DialogDownloadFinishBinding
import com.base.browserwhite.databinding.DialogDownloadVideoBinding
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.LogEx
import com.bumptech.glide.Glide
......
......@@ -27,7 +27,7 @@ object DownloadHelper {
fun getDownloadJsonBean(recordFile: File, gson: Gson = downloadBeanGson): List<DownloadBean> {
val olderText = recordFile.readText()
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(
......
......@@ -87,6 +87,37 @@
tools:ignore="ContentDescription" />
</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
android:layout_width="0dp"
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