[6.10.0]数据落盘

This commit is contained in:
xuxinchao
2025-02-06 19:37:38 +08:00
parent fb2080b6c6
commit 7c7f411e98
21 changed files with 686 additions and 1 deletions

View File

@@ -0,0 +1,43 @@
package com.mogo.eagle.core.function.hmi.ui.diskcopy
import android.content.Context
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import kotlinx.android.synthetic.main.dialog_disk_copy_exception.tvCopyExceptionClose
/**
* 数据落盘辅助工具-异常情况及建议操作弹窗
*/
class DiskCopyExceptionDialog(context: Context) :
BaseFloatDialog(context,TAG), LifecycleObserver {
companion object {
private const val TAG = "DiskCopyExceptionDialog"
}
init{
setContentView(R.layout.dialog_disk_copy_exception)
setCanceledOnTouchOutside(false)
initView()
}
private fun initView(){
//关闭异常弹窗
tvCopyExceptionClose.setOnClickListener {
dismiss()
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
}
}

View File

@@ -0,0 +1,79 @@
package com.mogo.eagle.core.function.hmi.ui.diskcopy
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
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.hmi.R
import com.mogo.eagle.core.function.hmi.ui.diskcopy.adapter.DiskCopyCalendarAdapter
import kotlinx.android.synthetic.main.view_disk_copy.view.groupDateSelect
import kotlinx.android.synthetic.main.view_disk_copy.view.groupDiskCopy
import kotlinx.android.synthetic.main.view_disk_copy.view.pbDiskCopyProgress
import kotlinx.android.synthetic.main.view_disk_copy.view.rvCalendar
import kotlinx.android.synthetic.main.view_disk_copy.view.viewDiskCopyDate
/**
* 数据落盘辅助工具
*/
class DiskCopyView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr){
companion object {
const val TAG = "DiskCopyView"
}
private var diskCopyCalendarAdapter: DiskCopyCalendarAdapter ?= null
private var calendarList: ArrayList<CopyCalendarInfo> = ArrayList()
init{
LayoutInflater.from(context).inflate(R.layout.view_disk_copy, this, true)
initView()
initData()
}
private fun initView(){
val gridLayoutManager = GridLayoutManager(context,7)
diskCopyCalendarAdapter = DiskCopyCalendarAdapter()
rvCalendar.adapter = diskCopyCalendarAdapter
rvCalendar.layoutManager = gridLayoutManager
viewDiskCopyDate.setOnClickListener {
//隐藏当前视图
pbDiskCopyProgress.visibility = View.GONE
groupDiskCopy.visibility = View.GONE
//展示日历
groupDateSelect.visibility = View.VISIBLE
}
}
private fun initData(){
//添加日历星期标题头
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
calendarList.add(CopyCalendarInfo(true,""))
diskCopyCalendarAdapter?.setData(calendarList)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
}
}

View File

@@ -0,0 +1,38 @@
package com.mogo.eagle.core.function.hmi.ui.diskcopy
import android.content.Context
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import kotlinx.android.synthetic.main.dialog_terminate_copy_data.tvCopyTerminateCancel
import kotlinx.android.synthetic.main.dialog_terminate_copy_data.tvCopyTerminateConfirm
/**
* 数据落盘-终止数据拷贝确认弹窗
*/
class TerminateCopyDataDialog(context: Context) :
BaseFloatDialog(context,TAG), LifecycleObserver {
companion object {
private const val TAG = "TerminateCopyDataDialog"
}
init{
setContentView(R.layout.dialog_terminate_copy_data)
setCanceledOnTouchOutside(false)
initView()
}
private fun initView(){
//确认终止数据拷贝
tvCopyTerminateConfirm.setOnClickListener {
//TODO
dismiss()
}
//取消终止数据拷贝
tvCopyTerminateCancel.setOnClickListener {
//TODO
dismiss()
}
}
}

View File

@@ -0,0 +1,73 @@
package com.mogo.eagle.core.function.hmi.ui.diskcopy.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.diskcopy.CopyCalendarInfo
import com.mogo.eagle.core.function.hmi.R
/**
* 数据落盘日历适配器
*/
class DiskCopyCalendarAdapter(): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var data: ArrayList<CopyCalendarInfo> ?= null
private val title: Int = 0
fun setData(list: ArrayList<CopyCalendarInfo>){
data = list
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when(viewType){
title->{
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_calendar_title,parent,false)
CalendarTitleHolder(view)
}
else->{
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_calendar_content,parent,false)
CalendarContentHolder(view)
}
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when(holder){
is CalendarTitleHolder->{
data?.let {
holder.tvCalendarTitle.text = it[position].content
}
}
is CalendarContentHolder->{
data?.let {
holder.tvCalendarContent.text = it[position].content
}
}
}
}
override fun getItemCount() = data?.size ?: 0
override fun getItemViewType(position: Int): Int{
return if(data!![position].isTitle){
0
}else {
1
}
}
//Title
class CalendarTitleHolder(itemView: View): RecyclerView.ViewHolder(itemView){
var tvCalendarTitle: TextView = itemView.findViewById(R.id.tvCalendarTitle)
}
//Content
class CalendarContentHolder(itemView: View): RecyclerView.ViewHolder(itemView){
var tvCalendarContent: TextView = itemView.findViewById(R.id.tvCalendarContent)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF333333" />
<corners android:radius="@dimen/dp_16" />
</shape>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="@dimen/dp_0">
<!-- 设置背景色 -->
<item
android:id="@android:id/background"
android:width="@dimen/dp_654"
android:height="@dimen/dp_440"
android:gravity="center_vertical">
<shape>
<corners android:radius="@dimen/dp_16" />
<solid android:color="#FFFFFFFF" />
</shape>
</item>
<!-- 设置进度条颜色 -->
<item
android:id="@android:id/progress"
android:width="@dimen/dp_654"
android:height="@dimen/dp_440"
android:gravity="center_vertical">
<shape>
<corners
android:topLeftRadius="@dimen/dp_50"
android:bottomLeftRadius="@dimen/dp_50"
android:topRightRadius="@dimen/dp_0"
android:bottomRightRadius="@dimen/dp_0"
/>
<gradient
android:angle="0"
android:startColor="#00E5FF"
android:endColor="#00FFA6"
/>
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="@dimen/dp_0">
<!-- 设置背景色 -->
<item
android:id="@android:id/background"
android:width="@dimen/dp_590"
android:height="@dimen/dp_60"
android:gravity="center_vertical">
<shape>
<corners android:radius="@dimen/dp_16" />
<solid android:color="#FF333333" />
</shape>
</item>
<!-- 设置进度条颜色 -->
<item
android:id="@android:id/progress"
android:width="@dimen/dp_590"
android:height="@dimen/dp_60"
android:gravity="center_vertical">
<shape>
<corners android:radius="@dimen/dp_16" />
<gradient
android:angle="0"
android:startColor="#1F8DC0"
android:endColor="#22DAF8"
/>
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_900"
android:layout_height="@dimen/dp_620"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_bone_dialog"
app:roundLayoutRadius="@dimen/dp_50">
<ImageView
android:id="@+id/ivCopyException"
android:layout_width="@dimen/dp_140"
android:layout_height="@dimen/dp_140"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_87"
android:src="@drawable/icon_disk_copy_exception"
android:contentDescription="@string/disk_copy_exception_icon"
/>
<TextView
android:id="@+id/tvCopyExceptionTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivCopyException"
android:layout_marginTop="@dimen/dp_30"
android:textColor="@color/white"
android:textSize="@dimen/sp_45"
/>
<TextView
android:id="@+id/tvCopyExceptionContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCopyExceptionTitle"
android:layout_marginTop="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="@dimen/sp_36"
/>
<TextView
android:id="@+id/tvCopyExceptionClose"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_62"
android:gravity="center"
android:text="@string/disk_copy_exception_close"
android:background="@drawable/bg_dialog_btn"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_40"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_900"
android:layout_height="@dimen/dp_620"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_bone_dialog"
app:roundLayoutRadius="@dimen/dp_50">
<ImageView
android:id="@+id/ivDiskCopyTerminate"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_150"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_87"
android:src="@drawable/icon_disk_copy_terminate"
android:contentDescription="@string/disk_copy_terminate"
/>
<TextView
android:id="@+id/tvTerminateTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivDiskCopyTerminate"
android:layout_marginTop="@dimen/dp_30"
android:text="@string/disk_copy_terminate_title"
android:textSize="@dimen/sp_45"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvTerminateContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTerminateTitle"
android:layout_marginTop="@dimen/dp_10"
android:text="@string/disk_copy_terminate_content"
android:textSize="@dimen/sp_36"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvCopyTerminateConfirm"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/disk_copy_terminate_confirm"
android:background="@drawable/bg_dialog_btn"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />
<TextView
android:id="@+id/tvCopyTerminateCancel"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/disk_copy_terminate_cancel"
android:textColor="@color/white"
android:textSize="@dimen/dp_40"
android:background="@drawable/bg_dialog_btn"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintRight_toRightOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tvCalendarContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_32"
>
</TextView>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tvCalendarTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_32"
android:textColor="#999999"
>
</TextView>

View File

@@ -0,0 +1,210 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_692"
android:layout_height="@dimen/dp_478"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_disk_copy">
<ProgressBar
android:id="@+id/pbDiskCopyProgress"
android:layout_width="@dimen/dp_654"
android:layout_height="@dimen/dp_440"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/progressbar_disk_copy_progress"
android:max="100"
android:progress="0"
android:visibility="gone"
/>
<TextView
android:id="@+id/tvTitleDiskConnected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="@dimen/dp_49"
android:layout_marginStart="@dimen/dp_51"
android:textColor="@color/white"
android:textSize="@dimen/sp_40"
android:text="@string/hard_disk_connected"
/>
<ImageView
android:id="@+id/ivDiskUnplug"
android:layout_width="@dimen/dp_114"
android:layout_height="@dimen/dp_112"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/icon_disk_unplug_connected"
android:padding="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_24"
android:layout_marginEnd="@dimen/dp_24"
android:contentDescription="@string/hard_disk_unplug"
/>
<ProgressBar
android:id="@+id/pbDiskUsedSpaces"
android:layout_width="@dimen/dp_590"
android:layout_height="@dimen/dp_60"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/dp_135"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/progressbar_disk_used_space"
android:max="100"
android:progress="0"
/>
<TextView
android:id="@+id/tvDiskUsedPercent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/pbDiskUsedSpaces"
app:layout_constraintBottom_toBottomOf="@id/pbDiskUsedSpaces"
app:layout_constraintStart_toStartOf="@id/pbDiskUsedSpaces"
android:layout_marginStart="@dimen/dp_20"
android:textColor="@color/white"
android:textSize="@dimen/sp_32"
/>
<TextView
android:id="@+id/tvDiskFreeSpace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/pbDiskUsedSpaces"
app:layout_constraintBottom_toBottomOf="@id/pbDiskUsedSpaces"
app:layout_constraintEnd_toEndOf="@id/pbDiskUsedSpaces"
android:layout_marginEnd="@dimen/dp_20"
android:textColor="@color/white"
android:textSize="@dimen/sp_32"
/>
<View
android:id="@+id/viewDiskCopyDate"
android:layout_width="@dimen/dp_590"
android:layout_height="@dimen/dp_60"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/pbDiskUsedSpaces"
android:layout_marginTop="@dimen/dp_59"
android:background="@drawable/bg_disk_copy_date"
/>
<TextView
android:id="@+id/tvDataDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewDiskCopyDate"
app:layout_constraintBottom_toBottomOf="@id/viewDiskCopyDate"
app:layout_constraintStart_toStartOf="@id/viewDiskCopyDate"
android:layout_marginStart="@dimen/dp_20"
android:text="@string/hard_disk_data_date"
android:textSize="@dimen/sp_32"
android:textColor="#FF999999"
/>
<TextView
android:id="@+id/tvCurrentDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewDiskCopyDate"
app:layout_constraintBottom_toBottomOf="@id/viewDiskCopyDate"
app:layout_constraintStart_toEndOf="@id/tvDataDate"
android:layout_marginStart="@dimen/dp_30"
android:textSize="@dimen/sp_32"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvCurrentWeek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewDiskCopyDate"
app:layout_constraintBottom_toBottomOf="@id/viewDiskCopyDate"
app:layout_constraintStart_toEndOf="@id/tvCurrentDate"
android:layout_marginStart="@dimen/dp_20"
android:textSize="@dimen/sp_32"
android:textColor="@color/white"
/>
<ImageView
android:id="@+id/ivDiskCopyDateSelect"
android:layout_width="@dimen/dp_41"
android:layout_height="@dimen/dp_33"
app:layout_constraintTop_toTopOf="@id/viewDiskCopyDate"
app:layout_constraintBottom_toBottomOf="@id/viewDiskCopyDate"
app:layout_constraintEnd_toEndOf="@id/viewDiskCopyDate"
android:layout_marginEnd="@dimen/dp_20"
android:src="@drawable/icon_disk_copy_calendar"
android:contentDescription="@string/disk_copy_date_select"
/>
<TextView
android:id="@+id/tvCopyStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_83"
android:textSize="@dimen/sp_36"
/>
<androidx.constraintlayout.widget.Group
android:id="@+id/groupDiskCopy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tvTitleDiskConnected,
ivDiskUnplug,pbDiskUsedSpaces,tvDiskUsedPercent,
tvDiskFreeSpace,viewDiskCopyDate,tvDataDate,tvCurrentDate,
tvCurrentWeek,ivDiskCopyDateSelect,tvCopyStatus"
/>
<TextView
android:id="@+id/tvTitleSelectDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_49"
android:layout_marginStart="@dimen/dp_60"
android:text="@string/select_copy_date"
android:textSize="@dimen/dp_40"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvCurrentMonth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@id/tvTitleSelectDate"
app:layout_constraintTop_toBottomOf="@id/tvTitleSelectDate"
android:layout_marginTop="@dimen/dp_28"
android:textColor="#999999"
android:textSize="@dimen/sp_26"
/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvCalendar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCurrentMonth"
android:layout_marginTop="@dimen/dp_24"
/>
<androidx.constraintlayout.widget.Group
android:id="@+id/groupDateSelect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tvTitleSelectDate,tvCurrentMonth,rvCalendar"
android:visibility="gone"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -269,4 +269,17 @@
<string name="fsm_demo_mode_error">FSM美化模式状态下异常标识</string>
<string name="hard_disk_connected">硬盘已接入</string>
<string name="hard_disk_unplug">硬盘退出图标</string>
<string name="hard_disk_data_date">数据日期</string>
<string name="disk_copy_date_select">日期选择图标</string>
<string name="select_copy_date">选择日期</string>
<string name="disk_copy_terminate">终止数据拷贝确认图标</string>
<string name="disk_copy_terminate_title">终止数据拷贝</string>
<string name="disk_copy_terminate_content">终止数据拷贝并安全弹出硬盘</string>
<string name="disk_copy_terminate_confirm">确认</string>
<string name="disk_copy_terminate_cancel">取消</string>
<string name="disk_copy_exception_icon">数据落盘异常图标</string>
<string name="disk_copy_exception_close">关闭</string>
</resources>