mirror of
https://gitea.winboll.cc/ZhanGSKen/MyWinBoLL.git
synced 2026-08-14 13:37:11 +08:00
任务列表新增正序排列功能,编辑对话框添加现在按钮
- 添加 sortTaskList() 按排档时间正序排列列表 - 加载、添加、编辑、删除、排档后均排序并刷新界面 - 编辑/添加对话框的排档时间输入框旁增加现在按钮 - 点击现在按钮将当前整点时间填入输入框
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Thu May 21 00:15:15 HKT 2026
|
||||
#Fri May 22 16:56:04 HKT 2026
|
||||
stageCount=4
|
||||
libraryProject=
|
||||
baseVersion=15.20
|
||||
publishVersion=15.20.3
|
||||
buildCount=0
|
||||
buildCount=11
|
||||
baseBetaVersion=15.20.4
|
||||
|
||||
+50
-4
@@ -22,6 +22,8 @@ import cc.winboll.studio.libappbase.ToastUtils;
|
||||
import cc.winboll.studio.stallhelper.R;
|
||||
import cc.winboll.studio.stallhelper.beans.TaskSchedulerBean;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* @Author ZhanGSKen
|
||||
@@ -93,6 +95,7 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
} else {
|
||||
LogUtils.i(TAG, "loadTaskData: 未找到已保存的任务数据,使用空列表");
|
||||
}
|
||||
sortTaskList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,6 +110,21 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 按排档时间倒序排列列表
|
||||
*/
|
||||
private void sortTaskList() {
|
||||
Collections.sort(mTaskList, new Comparator<TaskSchedulerBean>() {
|
||||
@Override
|
||||
public int compare(TaskSchedulerBean a, TaskSchedulerBean b) {
|
||||
long diff = a.getCurrentScheduleTime() - b.getCurrentScheduleTime();
|
||||
if (diff > 0) return 1;
|
||||
if (diff < 0) return -1;
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化时间戳为年月日和小时
|
||||
* @param timestamp 时间戳
|
||||
@@ -241,6 +259,7 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
final EditText etRemark = dialog.findViewById(R.id.dialog_et_remark);
|
||||
Button btnCancel = dialog.findViewById(R.id.dialog_btn_cancel);
|
||||
Button btnSave = dialog.findViewById(R.id.dialog_btn_save);
|
||||
Button btnNow = dialog.findViewById(R.id.dialog_btn_now);
|
||||
|
||||
etTaskName.setText(task.getTaskName());
|
||||
etCurrentScheduleTime.setText(formatTimestamp(task.getCurrentScheduleTime()));
|
||||
@@ -263,6 +282,17 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
etHour.setText(Integer.toString(hour));
|
||||
}
|
||||
|
||||
btnNow.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
java.util.Calendar calendar = java.util.Calendar.getInstance();
|
||||
calendar.set(java.util.Calendar.MINUTE, 0);
|
||||
calendar.set(java.util.Calendar.SECOND, 0);
|
||||
calendar.set(java.util.Calendar.MILLISECOND, 0);
|
||||
etCurrentScheduleTime.setText(formatTimestamp(calendar.getTimeInMillis()));
|
||||
}
|
||||
});
|
||||
|
||||
btnCancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -311,7 +341,8 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
task.setDurationMinutes(durationMinutes);
|
||||
task.setRemark(remark);
|
||||
|
||||
mAdapter.notifyItemChanged(position);
|
||||
sortTaskList();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
saveTaskData();
|
||||
LogUtils.i(TAG, "showEditTaskDialog: 任务 [" + taskName + "] 数据已更新,排档幅度=" + durationMinutes + "分钟");
|
||||
dialog.dismiss();
|
||||
@@ -336,6 +367,7 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
final EditText etRemark = dialog.findViewById(R.id.dialog_et_remark);
|
||||
Button btnCancel = dialog.findViewById(R.id.dialog_btn_cancel);
|
||||
Button btnSave = dialog.findViewById(R.id.dialog_btn_save);
|
||||
Button btnNow = dialog.findViewById(R.id.dialog_btn_now);
|
||||
|
||||
// 设置默认时间为当前时间
|
||||
java.util.Calendar calendar = java.util.Calendar.getInstance();
|
||||
@@ -344,6 +376,17 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
calendar.set(java.util.Calendar.MILLISECOND, 0);
|
||||
etCurrentScheduleTime.setText(formatTimestamp(calendar.getTimeInMillis()));
|
||||
|
||||
btnNow.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
java.util.Calendar cal = java.util.Calendar.getInstance();
|
||||
cal.set(java.util.Calendar.MINUTE, 0);
|
||||
cal.set(java.util.Calendar.SECOND, 0);
|
||||
cal.set(java.util.Calendar.MILLISECOND, 0);
|
||||
etCurrentScheduleTime.setText(formatTimestamp(cal.getTimeInMillis()));
|
||||
}
|
||||
});
|
||||
|
||||
btnCancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -389,7 +432,8 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
int durationMinutes = convertToTotalMinutes(month, day, hour);
|
||||
TaskSchedulerBean newTask = new TaskSchedulerBean(taskName, remark, timestamp, durationMinutes);
|
||||
mTaskList.add(newTask);
|
||||
mAdapter.notifyItemInserted(mTaskList.size() - 1);
|
||||
sortTaskList();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
saveTaskData();
|
||||
LogUtils.i(TAG, "showAddTaskDialog: 任务 [" + taskName + "] 已添加,排档幅度=" + durationMinutes + "分钟");
|
||||
dialog.dismiss();
|
||||
@@ -462,7 +506,8 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
public void onClick(View v) {
|
||||
String taskName = task.getTaskName();
|
||||
mTaskList.remove(position);
|
||||
mAdapter.notifyItemRemoved(position);
|
||||
sortTaskList();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
saveTaskData();
|
||||
LogUtils.i(TAG, "showDeleteConfirmDialog: 任务 [" + taskName + "] 已删除");
|
||||
dialog.dismiss();
|
||||
@@ -485,7 +530,8 @@ public class TaskSchedulerActivity extends WinBoLLActivity {
|
||||
long newTime = currentTime + duration * 60 * 1000L;
|
||||
LogUtils.i(TAG, "performSchedule: 当前时间 " + formatTimestamp(currentTime) + " + " + duration + "分钟 = " + formatTimestamp(newTime));
|
||||
currentTask.setCurrentScheduleTime(newTime);
|
||||
mAdapter.notifyItemChanged(position);
|
||||
sortTaskList();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
saveTaskData();
|
||||
LogUtils.i(TAG, "performSchedule: 更新任务 [" + currentTask.getTaskName() + "] 时间更新为 " + formatTimestamp(newTime));
|
||||
}
|
||||
|
||||
@@ -40,14 +40,30 @@
|
||||
android:paddingTop="15dp"
|
||||
android:paddingBottom="5dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/dialog_et_start_time"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="例如:09:00"
|
||||
android:inputType="time"
|
||||
android:padding="10dp"
|
||||
android:background="@android:drawable/edit_text"/>
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/dialog_et_start_time"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:hint="例如:09:00"
|
||||
android:inputType="time"
|
||||
android:padding="10dp"
|
||||
android:background="@android:drawable/edit_text"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/dialog_btn_now"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="现在"
|
||||
android:layout_marginStart="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
|
||||
Reference in New Issue
Block a user