Inject Calendar StartupReceiver and AlarmScheduler

pull/189/head
Alex Baker 10 years ago
parent 1c12263576
commit e6905bd0b5

@ -28,7 +28,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.gcal.CalendarStartupReceiver;
import com.todoroo.astrid.gcal.CalendarAlarmScheduler;
import com.todoroo.astrid.gtasks.GtasksPreferences;
import com.todoroo.astrid.helper.MetadataHelper;
import com.todoroo.astrid.service.MarketStrategy.AmazonMarketStrategy;
@ -73,6 +73,7 @@ public class EditPreferences extends TodorooPreferenceActivity {
@Inject StartupService startupService;
@Inject TaskService taskService;
@Inject Preferences preferences;
@Inject CalendarAlarmScheduler calendarAlarmScheduler;
private VoiceInputAssistant voiceInputAssistant;
@ -402,7 +403,7 @@ public class EditPreferences extends TodorooPreferenceActivity {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue != null && ((Boolean) newValue)) {
CalendarStartupReceiver.scheduleCalendarAlarms(EditPreferences.this, true);
calendarAlarmScheduler.scheduleCalendarAlarms(EditPreferences.this, true);
}
return true;
}

@ -483,7 +483,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
if (taskActionLoader.containsKey(task.getId())) {
return taskActionLoader.get(task.getId());
} else {
TaskAction action = LinkActionExposer.getActionsForTask(context, task, hasFiles, hasNotes);
TaskAction action = LinkActionExposer.getActionsForTask(preferences, context, task, hasFiles, hasNotes);
taskActionLoader.put(task.getId(), action);
return action;
}

@ -18,13 +18,13 @@ import android.text.Spannable;
import android.text.style.URLSpan;
import android.text.util.Linkify;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.api.TaskAction;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.files.FilesAction;
import com.todoroo.astrid.notes.NotesAction;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import java.util.HashMap;
import java.util.List;
@ -37,7 +37,7 @@ import java.util.List;
*/
public class LinkActionExposer {
public static TaskAction getActionsForTask(Context context, Task task, boolean hasAttachments, boolean hasNotes) {
public static TaskAction getActionsForTask(Preferences preferences, Context context, Task task, boolean hasAttachments, boolean hasNotes) {
if (task == null) {
return null;
}
@ -70,7 +70,7 @@ public class LinkActionExposer {
return new FilesAction(icon);
}
if (hasNotes && !Preferences.getBoolean(R.string.p_showNotes, false)) {
if (hasNotes && !preferences.getBoolean(R.string.p_showNotes, false)) {
BitmapDrawable icon = getBitmapDrawable(R.drawable.action_notes, r);
return new NotesAction(icon);
}

@ -9,10 +9,14 @@ import android.database.Cursor;
import android.net.Uri;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class CalendarAlarmScheduler {
public static final String TAG = "calendar-alarm";
@ -20,8 +24,27 @@ public class CalendarAlarmScheduler {
public static final String URI_PREFIX = "cal-reminder";
public static final String URI_PREFIX_POSTPONE = "cal-postpone";
public static void scheduleAllCalendarAlarms(Context context) {
if (!Preferences.getBoolean(R.string.p_calendar_reminders, true)) {
private final Preferences preferences;
@Inject
public CalendarAlarmScheduler(Preferences preferences) {
this.preferences = preferences;
}
public void scheduleCalendarAlarms(final Context context, boolean force) {
if (!preferences.getBoolean(R.string.p_calendar_reminders, true) && !force) {
return;
}
new Thread(new Runnable() {
@Override
public void run() {
scheduleAllCalendarAlarms(context);
}
}).start();
}
private void scheduleAllCalendarAlarms(Context context) {
if (!preferences.getBoolean(R.string.p_calendar_reminders, true)) {
return;
}
@ -57,7 +80,6 @@ public class CalendarAlarmScheduler {
long alarmTime = start - DateUtilities.ONE_MINUTE * 15;
am.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent);
}
}
// Schedule alarm to recheck and reschedule calendar alarms in 12 hours
@ -71,7 +93,5 @@ public class CalendarAlarmScheduler {
events.close();
}
}
}
}

@ -1,35 +1,26 @@
package com.todoroo.astrid.gcal;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.api.AstridApiConstants;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
public class CalendarStartupReceiver extends BroadcastReceiver {
import javax.inject.Inject;
public class CalendarStartupReceiver extends InjectingBroadcastReceiver {
public static final String BROADCAST_RESCHEDULE_CAL_ALARMS = AstridApiConstants.API_PACKAGE + ".SCHEDULE_CAL_REMINDERS"; //$NON-NLS-1$
@Inject CalendarAlarmScheduler calendarAlarmScheduler;
@Override
public void onReceive(Context context, Intent intent) {
ContextManager.setContext(context);
scheduleCalendarAlarms(context, false);
}
super.onReceive(context, intent);
public static void scheduleCalendarAlarms(final Context context, boolean force) {
if (!Preferences.getBoolean(R.string.p_calendar_reminders, true) && !force) {
return;
}
new Thread(new Runnable() {
@Override
public void run() {
CalendarAlarmScheduler.scheduleAllCalendarAlarms(context);
}
}).start();
ContextManager.setContext(context);
calendarAlarmScheduler.scheduleCalendarAlarms(context, false);
}
}

@ -36,7 +36,7 @@ import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.CalendarStartupReceiver;
import com.todoroo.astrid.gcal.CalendarAlarmScheduler;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.provider.Astrid2TaskProvider;
@ -78,13 +78,15 @@ public class StartupService {
private final MetadataService metadataService;
private final Preferences preferences;
private final TasksXmlImporter xmlImporter;
private final CalendarAlarmScheduler calendarAlarmScheduler;
@Inject
public StartupService(UpgradeService upgradeService, TaskService taskService,
TagDataDao tagDataDao, Database database,
GtasksPreferenceService gtasksPreferenceService,
GtasksSyncService gtasksSyncService, MetadataService metadataService,
Preferences preferences, TasksXmlImporter xmlImporter) {
Preferences preferences, TasksXmlImporter xmlImporter,
CalendarAlarmScheduler calendarAlarmScheduler) {
this.upgradeService = upgradeService;
this.taskService = taskService;
this.tagDataDao = tagDataDao;
@ -94,6 +96,7 @@ public class StartupService {
this.metadataService = metadataService;
this.preferences = preferences;
this.xmlImporter = xmlImporter;
this.calendarAlarmScheduler = calendarAlarmScheduler;
}
/**
@ -199,7 +202,7 @@ public class StartupService {
preferences.setDefaults();
CalendarStartupReceiver.scheduleCalendarAlarms(context, false); // This needs to be after set preference defaults for the purposes of ab testing
calendarAlarmScheduler.scheduleCalendarAlarms(context, false); // This needs to be after set preference defaults for the purposes of ab testing
showTaskKillerHelp(context);

@ -9,6 +9,7 @@ import com.todoroo.astrid.calls.PhoneStateChangedReceiver;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.CustomFilterExposer;
import com.todoroo.astrid.gcal.CalendarAlarmReceiver;
import com.todoroo.astrid.gcal.CalendarStartupReceiver;
import com.todoroo.astrid.gcal.GCalTaskCompleteListener;
import com.todoroo.astrid.gtasks.GtasksCustomFilterCriteriaExposer;
import com.todoroo.astrid.gtasks.GtasksDetailExposer;
@ -59,7 +60,8 @@ import dagger.Provides;
GtasksFilterExposer.class,
TagFilterExposer.class,
BackupStartupReceiver.class,
CalendarAlarmReceiver.class
CalendarAlarmReceiver.class,
CalendarStartupReceiver.class
})
public class BroadcastModule {

Loading…
Cancel
Save