diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/DiskCopyView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/DiskCopyView.kt index 531930ab29..6934b3400d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/DiskCopyView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/DiskCopyView.kt @@ -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() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/adapter/DiskCopyCalendarAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/adapter/DiskCopyCalendarAdapter.kt index 1802ebf0d8..8a4372bf65 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/adapter/DiskCopyCalendarAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/diskcopy/adapter/DiskCopyCalendarAdapter.kt @@ -39,15 +39,15 @@ class DiskCopyCalendarAdapter(): RecyclerView.Adapter() 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() * 日期选择回调接口 */ interface DateSelectListener{ - fun onDateSelect(date: String) + fun onDateSelect(info: CopyCalendarInfo) } /** diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/diskcopy/CopyCalendarInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/diskcopy/CopyCalendarInfo.kt index f9befb8821..481c4addea 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/diskcopy/CopyCalendarInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/diskcopy/CopyCalendarInfo.kt @@ -1,3 +1,11 @@ package com.mogo.eagle.core.data.deva.diskcopy -data class CopyCalendarInfo(var isTitle: Boolean, var content: String) \ No newline at end of file +/** + * @param isTitle 是否是日历标题头 + * @param calendarDateFormat 日历格式日期 + * @param ipcDateFormat 工控机约定格式日期 + * @param uiDateFormat UI约定显示日期 + * @param currentDayOfWeek 当前星期 + */ +data class CopyCalendarInfo(var isTitle: Boolean, var calendarDateFormat: String,var ipcDateFormat: String? = "", + var uiDateFormat: String? = "",var currentDayOfWeek: Int? = 0) \ No newline at end of file