From 4def8f04091dfb8d7fb38370c200547ee279c9b8 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 28 Feb 2016 15:23:20 -0500 Subject: [PATCH] Perform additional checks to avoid negative lengths --- .../org/isoron/uhabits/fragments/ListHabitsFragment.java | 5 +++-- app/src/main/java/org/isoron/uhabits/models/Habit.java | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java index 699d3320b..208e07d96 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java @@ -267,7 +267,7 @@ public class ListHabitsFragment extends Fragment { DisplayMetrics dm = getResources().getDisplayMetrics(); int width = (int) (dm.widthPixels / dm.density); - buttonCount = (int) ((width - 160) / 42.0); + buttonCount = Math.max(0, (int) ((width - 160) / 42.0)); tvNameWidth = (int) ((width - 30 - buttonCount * 42) * dm.density); loader = new HabitListLoader(); @@ -719,7 +719,8 @@ public class ListHabitsFragment extends Fragment TextView tvCheck = (TextView) llButtons.getChildAt(i); tvCheck.setTag(R.string.habit_key, habitId); tvCheck.setTag(R.string.offset_key, i); - updateCheckmark(activeColor, tvCheck, isChecked[i]); + if(isChecked.length > i) + updateCheckmark(activeColor, tvCheck, isChecked[i]); } } diff --git a/app/src/main/java/org/isoron/uhabits/models/Habit.java b/app/src/main/java/org/isoron/uhabits/models/Habit.java index 1d835612e..5f44ae936 100644 --- a/app/src/main/java/org/isoron/uhabits/models/Habit.java +++ b/app/src/main/java/org/isoron/uhabits/models/Habit.java @@ -269,6 +269,8 @@ public class Habit extends Model { updateCheckmarks(); + if(fromTimestamp > toTimestamp) return new int[0]; + String query = "select value, timestamp from Checkmarks where " + "habit = ? and timestamp >= ? and timestamp <= ?";