Rename database columns

pull/848/head
Alex Baker 5 years ago
parent 07c2b10b6b
commit 3c5df292ee

@ -25,8 +25,8 @@ android {
defaultConfig {
testApplicationId = "org.tasks.test"
applicationId = "org.tasks"
versionCode = 591
versionName = "6.7.1"
versionCode = 592
versionName = "6.8.0"
targetSdkVersion(Versions.compileSdk)
minSdkVersion(Versions.minSdk)
multiDexEnabled = true

@ -0,0 +1,990 @@
{
"formatVersion": 1,
"database": {
"version": 64,
"identityHash": "d24b2db6e74861d39a229c3ad6ce2a70",
"entities": [
{
"tableName": "notification",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uid` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task` INTEGER NOT NULL, `timestamp` INTEGER NOT NULL, `type` INTEGER NOT NULL, `location` INTEGER)",
"fields": [
{
"fieldPath": "uid",
"columnName": "uid",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "taskId",
"columnName": "task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "timestamp",
"columnName": "timestamp",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "location",
"columnName": "location",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"uid"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_notification_task",
"unique": true,
"columnNames": [
"task"
],
"createSql": "CREATE UNIQUE INDEX `index_notification_task` ON `${TABLE_NAME}` (`task`)"
}
],
"foreignKeys": []
},
{
"tableName": "tagdata",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remoteId` TEXT, `name` TEXT, `color` INTEGER, `tagOrdering` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "remoteId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "color",
"columnName": "color",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "tagOrdering",
"columnName": "tagOrdering",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "userActivity",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remoteId` TEXT, `message` TEXT, `picture` TEXT, `target_id` TEXT, `created_at` INTEGER)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "remoteId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "picture",
"columnName": "picture",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "targetId",
"columnName": "target_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "created",
"columnName": "created_at",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "task_attachments",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remoteId` TEXT, `task_id` TEXT, `name` TEXT, `path` TEXT, `content_type` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "remoteId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "taskId",
"columnName": "task_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "uri",
"columnName": "path",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "contentType",
"columnName": "content_type",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "task_list_metadata",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remoteId` TEXT, `tag_uuid` TEXT, `filter` TEXT, `task_ids` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "remoteId",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "tagUuid",
"columnName": "tag_uuid",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "filter",
"columnName": "filter",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "taskIds",
"columnName": "task_ids",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "tasks",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` TEXT, `importance` INTEGER, `dueDate` INTEGER, `hideUntil` INTEGER, `created` INTEGER, `modified` INTEGER, `completed` INTEGER, `deleted` INTEGER, `notes` TEXT, `estimatedSeconds` INTEGER, `elapsedSeconds` INTEGER, `timerStart` INTEGER, `notificationFlags` INTEGER, `notifications` INTEGER, `lastNotified` INTEGER, `snoozeTime` INTEGER, `recurrence` TEXT, `repeatUntil` INTEGER, `calendarUri` TEXT, `remoteId` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "priority",
"columnName": "importance",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "dueDate",
"columnName": "dueDate",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "hideUntil",
"columnName": "hideUntil",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "created",
"columnName": "created",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "modified",
"columnName": "modified",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "completed",
"columnName": "completed",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "deleted",
"columnName": "deleted",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "notes",
"columnName": "notes",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "estimatedSeconds",
"columnName": "estimatedSeconds",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "elapsedSeconds",
"columnName": "elapsedSeconds",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "timerStart",
"columnName": "timerStart",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "notificationFlags",
"columnName": "notificationFlags",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "notifications",
"columnName": "notifications",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "lastNotified",
"columnName": "lastNotified",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "snoozeTime",
"columnName": "snoozeTime",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "recurrence",
"columnName": "recurrence",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "repeatUntil",
"columnName": "repeatUntil",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "calendarUri",
"columnName": "calendarUri",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "remoteId",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [
{
"name": "t_rid",
"unique": true,
"columnNames": [
"remoteId"
],
"createSql": "CREATE UNIQUE INDEX `t_rid` ON `${TABLE_NAME}` (`remoteId`)"
}
],
"foreignKeys": []
},
{
"tableName": "alarms",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task` INTEGER NOT NULL, `time` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "task",
"columnName": "task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "time",
"columnName": "time",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "places",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`place_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `uid` TEXT, `name` TEXT, `address` TEXT, `phone` TEXT, `url` TEXT, `latitude` REAL NOT NULL, `longitude` REAL NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "place_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "uid",
"columnName": "uid",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "address",
"columnName": "address",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "phone",
"columnName": "phone",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "latitude",
"columnName": "latitude",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "longitude",
"columnName": "longitude",
"affinity": "REAL",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"place_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "geofences",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`geofence_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task` INTEGER NOT NULL, `place` TEXT, `radius` INTEGER NOT NULL, `arrival` INTEGER NOT NULL, `departure` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "geofence_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "task",
"columnName": "task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "place",
"columnName": "place",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "radius",
"columnName": "radius",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "arrival",
"columnName": "arrival",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "departure",
"columnName": "departure",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"geofence_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "tags",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task` INTEGER NOT NULL, `name` TEXT, `tag_uid` TEXT, `task_uid` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "task",
"columnName": "task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "tagUid",
"columnName": "tag_uid",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "taskUid",
"columnName": "task_uid",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "google_tasks",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`gt_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `gt_task` INTEGER NOT NULL, `gt_remote_id` TEXT, `gt_list_id` TEXT, `gt_parent` INTEGER NOT NULL, `gt_remote_parent` TEXT, `gt_moved` INTEGER NOT NULL, `gt_order` INTEGER NOT NULL, `gt_remote_order` INTEGER NOT NULL, `gt_last_sync` INTEGER NOT NULL, `gt_deleted` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "gt_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "task",
"columnName": "gt_task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "remoteId",
"columnName": "gt_remote_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "listId",
"columnName": "gt_list_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "parent",
"columnName": "gt_parent",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "remoteParent",
"columnName": "gt_remote_parent",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "moved",
"columnName": "gt_moved",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "order",
"columnName": "gt_order",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "remoteOrder",
"columnName": "gt_remote_order",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastSync",
"columnName": "gt_last_sync",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "deleted",
"columnName": "gt_deleted",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"gt_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "filters",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `title` TEXT, `sql` TEXT, `values` TEXT, `criterion` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "sql",
"columnName": "sql",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "values",
"columnName": "values",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "criterion",
"columnName": "criterion",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "google_task_lists",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`gtl_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `gtl_account` TEXT, `gtl_remote_id` TEXT, `gtl_title` TEXT, `gtl_remote_order` INTEGER NOT NULL, `gtl_last_sync` INTEGER NOT NULL, `gtl_color` INTEGER)",
"fields": [
{
"fieldPath": "id",
"columnName": "gtl_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "account",
"columnName": "gtl_account",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "gtl_remote_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "title",
"columnName": "gtl_title",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "remoteOrder",
"columnName": "gtl_remote_order",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastSync",
"columnName": "gtl_last_sync",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "color",
"columnName": "gtl_color",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"gtl_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "caldav_lists",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`cdl_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cdl_account` TEXT, `cdl_uuid` TEXT, `cdl_name` TEXT, `cdl_color` INTEGER NOT NULL, `cdl_ctag` TEXT, `cdl_url` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "cdl_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "account",
"columnName": "cdl_account",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "uuid",
"columnName": "cdl_uuid",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "cdl_name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "color",
"columnName": "cdl_color",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "ctag",
"columnName": "cdl_ctag",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "cdl_url",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"cdl_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "caldav_tasks",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`cd_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cd_task` INTEGER NOT NULL, `cd_calendar` TEXT, `cd_object` TEXT, `cd_remote_id` TEXT, `cd_etag` TEXT, `cd_last_sync` INTEGER NOT NULL, `cd_deleted` INTEGER NOT NULL, `cd_vtodo` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "cd_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "task",
"columnName": "cd_task",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "calendar",
"columnName": "cd_calendar",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "object",
"columnName": "cd_object",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "remoteId",
"columnName": "cd_remote_id",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "etag",
"columnName": "cd_etag",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "lastSync",
"columnName": "cd_last_sync",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "deleted",
"columnName": "cd_deleted",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "vtodo",
"columnName": "cd_vtodo",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"cd_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "caldav_accounts",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`cda_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cda_uuid` TEXT, `cda_name` TEXT, `cda_url` TEXT, `cda_username` TEXT, `cda_password` TEXT, `cda_error` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "cda_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "uuid",
"columnName": "cda_uuid",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "cda_name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "cda_url",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "username",
"columnName": "cda_username",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "password",
"columnName": "cda_password",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "error",
"columnName": "cda_error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"cda_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "google_task_accounts",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`gta_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `gta_account` TEXT, `gta_error` TEXT, `gta_etag` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "gta_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "account",
"columnName": "gta_account",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "error",
"columnName": "gta_error",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "etag",
"columnName": "gta_etag",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"gta_id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd24b2db6e74861d39a229c3ad6ce2a70')"
]
}
}

@ -50,12 +50,12 @@ public class CaldavFilter extends Filter {
private static QueryTemplate queryTemplate(CaldavCalendar caldavCalendar) {
return new QueryTemplate()
.join(Join.left(CaldavTask.TABLE, Task.ID.eq(Field.field("caldav_tasks.task"))))
.join(Join.left(CaldavTask.TABLE, Task.ID.eq(Field.field("caldav_tasks.cd_task"))))
.where(
Criterion.and(
TaskDao.TaskCriteria.activeAndVisible(),
Field.field("caldav_tasks.deleted").eq(0),
Field.field("caldav_tasks.calendar").eq(caldavCalendar.getUuid())));
Field.field("caldav_tasks.cd_deleted").eq(0),
Field.field("caldav_tasks.cd_calendar").eq(caldavCalendar.getUuid())));
}
private static Map<String, Object> getValuesForNewTask(CaldavCalendar caldavCalendar) {

@ -58,7 +58,7 @@ import org.tasks.notifications.NotificationDao;
CaldavAccount.class,
GoogleTaskAccount.class
},
version = 63)
version = 64)
public abstract class Database extends RoomDatabase {
public static final String NAME = "database";

@ -98,16 +98,16 @@ public abstract class TaskDao {
@Query(
"SELECT tasks.* FROM tasks "
+ "LEFT JOIN google_tasks ON tasks._id = google_tasks.gt_task "
+ "WHERE gt_list_id IN (SELECT remote_id FROM google_task_lists WHERE account = :account)"
+ "WHERE gt_list_id IN (SELECT gtl_remote_id FROM google_task_lists WHERE gtl_account = :account)"
+ "AND (tasks.modified > google_tasks.gt_last_sync OR google_tasks.gt_remote_id = '') "
+ "ORDER BY CASE WHEN gt_parent = 0 THEN 0 ELSE 1 END, gt_order ASC")
public abstract List<Task> getGoogleTasksToPush(String account);
@Query(
"SELECT tasks.* FROM tasks "
+ "LEFT JOIN caldav_tasks ON tasks._id = caldav_tasks.task "
+ "WHERE caldav_tasks.calendar = :calendar "
+ "AND tasks.modified > caldav_tasks.last_sync")
+ "LEFT JOIN caldav_tasks ON tasks._id = caldav_tasks.cd_task "
+ "WHERE caldav_tasks.cd_calendar = :calendar "
+ "AND tasks.modified > caldav_tasks.cd_last_sync")
public abstract List<Task> getCaldavTasksToPush(String calendar);
@Query(

@ -41,6 +41,7 @@ public class Upgrader {
private static final int V6_0_beta_2 = 523;
private static final int V6_4 = 546;
private static final int V6_7 = 585;
private static final int V6_8 = 592;
private final Preferences preferences;
private final Tracker tracker;
private final TagDataDao tagDataDao;
@ -85,6 +86,7 @@ public class Upgrader {
run(from, V6_0_beta_2, this::migrateGoogleTaskAccount);
run(from, V6_4, this::migrateUris);
run(from, V6_7, this::migrateGoogleTaskFilters);
run(from, V6_8, this::migrateCaldavFilters);
tracker.reportEvent(Tracking.Events.UPGRADE, Integer.toString(from));
}
preferences.setCurrentVersion(to);
@ -131,6 +133,14 @@ public class Upgrader {
}
}
private void migrateCaldavFilters() {
for (Filter filter : filterDao.getAll()) {
filter.setSql(migrateCaldavFilters(filter.getSql()));
filter.setCriterion(migrateCaldavFilters(filter.getCriterion()));
filterDao.update(filter);
}
}
private void migrateFilters() {
for (Filter filter : filterDao.getFilters()) {
filter.setSql(migrateMetadata(filter.getSql()));
@ -207,6 +217,12 @@ public class Upgrader {
.replace("google_tasks.task", "google_tasks.gt_task");
}
private String migrateCaldavFilters(String input) {
return input
.replace("SELECT task FROM caldav_tasks", "SELECT cd_task as task FROM caldav_tasks")
.replace("(calendar", "(cd_calendar");
}
private String migrateMetadata(String input) {
return input
.replaceAll(

@ -10,7 +10,7 @@ import androidx.room.Ignore;
import androidx.room.PrimaryKey;
import org.tasks.security.Encryption;
@Entity(tableName = "caldav_account")
@Entity(tableName = "caldav_accounts")
public class CaldavAccount implements Parcelable {
public static Parcelable.Creator<CaldavAccount> CREATOR =
@ -28,25 +28,25 @@ public class CaldavAccount implements Parcelable {
};
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
@ColumnInfo(name = "cda_id")
private long id;
@ColumnInfo(name = "uuid")
@ColumnInfo(name = "cda_uuid")
private String uuid = NO_UUID;
@ColumnInfo(name = "name")
@ColumnInfo(name = "cda_name")
private String name = "";
@ColumnInfo(name = "url")
@ColumnInfo(name = "cda_url")
private String url = "";
@ColumnInfo(name = "username")
@ColumnInfo(name = "cda_username")
private String username = "";
@ColumnInfo(name = "password")
@ColumnInfo(name = "cda_password")
private transient String password = "";
@ColumnInfo(name = "error")
@ColumnInfo(name = "cda_error")
private transient String error = "";
public CaldavAccount() {}

@ -9,7 +9,7 @@ import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;
@Entity(tableName = "caldav_calendar")
@Entity(tableName = "caldav_lists")
public final class CaldavCalendar implements Parcelable {
public static Parcelable.Creator<CaldavCalendar> CREATOR =
@ -26,25 +26,25 @@ public final class CaldavCalendar implements Parcelable {
};
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
@ColumnInfo(name = "cdl_id")
private long id;
@ColumnInfo(name = "account")
@ColumnInfo(name = "cdl_account")
private String account = NO_UUID;
@ColumnInfo(name = "uuid")
@ColumnInfo(name = "cdl_uuid")
private String uuid = NO_UUID;
@ColumnInfo(name = "name")
@ColumnInfo(name = "cdl_name")
private String name = "";
@ColumnInfo(name = "color")
@ColumnInfo(name = "cdl_color")
private int color = -1;
@ColumnInfo(name = "ctag")
@ColumnInfo(name = "cdl_ctag")
private String ctag;
@ColumnInfo(name = "url")
@ColumnInfo(name = "cdl_url")
private String url = "";
public CaldavCalendar() {}

@ -12,19 +12,19 @@ import java.util.List;
@Dao
public interface CaldavDao {
@Query("SELECT * FROM caldav_calendar")
@Query("SELECT * FROM caldav_lists")
LiveData<List<CaldavCalendar>> subscribeToCalendars();
@Query("SELECT * FROM caldav_calendar WHERE uuid = :uuid LIMIT 1")
@Query("SELECT * FROM caldav_lists WHERE cdl_uuid = :uuid LIMIT 1")
CaldavCalendar getCalendarByUuid(String uuid);
@Query("SELECT * FROM caldav_account WHERE uuid = :uuid LIMIT 1")
@Query("SELECT * FROM caldav_accounts WHERE cda_uuid = :uuid LIMIT 1")
CaldavAccount getAccountByUuid(String uuid);
@Query("SELECT COUNT(*) FROM caldav_account")
@Query("SELECT COUNT(*) FROM caldav_accounts")
Single<Integer> accountCount();
@Query("SELECT * FROM caldav_account ORDER BY UPPER(name) ASC")
@Query("SELECT * FROM caldav_accounts ORDER BY UPPER(cda_name) ASC")
List<CaldavAccount> getAccounts();
@Insert
@ -51,46 +51,46 @@ public interface CaldavDao {
@Delete
void delete(CaldavTask caldavTask);
@Query("SELECT * FROM caldav_tasks WHERE deleted > 0 AND calendar = :calendar")
@Query("SELECT * FROM caldav_tasks WHERE cd_deleted > 0 AND cd_calendar = :calendar")
List<CaldavTask> getDeleted(String calendar);
@Query("SELECT * FROM caldav_tasks WHERE task = :taskId AND deleted = 0 LIMIT 1")
@Query("SELECT * FROM caldav_tasks WHERE cd_task = :taskId AND cd_deleted = 0 LIMIT 1")
CaldavTask getTask(long taskId);
@Query("SELECT * FROM caldav_tasks WHERE calendar = :calendar AND object = :object LIMIT 1")
@Query("SELECT * FROM caldav_tasks WHERE cd_calendar = :calendar AND cd_object = :object LIMIT 1")
CaldavTask getTask(String calendar, String object);
@Query("SELECT * FROM caldav_tasks WHERE task = :taskId")
@Query("SELECT * FROM caldav_tasks WHERE cd_task = :taskId")
List<CaldavTask> getTasks(long taskId);
@Query("SELECT * FROM caldav_calendar ORDER BY name COLLATE NOCASE")
@Query("SELECT * FROM caldav_lists ORDER BY cdl_name COLLATE NOCASE")
List<CaldavCalendar> getCalendars();
@Query("SELECT * FROM caldav_calendar WHERE account = :account ORDER BY name COLLATE NOCASE")
@Query("SELECT * FROM caldav_lists WHERE cdl_account = :account ORDER BY cdl_name COLLATE NOCASE")
List<CaldavCalendar> getCalendarsByAccount(String account);
@Query("SELECT * FROM caldav_calendar WHERE uuid = :uuid LIMIT 1")
@Query("SELECT * FROM caldav_lists WHERE cdl_uuid = :uuid LIMIT 1")
CaldavCalendar getCalendar(String uuid);
@Query(
"SELECT * FROM caldav_calendar WHERE account = :account AND name = :name COLLATE NOCASE LIMIT 1")
"SELECT * FROM caldav_lists WHERE cdl_account = :account AND cdl_name = :name COLLATE NOCASE LIMIT 1")
CaldavCalendar getCalendar(String account, String name);
@Query("SELECT object FROM caldav_tasks WHERE calendar = :calendar")
@Query("SELECT cd_object FROM caldav_tasks WHERE cd_calendar = :calendar")
List<String> getObjects(String calendar);
@Query("SELECT task FROM caldav_tasks WHERE calendar = :calendar AND object IN (:objects)")
@Query("SELECT cd_task FROM caldav_tasks WHERE cd_calendar = :calendar AND cd_object IN (:objects)")
List<Long> getTasks(String calendar, List<String> objects);
@Query("SELECT * FROM caldav_calendar WHERE account = :account AND url NOT IN (:urls)")
@Query("SELECT * FROM caldav_lists WHERE cdl_account = :account AND cdl_url NOT IN (:urls)")
List<CaldavCalendar> findDeletedCalendars(String account, List<String> urls);
@Query("SELECT * FROM caldav_calendar WHERE account = :account AND url = :url LIMIT 1")
@Query("SELECT * FROM caldav_lists WHERE cdl_account = :account AND cdl_url = :url LIMIT 1")
CaldavCalendar getCalendarByUrl(String account, String url);
@Query("SELECT * FROM caldav_account WHERE name = :name COLLATE NOCASE LIMIT 1")
@Query("SELECT * FROM caldav_accounts WHERE cda_name = :name COLLATE NOCASE LIMIT 1")
CaldavAccount getAccountByName(String name);
@Query("SELECT DISTINCT calendar FROM caldav_tasks WHERE deleted = 0 AND task IN (:tasks)")
@Query("SELECT DISTINCT cd_calendar FROM caldav_tasks WHERE cd_deleted = 0 AND cd_task IN (:tasks)")
List<String> getCalendars(List<Long> tasks);
}

@ -14,31 +14,31 @@ public class CaldavTask {
@Deprecated public static final Table TABLE = new Table("caldav_tasks");
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
@ColumnInfo(name = "cd_id")
private long id;
@ColumnInfo(name = "task")
@ColumnInfo(name = "cd_task")
private long task;
@ColumnInfo(name = "calendar")
@ColumnInfo(name = "cd_calendar")
private String calendar;
@ColumnInfo(name = "object")
@ColumnInfo(name = "cd_object")
private String object;
@ColumnInfo(name = "remote_id")
@ColumnInfo(name = "cd_remote_id")
private String remoteId;
@ColumnInfo(name = "etag")
@ColumnInfo(name = "cd_etag")
private String etag;
@ColumnInfo(name = "last_sync")
@ColumnInfo(name = "cd_last_sync")
private long lastSync;
@ColumnInfo(name = "deleted")
@ColumnInfo(name = "cd_deleted")
private long deleted;
@ColumnInfo(name = "vtodo")
@ColumnInfo(name = "cd_vtodo")
private String vtodo;
public CaldavTask() {}

@ -16,7 +16,7 @@ public abstract class DeletionDao {
@Query("SELECT _id FROM tasks WHERE deleted > 0")
public abstract List<Long> getDeleted();
@Query("DELETE FROM caldav_tasks WHERE task IN(:ids)")
@Query("DELETE FROM caldav_tasks WHERE cd_task IN(:ids)")
abstract void deleteCaldavTasks(List<Long> ids);
@Query("DELETE FROM google_tasks WHERE gt_task IN(:ids)")
@ -73,7 +73,7 @@ public abstract class DeletionDao {
@Delete
abstract void deleteGoogleTaskAccount(GoogleTaskAccount googleTaskAccount);
@Query("SELECT * FROM google_task_lists WHERE account = :account ORDER BY title ASC")
@Query("SELECT * FROM google_task_lists WHERE gtl_account = :account ORDER BY gtl_title ASC")
abstract List<GoogleTaskList> getLists(String account);
@Transaction
@ -86,7 +86,7 @@ public abstract class DeletionDao {
return deleted;
}
@Query("SELECT task FROM caldav_tasks WHERE calendar = :calendar AND deleted = 0")
@Query("SELECT cd_task FROM caldav_tasks WHERE cd_calendar = :calendar AND cd_deleted = 0")
abstract List<Long> getActiveCaldavTasks(String calendar);
@Delete
@ -100,7 +100,7 @@ public abstract class DeletionDao {
return tasks;
}
@Query("SELECT * FROM caldav_calendar WHERE account = :account")
@Query("SELECT * FROM caldav_lists WHERE cdl_account = :account")
abstract List<CaldavCalendar> getCalendars(String account);
@Delete

@ -23,16 +23,16 @@ public class GoogleTaskAccount implements Parcelable {
};
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
@ColumnInfo(name = "gta_id")
private transient long id;
@ColumnInfo(name = "account")
@ColumnInfo(name = "gta_account")
private String account;
@ColumnInfo(name = "error")
@ColumnInfo(name = "gta_error")
private transient String error = "";
@ColumnInfo(name = "etag")
@ColumnInfo(name = "gta_etag")
private String etag;
public GoogleTaskAccount() {}

@ -24,29 +24,25 @@ public class GoogleTaskList implements Parcelable {
};
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
@ColumnInfo(name = "gtl_id")
private transient long id;
@ColumnInfo(name = "account")
@ColumnInfo(name = "gtl_account")
private String account;
@ColumnInfo(name = "remote_id")
@ColumnInfo(name = "gtl_remote_id")
private String remoteId;
@ColumnInfo(name = "title")
@ColumnInfo(name = "gtl_title")
private String title;
@ColumnInfo(name = "remote_order")
@ColumnInfo(name = "gtl_remote_order")
private int remoteOrder;
@ColumnInfo(name = "last_sync")
@ColumnInfo(name = "gtl_last_sync")
private long lastSync;
@ColumnInfo(name = "deleted")
@Deprecated
private long deleted = 0;
@ColumnInfo(name = "color")
@ColumnInfo(name = "gtl_color")
private Integer color;
public GoogleTaskList() {}
@ -59,7 +55,6 @@ public class GoogleTaskList implements Parcelable {
title = parcel.readString();
remoteOrder = parcel.readInt();
lastSync = parcel.readLong();
deleted = parcel.readLong();
color = parcel.readInt();
}
@ -111,14 +106,6 @@ public class GoogleTaskList implements Parcelable {
this.lastSync = lastSync;
}
public long getDeleted() {
return deleted;
}
public void setDeleted(long deleted) {
this.deleted = deleted;
}
public Integer getColor() {
return color == null ? -1 : color;
}
@ -147,9 +134,6 @@ public class GoogleTaskList implements Parcelable {
if (lastSync != that.lastSync) {
return false;
}
if (deleted != that.deleted) {
return false;
}
if (account != null ? !account.equals(that.account) : that.account != null) {
return false;
}
@ -170,7 +154,6 @@ public class GoogleTaskList implements Parcelable {
result = 31 * result + (title != null ? title.hashCode() : 0);
result = 31 * result + remoteOrder;
result = 31 * result + (int) (lastSync ^ (lastSync >>> 32));
result = 31 * result + (int) (deleted ^ (deleted >>> 32));
result = 31 * result + (color != null ? color.hashCode() : 0);
return result;
}
@ -193,8 +176,6 @@ public class GoogleTaskList implements Parcelable {
+ remoteOrder
+ ", lastSync="
+ lastSync
+ ", deleted="
+ deleted
+ ", color="
+ color
+ '}';
@ -213,7 +194,6 @@ public class GoogleTaskList implements Parcelable {
parcel.writeString(title);
parcel.writeInt(remoteOrder);
parcel.writeLong(lastSync);
parcel.writeLong(deleted);
parcel.writeInt(getColor());
}
}

@ -18,29 +18,29 @@ public abstract class GoogleTaskListDao {
@Query("SELECT * FROM google_task_accounts")
public abstract List<GoogleTaskAccount> getAccounts();
@Query("SELECT * FROM google_task_accounts WHERE account = :account COLLATE NOCASE LIMIT 1")
@Query("SELECT * FROM google_task_accounts WHERE gta_account = :account COLLATE NOCASE LIMIT 1")
public abstract GoogleTaskAccount getAccount(String account);
@Query("SELECT * FROM google_task_lists WHERE _id = :id")
@Query("SELECT * FROM google_task_lists WHERE gtl_id = :id")
public abstract GoogleTaskList getById(long id);
@Query("SELECT * FROM google_task_lists WHERE account = :account ORDER BY title ASC")
@Query("SELECT * FROM google_task_lists WHERE gtl_account = :account ORDER BY gtl_title ASC")
public abstract List<GoogleTaskList> getLists(String account);
@Query("SELECT * FROM google_task_lists WHERE remote_id = :remoteId LIMIT 1")
@Query("SELECT * FROM google_task_lists WHERE gtl_remote_id = :remoteId LIMIT 1")
public abstract GoogleTaskList getByRemoteId(String remoteId);
@Query("SELECT * FROM google_task_lists")
public abstract LiveData<List<GoogleTaskList>> subscribeToLists();
@Query(
"SELECT * FROM google_task_lists WHERE remote_id = :remoteId AND IFNULL(account, '') = '' LIMIT 1")
"SELECT * FROM google_task_lists WHERE gtl_remote_id = :remoteId AND IFNULL(gtl_account, '') = '' LIMIT 1")
public abstract GoogleTaskList findExistingList(String remoteId);
@Query("SELECT * FROM google_task_lists")
public abstract List<GoogleTaskList> getAllLists();
@Query("UPDATE google_task_lists SET last_sync = 0 WHERE account = :account")
@Query("UPDATE google_task_lists SET gtl_last_sync = 0 WHERE gtl_account = :account")
public abstract void resetLastSync(String account);
@Insert(onConflict = OnConflictStrategy.REPLACE)

@ -257,6 +257,50 @@ public class Migrations {
}
};
private static final Migration MIGRATION_63_64 =
new Migration(63, 64) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE `caldav_tasks` RENAME TO `caldav-temp`");
database.execSQL(
"CREATE TABLE IF NOT EXISTS `caldav_tasks` (`cd_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cd_task` INTEGER NOT NULL, `cd_calendar` TEXT, `cd_object` TEXT, `cd_remote_id` TEXT, `cd_etag` TEXT, `cd_last_sync` INTEGER NOT NULL, `cd_deleted` INTEGER NOT NULL, `cd_vtodo` TEXT)");
database.execSQL(
"INSERT INTO `caldav_tasks` (`cd_id`, `cd_task`, `cd_calendar`, `cd_object`, `cd_remote_id`, `cd_etag`, `cd_last_sync`, `cd_deleted`, `cd_vtodo`)"
+ "SELECT `_id`, `task`, `calendar`, `object`, `remote_id`, `etag`, `last_sync`, `deleted`, `vtodo` FROM `caldav-temp`");
database.execSQL("DROP TABLE `caldav-temp`");
database.execSQL(
"CREATE TABLE IF NOT EXISTS `caldav_accounts` (`cda_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cda_uuid` TEXT, `cda_name` TEXT, `cda_url` TEXT, `cda_username` TEXT, `cda_password` TEXT, `cda_error` TEXT)");
database.execSQL(
"INSERT INTO `caldav_accounts` (`cda_id`, `cda_uuid`, `cda_name`, `cda_url`, `cda_username`, `cda_password`, `cda_error`) "
+ "SELECT `_id`, `uuid`, `name`, `url`, `username`, `password`, `error` FROM `caldav_account`");
database.execSQL("DROP TABLE `caldav_account`");
database.execSQL(
"CREATE TABLE IF NOT EXISTS `caldav_lists` (`cdl_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cdl_account` TEXT, `cdl_uuid` TEXT, `cdl_name` TEXT, `cdl_color` INTEGER NOT NULL, `cdl_ctag` TEXT, `cdl_url` TEXT)");
database.execSQL(
"INSERT INTO `caldav_lists` (`cdl_id`, `cdl_account`, `cdl_uuid`, `cdl_name`, `cdl_color`, `cdl_ctag`, `cdl_url`) "
+ "SELECT `_id`, `account`, `uuid`, `name`, `color`, `ctag`, `url` FROM caldav_calendar");
database.execSQL("DROP TABLE `caldav_calendar`");
database.execSQL("ALTER TABLE `google_task_accounts` RENAME TO `gta-temp`");
database.execSQL(
"CREATE TABLE IF NOT EXISTS `google_task_accounts` (`gta_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `gta_account` TEXT, `gta_error` TEXT, `gta_etag` TEXT)");
database.execSQL(
"INSERT INTO `google_task_accounts` (`gta_id`, `gta_account`, `gta_error`, `gta_etag`) "
+ "SELECT `_id`, `account`, `error`, `etag` FROM `gta-temp`");
database.execSQL("DROP TABLE `gta-temp`");
database.execSQL("ALTER TABLE `google_task_lists` RENAME TO `gtl-temp`");
database.execSQL(
"CREATE TABLE IF NOT EXISTS `google_task_lists` (`gtl_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `gtl_account` TEXT, `gtl_remote_id` TEXT, `gtl_title` TEXT, `gtl_remote_order` INTEGER NOT NULL, `gtl_last_sync` INTEGER NOT NULL, `gtl_color` INTEGER)");
database.execSQL(
"INSERT INTO `google_task_lists` (`gtl_id`, `gtl_account`, `gtl_remote_id`, `gtl_title`, `gtl_remote_order`, `gtl_last_sync`, `gtl_color`) "
+ "SELECT `_id`, `account`, `remote_id`, `title`, `remote_order`, `last_sync`, `color` FROM `gtl-temp`");
database.execSQL("DROP TABLE `gtl-temp`");
}
};
public static final Migration[] MIGRATIONS =
new Migration[] {
MIGRATION_35_36,
@ -277,7 +321,8 @@ public class Migrations {
MIGRATION_59_60,
MIGRATION_60_61,
MIGRATION_61_62,
MIGRATION_62_63
MIGRATION_62_63,
MIGRATION_63_64
};
private static Migration NOOP(int from, int to) {

@ -57,7 +57,7 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
private static final Field GEOFENCE = field("geofences.*");
private static final Field PLACE = field("places.*");
private static final StringProperty CALDAV =
new StringProperty(null, CALDAV_METADATA_JOIN + ".calendar").as("caldav");
new StringProperty(null, CALDAV_METADATA_JOIN + ".cd_calendar").as("caldav");
private static final Field CHILDREN = field("children");
private static final Field SIBLINGS = field("siblings");
private static final Field PRIMARY_SORT = field("primary_sort").as("primarySort");
@ -99,8 +99,8 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
field(GTASK_METADATA_JOIN + ".gt_deleted").eq(0));
Criterion caldavJoinCriterion =
Criterion.and(
Task.ID.eq(field(CALDAV_METADATA_JOIN + ".task")),
field(CALDAV_METADATA_JOIN + ".deleted").eq(0));
Task.ID.eq(field(CALDAV_METADATA_JOIN + ".cd_task")),
field(CALDAV_METADATA_JOIN + ".cd_deleted").eq(0));
if (filter instanceof TagFilter) {
String uuid = ((TagFilter) filter).getUuid();
tagsJoinCriterion =
@ -115,7 +115,7 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
} else if (filter instanceof CaldavFilter) {
String uuid = ((CaldavFilter) filter).getUuid();
caldavJoinCriterion =
Criterion.and(caldavJoinCriterion, field(CALDAV_METADATA_JOIN + ".calendar").neq(uuid));
Criterion.and(caldavJoinCriterion, field(CALDAV_METADATA_JOIN + ".cd_calendar").neq(uuid));
}
// TODO: For now, we'll modify the query to join and include the things like tag data here.

Loading…
Cancel
Save