mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 17:18:52 -06:00
Move expensive call to background thread
This commit is contained in:
@@ -40,6 +40,7 @@ import org.isoron.uhabits.helpers.DateHelper;
|
|||||||
import org.isoron.uhabits.helpers.ReminderHelper;
|
import org.isoron.uhabits.helpers.ReminderHelper;
|
||||||
import org.isoron.uhabits.models.Checkmark;
|
import org.isoron.uhabits.models.Checkmark;
|
||||||
import org.isoron.uhabits.models.Habit;
|
import org.isoron.uhabits.models.Habit;
|
||||||
|
import org.isoron.uhabits.tasks.BaseTask;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -138,19 +139,29 @@ public class HabitBroadcastReceiver extends BroadcastReceiver
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void createNotification(Context context, Intent intent)
|
private void createNotification(final Context context, final Intent intent)
|
||||||
{
|
{
|
||||||
Uri data = intent.getData();
|
final Uri data = intent.getData();
|
||||||
Habit habit = Habit.get(ContentUris.parseId(data));
|
final Habit habit = Habit.get(ContentUris.parseId(data));
|
||||||
Long timestamp = intent.getLongExtra("timestamp", DateHelper.getStartOfToday());
|
final Long timestamp = intent.getLongExtra("timestamp", DateHelper.getStartOfToday());
|
||||||
Long reminderTime = intent.getLongExtra("reminderTime", DateHelper.getStartOfToday());
|
final Long reminderTime = intent.getLongExtra("reminderTime", DateHelper.getStartOfToday());
|
||||||
|
|
||||||
if (habit == null) return;
|
if (habit == null) return;
|
||||||
if (habit.checkmarks.getTodayValue() != Checkmark.UNCHECKED) return;
|
|
||||||
|
|
||||||
habit.highlight = 1;
|
new BaseTask()
|
||||||
habit.save();
|
{
|
||||||
|
int todayValue;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doInBackground()
|
||||||
|
{
|
||||||
|
todayValue = habit.checkmarks.getTodayValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void aVoid)
|
||||||
|
{
|
||||||
|
if (todayValue != Checkmark.UNCHECKED) return;
|
||||||
if (!checkWeekday(intent, habit)) return;
|
if (!checkWeekday(intent, habit)) return;
|
||||||
|
|
||||||
// Check if reminder has been turned off after alarm was scheduled
|
// Check if reminder has been turned off after alarm was scheduled
|
||||||
@@ -194,6 +205,10 @@ public class HabitBroadcastReceiver extends BroadcastReceiver
|
|||||||
|
|
||||||
int notificationId = (int) (habit.getId() % Integer.MAX_VALUE);
|
int notificationId = (int) (habit.getId() % Integer.MAX_VALUE);
|
||||||
notificationManager.notify(notificationId, notification);
|
notificationManager.notify(notificationId, notification);
|
||||||
|
|
||||||
|
super.onPostExecute(aVoid);
|
||||||
|
}
|
||||||
|
}.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PendingIntent buildSnoozeIntent(Context context, Habit habit)
|
public static PendingIntent buildSnoozeIntent(Context context, Habit habit)
|
||||||
|
|||||||
Reference in New Issue
Block a user