Browse Source

feat: 允许级联删除打卡项

master
niushuai233 1 year ago
parent
commit
cd6cc23ab0
  1. 3
      app/src/main/java/cc/niushuai/dididone/biz/dao/RecordDao.java
  2. 3
      app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java
  3. 20
      app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java

3
app/src/main/java/cc/niushuai/dididone/biz/dao/RecordDao.java

@ -49,4 +49,7 @@ public interface RecordDao { @@ -49,4 +49,7 @@ public interface RecordDao {
Flowable<List<Record>> queryByCheckDate(long startDate, long endDate);
@Query("select * from t_record where deleted = 0 and project_id = :projectId and check_date >= :startDate and check_date <= :endDate order by check_date desc")
Flowable<List<Record>> queryByProjectAndDate(Long projectId, long startDate, long endDate);
@Query("update t_record set deleted = 1 where project_id = :projectId")
void deleteByProjectId(Long projectId);
}

3
app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java

@ -121,6 +121,9 @@ public class CalendarFragment extends BaseFragment { @@ -121,6 +121,9 @@ public class CalendarFragment extends BaseFragment {
.map(Record::getCheckDate)
.map(item -> DateUtil.date(item).toDateStr())
.collect(Collectors.toList());
if (binding == null) {
return;
}
InnerPainter painter = (InnerPainter) binding.miui10Calendar.getCalendarPainter();
painter.setPointList(checkDateList);

20
app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java

@ -135,6 +135,11 @@ public class ProjectFragment extends Fragment implements InitAndSetListener { @@ -135,6 +135,11 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
.setTitle(StrUtil.format("确定要删除 [{}]", item.getProjectName()))
.setIcon(new IconicsDrawable(getContext()).icon(Ionicons.Icon.ion_android_warning).color(Color.RED))
.setPositiveButton("确定", (dialog, which) -> {
// 是否级联删除打卡项
confirmDeleteProjectRecord(item);
XLog.d("删除 {} 打卡项", item.getProjectName());
// 删除
deleteProject(item);
// 更新视图
@ -147,6 +152,21 @@ public class ProjectFragment extends Fragment implements InitAndSetListener { @@ -147,6 +152,21 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
return true;
}
private void confirmDeleteProjectRecord( ProjectIcon item) {
// 再次弹出是否级联删除选项
AlertDialog projectItemAlertDialog = new AlertDialog.Builder(getContext())
.setTitle(StrUtil.format("是否要删除 [{}] 已打卡记录?", item.getProjectName()))
.setIcon(new IconicsDrawable(getContext()).icon(Ionicons.Icon.ion_android_warning).color(Color.RED))
.setPositiveButton("确定", (dialog, which) -> {
XLog.d("删除 {} 已打卡记录", item.getProjectName());
DBManager.INSTANCE.recordDao().deleteByProjectId(item.getId());
})
.setNegativeButton("取消", ((dialog, which) -> dialog.dismiss()))
.create();
projectItemAlertDialog.show();
}
});
}

Loading…
Cancel
Save