[2.14.0]BadCase三期-录包管理
This commit is contained in:
@@ -6,7 +6,6 @@ import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Handler
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
@@ -75,11 +74,13 @@ internal class BadCaseManagerView @JvmOverloads constructor(
|
||||
if(bagManagerEntity.bagsInfoResp.size>0){
|
||||
selectedBagSize = 0
|
||||
for(selectBagInfo in bagManagerEntity.bagsInfoResp){
|
||||
selectBagInfo.selectStatus = true
|
||||
selectedBagSize += selectBagInfo.totalSize
|
||||
bagManagerList.add(selectBagInfo)
|
||||
if(selectBagInfo.itemType == 0){
|
||||
selectBagInfo.selectStatus = true
|
||||
selectedBagSize += selectBagInfo.totalSize
|
||||
bagManagerList.add(selectBagInfo)
|
||||
selectedBagNum++
|
||||
}
|
||||
}
|
||||
selectedBagNum = bagManagerEntity.bagsInfoResp.size
|
||||
//显示选择包的个数和大小
|
||||
tvSelectedBagSize.text = "已选${selectedBagNum}个包,共${selectedBagSize/(1000*1024*1024)}G"
|
||||
tvSelectedBagSize.visibility = View.VISIBLE
|
||||
@@ -109,12 +110,14 @@ internal class BadCaseManagerView @JvmOverloads constructor(
|
||||
CallerAutoPilotManager.sendBagManagerCmd(bagManagerEntity)
|
||||
|
||||
bagUploadDialog = BagUploadDialog(context)
|
||||
bagUploadDialog?.setListener { //删除选择
|
||||
bagUploadDialog?.setListener { //删除选择,取消上传
|
||||
bagManagerList.clear()
|
||||
if (bagManagerEntity.bagsInfoResp.size > 0) {
|
||||
for (cancelBagInfo in bagManagerEntity.bagsInfoResp) {
|
||||
cancelBagInfo.selectStatus = false
|
||||
bagManagerList.remove(cancelBagInfo)
|
||||
if(cancelBagInfo.itemType == 0){
|
||||
cancelBagInfo.selectStatus = false
|
||||
bagManagerList.remove(cancelBagInfo)
|
||||
}
|
||||
}
|
||||
selectedBagNum = 0
|
||||
selectedBagSize = 0
|
||||
@@ -122,9 +125,8 @@ internal class BadCaseManagerView @JvmOverloads constructor(
|
||||
bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp)
|
||||
}
|
||||
}
|
||||
bagUploadDialog?.setAllUpload(selectedBagNum,selectedBagSize)
|
||||
bagUploadDialog?.show()
|
||||
|
||||
bagUploadDialog?.setAllUpload(selectedBagNum,selectedBagSize)
|
||||
}else{
|
||||
ToastUtils.showShort("请先选择要上传的Bag包")
|
||||
}
|
||||
@@ -211,56 +213,78 @@ internal class BadCaseManagerView @JvmOverloads constructor(
|
||||
// DownloadManager.getInstance().download("CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",
|
||||
// "/mnt/sdcard/mogo/","test13.wav")
|
||||
|
||||
val descriptionEntityOne = BagDescriptionEntity("包信息描述1",false,
|
||||
"CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",false)
|
||||
val bagInfoEntityOne = BagInfoEntity()
|
||||
bagInfoEntityOne.key = 12341
|
||||
bagInfoEntityOne.totalSize = 1*1024*1024*1000
|
||||
bagInfoEntityOne.timestamp = System.currentTimeMillis().toString()
|
||||
bagInfoEntityOne.bagPath = ""
|
||||
bagInfoEntityOne.mergeStat = false
|
||||
bagInfoEntityOne.uploadStat = false
|
||||
bagInfoEntityOne.description = descriptionEntityOne
|
||||
|
||||
val descriptionEntityTwo = BagDescriptionEntity("包信息描述2",true,
|
||||
"CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
val bagInfoEntityTwo = BagInfoEntity()
|
||||
bagInfoEntityTwo.key = 12342
|
||||
bagInfoEntityTwo.totalSize = 2*1024*1024*1000
|
||||
bagInfoEntityTwo.timestamp = System.currentTimeMillis().toString()
|
||||
bagInfoEntityTwo.bagPath = ""
|
||||
bagInfoEntityTwo.mergeStat = false
|
||||
bagInfoEntityTwo.uploadStat = false
|
||||
bagInfoEntityTwo.description = descriptionEntityTwo
|
||||
|
||||
val descriptionEntityThree = BagDescriptionEntity("包信息描述3",true,
|
||||
"CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
val bagInfoEntityThree = BagInfoEntity()
|
||||
bagInfoEntityThree.key = 12343
|
||||
bagInfoEntityThree.totalSize = 1*1024*1024*1000
|
||||
bagInfoEntityThree.timestamp = System.currentTimeMillis().toString()
|
||||
bagInfoEntityThree.bagPath = ""
|
||||
bagInfoEntityThree.mergeStat = false
|
||||
bagInfoEntityThree.uploadStat = false
|
||||
bagInfoEntityThree.description = descriptionEntityThree
|
||||
|
||||
val descriptionEntityFour = BagDescriptionEntity("包信息描述1",true,
|
||||
"CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
val bagInfoEntityFour = BagInfoEntity()
|
||||
bagInfoEntityFour.key = 12344
|
||||
bagInfoEntityFour.totalSize = 10*1024*1024*1000L
|
||||
bagInfoEntityFour.timestamp = System.currentTimeMillis().toString()
|
||||
bagInfoEntityFour.bagPath = ""
|
||||
bagInfoEntityFour.mergeStat = false
|
||||
bagInfoEntityFour.uploadStat = false
|
||||
bagInfoEntityFour.description = descriptionEntityFour
|
||||
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntityOne)
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntityTwo)
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntityThree)
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntityFour)
|
||||
|
||||
bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp)
|
||||
// val descriptionEntityOne = BagDescriptionEntity("包信息描述1",false,
|
||||
// "CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",false)
|
||||
// val bagInfoEntityOne = BagInfoEntity()
|
||||
// bagInfoEntityOne.key = 12341
|
||||
// bagInfoEntityOne.totalSize = 1*1024*1024*1000
|
||||
// bagInfoEntityOne.timestamp = "20230208125414"
|
||||
// bagInfoEntityOne.bagPath = ""
|
||||
// bagInfoEntityOne.mergeStat = false
|
||||
// bagInfoEntityOne.uploadStat = false
|
||||
// bagInfoEntityOne.description = descriptionEntityOne
|
||||
//
|
||||
// val descriptionEntityTwo = BagDescriptionEntity("包信息描述2",true,
|
||||
// "CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
// val bagInfoEntityTwo = BagInfoEntity()
|
||||
// bagInfoEntityTwo.key = 12342
|
||||
// bagInfoEntityTwo.totalSize = 2*1024*1024*1000
|
||||
// bagInfoEntityTwo.timestamp = "20230208125414"
|
||||
// bagInfoEntityTwo.bagPath = ""
|
||||
// bagInfoEntityTwo.mergeStat = false
|
||||
// bagInfoEntityTwo.uploadStat = false
|
||||
// bagInfoEntityTwo.description = descriptionEntityTwo
|
||||
//
|
||||
// val descriptionEntityThree = BagDescriptionEntity("包信息描述3",true,
|
||||
// "CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
// val bagInfoEntityThree = BagInfoEntity()
|
||||
// bagInfoEntityThree.key = 12343
|
||||
// bagInfoEntityThree.totalSize = 1*1027*1000
|
||||
// bagInfoEntityThree.timestamp = "20230208125414"
|
||||
// bagInfoEntityThree.bagPath = ""
|
||||
// bagInfoEntityThree.mergeStat = false
|
||||
// bagInfoEntityThree.uploadStat = false
|
||||
// bagInfoEntityThree.description = descriptionEntityThree
|
||||
//
|
||||
// val descriptionEntityFour = BagDescriptionEntity("包信息描述4",true,
|
||||
// "CarPad/mogopadlog/X20202111230C01YYW/2023-01-30/Audio_1675049657187_BadCase.wav",true)
|
||||
// val bagInfoEntityFour = BagInfoEntity()
|
||||
// bagInfoEntityFour.key = 12344
|
||||
// bagInfoEntityFour.totalSize = 10*1024*1024*1000L
|
||||
// bagInfoEntityFour.timestamp = "20230208125414"
|
||||
// bagInfoEntityFour.bagPath = ""
|
||||
// bagInfoEntityFour.mergeStat = false
|
||||
// bagInfoEntityFour.uploadStat = false
|
||||
// bagInfoEntityFour.description = descriptionEntityFour
|
||||
//
|
||||
// val list: MutableList<BagInfoEntity> = ArrayList()
|
||||
// list.add(bagInfoEntityOne)
|
||||
// list.add(bagInfoEntityTwo)
|
||||
// list.add(bagInfoEntityThree)
|
||||
// list.add(bagInfoEntityFour)
|
||||
// for(entity in list){
|
||||
// entity.timestamp?.let {
|
||||
// val month = it.substring(4,6)
|
||||
// val day = it.substring(6,8)
|
||||
// val time = "${month}月${day}日"
|
||||
// var containTime = false
|
||||
// for(bag in bagManagerEntity.bagsInfoResp){
|
||||
// if(bag.timeStr == time){
|
||||
// containTime = true
|
||||
// }
|
||||
// }
|
||||
// if(!containTime || bagManagerEntity.bagsInfoResp.size ==0){
|
||||
// //增加时间的
|
||||
// val bagInfoEntity = BagInfoEntity()
|
||||
// bagInfoEntity.itemType = 1
|
||||
// bagInfoEntity.timeStr = time
|
||||
// bagManagerEntity.bagsInfoResp.add(bagInfoEntity)
|
||||
// }
|
||||
// bagManagerEntity.bagsInfoResp.add(entity)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp)
|
||||
|
||||
}
|
||||
|
||||
@@ -300,20 +324,40 @@ internal class BadCaseManagerView @JvmOverloads constructor(
|
||||
if(bagManager.bagsInfoRespCount>0){
|
||||
for(bagInfo in bagManager.bagsInfoRespList){
|
||||
bagInfo?.let {
|
||||
val descriptionEntity = BagDescriptionEntity(it.description.description,it.description.hasAudio,it.description.audioUrl,it.description.reportBI)
|
||||
val bagInfoEntity = BagInfoEntity()
|
||||
bagInfoEntity.key = it.key
|
||||
bagInfoEntity.totalSize = it.totalSize
|
||||
bagInfoEntity.timestamp = it.timestamp
|
||||
bagInfoEntity.bagPath = it.bagPath
|
||||
bagInfoEntity.mergeStat = it.mergeStat
|
||||
bagInfoEntity.uploadStat = it.uploadStat
|
||||
bagInfoEntity.description = descriptionEntity
|
||||
for(subBag in it.subBagsList){
|
||||
val subBagEntity = SubBagEntity(subBag.key,subBag.host,subBag.size)
|
||||
bagInfoEntity.subBags.add(subBagEntity)
|
||||
it.timestamp?.let { time ->
|
||||
val descriptionEntity = BagDescriptionEntity(it.description.description,it.description.hasAudio,it.description.audioUrl,it.description.reportBI)
|
||||
val bagInfoEntity = BagInfoEntity()
|
||||
bagInfoEntity.key = it.key
|
||||
bagInfoEntity.totalSize = it.totalSize
|
||||
bagInfoEntity.timestamp = it.timestamp
|
||||
bagInfoEntity.bagPath = it.bagPath
|
||||
bagInfoEntity.mergeStat = it.mergeStat
|
||||
bagInfoEntity.uploadStat = it.uploadStat
|
||||
bagInfoEntity.description = descriptionEntity
|
||||
for(subBag in it.subBagsList){
|
||||
val subBagEntity = SubBagEntity(subBag.key,subBag.host,subBag.size)
|
||||
bagInfoEntity.subBags.add(subBagEntity)
|
||||
}
|
||||
|
||||
val month = time.substring(4,6)
|
||||
val day = time.substring(6,8)
|
||||
val time = "${month}月${day}日"
|
||||
var containTime = false
|
||||
for(bag in bagManagerEntity.bagsInfoResp){
|
||||
if(bag.timeStr == time){
|
||||
containTime = true
|
||||
}
|
||||
}
|
||||
if(!containTime || bagManagerEntity.bagsInfoResp.size ==0){
|
||||
//增加时间的
|
||||
val bagInfoEntity = BagInfoEntity()
|
||||
bagInfoEntity.itemType = 1
|
||||
bagInfoEntity.timeStr = time
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntity)
|
||||
}
|
||||
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntity)
|
||||
}
|
||||
bagManagerEntity.bagsInfoResp.add(bagInfoEntity)
|
||||
}
|
||||
}
|
||||
//更新List
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zhjt.mogo_core_function_devatools.badcase.biz;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
@@ -11,6 +12,8 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.zhjt.mogo_core_function_devatools.R;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description Bag包上传进度展示弹窗
|
||||
@@ -23,12 +26,13 @@ public class BagUploadDialog extends Dialog {
|
||||
private TextView tvUploadDetail;//上传详情
|
||||
private ProgressBar viewUploadProgress;//上传进度条
|
||||
|
||||
private int totalNum;
|
||||
private Long totalSize;
|
||||
private int remainNum;
|
||||
private Long remainSize;
|
||||
private int totalNum = 0;
|
||||
private Long totalSize = 0L;
|
||||
private int remainNum = 0;
|
||||
private Long remainSize = 0L;
|
||||
|
||||
private BagUploadListener uploadListener;
|
||||
private DecimalFormat format = new DecimalFormat("0.0");
|
||||
|
||||
public BagUploadDialog(@NonNull Context context) {
|
||||
super(context, R.style.bad_case_dialog);
|
||||
@@ -82,17 +86,26 @@ public class BagUploadDialog extends Dialog {
|
||||
uploadListener = listener;
|
||||
}
|
||||
|
||||
public void setAllUpload(int totalNum,Long totalSize){
|
||||
@SuppressLint("SetTextI18n")
|
||||
public void setAllUpload(int totalNum, Long totalSize){
|
||||
this.totalNum = totalNum;
|
||||
this.totalSize = totalSize;
|
||||
//更新进度条和进度文字
|
||||
String totalStr = format.format((totalSize/(1000*1024*1024.0)));
|
||||
tvUploadDetail.setText("共计"+totalNum+"个包 ("+totalStr+"G) 已上传"+(0)+"个包 ("
|
||||
+0+"G) 剩余"+totalNum+"个包 ("+ totalStr+"G)");
|
||||
}
|
||||
|
||||
public void updateRemainUpload(int remainNum,Long remainSize){
|
||||
@SuppressLint("SetTextI18n")
|
||||
public void updateRemainUpload(int remainNum, Long remainSize){
|
||||
this.remainNum = remainNum;
|
||||
this.remainSize = remainSize;
|
||||
//更新进度条和进度文字
|
||||
tvUploadDetail.setText("共计"+totalNum+"个包 ("+(totalSize/(1000*1024*1024L))+"G) 已上传"+(totalNum-remainNum)+"个包 ("
|
||||
+((totalSize-remainSize)/(1000*1024*1024L))+"G) 剩余"+remainNum+"个包 ("+ (remainSize/(1000*1024*1024L))+"G)");
|
||||
String updateTotalStr = format.format((totalSize/(1000*1024*1024.0)));
|
||||
String updateUploadStr = format.format(((totalSize-remainSize)/(1000*1024*1024.0)));
|
||||
String updateRemainStr = format.format((remainSize/(1000*1024*1024.0)));
|
||||
tvUploadDetail.setText("共计"+totalNum+"个包 ("+updateTotalStr+"G) 已上传"+(totalNum-remainNum)+"个包 ("
|
||||
+updateUploadStr+"G) 剩余"+remainNum+"个包 ("+ updateRemainStr +"G)");
|
||||
viewUploadProgress.setProgress((totalNum-remainNum)*100/totalNum);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.zhjt.mogo_core_function_devatools.badcase.biz;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
@@ -20,9 +20,11 @@ public class SpaceWarningDialog extends Dialog {
|
||||
|
||||
private TextView tvCleanDisk;//清理磁盘
|
||||
private TextView tvCancel;//取消
|
||||
private Activity mActivity;
|
||||
|
||||
public SpaceWarningDialog(@NonNull Context context) {
|
||||
super(context, R.style.bad_case_dialog);
|
||||
public SpaceWarningDialog(@NonNull Activity activity) {
|
||||
super(activity, R.style.bad_case_dialog);
|
||||
mActivity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -47,7 +49,9 @@ public class SpaceWarningDialog extends Dialog {
|
||||
//清理磁盘
|
||||
tvCleanDisk.setOnClickListener(v -> {
|
||||
//跳转录包管理页面
|
||||
CallerDevaToolsManager.INSTANCE.showBadCaseManagerView(getContext());
|
||||
if(mActivity!=null){
|
||||
CallerDevaToolsManager.INSTANCE.showBadCaseManagerView(mActivity);
|
||||
}
|
||||
dismiss();
|
||||
});
|
||||
//取消
|
||||
|
||||
@@ -9,119 +9,140 @@ import android.widget.CheckBox
|
||||
import android.widget.EditText
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.eagle.core.data.badcase.BagDescriptionEntity
|
||||
import com.mogo.eagle.core.data.badcase.BagInfoEntity
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.zhjt.mogo_core_function_devatools.R
|
||||
import kotlinx.coroutines.NonDisposableHandle
|
||||
import kotlinx.coroutines.NonDisposableHandle.parent
|
||||
import java.text.DecimalFormat
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description Bag包管理列表适配器
|
||||
* @since: 2022/12/19
|
||||
*/
|
||||
class BagManagerListAdapter: RecyclerView.Adapter<BagManagerListAdapter.BagManagerListHolder>() {
|
||||
class BagManagerListAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
|
||||
private var data:List<BagInfoEntity> ?= null
|
||||
private var bagClickListener: BagClickListener ?= null
|
||||
private val format = DecimalFormat("0.0")
|
||||
|
||||
fun setData(data: List<BagInfoEntity>?){
|
||||
this.data = data
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BagManagerListHolder {
|
||||
val view = LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.item_bag_manager, parent, false)
|
||||
return BagManagerListHolder(view)
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
if(viewType == 1){
|
||||
val view = LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.item_bag_time_title,parent,false)
|
||||
return BagTimeTitleHolder(view)
|
||||
}else{
|
||||
val view = LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.item_bag_manager, parent, false)
|
||||
return BagManagerListHolder(view)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: BagManagerListHolder, position: Int) {
|
||||
data?.let {
|
||||
val bagInfoEntity = it[position]
|
||||
// if(bagInfoEntity.description?.description.isNullOrEmpty()){
|
||||
// holder.cbBagSelect.text = bagInfoEntity.key.toString()
|
||||
// }else{
|
||||
// holder.cbBagSelect.text = bagInfoEntity.description?.description
|
||||
// }
|
||||
holder.cbBagSelect.setOnCheckedChangeListener(null)
|
||||
holder.cbBagSelect.isChecked = bagInfoEntity.selectStatus
|
||||
holder.cbBagSelect.tag = bagInfoEntity
|
||||
holder.cbBagSelect.setOnCheckedChangeListener { _, isChecked ->
|
||||
bagClickListener?.onClick(bagInfoEntity,isChecked)
|
||||
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
|
||||
when(holder){
|
||||
is BagTimeTitleHolder ->{
|
||||
data?.let {
|
||||
holder.tvBagTimeTitle.text = it[position].timeStr
|
||||
}
|
||||
}
|
||||
is BagManagerListHolder->{
|
||||
data?.let {
|
||||
val bagInfoEntity = it[position]
|
||||
holder.cbBagSelect.setOnCheckedChangeListener(null)
|
||||
holder.cbBagSelect.isChecked = bagInfoEntity.selectStatus
|
||||
holder.cbBagSelect.tag = bagInfoEntity
|
||||
holder.cbBagSelect.setOnCheckedChangeListener { _, isChecked ->
|
||||
bagClickListener?.onClick(bagInfoEntity,isChecked)
|
||||
}
|
||||
|
||||
holder.etBagNameEdit.addTextChangedListener(object:TextWatcher{
|
||||
override fun beforeTextChanged(
|
||||
s: CharSequence?,
|
||||
start: Int,
|
||||
count: Int,
|
||||
after: Int
|
||||
) {
|
||||
holder.etBagNameEdit.addTextChangedListener(object:TextWatcher{
|
||||
override fun beforeTextChanged(
|
||||
s: CharSequence?,
|
||||
start: Int,
|
||||
count: Int,
|
||||
after: Int
|
||||
) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
bagInfoEntity.description?.let { desc->
|
||||
val descriptionStr = s.toString()
|
||||
if(desc.description != descriptionStr){
|
||||
desc.description = descriptionStr
|
||||
bagClickListener?.editDescription(bagInfoEntity.key,desc)
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
bagInfoEntity.description?.let { desc->
|
||||
val descriptionStr = s.toString()
|
||||
if(desc.description != descriptionStr){
|
||||
desc.description = descriptionStr
|
||||
bagClickListener?.editDescription(bagInfoEntity.key,desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
bagInfoEntity.description?.let { des->
|
||||
if(des.reportBI){
|
||||
//已上报
|
||||
holder.tvBagReportStatus.text = "已上报"
|
||||
holder.tvBagReportStatus.setBackgroundResource(R.drawable.bag_reported_button_bg)
|
||||
}else{
|
||||
//未上报
|
||||
holder.tvBagReportStatus.text = "上报"
|
||||
holder.tvBagReportStatus.setBackgroundResource(R.drawable.bag_report_button_bg)
|
||||
holder.tvBagReportStatus.setOnClickListener {
|
||||
bagClickListener?.uploadBI(bagInfoEntity)
|
||||
}
|
||||
}
|
||||
if(des.description.isEmpty()){
|
||||
holder.etBagNameEdit.setText(bagInfoEntity.key.toString())
|
||||
}else{
|
||||
holder.etBagNameEdit.setText(des.description)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
bagInfoEntity.description?.let { des->
|
||||
if(des.reportBI){
|
||||
//已上报
|
||||
holder.tvBagReportStatus.text = "已上报"
|
||||
holder.tvBagReportStatus.setBackgroundResource(R.drawable.bag_reported_button_bg)
|
||||
}else{
|
||||
//未上报
|
||||
holder.tvBagReportStatus.text = "上报"
|
||||
holder.tvBagReportStatus.setBackgroundResource(R.drawable.bag_report_button_bg)
|
||||
holder.tvBagReportStatus.setOnClickListener {
|
||||
bagClickListener?.uploadBI(bagInfoEntity)
|
||||
if(bagInfoEntity.description?.hasAudio == true){
|
||||
holder.ivBagAudio.visibility = View.VISIBLE
|
||||
holder.ivBagAudio.setOnClickListener {
|
||||
bagInfoEntity.description?.let { description->
|
||||
bagClickListener?.bagAudio(bagInfoEntity.key,description.audioUrl)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
holder.ivBagAudio.visibility = View.INVISIBLE
|
||||
}
|
||||
//大小
|
||||
val bagSize = format.format(bagInfoEntity.totalSize/(1000*1024*1024.0))
|
||||
holder.tvBagSize.text = "${bagSize}G"
|
||||
|
||||
//时间
|
||||
bagInfoEntity.timestamp?.let { time->
|
||||
val hour = time.substring(8,10)
|
||||
val min = time.substring(10,12)
|
||||
val second = time.substring(12,14)
|
||||
holder.tvBagTime.text = "${hour}:${min}:${second}"
|
||||
}
|
||||
}
|
||||
if(des.description.isEmpty()){
|
||||
holder.etBagNameEdit.setText(bagInfoEntity.key.toString())
|
||||
}else{
|
||||
holder.etBagNameEdit.setText(des.description)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(bagInfoEntity.description?.hasAudio == true){
|
||||
holder.ivBagAudio.visibility = View.VISIBLE
|
||||
holder.ivBagAudio.setOnClickListener {
|
||||
bagInfoEntity.description?.let { description->
|
||||
bagClickListener?.bagAudio(bagInfoEntity.key,description.audioUrl)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
holder.ivBagAudio.visibility = View.INVISIBLE
|
||||
}
|
||||
|
||||
holder.tvBagSize.text = "${bagInfoEntity.totalSize/(1000*1024*1024)}G"
|
||||
holder.tvBagTime.text =
|
||||
it[position].timestamp?.let { it1 -> TimeUtils.millis2String(it1.toLong(),TimeUtils.getHourMinSecondFormat()) }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount() = data?.size ?: 0
|
||||
|
||||
override fun getItemViewType(position: Int): Int {
|
||||
return data!![position].itemType
|
||||
}
|
||||
|
||||
class BagTimeTitleHolder(itemView: View): RecyclerView.ViewHolder(itemView){
|
||||
var tvBagTimeTitle: TextView = itemView.findViewById(R.id.tvBagTimeTitle)
|
||||
}
|
||||
|
||||
class BagManagerListHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
|
||||
var cbBagSelect: CheckBox = itemView.findViewById(R.id.cbBagSelect)
|
||||
var etBagNameEdit: EditText = itemView.findViewById(R.id.etBagNameEdit)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 926 B |
@@ -73,10 +73,10 @@
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginTop="275px"
|
||||
android:layout_marginTop="270px"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:max="100"
|
||||
android:progress="40"
|
||||
android:progress="0"
|
||||
android:progressDrawable="@drawable/progress_bar_drawable"
|
||||
/>
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginTop="378px"
|
||||
android:layout_marginTop="370px"
|
||||
android:textColor="#FF06D1ED"
|
||||
android:textSize="43px"
|
||||
android:gravity="center"
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
app:layout_constraintLeft_toRightOf="@id/cbBagSelect"
|
||||
app:layout_constraintRight_toLeftOf="@id/tvBagTime"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginEnd="30dp"
|
||||
android:background="@null"
|
||||
android:drawableEnd="@drawable/icon_dev_status_un_fold"
|
||||
android:drawableEnd="@drawable/icon_bag_edit"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="32dp"
|
||||
android:maxLines="1"
|
||||
@@ -57,9 +57,9 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@id/tvBagReportStatus"
|
||||
android:src="@drawable/icon_dev_status_un_fold"
|
||||
android:src="@drawable/icon_bag_audio"
|
||||
android:visibility="invisible"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginEnd="30dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -70,7 +70,7 @@
|
||||
android:textSize="26dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@id/ivBagAudio"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginEnd="30dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBagTimeTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="38px"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -174,8 +174,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/pbSpacePercent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvSelectAll"
|
||||
app:layout_constraintBottom_toTopOf="@id/tvUploadCloud"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
/>
|
||||
|
||||
</merge>
|
||||
Reference in New Issue
Block a user