Update views on background thread

pull/77/merge
Alinson S. Xavier 10 years ago
parent 3c927e009a
commit bf6562f854

@ -47,6 +47,7 @@ import org.isoron.uhabits.dialogs.HistoryEditorDialog;
import org.isoron.uhabits.helpers.ReminderHelper; import org.isoron.uhabits.helpers.ReminderHelper;
import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.models.Habit;
import org.isoron.uhabits.models.Score; import org.isoron.uhabits.models.Score;
import org.isoron.uhabits.tasks.BaseTask;
import org.isoron.uhabits.views.HabitDataView; import org.isoron.uhabits.views.HabitDataView;
import org.isoron.uhabits.views.HabitFrequencyView; import org.isoron.uhabits.views.HabitFrequencyView;
import org.isoron.uhabits.views.HabitHistoryView; import org.isoron.uhabits.views.HabitHistoryView;
@ -151,6 +152,7 @@ public class ShowHabitFragment extends Fragment
private void updateScoreRing(View view) private void updateScoreRing(View view)
{ {
if(habit == null) return; if(habit == null) return;
if(view == null) return;
RingView scoreRing = (RingView) view.findViewById(R.id.scoreRing); RingView scoreRing = (RingView) view.findViewById(R.id.scoreRing);
scoreRing.setColor(habit.color); scoreRing.setColor(habit.color);
@ -230,11 +232,29 @@ public class ShowHabitFragment extends Fragment
public void refreshData() public void refreshData()
{ {
if(dataViews == null) return; new BaseTask()
updateScoreRing(getView()); {
@Override
protected Void doInBackground(Void... params)
{
if(dataViews == null) return null;
updateScoreRing(getView());
for(HabitDataView view : dataViews)
view.refreshData();
return null;
}
@Override
protected void onPostExecute(Void aVoid)
{
if(dataViews == null) return;
for(HabitDataView view : dataViews)
view.invalidate();
}
}.execute();
for(HabitDataView view : dataViews)
view.refreshData();
} }
@Override @Override

@ -26,4 +26,6 @@ public interface HabitDataView
void setHabit(Habit habit); void setHabit(Habit habit);
void refreshData(); void refreshData();
void invalidate();
} }

@ -180,8 +180,6 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV
generateRandomData(); generateRandomData();
else if(habit != null) else if(habit != null)
frequency = habit.repetitions.getWeekdayFrequency(); frequency = habit.repetitions.getWeekdayFrequency();
invalidate();
} }
private void generateRandomData() private void generateRandomData()

@ -26,7 +26,6 @@ import android.graphics.Paint;
import android.graphics.Paint.Align; import android.graphics.Paint.Align;
import android.graphics.RectF; import android.graphics.RectF;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log;
import android.view.HapticFeedbackConstants; import android.view.HapticFeedbackConstants;
import android.view.MotionEvent; import android.view.MotionEvent;
@ -221,7 +220,6 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie
} }
updateDate(); updateDate();
invalidate();
} }
private void generateRandomData() private void generateRandomData()

@ -185,8 +185,6 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView
if (habit == null) return; if (habit == null) return;
scores = habit.scores.getAllValues(bucketSize); scores = habit.scores.getAllValues(bucketSize);
} }
invalidate();
} }
public void setBucketSize(int bucketSize) public void setBucketSize(int bucketSize)

@ -169,7 +169,6 @@ public class HabitStreakView extends View implements HabitDataView
if(habit == null) return; if(habit == null) return;
streaks = habit.streaks.getAll(maxStreakCount); streaks = habit.streaks.getAll(maxStreakCount);
updateMaxMin(); updateMaxMin();
postInvalidate();
} }
@Override @Override

Loading…
Cancel
Save