From 834a9f9e3a51829b316942b9e03868e44a46ae8d Mon Sep 17 00:00:00 2001 From: 7LPdWcaW <7LPdWcaW@gmail.com> Date: Sat, 29 Jun 2019 17:09:40 +0100 Subject: [PATCH] Prevent empty stage changes from happening --- app/src/main/java/me/anon/model/Plant.java | 47 ++++++++++++++-------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/me/anon/model/Plant.java b/app/src/main/java/me/anon/model/Plant.java index 70eef4da..2f72c948 100644 --- a/app/src/main/java/me/anon/model/Plant.java +++ b/app/src/main/java/me/anon/model/Plant.java @@ -307,8 +307,8 @@ public PlantStage getStage() } } - // This should never be reached. - return null; + // Apparently this could be reached + return PlantStage.PLANTED; } /** @@ -327,6 +327,13 @@ public LinkedHashMap getStages() } } + if (stages.isEmpty()) + { + StageChange stageChange = new StageChange(PlantStage.PLANTED); + stageChange.setDate(plantDate); + stages.put(PlantStage.PLANTED, stageChange); + } + return stages; } @@ -371,24 +378,32 @@ else if (lhs.ordinal() > rhs.ordinal()) int stageIndex = 0; long lastStage = 0; - PlantStage previous = stages.firstKey(); - for (PlantStage plantStage : stages.keySet()) + if (!stages.isEmpty()) { - long difference = 0; - if (stageIndex == 0) + PlantStage previous = stages.firstKey(); + for (PlantStage plantStage : stages.keySet()) { - difference = endDate - stages.get(plantStage); - } - else - { - difference = lastStage - stages.get(plantStage); - } + long difference = 0; + if (stageIndex == 0) + { + difference = endDate - stages.get(plantStage); + } + else + { + difference = lastStage - stages.get(plantStage); + } - previous = plantStage; - lastStage = stages.get(plantStage); - stageIndex++; + previous = plantStage; + lastStage = stages.get(plantStage); + stageIndex++; - stages.put(plantStage, difference); + stages.put(plantStage, difference); + } + } + else + { + PlantStage planted = PlantStage.PLANTED; + stages.put(planted, 0l); } return stages;