[6.10.0]数据落盘更换日历用法

This commit is contained in:
xuxinchao
2025-02-12 14:14:42 +08:00
parent 0b41956ab4
commit 1f340820bf
3 changed files with 127 additions and 64 deletions

View File

@@ -1,17 +1,13 @@
package com.mogo.eagle.core.function.hmi.ui.diskcopy
import android.content.Context
import android.os.Build
import android.util.AttributeSet
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import androidx.annotation.RequiresApi
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.GridLayoutManager
import com.mogo.eagle.core.data.deva.diskcopy.CopyCalendarInfo
import com.mogo.eagle.core.function.api.devatools.IDiskCopyListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.devatools.CallerDiskCopyManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.R
@@ -32,14 +28,14 @@ import kotlinx.android.synthetic.main.view_disk_copy.view.tvDiskFreeSpace
import kotlinx.android.synthetic.main.view_disk_copy.view.tvDiskUsedPercent
import kotlinx.android.synthetic.main.view_disk_copy.view.viewDiskCopyDate
import packet_mytest_upload.CopyBag
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.Month
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import java.util.TimeZone
/**
* 数据落盘辅助工具
*/
@RequiresApi(Build.VERSION_CODES.O)
class DiskCopyView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@@ -63,15 +59,14 @@ class DiskCopyView @JvmOverloads constructor(
val gridLayoutManager = GridLayoutManager(context,7)
diskCopyCalendarAdapter = DiskCopyCalendarAdapter()
diskCopyCalendarAdapter?.setDateSelectListener(object: DiskCopyCalendarAdapter.DateSelectListener{
override fun onDateSelect(date: String) {
//
override fun onDateSelect(info: CopyCalendarInfo) {
//切换页面隐藏日历显示,切换为硬盘接入页面
pbDiskCopyProgress.visibility = View.GONE
groupDiskCopy.visibility = View.VISIBLE
groupDateSelect.visibility = View.GONE
//显示选择日期
tvCurrentDate.text = info.uiDateFormat
tvCurrentWeek.text = parseWeekDescribe(info.currentDayOfWeek)
}
})
rvCalendar.adapter = diskCopyCalendarAdapter
@@ -95,13 +90,9 @@ class DiskCopyView @JvmOverloads constructor(
}
}
@RequiresApi(Build.VERSION_CODES.O)
private fun initData(){
//TODO 当前选择日期显示
tvCurrentDate.text = "2025.2.8"
tvCurrentWeek.text = "周六"
val formatIpc = SimpleDateFormat("yyyyMMdd", Locale.CHINA)
val formatUi = SimpleDateFormat("yyyy.MM.dd",Locale.CHINA)
//添加日历星期标题头
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
@@ -111,86 +102,113 @@ class DiskCopyView @JvmOverloads constructor(
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
val dateNow = LocalDate.now()
tvCurrentMonth.text = when(dateNow.month){
Month.JANUARY->{
val calendar: Calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"))
val currentMonth = calendar.get(Calendar.MONTH)
tvCurrentMonth.text = when(currentMonth){
Calendar.JANUARY->{
"一月"
}
Month.FEBRUARY->{
Calendar.FEBRUARY->{
"二月"
}
Month.MARCH->{
Calendar.MARCH->{
"三月"
}
Month.APRIL->{
Calendar.APRIL->{
"四月"
}
Month.MAY->{
Calendar.MAY->{
"五月"
}
Month.JUNE->{
Calendar.JUNE->{
"六月"
}
Month.JULY->{
Calendar.JULY->{
"七月"
}
Month.AUGUST->{
Calendar.AUGUST->{
"八月"
}
Month.SEPTEMBER->{
Calendar.SEPTEMBER->{
"九月"
}
Month.OCTOBER->{
Calendar.OCTOBER->{
"十月"
}
Month.NOVEMBER->{
Calendar.NOVEMBER->{
"十一月"
}
Month.DECEMBER->{
Calendar.DECEMBER->{
"十二月"
}
else -> {
""
}
}
val today = dateNow.dayOfMonth
val yesterday = dateNow.minusDays(1).dayOfMonth
val twoDaysAgo = dateNow.minusDays(2).dayOfMonth
val threeDaysAgo = dateNow.minusDays(3).dayOfMonth
val fourDaysAgo = dateNow.minusDays(4).dayOfMonth
val fiveDaysAgo = dateNow.minusDays(5).dayOfMonth
val sixDaysAgo = dateNow.minusDays(6).dayOfMonth
when(dateNow.minusDays(6).dayOfWeek){
val today = calendar.get(Calendar.DAY_OF_MONTH)
val todayOfIpc = formatIpc.format(calendar.time)
val todayOfUi = formatUi.format(calendar.time)
val todayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val yesterday = calendar.get(Calendar.DAY_OF_MONTH)
val yesterdayOfIpc = formatIpc.format(calendar.time)
val yesterdayOfUi = formatUi.format(calendar.time)
val yesterdayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val twoDaysAgo = calendar.get(Calendar.DAY_OF_MONTH)
val twoDaysAgoOfIpc = formatIpc.format(calendar.time)
val twoDaysAgoOfUi = formatUi.format(calendar.time)
val twoDaysAgoOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val threeDaysAgo = calendar.get(Calendar.DAY_OF_MONTH)
val threeDaysAgoOfIpc = formatIpc.format(calendar.time)
val threeDaysAgoOfUi = formatUi.format(calendar.time)
val threeDaysAgoOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val fourDaysAgo = calendar.get(Calendar.DAY_OF_MONTH)
val fourDaysAgoOfIpc = formatIpc.format(calendar.time)
val fourDaysAgoOfUi = formatUi.format(calendar.time)
val fourDaysAgoOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val fiveDaysAgo = calendar.get(Calendar.DAY_OF_MONTH)
val fiveDaysAgoOfIpc = formatIpc.format(calendar.time)
val fiveDaysAgoOfUi = formatUi.format(calendar.time)
val fiveDaysAgoOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
calendar.add(Calendar.DAY_OF_MONTH,-1)
val sixDaysAgo = calendar.get(Calendar.DAY_OF_MONTH)
val sixDaysAgoOfIpc = formatIpc.format(calendar.time)
val sixDaysAgoOfUi = formatUi.format(calendar.time)
val sixDaysAgoOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
//根据判断六天前是几增加空格占位
when(calendar.get(Calendar.DAY_OF_WEEK)){
//星期日
DayOfWeek.SUNDAY->{
Calendar.SUNDAY->{
}
//星期一
DayOfWeek.MONDAY->{
Calendar.MONDAY->{
calendarList.add(CopyCalendarInfo(false,""))
}
//星期二
DayOfWeek.TUESDAY->{
Calendar.TUESDAY->{
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
}
//星期三
DayOfWeek.WEDNESDAY->{
Calendar.WEDNESDAY->{
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
}
//星期四
DayOfWeek.THURSDAY->{
Calendar.THURSDAY->{
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
}
//星期五
DayOfWeek.FRIDAY->{
Calendar.FRIDAY->{
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
@@ -198,7 +216,7 @@ class DiskCopyView @JvmOverloads constructor(
calendarList.add(CopyCalendarInfo(false,""))
}
//星期六
DayOfWeek.SATURDAY->{
Calendar.SATURDAY->{
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
calendarList.add(CopyCalendarInfo(false,""))
@@ -211,17 +229,54 @@ class DiskCopyView @JvmOverloads constructor(
}
}
calendarList.add(CopyCalendarInfo(false,sixDaysAgo.toString()))
calendarList.add(CopyCalendarInfo(false,fiveDaysAgo.toString()))
calendarList.add(CopyCalendarInfo(false,fourDaysAgo.toString()))
calendarList.add(CopyCalendarInfo(false,threeDaysAgo.toString()))
calendarList.add(CopyCalendarInfo(false,twoDaysAgo.toString()))
calendarList.add(CopyCalendarInfo(false,yesterday.toString()))
calendarList.add(CopyCalendarInfo(false,today.toString()))
calendarList.add(CopyCalendarInfo(false,sixDaysAgo.toString(),sixDaysAgoOfIpc,sixDaysAgoOfUi,sixDaysAgoOfWeek))
calendarList.add(CopyCalendarInfo(false,fiveDaysAgo.toString(),fiveDaysAgoOfIpc,fiveDaysAgoOfUi,fiveDaysAgoOfWeek))
calendarList.add(CopyCalendarInfo(false,fourDaysAgo.toString(),fourDaysAgoOfIpc,fourDaysAgoOfUi,fourDaysAgoOfWeek))
calendarList.add(CopyCalendarInfo(false,threeDaysAgo.toString(),threeDaysAgoOfIpc,threeDaysAgoOfUi,threeDaysAgoOfWeek))
calendarList.add(CopyCalendarInfo(false,twoDaysAgo.toString(),twoDaysAgoOfIpc,twoDaysAgoOfUi,twoDaysAgoOfWeek))
calendarList.add(CopyCalendarInfo(false,yesterday.toString(),yesterdayOfIpc,yesterdayOfUi,yesterdayOfWeek))
calendarList.add(CopyCalendarInfo(false,today.toString(),todayOfIpc,todayOfUi,todayOfWeek))
diskCopyCalendarAdapter?.setData(calendarList)
//展示当天日期
tvCurrentDate.text = todayOfUi
tvCurrentWeek.text = parseWeekDescribe(todayOfWeek)
}
private fun parseWeekDescribe(currentWeek: Int?): String{
return when(currentWeek){
//星期日
Calendar.SUNDAY->{
"周日"
}
//星期一
Calendar.MONDAY->{
"周一"
}
//星期二
Calendar.TUESDAY->{
"周二"
}
//星期三
Calendar.WEDNESDAY->{
"周三"
}
//星期四
Calendar.THURSDAY->{
"周四"
}
//星期五
Calendar.FRIDAY->{
"周五"
}
//星期六
Calendar.SATURDAY->{
"周六"
}
else->{
""
}
}
}
override fun onAttachedToWindow() {

View File

@@ -39,15 +39,15 @@ class DiskCopyCalendarAdapter(): RecyclerView.Adapter<RecyclerView.ViewHolder>()
when(holder){
is CalendarTitleHolder->{
data?.let {
holder.tvCalendarTitle.text = it[position].content
holder.tvCalendarTitle.text = it[position].calendarDateFormat
}
}
is CalendarContentHolder->{
data?.let {
val dateInfo = it[position]
holder.tvCalendarContent.text = dateInfo.content
holder.tvCalendarContent.text = dateInfo.calendarDateFormat
holder.tvCalendarContent.setOnClickListener {
dateSelectListener?.onDateSelect(dateInfo.content)
dateSelectListener?.onDateSelect(dateInfo)
}
}
}
@@ -78,7 +78,7 @@ class DiskCopyCalendarAdapter(): RecyclerView.Adapter<RecyclerView.ViewHolder>()
* 日期选择回调接口
*/
interface DateSelectListener{
fun onDateSelect(date: String)
fun onDateSelect(info: CopyCalendarInfo)
}
/**