Create TaskDao with Room

pull/618/head
Alex Baker 7 years ago
parent 42f9f59a46
commit 9d4cfe0173

@ -4,7 +4,9 @@ import android.arch.persistence.room.Room;
import android.content.Context;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao;
import org.tasks.LocalBroadcastManager;
import org.tasks.data.GoogleTaskListDao;
import org.tasks.data.TagDataDao;
import org.tasks.data.TaskListMetadataDao;
@ -17,6 +19,7 @@ import org.tasks.data.TagDao;
import org.tasks.notifications.NotificationDao;
import org.tasks.preferences.PermissionChecker;
import org.tasks.preferences.PermissivePermissionChecker;
import org.tasks.preferences.Preferences;
import dagger.Module;
import dagger.Provides;
@ -82,6 +85,15 @@ public class TestModule {
return database.getLocationDao();
}
@Provides
public TaskDao getTaskDao(Database database, Preferences preferences, LocalBroadcastManager localBroadcastManager,
AlarmDao alarmDao, TagDao tagDao, LocationDao locationDao, GoogleTaskDao googleTaskDao) {
TaskDao taskDao = database.getTaskDao();
taskDao.initialize(context, preferences, localBroadcastManager, alarmDao, tagDao,
locationDao, googleTaskDao);
return taskDao;
}
@ApplicationScope
@Provides
@ForApplication

@ -76,6 +76,7 @@ public abstract class Database extends RoomDatabase {
public abstract GoogleTaskDao getGoogleTaskDao();
public abstract FilterDao getFilterDao();
public abstract GoogleTaskListDao getGoogleTaskListDao();
public abstract TaskDao getTaskDao();
public static final String NAME = "database";

@ -5,6 +5,7 @@
*/
package com.todoroo.astrid.dao;
import android.arch.persistence.room.Dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteConstraintException;
@ -29,16 +30,12 @@ import org.tasks.data.AlarmDao;
import org.tasks.data.GoogleTaskDao;
import org.tasks.data.LocationDao;
import org.tasks.data.TagDao;
import org.tasks.injection.ApplicationScope;
import org.tasks.injection.ForApplication;
import org.tasks.jobs.AfterSaveIntentService;
import org.tasks.preferences.Preferences;
import org.tasks.receivers.PushReceiver;
import java.util.List;
import javax.inject.Inject;
import timber.log.Timber;
/**
@ -47,33 +44,34 @@ import timber.log.Timber;
* @author Tim Su <tim@todoroo.com>
*
*/
@ApplicationScope
public class TaskDao {
@Dao
public abstract class TaskDao {
public static final String TRANS_SUPPRESS_REFRESH = "suppress-refresh";
private final RemoteModelDao dao;
private final LocalBroadcastManager localBroadcastManager;
private final Preferences preferences;
private final AlarmDao alarmDao;
private final TagDao tagDao;
private final LocationDao locationDao;
private final GoogleTaskDao googleTaskDao;
private final Context context;
@Inject
public TaskDao(@ForApplication Context context, Database database,
Preferences preferences, LocalBroadcastManager localBroadcastManager,
AlarmDao alarmDao, TagDao tagDao, LocationDao locationDao, GoogleTaskDao googleTaskDao) {
private LocalBroadcastManager localBroadcastManager;
private Preferences preferences;
private AlarmDao alarmDao;
private TagDao tagDao;
private LocationDao locationDao;
private GoogleTaskDao googleTaskDao;
private Context context;
public TaskDao(Database database) {
dao = new RemoteModelDao(database);
}
public void initialize(Context context, Preferences preferences, LocalBroadcastManager localBroadcastManager,
AlarmDao alarmDao, TagDao tagDao, LocationDao locationDao, GoogleTaskDao googleTaskDao) {
this.context = context;
this.preferences = preferences;
this.localBroadcastManager = localBroadcastManager;
this.alarmDao = alarmDao;
this.tagDao = tagDao;
this.locationDao = locationDao;
this.googleTaskDao = googleTaskDao;
this.localBroadcastManager = localBroadcastManager;
dao = new RemoteModelDao(database);
}
public TodorooCursor query(Query query) {

@ -5,12 +5,15 @@ import android.content.Context;
import com.todoroo.astrid.dao.Database;
import org.tasks.LocalBroadcastManager;
import org.tasks.data.FilterDao;
import org.tasks.data.GoogleTaskListDao;
import org.tasks.data.TagDataDao;
import org.tasks.data.TaskAttachmentDao;
import org.tasks.data.TaskListMetadataDao;
import org.tasks.data.UserActivityDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.provider.Astrid2TaskProvider;
import org.tasks.ErrorReportingSingleThreadExecutor;
@ -22,10 +25,12 @@ import org.tasks.data.TagDao;
import org.tasks.db.Migrations;
import org.tasks.locale.Locale;
import org.tasks.notifications.NotificationDao;
import org.tasks.preferences.Preferences;
import java.util.concurrent.Executor;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@ -68,57 +73,78 @@ public class ApplicationModule {
}
@Provides
@ApplicationScope
public NotificationDao getNotificationDao(Database database) {
return database.notificationDao();
}
@Provides
@ApplicationScope
public TagDataDao getTagDataDao(Database database) {
return database.getTagDataDao();
}
@Provides
@ApplicationScope
public UserActivityDao getUserActivityDao(Database database) {
return database.getUserActivityDao();
}
@Provides
@ApplicationScope
public TaskAttachmentDao getTaskAttachmentDao(Database database) {
return database.getTaskAttachmentDao();
}
@Provides
@ApplicationScope
public TaskListMetadataDao getTaskListMetadataDao(Database database) {
return database.getTaskListMetadataDao();
}
@Provides
@ApplicationScope
public GoogleTaskDao getGoogleTaskDao(Database database) {
return database.getGoogleTaskDao();
}
@Provides
@ApplicationScope
public AlarmDao getAlarmDao(Database database) {
return database.getAlarmDao();
}
@Provides
@ApplicationScope
public LocationDao getGeofenceDao(Database database) {
return database.getLocationDao();
}
@Provides
@ApplicationScope
public TagDao getTagDao(Database database) {
return database.getTagDao();
}
@Provides
@ApplicationScope
public FilterDao getFilterDao(Database database) {
return database.getFilterDao();
}
@Provides
@ApplicationScope
public GoogleTaskListDao getGoogleTaskListDao(Database database) {
return database.getGoogleTaskListDao();
}
@Provides
@ApplicationScope
public TaskDao getTaskDao(Database database, Preferences preferences, LocalBroadcastManager localBroadcastManager,
AlarmDao alarmDao, TagDao tagDao, LocationDao locationDao, GoogleTaskDao googleTaskDao) {
TaskDao taskDao = database.getTaskDao();
taskDao.initialize(context, preferences, localBroadcastManager, alarmDao, tagDao,
locationDao, googleTaskDao);
return taskDao;
}
}

Loading…
Cancel
Save