diff --git a/app/src/main/java/cc/niushuai/dididone/biz/BizGlobal.java b/app/src/main/java/cc/niushuai/dididone/biz/BizGlobal.java index 7838a7a..33e6b02 100644 --- a/app/src/main/java/cc/niushuai/dididone/biz/BizGlobal.java +++ b/app/src/main/java/cc/niushuai/dididone/biz/BizGlobal.java @@ -5,6 +5,8 @@ import org.json.JSONArray; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import cc.niushuai.dididone.biz.entity.Project; import cc.niushuai.dididone.biz.roomx.DBManager; @@ -65,4 +67,12 @@ public class BizGlobal { XLog.d("build project cache size: {}", projectList.size()); }); } + + public static Map getAllProjectMap() { + return CACHE_PROJECT; + } + + public static Map getAvailableProjectMap() { + return CACHE_PROJECT.values().stream().filter(item -> item.getDeleted().equals(0)).collect(Collectors.toMap(Project::getId, Function.identity())); + } } diff --git a/app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java index 83495b4..9afc6a2 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java @@ -256,7 +256,7 @@ public class CalendarFragment extends Fragment { XLog.d("DataListOnNext 查询到数据: {}", recordList.size()); for (Record record : recordList) { - Project project = BizGlobal.CACHE_PROJECT.get(record.getProjectId()); + Project project = BizGlobal.getAllProjectMap().get(record.getProjectId()); if (null == project) { Toasts.longShow(getContext(), "ProjectId: {}不存在, 可能存在BUG", String.valueOf(record.getProjectId())); return; diff --git a/app/src/main/java/cc/niushuai/dididone/ui/component/ProjectPopupView.java b/app/src/main/java/cc/niushuai/dididone/ui/component/ProjectPopupView.java index caddca2..4e3a658 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/component/ProjectPopupView.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/component/ProjectPopupView.java @@ -57,7 +57,10 @@ public class ProjectPopupView extends BottomPopupView { super.onCreate(); recyclerView = findViewById(R.id.ppv_recyclerView); - data = getProjectList(); + // 构建data + data = CollUtil.list(false, BizGlobal.getAvailableProjectMap().values()); + data.sort((e1, e2) -> e2.getCreateDate().compareTo(e1.getCreateDate())); + int projectCount = data.size(); if (data.isEmpty()) { @@ -110,17 +113,6 @@ public class ProjectPopupView extends BottomPopupView { recyclerView.setAdapter(commonAdapter); } - private void newRecord(Project project) { - - } - - private List getProjectList() { - List list = CollUtil.list(false, BizGlobal.CACHE_PROJECT.values()); - list.sort((e1, e2) -> e2.getCreateDate().compareTo(e1.getCreateDate())); - return list; - } - - @Override protected void onShow() { super.onShow(); diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java index 1609a94..31c5ba1 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/ProjectFragment.java @@ -158,6 +158,8 @@ public class ProjectFragment extends Fragment implements InitAndSetListener { private void deleteProject(ProjectIcon item) { // 删除 DBManager.INSTANCE.projectDao().deleteById(item.getId()); + // remove by id + BizGlobal.CACHE_PROJECT.get(item.getId()).setDeleted(1); XLog.d("删除项{}, id: {}", item.getProjectName(), item.getId()); }