|
@@ -10,8 +10,13 @@ import android.view.ViewGroup
|
|
import android.widget.ImageView
|
|
import android.widget.ImageView
|
|
import android.widget.ProgressBar
|
|
import android.widget.ProgressBar
|
|
import android.widget.TextView
|
|
import android.widget.TextView
|
|
|
|
+import com.cr.common.FileManager
|
|
import com.cr.cruav.R
|
|
import com.cr.cruav.R
|
|
|
|
+import com.cr.data.CrUtil
|
|
|
|
+import com.cr.dialog.DialogNormal
|
|
import com.cr.models.DownloadDataModel
|
|
import com.cr.models.DownloadDataModel
|
|
|
|
+import com.cr.network.NetManager
|
|
|
|
+import com.cr.network.TCPDataTask
|
|
|
|
|
|
/**
|
|
/**
|
|
* 操作系统:MAC系统
|
|
* 操作系统:MAC系统
|
|
@@ -23,10 +28,6 @@ class DownloadDataAdapter @JvmOverloads constructor(
|
|
context: Context,
|
|
context: Context,
|
|
dataList: MutableList<DownloadDataModel>
|
|
dataList: MutableList<DownloadDataModel>
|
|
) : CrAdapter<DownloadDataModel>(context, dataList),View.OnClickListener {
|
|
) : CrAdapter<DownloadDataModel>(context, dataList),View.OnClickListener {
|
|
- private val DOWNLOAD_START = 9001
|
|
|
|
- private val DOWNLOAD_PROGRESS = 9002
|
|
|
|
- private val DOWNLOAD_FAILURE = 9003
|
|
|
|
- private val DOWNLOAD_SUCCESS = 9004
|
|
|
|
// todo: 2023/4/11 多线程
|
|
// todo: 2023/4/11 多线程
|
|
private val handler:Handler = object:Handler(Looper.getMainLooper()){
|
|
private val handler:Handler = object:Handler(Looper.getMainLooper()){
|
|
override fun handleMessage(msg: Message) {
|
|
override fun handleMessage(msg: Message) {
|
|
@@ -60,14 +61,15 @@ class DownloadDataAdapter @JvmOverloads constructor(
|
|
viewHolder.lblIsDownload = view?.findViewById(R.id.item_down_state)
|
|
viewHolder.lblIsDownload = view?.findViewById(R.id.item_down_state)
|
|
viewHolder.btnDownload = view?.findViewById(R.id.item_down_down)
|
|
viewHolder.btnDownload = view?.findViewById(R.id.item_down_down)
|
|
viewHolder.progressBar = view?.findViewById(R.id.item_down_bar)
|
|
viewHolder.progressBar = view?.findViewById(R.id.item_down_bar)
|
|
- // todo: 2023/4/11 设置最大值
|
|
|
|
- viewHolder.progressBar?.max = 100
|
|
|
|
view?.tag = viewHolder
|
|
view?.tag = viewHolder
|
|
}else{
|
|
}else{
|
|
viewHolder = view?.tag as ViewHolder
|
|
viewHolder = view?.tag as ViewHolder
|
|
}
|
|
}
|
|
// todo: 2023/4/11 初始化数据
|
|
// todo: 2023/4/11 初始化数据
|
|
var model:DownloadDataModel = dataList!![position]
|
|
var model:DownloadDataModel = dataList!![position]
|
|
|
|
+ // todo: 2023/4/12 判断文件是否存在
|
|
|
|
+ var fullName = CrUtil.CONFIG_PATH + model.fileName
|
|
|
|
+ model.isDownload = FileManager.isExists(fullName)
|
|
model.let {
|
|
model.let {
|
|
viewHolder.lblTitle?.text = it.title
|
|
viewHolder.lblTitle?.text = it.title
|
|
viewHolder.lblIsDownload?.text = if (model.isDownload) "已下载" else "未下载"
|
|
viewHolder.lblIsDownload?.text = if (model.isDownload) "已下载" else "未下载"
|
|
@@ -79,6 +81,9 @@ class DownloadDataAdapter @JvmOverloads constructor(
|
|
255
|
|
255
|
|
) else Color.argb(255, 255, 0, 0)
|
|
) else Color.argb(255, 255, 0, 0)
|
|
)
|
|
)
|
|
|
|
+ // todo: 2023/4/11 设置最大值
|
|
|
|
+ viewHolder.progressBar?.max = 100
|
|
|
|
+ viewHolder.progressBar?.progress = 0
|
|
viewHolder.model = model
|
|
viewHolder.model = model
|
|
viewHolder.btnDownload?.tag = viewHolder
|
|
viewHolder.btnDownload?.tag = viewHolder
|
|
viewHolder.btnDownload?.setOnClickListener(this)
|
|
viewHolder.btnDownload?.setOnClickListener(this)
|
|
@@ -87,18 +92,6 @@ class DownloadDataAdapter @JvmOverloads constructor(
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 发送多线程消息
|
|
|
|
- * @param obj Object 消息体
|
|
|
|
- * @param what Int 标识
|
|
|
|
- */
|
|
|
|
- private fun sendThreadMessage(obj:Object,what:Int){
|
|
|
|
- var message = Message()
|
|
|
|
- message.what = what
|
|
|
|
- message.obj = obj
|
|
|
|
- handler.sendMessage(message)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
* 视图点击事件
|
|
* 视图点击事件
|
|
* @param view View
|
|
* @param view View
|
|
*/
|
|
*/
|
|
@@ -106,7 +99,40 @@ class DownloadDataAdapter @JvmOverloads constructor(
|
|
when(view?.id){
|
|
when(view?.id){
|
|
R.id.item_down_down->{
|
|
R.id.item_down_down->{
|
|
var holder = view.tag as ViewHolder
|
|
var holder = view.tag as ViewHolder
|
|
- holder.progressBar?.progress = 50
|
|
|
|
|
|
+ var url = "${NetManager.getServerUrl()}/resource/download/${holder.model?.fileName}"
|
|
|
|
+ var fullName = CrUtil.CONFIG_PATH + holder.model?.fileName
|
|
|
|
+ TCPDataTask.getInstance().sendDownloadFile(context!!,fullName,url,object:TCPDataTask.OnDownloadListener{
|
|
|
|
+ // todo: 2023/4/12 开始下载
|
|
|
|
+ override fun onStart() {
|
|
|
|
+ holder.progressBar?.progress = 0
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // todo: 2023/4/12 下载错误
|
|
|
|
+ override fun onFailed(message: String) {
|
|
|
|
+ DialogNormal(context!!,"警告",message).show()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // todo: 2023/4/12 下载进度
|
|
|
|
+ override fun onProgress(progress: Int, total: Int) {
|
|
|
|
+ holder.progressBar?.max = total
|
|
|
|
+ holder.progressBar?.progress = progress
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // todo: 2023/4/12 下载完成
|
|
|
|
+ override fun onComplete() {
|
|
|
|
+ holder.model?.isDownload = FileManager.isExists(fullName)
|
|
|
|
+ holder.lblIsDownload?.text = if (holder.model!!.isDownload) "已下载" else "未下载"
|
|
|
|
+ holder.lblIsDownload?.setTextColor(
|
|
|
|
+ if (holder.model!!.isDownload) Color.argb(
|
|
|
|
+ 255,
|
|
|
|
+ 255,
|
|
|
|
+ 255,
|
|
|
|
+ 255
|
|
|
|
+ ) else Color.argb(255, 255, 0, 0)
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|