From e2c814a9825706a602cb871f30cfb4f9f216ee11 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 2 Apr 2016 10:48:33 -0400 Subject: [PATCH] Fix ShowHabitFragment and HistoryEditorDialog --- .../uhabits/dialogs/HistoryEditorDialog.java | 21 +++++++++++++++-- .../uhabits/fragments/ShowHabitFragment.java | 5 ++-- .../isoron/uhabits/views/CheckmarkView.java | 2 +- .../uhabits/views/HabitFrequencyView.java | 5 ++-- .../uhabits/views/HabitHistoryView.java | 23 ++++++++++++++----- .../isoron/uhabits/views/HabitScoreView.java | 5 ++-- .../isoron/uhabits/views/HabitStreakView.java | 4 +--- .../uhabits/views/RepetitionCountView.java | 5 ++-- 8 files changed, 47 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java b/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java index 59d4c1645..6196a7d31 100644 --- a/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java +++ b/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java @@ -30,6 +30,7 @@ import android.util.Log; import org.isoron.uhabits.R; import org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.tasks.BaseTask; import org.isoron.uhabits.views.HabitHistoryView; public class HistoryEditorDialog extends DialogFragment @@ -44,7 +45,6 @@ public class HistoryEditorDialog extends DialogFragment { Context context = getActivity(); historyView = new HabitHistoryView(context, null); - int p = (int) getResources().getDimension(R.dimen.history_editor_padding); if(savedInstanceState != null) { @@ -52,7 +52,8 @@ public class HistoryEditorDialog extends DialogFragment if(id > 0) this.habit = Habit.get(id); } - historyView.setPadding(p, 0, p, 0); + int padding = (int) getResources().getDimension(R.dimen.history_editor_padding); + historyView.setPadding(padding, 0, padding, 0); historyView.setHabit(habit); historyView.setIsEditable(true); @@ -61,9 +62,25 @@ public class HistoryEditorDialog extends DialogFragment .setView(historyView) .setPositiveButton(android.R.string.ok, this); + refreshData(); + return builder.create(); } + private void refreshData() + { + new BaseTask() + { + @Override + @SuppressWarnings("ResourceType") + protected Void doInBackground(Void... params) + { + historyView.refreshData(); + return null; + } + }.execute(); + } + @Override public void onResume() { diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java index eda4d64cc..5d114c716 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java @@ -117,7 +117,6 @@ public class ShowHabitFragment extends Fragment dataViews.add((RepetitionCountView) llRepetition.getChildAt(i)); updateHeaders(view); - updateScoreRing(view); for(HabitDataView dataView : dataViews) dataView.setHabit(habit); @@ -146,6 +145,8 @@ public class ShowHabitFragment extends Fragment } setHasOptionsMenu(true); + refreshData(); + return view; } @@ -272,7 +273,7 @@ public class ShowHabitFragment extends Fragment if(scoreView != null) { scoreView.setBucketSize(size); - scoreView.refreshData(); + refreshData(); } if(prefs != null) diff --git a/app/src/main/java/org/isoron/uhabits/views/CheckmarkView.java b/app/src/main/java/org/isoron/uhabits/views/CheckmarkView.java index 471675f10..29b3a7ac0 100644 --- a/app/src/main/java/org/isoron/uhabits/views/CheckmarkView.java +++ b/app/src/main/java/org/isoron/uhabits/views/CheckmarkView.java @@ -106,7 +106,6 @@ public class CheckmarkView extends View public void setHabit(Habit habit) { this.habit = habit; - refreshData(); } @Override @@ -192,6 +191,7 @@ public class CheckmarkView extends View this.label = habit.name; textPaint.setColor(Color.WHITE); + postInvalidate(); requestLayout(); } } diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java index 283dd777d..ceee57489 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java @@ -84,13 +84,10 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV { this.habit = habit; createColors(); - refreshData(); - postInvalidate(); } private void init() { - refreshData(); createPaints(); createColors(); @@ -180,6 +177,8 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV generateRandomData(); else if(habit != null) frequency = habit.repetitions.getWeekdayFrequency(); + + postInvalidate(); } private void generateRandomData() diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java index 6719e3f50..8d942bece 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java @@ -34,6 +34,7 @@ import org.isoron.uhabits.helpers.ColorHelper; import org.isoron.uhabits.helpers.DateHelper; import org.isoron.uhabits.helpers.UIHelper; import org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.tasks.BaseTask; import org.isoron.uhabits.tasks.ToggleRepetitionTask; import java.text.SimpleDateFormat; @@ -88,13 +89,10 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie { this.habit = habit; createColors(); - refreshData(); - postInvalidate(); } private void init() { - refreshData(); createPaints(); createColors(); @@ -220,6 +218,7 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie } updateDate(); + postInvalidate(); } private void generateRandomData() @@ -386,11 +385,23 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie this.isEditable = isEditable; } - @Override public void onToggleRepetitionFinished() { - refreshData(); - invalidate(); + new BaseTask() { + @Override + @SuppressWarnings("ResourceType") + protected Void doInBackground(Void... params) + { + refreshData(); + return null; + } + + @Override + protected void onPostExecute(Void aVoid) + { + invalidate(); + } + }.execute(); } } diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java index 87de29d72..d92b4cd03 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java @@ -93,15 +93,12 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView { this.habit = habit; createColors(); - refreshData(); - postInvalidate(); } private void init() { createPaints(); createColors(); - if(isInEditMode()) refreshData(); dfYear = new SimpleDateFormat("yyyy", Locale.getDefault()); dfMonth = new SimpleDateFormat("MMM", Locale.getDefault()); @@ -185,6 +182,8 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView if (habit == null) return; scores = habit.scores.getAllValues(bucketSize); } + + postInvalidate(); } public void setBucketSize(int bucketSize) diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java index 326e40b6a..ee808c3e7 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java @@ -78,9 +78,7 @@ public class HabitStreakView extends View implements HabitDataView public void setHabit(Habit habit) { this.habit = habit; - createColors(); - postInvalidate(); } private void init() @@ -118,7 +116,6 @@ public class HabitStreakView extends View implements HabitDataView em = paint.getFontSpacing(); textMargin = 0.5f * em; - refreshData(); updateMaxMin(); } @@ -169,6 +166,7 @@ public class HabitStreakView extends View implements HabitDataView if(habit == null) return; streaks = habit.streaks.getAll(maxStreakCount); updateMaxMin(); + postInvalidate(); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/views/RepetitionCountView.java b/app/src/main/java/org/isoron/uhabits/views/RepetitionCountView.java index efc535346..e0f80aa90 100644 --- a/app/src/main/java/org/isoron/uhabits/views/RepetitionCountView.java +++ b/app/src/main/java/org/isoron/uhabits/views/RepetitionCountView.java @@ -44,8 +44,6 @@ public class RepetitionCountView extends NumberView implements HabitDataView getResources().getString(R.string.last_x_days)); setLabel(String.format(labelFormat, labelValue)); - - refreshData(); } @Override @@ -73,6 +71,8 @@ public class RepetitionCountView extends NumberView implements HabitDataView if(habit != null) setNumber(habit.repetitions.count(from, to)); + + postInvalidate(); } @Override @@ -80,6 +80,5 @@ public class RepetitionCountView extends NumberView implements HabitDataView { this.habit = habit; setColor(habit.color); - refreshData(); } }