diff --git a/app/src/main/java/org/isoron/uhabits/models/CheckmarkList.java b/app/src/main/java/org/isoron/uhabits/models/CheckmarkList.java index 500aba268..318bddc24 100644 --- a/app/src/main/java/org/isoron/uhabits/models/CheckmarkList.java +++ b/app/src/main/java/org/isoron/uhabits/models/CheckmarkList.java @@ -179,7 +179,7 @@ public abstract class CheckmarkList * @param from timestamp for the beginning of the interval * @param to timestamp for the end of the interval */ - protected final void compute(long from, final long to) + protected final synchronized void compute(long from, final long to) { final long day = DateUtils.millisecondsInOneDay; diff --git a/app/src/main/java/org/isoron/uhabits/models/ScoreList.java b/app/src/main/java/org/isoron/uhabits/models/ScoreList.java index d3f5da046..a756bdc92 100644 --- a/app/src/main/java/org/isoron/uhabits/models/ScoreList.java +++ b/app/src/main/java/org/isoron/uhabits/models/ScoreList.java @@ -154,7 +154,7 @@ public abstract class ScoreList implements Iterable * @param from timestamp of the beginning of the interval * @param to timestamp of the end of the time interval */ - protected void compute(long from, long to) + protected synchronized void compute(long from, long to) { final long day = DateUtils.millisecondsInOneDay; final double freq = habit.getFrequency().toDouble(); diff --git a/app/src/main/java/org/isoron/uhabits/models/StreakList.java b/app/src/main/java/org/isoron/uhabits/models/StreakList.java index 4ae6a2b55..1176aa71c 100644 --- a/app/src/main/java/org/isoron/uhabits/models/StreakList.java +++ b/app/src/main/java/org/isoron/uhabits/models/StreakList.java @@ -65,7 +65,7 @@ public abstract class StreakList public abstract void invalidateNewerThan(long timestamp); - public void rebuild() + public synchronized void rebuild() { long today = DateUtils.getStartOfToday(); diff --git a/app/src/main/java/org/isoron/uhabits/tasks/AndroidTaskRunner.java b/app/src/main/java/org/isoron/uhabits/tasks/AndroidTaskRunner.java index e1626fe34..6be0d732b 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/AndroidTaskRunner.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/AndroidTaskRunner.java @@ -27,6 +27,8 @@ import java.util.*; import dagger.*; +import static android.os.AsyncTask.*; + @Module public class AndroidTaskRunner implements TaskRunner { @@ -60,7 +62,7 @@ public class AndroidTaskRunner implements TaskRunner public void execute(Task task) { task.onAttached(this); - new CustomAsyncTask(task).execute(); + new CustomAsyncTask(task).executeOnExecutor(THREAD_POOL_EXECUTOR); } @Override