diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java index 8ee6e9faa..9e19fd113 100644 --- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java +++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java @@ -130,8 +130,6 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity MenuColorizer.colorToolbar(this, toolbar); listView = findViewById(android.R.id.list); - database.openForReading(); - List startingCriteria = new ArrayList<>(); startingCriteria.add(getStartingUniverse()); adapter = new CustomFilterAdapter(this, dialogBuilder, startingCriteria, locale); @@ -295,7 +293,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity sql.append(Task.ID).append(" IN (").append(subSql).append(") "); } - Cursor cursor = database.rawQuery(sql.toString()); + Cursor cursor = database.query(sql.toString(), null); try { cursor.moveToNext(); instance.start = last == -1 ? cursor.getInt(0) : last; diff --git a/app/src/main/java/com/todoroo/astrid/dao/Database.java b/app/src/main/java/com/todoroo/astrid/dao/Database.java index 9c3fd1ad5..9c95f9283 100644 --- a/app/src/main/java/com/todoroo/astrid/dao/Database.java +++ b/app/src/main/java/com/todoroo/astrid/dao/Database.java @@ -6,12 +6,8 @@ package com.todoroo.astrid.dao; -import android.database.Cursor; import androidx.room.RoomDatabase; -import androidx.sqlite.db.SupportSQLiteDatabase; import com.todoroo.astrid.data.Task; -import java.io.IOException; -import org.tasks.analytics.Tracker; import org.tasks.data.Alarm; import org.tasks.data.AlarmDao; import org.tasks.data.CaldavAccount; @@ -40,7 +36,6 @@ import org.tasks.data.UserActivity; import org.tasks.data.UserActivityDao; import org.tasks.notifications.Notification; import org.tasks.notifications.NotificationDao; -import timber.log.Timber; @androidx.room.Database( entities = { @@ -65,8 +60,6 @@ import timber.log.Timber; public abstract class Database extends RoomDatabase { public static final String NAME = "database"; - private SupportSQLiteDatabase database; - private Tracker tracker; private Runnable onDatabaseUpdated; public abstract NotificationDao notificationDao(); @@ -103,8 +96,7 @@ public abstract class Database extends RoomDatabase { return NAME; } - public Database init(Tracker tracker, Runnable onDatabaseUpdated) { - this.tracker = tracker; + public Database init(Runnable onDatabaseUpdated) { this.onDatabaseUpdated = onDatabaseUpdated; return this; } @@ -115,61 +107,9 @@ public abstract class Database extends RoomDatabase { } } - /** - * Open the database for writing. Must be closed afterwards. If user is out of disk space, - * database may be opened for reading instead - */ - public final synchronized void openForWriting() { - if (database != null && !database.isReadOnly() && database.isOpen()) { - return; - } - - try { - database = getOpenHelper().getWritableDatabase(); - } catch (Exception e) { - tracker.reportException(e); - throw new IllegalStateException(e); - } - } - - /** Open the database for reading. Must be closed afterwards */ - public final synchronized void openForReading() { - if (database != null && database.isOpen()) { - return; - } - database = getOpenHelper().getReadableDatabase(); - } - - /** Close the database if it has been opened previously */ - @Override - public final synchronized void close() { - if (database != null) { - try { - database.close(); - } catch (IOException e) { - Timber.e(e); - } - } - database = null; - } - - /** @return sql database. opens database if not yet open */ - private synchronized SupportSQLiteDatabase getDatabase() { - if (database == null) { - openForWriting(); - } - return database; - } - /** @return human-readable database name for debugging */ @Override public String toString() { return "DB:" + getName(); } - - // --- database wrapper - - public Cursor rawQuery(String sql) { - return getDatabase().query(sql, null); - } } diff --git a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java index 68d16e894..64b0cc734 100644 --- a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -231,7 +231,7 @@ public abstract class TaskDao { if (BuildConfig.DEBUG) { Timber.v(queryString); } - return database.rawQuery(queryString); + return database.query(queryString, null); } /** Generates SQL clauses */ diff --git a/app/src/main/java/com/todoroo/astrid/service/StartupService.java b/app/src/main/java/com/todoroo/astrid/service/StartupService.java index 4e11bb0b2..03015d9eb 100644 --- a/app/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/app/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -7,49 +7,27 @@ package com.todoroo.astrid.service; import android.content.Context; -import com.todoroo.astrid.dao.Database; -import com.todoroo.astrid.tags.TagService; import dagger.Lazy; import javax.inject.Inject; import org.tasks.BuildConfig; -import org.tasks.LocalBroadcastManager; import org.tasks.analytics.Tracker; -import org.tasks.data.FilterDao; -import org.tasks.data.GoogleTaskListDao; -import org.tasks.data.TagDao; -import org.tasks.data.TagDataDao; -import org.tasks.data.TaskAttachmentDao; -import org.tasks.data.UserActivityDao; import org.tasks.injection.ForApplication; -import org.tasks.preferences.DefaultFilterProvider; import org.tasks.preferences.Preferences; import org.tasks.scheduling.BackgroundScheduler; import timber.log.Timber; public class StartupService { - private final Database database; private final Preferences preferences; private final Context context; private final Lazy upgrader; @Inject public StartupService( - Database database, Preferences preferences, Tracker tracker, - TagDataDao tagDataDao, - TagService tagService, - LocalBroadcastManager localBroadcastManager, @ForApplication Context context, - TagDao tagDao, - FilterDao filterDao, - DefaultFilterProvider defaultFilterProvider, - GoogleTaskListDao googleTaskListDao, - UserActivityDao userActivityDao, - TaskAttachmentDao taskAttachmentDao, Lazy upgrader) { - this.database = database; this.preferences = preferences; this.context = context; this.upgrader = upgrader; @@ -57,8 +35,6 @@ public class StartupService { /** Called when this application is started up */ public synchronized void onStartupApplication() { - database.openForWriting(); - // read current version final int lastVersion = preferences.getLastSetVersion(); final int currentVersion = BuildConfig.VERSION_CODE; diff --git a/app/src/main/java/org/tasks/injection/ApplicationModule.java b/app/src/main/java/org/tasks/injection/ApplicationModule.java index 492c5d37e..eecb22eeb 100644 --- a/app/src/main/java/org/tasks/injection/ApplicationModule.java +++ b/app/src/main/java/org/tasks/injection/ApplicationModule.java @@ -9,7 +9,6 @@ import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.provider.Astrid2TaskProvider; import dagger.Module; import dagger.Provides; -import org.tasks.analytics.Tracker; import org.tasks.data.AlarmDao; import org.tasks.data.CaldavDao; import org.tasks.data.DeletionDao; @@ -52,12 +51,12 @@ public class ApplicationModule { @Provides @ApplicationScope - public Database getAppDatabase(Tracker tracker) { + public Database getAppDatabase() { return Room.databaseBuilder(context, Database.class, Database.NAME) .allowMainThreadQueries() // TODO: remove me .addMigrations(Migrations.MIGRATIONS) .build() - .init(tracker, () -> Astrid2TaskProvider.notifyDatabaseModification(context)); + .init(() -> Astrid2TaskProvider.notifyDatabaseModification(context)); } @Provides