refactor(*): move package (#465)

Initial reorganization of the package structure, there may be missing files, I'll check them one by one later on
This commit is contained in:
Ash 2023-09-21 08:26:29 -05:00 committed by GitHub
parent bfe336b33a
commit 8f1966d10a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
197 changed files with 462 additions and 1881 deletions

View File

@ -1,321 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 2,
"identityHash": "98462c2e9c32394054102313366e7262",
"entities": [
{
"tableName": "account",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `type` INTEGER NOT NULL, `updateAt` INTEGER)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "feed",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `icon` TEXT, `url` TEXT NOT NULL, `groupId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isNotification` INTEGER NOT NULL DEFAULT false, `isFullContent` INTEGER NOT NULL DEFAULT false, PRIMARY KEY(`id`), FOREIGN KEY(`groupId`) REFERENCES `group`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "icon",
"columnName": "icon",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "groupId",
"columnName": "groupId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isNotification",
"columnName": "isNotification",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
},
{
"fieldPath": "isFullContent",
"columnName": "isFullContent",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_feed_groupId",
"unique": false,
"columnNames": [
"groupId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_groupId` ON `${TABLE_NAME}` (`groupId`)"
},
{
"name": "index_feed_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "group",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"groupId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "article",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `date` INTEGER NOT NULL, `title` TEXT NOT NULL, `author` TEXT, `rawDescription` TEXT NOT NULL, `shortDescription` TEXT NOT NULL, `fullContent` TEXT, `img` TEXT, `link` TEXT NOT NULL, `feedId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isUnread` INTEGER NOT NULL DEFAULT true, `isStarred` INTEGER NOT NULL DEFAULT false, `isReadLater` INTEGER NOT NULL DEFAULT false, PRIMARY KEY(`id`), FOREIGN KEY(`feedId`) REFERENCES `feed`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "date",
"columnName": "date",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "author",
"columnName": "author",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "rawDescription",
"columnName": "rawDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "shortDescription",
"columnName": "shortDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "fullContent",
"columnName": "fullContent",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "img",
"columnName": "img",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "link",
"columnName": "link",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "feedId",
"columnName": "feedId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isUnread",
"columnName": "isUnread",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "true"
},
{
"fieldPath": "isStarred",
"columnName": "isStarred",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
},
{
"fieldPath": "isReadLater",
"columnName": "isReadLater",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_article_feedId",
"unique": false,
"columnNames": [
"feedId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_feedId` ON `${TABLE_NAME}` (`feedId`)"
},
{
"name": "index_article_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "feed",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"feedId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "group",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `accountId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_group_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_group_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"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, '98462c2e9c32394054102313366e7262')"
]
}
}

View File

@ -1,364 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 3,
"identityHash": "b13c17e4d1ff644caeecce9fc365db2e",
"entities": [
{
"tableName": "account",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `type` INTEGER NOT NULL, `updateAt` INTEGER, `syncInterval` INTEGER NOT NULL DEFAULT 30, `syncOnStart` INTEGER NOT NULL DEFAULT 0, `syncOnlyOnWiFi` INTEGER NOT NULL DEFAULT 0, `syncOnlyWhenCharging` INTEGER NOT NULL DEFAULT 0, `keepArchived` INTEGER NOT NULL DEFAULT 2592000000, `syncBlockList` TEXT NOT NULL DEFAULT '')",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "syncInterval",
"columnName": "syncInterval",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "30"
},
{
"fieldPath": "syncOnStart",
"columnName": "syncOnStart",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "syncOnlyOnWiFi",
"columnName": "syncOnlyOnWiFi",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "syncOnlyWhenCharging",
"columnName": "syncOnlyWhenCharging",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "keepArchived",
"columnName": "keepArchived",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "2592000000"
},
{
"fieldPath": "syncBlockList",
"columnName": "syncBlockList",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "''"
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "feed",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `icon` TEXT, `url` TEXT NOT NULL, `groupId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isNotification` INTEGER NOT NULL, `isFullContent` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`groupId`) REFERENCES `group`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "icon",
"columnName": "icon",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "groupId",
"columnName": "groupId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isNotification",
"columnName": "isNotification",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isFullContent",
"columnName": "isFullContent",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_feed_groupId",
"unique": false,
"columnNames": [
"groupId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_groupId` ON `${TABLE_NAME}` (`groupId`)"
},
{
"name": "index_feed_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "group",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"groupId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "article",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `date` INTEGER NOT NULL, `title` TEXT NOT NULL, `author` TEXT, `rawDescription` TEXT NOT NULL, `shortDescription` TEXT NOT NULL, `fullContent` TEXT, `img` TEXT, `link` TEXT NOT NULL, `feedId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isUnread` INTEGER NOT NULL, `isStarred` INTEGER NOT NULL, `isReadLater` INTEGER NOT NULL, `updateAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`feedId`) REFERENCES `feed`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "date",
"columnName": "date",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "author",
"columnName": "author",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "rawDescription",
"columnName": "rawDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "shortDescription",
"columnName": "shortDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "fullContent",
"columnName": "fullContent",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "img",
"columnName": "img",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "link",
"columnName": "link",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "feedId",
"columnName": "feedId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isUnread",
"columnName": "isUnread",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isStarred",
"columnName": "isStarred",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isReadLater",
"columnName": "isReadLater",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_article_feedId",
"unique": false,
"columnNames": [
"feedId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_feedId` ON `${TABLE_NAME}` (`feedId`)"
},
{
"name": "index_article_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "feed",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"feedId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "group",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `accountId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_group_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_group_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"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, 'b13c17e4d1ff644caeecce9fc365db2e')"
]
}
}

View File

@ -1,371 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 4,
"identityHash": "ff6225eee095fd62d3d3bff48aa0be8e",
"entities": [
{
"tableName": "account",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `type` INTEGER NOT NULL, `updateAt` INTEGER, `syncInterval` INTEGER NOT NULL DEFAULT 30, `syncOnStart` INTEGER NOT NULL DEFAULT 0, `syncOnlyOnWiFi` INTEGER NOT NULL DEFAULT 0, `syncOnlyWhenCharging` INTEGER NOT NULL DEFAULT 0, `keepArchived` INTEGER NOT NULL DEFAULT 2592000000, `syncBlockList` TEXT NOT NULL DEFAULT '', `securityKey` TEXT DEFAULT 'CvJ1PKM8EW8=')",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "syncInterval",
"columnName": "syncInterval",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "30"
},
{
"fieldPath": "syncOnStart",
"columnName": "syncOnStart",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "syncOnlyOnWiFi",
"columnName": "syncOnlyOnWiFi",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "syncOnlyWhenCharging",
"columnName": "syncOnlyWhenCharging",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "keepArchived",
"columnName": "keepArchived",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "2592000000"
},
{
"fieldPath": "syncBlockList",
"columnName": "syncBlockList",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "''"
},
{
"fieldPath": "securityKey",
"columnName": "securityKey",
"affinity": "TEXT",
"notNull": false,
"defaultValue": "'CvJ1PKM8EW8='"
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "feed",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `icon` TEXT, `url` TEXT NOT NULL, `groupId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isNotification` INTEGER NOT NULL, `isFullContent` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`groupId`) REFERENCES `group`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "icon",
"columnName": "icon",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "groupId",
"columnName": "groupId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isNotification",
"columnName": "isNotification",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isFullContent",
"columnName": "isFullContent",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_feed_groupId",
"unique": false,
"columnNames": [
"groupId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_groupId` ON `${TABLE_NAME}` (`groupId`)"
},
{
"name": "index_feed_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "group",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"groupId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "article",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `date` INTEGER NOT NULL, `title` TEXT NOT NULL, `author` TEXT, `rawDescription` TEXT NOT NULL, `shortDescription` TEXT NOT NULL, `fullContent` TEXT, `img` TEXT, `link` TEXT NOT NULL, `feedId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isUnread` INTEGER NOT NULL, `isStarred` INTEGER NOT NULL, `isReadLater` INTEGER NOT NULL, `updateAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`feedId`) REFERENCES `feed`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "date",
"columnName": "date",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "author",
"columnName": "author",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "rawDescription",
"columnName": "rawDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "shortDescription",
"columnName": "shortDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "fullContent",
"columnName": "fullContent",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "img",
"columnName": "img",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "link",
"columnName": "link",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "feedId",
"columnName": "feedId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isUnread",
"columnName": "isUnread",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isStarred",
"columnName": "isStarred",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isReadLater",
"columnName": "isReadLater",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_article_feedId",
"unique": false,
"columnNames": [
"feedId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_feedId` ON `${TABLE_NAME}` (`feedId`)"
},
{
"name": "index_article_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "feed",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"feedId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "group",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `accountId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_group_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_group_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"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, 'ff6225eee095fd62d3d3bff48aa0be8e')"
]
}
}

View File

@ -1,321 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 2,
"identityHash": "98462c2e9c32394054102313366e7262",
"entities": [
{
"tableName": "account",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `type` INTEGER NOT NULL, `updateAt` INTEGER)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "updateAt",
"columnName": "updateAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "feed",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `icon` TEXT, `url` TEXT NOT NULL, `groupId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isNotification` INTEGER NOT NULL DEFAULT false, `isFullContent` INTEGER NOT NULL DEFAULT false, PRIMARY KEY(`id`), FOREIGN KEY(`groupId`) REFERENCES `group`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "icon",
"columnName": "icon",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "groupId",
"columnName": "groupId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isNotification",
"columnName": "isNotification",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
},
{
"fieldPath": "isFullContent",
"columnName": "isFullContent",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_feed_groupId",
"unique": false,
"columnNames": [
"groupId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_groupId` ON `${TABLE_NAME}` (`groupId`)"
},
{
"name": "index_feed_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_feed_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "group",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"groupId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "article",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `date` INTEGER NOT NULL, `title` TEXT NOT NULL, `author` TEXT, `rawDescription` TEXT NOT NULL, `shortDescription` TEXT NOT NULL, `fullContent` TEXT, `img` TEXT, `link` TEXT NOT NULL, `feedId` TEXT NOT NULL, `accountId` INTEGER NOT NULL, `isUnread` INTEGER NOT NULL DEFAULT true, `isStarred` INTEGER NOT NULL DEFAULT false, `isReadLater` INTEGER NOT NULL DEFAULT false, PRIMARY KEY(`id`), FOREIGN KEY(`feedId`) REFERENCES `feed`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "date",
"columnName": "date",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "author",
"columnName": "author",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "rawDescription",
"columnName": "rawDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "shortDescription",
"columnName": "shortDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "fullContent",
"columnName": "fullContent",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "img",
"columnName": "img",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "link",
"columnName": "link",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "feedId",
"columnName": "feedId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "isUnread",
"columnName": "isUnread",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "true"
},
{
"fieldPath": "isStarred",
"columnName": "isStarred",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
},
{
"fieldPath": "isReadLater",
"columnName": "isReadLater",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "false"
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_article_feedId",
"unique": false,
"columnNames": [
"feedId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_feedId` ON `${TABLE_NAME}` (`feedId`)"
},
{
"name": "index_article_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_article_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"foreignKeys": [
{
"table": "feed",
"onDelete": "CASCADE",
"onUpdate": "CASCADE",
"columns": [
"feedId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "group",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `accountId` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "name",
"columnName": "name",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "accountId",
"columnName": "accountId",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"id"
]
},
"indices": [
{
"name": "index_group_accountId",
"unique": false,
"columnNames": [
"accountId"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_group_accountId` ON `${TABLE_NAME}` (`accountId`)"
}
],
"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, '98462c2e9c32394054102313366e7262')"
]
}
}

View File

@ -1,13 +1,11 @@
package me.ash.reader
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
@ -21,4 +19,4 @@ class ExampleInstrumentedTest {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("me.ash.reader", appContext.packageName)
}
}
}

View File

@ -13,10 +13,10 @@ import androidx.profileinstaller.ProfileInstallerInitializer
import coil.ImageLoader
import coil.compose.LocalImageLoader
import dagger.hilt.android.AndroidEntryPoint
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.model.preference.AccountSettingsProvider
import me.ash.reader.data.model.preference.LanguagesPreference
import me.ash.reader.data.model.preference.SettingsProvider
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.infrastructure.preference.AccountSettingsProvider
import me.ash.reader.infrastructure.preference.LanguagesPreference
import me.ash.reader.infrastructure.preference.SettingsProvider
import me.ash.reader.ui.ext.languages
import me.ash.reader.ui.page.common.HomeEntry
import javax.inject.Inject

View File

@ -10,12 +10,12 @@ import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import me.ash.reader.data.module.ApplicationScope
import me.ash.reader.data.module.IODispatcher
import me.ash.reader.data.repository.*
import me.ash.reader.data.source.OPMLDataSource
import me.ash.reader.data.source.RYDatabase
import me.ash.reader.data.source.RYNetworkDataSource
import me.ash.reader.domain.service.*
import me.ash.reader.infrastructure.di.ApplicationScope
import me.ash.reader.infrastructure.di.IODispatcher
import me.ash.reader.infrastructure.source.OPMLDataSource
import me.ash.reader.infrastructure.source.RYDatabase
import me.ash.reader.infrastructure.source.RYNetworkDataSource
import me.ash.reader.ui.ext.del
import me.ash.reader.ui.ext.getLatestApk
import me.ash.reader.ui.ext.isFdroid

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import me.ash.reader.data.model.account.security.DESUtils
import me.ash.reader.data.model.preference.*
import me.ash.reader.domain.model.account.security.DESUtils
import me.ash.reader.infrastructure.preference.*
import java.util.*
/**

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import android.content.Context
import androidx.compose.material.icons.Icons

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.KeepArchivedPreference
import me.ash.reader.infrastructure.preference.KeepArchivedPreference
/**
* Provide [TypeConverter] of [KeepArchivedPreference] for [RoomDatabase].

View File

@ -1,9 +1,9 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.SyncBlockList
import me.ash.reader.data.model.preference.SyncBlockListPreference
import me.ash.reader.infrastructure.preference.SyncBlockList
import me.ash.reader.infrastructure.preference.SyncBlockListPreference
/**
* Provide [TypeConverter] of [SyncBlockListPreference] for [RoomDatabase].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.SyncIntervalPreference
import me.ash.reader.infrastructure.preference.SyncIntervalPreference
/**
* Provide [TypeConverter] of [SyncIntervalPreference] for [RoomDatabase].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.SyncOnStartPreference
import me.ash.reader.infrastructure.preference.SyncOnStartPreference
/**
* Provide [TypeConverter] of [SyncOnStartPreference] for [RoomDatabase].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.SyncOnlyOnWiFiPreference
import me.ash.reader.infrastructure.preference.SyncOnlyOnWiFiPreference
/**
* Provide [TypeConverter] of [SyncOnlyOnWiFiPreference] for [RoomDatabase].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.account
package me.ash.reader.domain.model.account
import androidx.room.RoomDatabase
import androidx.room.TypeConverter
import me.ash.reader.data.model.preference.SyncOnlyWhenChargingPreference
import me.ash.reader.infrastructure.preference.SyncOnlyWhenChargingPreference
/**
* Provide [TypeConverter] of [SyncOnlyWhenChargingPreference] for [RoomDatabase].

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account.security
package me.ash.reader.domain.model.account.security
import android.util.Base64
import javax.crypto.Cipher

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account.security
package me.ash.reader.domain.model.account.security
class FeverSecurityKey private constructor() : SecurityKey() {

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account.security
package me.ash.reader.domain.model.account.security
class GoogleReaderSecurityKey private constructor() : SecurityKey() {

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account.security
package me.ash.reader.domain.model.account.security
class LocalSecurityKey private constructor() : SecurityKey() {

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.account.security
package me.ash.reader.domain.model.account.security
import com.google.gson.Gson

View File

@ -1,7 +1,7 @@
package me.ash.reader.data.model.article
package me.ash.reader.domain.model.article
import androidx.room.*
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.domain.model.feed.Feed
import java.util.*
/**

View File

@ -1,9 +1,9 @@
package me.ash.reader.data.model.article
package me.ash.reader.domain.model.article
import androidx.paging.PagingData
import androidx.paging.insertSeparators
import androidx.paging.map
import me.ash.reader.data.repository.StringsRepository
import me.ash.reader.domain.service.StringsRepository
/**
* Provide paginated and inserted separator data types for article list view.

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.article
package me.ash.reader.domain.model.article
import androidx.room.ColumnInfo
import androidx.room.PrimaryKey

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.article
package me.ash.reader.domain.model.article
import androidx.room.Embedded
import androidx.room.Relation
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.domain.model.feed.Feed
/**
* An [article] contains a [feed].

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.constant
package me.ash.reader.domain.model.constant
/**
* The tonal elevation tokens.

View File

@ -1,7 +1,7 @@
package me.ash.reader.data.model.feed
package me.ash.reader.domain.model.feed
import androidx.room.*
import me.ash.reader.data.model.group.Group
import me.ash.reader.domain.model.group.Group
/**
* TODO: Add class description

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.feed
package me.ash.reader.domain.model.feed
import androidx.room.Embedded
import androidx.room.Relation
import me.ash.reader.data.model.article.Article
import me.ash.reader.domain.model.article.Article
/**
* A [feed] contains many [articles].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.feed
package me.ash.reader.domain.model.feed
import androidx.room.Embedded
import androidx.room.Relation
import me.ash.reader.data.model.group.Group
import me.ash.reader.domain.model.group.Group
/**
* A [feed] contains a [group].

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.feed
package me.ash.reader.domain.model.feed
/**
* Counting the [important] number of articles in feeds and groups is generally

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.general
package me.ash.reader.domain.model.general
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.FiberManualRecord
@ -13,9 +13,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.pluralStringResource
import androidx.compose.ui.res.stringResource
import me.ash.reader.R
import me.ash.reader.data.model.general.Filter.Companion.All
import me.ash.reader.data.model.general.Filter.Companion.Starred
import me.ash.reader.data.model.general.Filter.Companion.Unread
import me.ash.reader.domain.model.general.Filter.Companion.All
import me.ash.reader.domain.model.general.Filter.Companion.Starred
import me.ash.reader.domain.model.general.Filter.Companion.Unread
/**
* Indicates filter conditions.

View File

@ -1,6 +1,6 @@
package me.ash.reader.data.model.general
package me.ash.reader.domain.model.general
import me.ash.reader.data.model.general.MarkAsReadConditions.*
import me.ash.reader.domain.model.general.MarkAsReadConditions.*
import java.util.*
/**
@ -12,6 +12,7 @@ import java.util.*
* - [All]: Mark all as read
*/
enum class MarkAsReadConditions {
SevenDays,
ThreeDays,
OneDay,

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.general
package me.ash.reader.domain.model.general
/**
* Application version number, consisting of three fields.

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.group
package me.ash.reader.domain.model.group
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.model.group
package me.ash.reader.domain.model.group
import androidx.room.Embedded
import androidx.room.Relation
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.domain.model.feed.Feed
/**
* A [group] contains many [feeds].

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.dao
package me.ash.reader.domain.repository
import androidx.room.*
import kotlinx.coroutines.flow.Flow
import me.ash.reader.data.model.account.Account
import me.ash.reader.domain.model.account.Account
@Dao
interface AccountDao {

View File

@ -1,12 +1,12 @@
package me.ash.reader.data.dao
package me.ash.reader.domain.repository
import androidx.paging.PagingSource
import androidx.room.*
import kotlinx.coroutines.flow.Flow
import me.ash.reader.data.model.article.Article
import me.ash.reader.data.model.article.ArticleMeta
import me.ash.reader.data.model.article.ArticleWithFeed
import me.ash.reader.data.model.feed.ImportantNum
import me.ash.reader.domain.model.article.Article
import me.ash.reader.domain.model.article.ArticleMeta
import me.ash.reader.domain.model.article.ArticleWithFeed
import me.ash.reader.domain.model.feed.ImportantNum
import java.util.*
@Dao
@ -556,14 +556,14 @@ interface ArticleDao {
@Transaction
@Query(
"""
"""
SELECT id, isUnread, isStarred FROM article
WHERE accountId = :accountId
ORDER BY date DESC
"""
)
fun queryArticleMetadataAll(
accountId: Int
accountId: Int,
): List<ArticleMeta>
@Insert(onConflict = OnConflictStrategy.REPLACE)

View File

@ -1,7 +1,7 @@
package me.ash.reader.data.dao
package me.ash.reader.domain.repository
import androidx.room.*
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.domain.model.feed.Feed
@Dao
interface FeedDao {
@ -99,7 +99,7 @@ interface FeedDao {
@Delete
suspend fun delete(vararg feed: Feed)
suspend fun insertOrUpdate(feeds: List<Feed>) {
suspend fun insertOrUpdate(feeds: List<Feed>) {
feeds.forEach {
val feed = queryById(it.id)
if (feed == null) {

View File

@ -1,9 +1,9 @@
package me.ash.reader.data.dao
package me.ash.reader.domain.repository
import androidx.room.*
import kotlinx.coroutines.flow.Flow
import me.ash.reader.data.model.group.Group
import me.ash.reader.data.model.group.GroupWithFeed
import me.ash.reader.domain.model.group.Group
import me.ash.reader.domain.model.group.GroupWithFeed
@Dao
interface GroupDao {
@ -67,7 +67,7 @@ interface GroupDao {
@Delete
suspend fun delete(vararg group: Group)
suspend fun insertOrUpdate(groups: List<Group>) {
suspend fun insertOrUpdate(groups: List<Group>) {
groups.forEach {
val group = queryById(it.id)
if (group == null) {

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.util.Log
@ -13,23 +13,23 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.supervisorScope
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.ArticleDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.model.article.Article
import me.ash.reader.data.model.article.ArticleWithFeed
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.data.model.feed.FeedWithArticle
import me.ash.reader.data.model.group.Group
import me.ash.reader.data.model.group.GroupWithFeed
import me.ash.reader.data.model.preference.KeepArchivedPreference
import me.ash.reader.data.model.preference.SyncIntervalPreference
import me.ash.reader.domain.model.article.Article
import me.ash.reader.domain.model.article.ArticleWithFeed
import me.ash.reader.domain.model.feed.Feed
import me.ash.reader.domain.model.feed.FeedWithArticle
import me.ash.reader.domain.model.group.Group
import me.ash.reader.domain.model.group.GroupWithFeed
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.ArticleDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.infrastructure.preference.KeepArchivedPreference
import me.ash.reader.infrastructure.preference.SyncIntervalPreference
import me.ash.reader.ui.ext.currentAccountId
import me.ash.reader.ui.ext.spacerDollar
import java.util.*
abstract class AbstractRssRepository constructor(
abstract class AbstractRssRepository(
private val context: Context,
private val accountDao: AccountDao,
private val articleDao: ArticleDao,

View File

@ -1,17 +1,17 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.os.Looper
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.Flow
import me.ash.reader.R
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.ArticleDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.model.account.Account
import me.ash.reader.data.model.account.AccountType
import me.ash.reader.data.model.group.Group
import me.ash.reader.domain.model.account.Account
import me.ash.reader.domain.model.account.AccountType
import me.ash.reader.domain.model.group.Group
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.ArticleDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.ui.ext.*
import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.text.Html
@ -11,20 +11,20 @@ import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.supervisorScope
import kotlinx.coroutines.withContext
import me.ash.reader.R
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.ArticleDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.model.account.security.FeverSecurityKey
import me.ash.reader.data.model.article.Article
import me.ash.reader.data.model.article.ArticleMeta
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.data.model.group.Group
import me.ash.reader.data.module.DefaultDispatcher
import me.ash.reader.data.module.IODispatcher
import me.ash.reader.data.module.MainDispatcher
import me.ash.reader.data.provider.fever.FeverAPI
import me.ash.reader.data.provider.fever.FeverDTO
import me.ash.reader.domain.model.account.security.FeverSecurityKey
import me.ash.reader.domain.model.article.Article
import me.ash.reader.domain.model.article.ArticleMeta
import me.ash.reader.domain.model.feed.Feed
import me.ash.reader.domain.model.group.Group
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.ArticleDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.infrastructure.di.DefaultDispatcher
import me.ash.reader.infrastructure.di.IODispatcher
import me.ash.reader.infrastructure.di.MainDispatcher
import me.ash.reader.infrastructure.provider.fever.FeverAPI
import me.ash.reader.infrastructure.provider.fever.FeverDTO
import me.ash.reader.ui.ext.currentAccountId
import me.ash.reader.ui.ext.dollarLast
import me.ash.reader.ui.ext.showToast
@ -182,10 +182,10 @@ class FeverRssRepository @Inject constructor(
val shouldBeUnread = unreadArticleIds?.contains(articleId)
val shouldBeStarred = starredArticleIds?.contains(articleId)
if (meta.isUnread != shouldBeUnread) {
articleDao.markAsReadByArticleId(accountId, meta.id, shouldBeUnread?:true)
articleDao.markAsReadByArticleId(accountId, meta.id, shouldBeUnread ?: true)
}
if (meta.isStarred != shouldBeStarred){
articleDao.markAsStarredByArticleId(accountId, meta.id, shouldBeStarred?:false)
if (meta.isStarred != shouldBeStarred) {
articleDao.markAsStarredByArticleId(accountId, meta.id, shouldBeStarred ?: false)
}
}

View File

@ -1,15 +1,15 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import androidx.work.WorkManager
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CoroutineDispatcher
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.ArticleDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.module.DefaultDispatcher
import me.ash.reader.data.module.IODispatcher
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.ArticleDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.infrastructure.di.DefaultDispatcher
import me.ash.reader.infrastructure.di.IODispatcher
import javax.inject.Inject
class LocalRssRepository @Inject constructor(

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.app.*
import android.content.Context
@ -9,7 +9,7 @@ import androidx.core.app.NotificationManagerCompat
import dagger.hilt.android.qualifiers.ApplicationContext
import me.ash.reader.MainActivity
import me.ash.reader.R
import me.ash.reader.data.model.feed.FeedWithArticle
import me.ash.reader.domain.model.feed.FeedWithArticle
import me.ash.reader.ui.page.common.ExtraName
import me.ash.reader.ui.page.common.NotificationGroupName
import java.util.*

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import be.ceau.opml.OpmlWriter
@ -7,11 +7,11 @@ import be.ceau.opml.entity.Head
import be.ceau.opml.entity.Opml
import be.ceau.opml.entity.Outline
import dagger.hilt.android.qualifiers.ApplicationContext
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.data.source.OPMLDataSource
import me.ash.reader.domain.model.feed.Feed
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.infrastructure.source.OPMLDataSource
import me.ash.reader.ui.ext.currentAccountId
import me.ash.reader.ui.ext.getDefaultGroupId
import java.io.InputStream

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.util.Log
@ -8,14 +8,14 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emptyFlow
import kotlinx.coroutines.withContext
import me.ash.reader.R
import me.ash.reader.data.model.general.toVersion
import me.ash.reader.data.model.preference.*
import me.ash.reader.data.model.preference.NewVersionSizePreference.formatSize
import me.ash.reader.data.module.IODispatcher
import me.ash.reader.data.module.MainDispatcher
import me.ash.reader.data.source.Download
import me.ash.reader.data.source.RYNetworkDataSource
import me.ash.reader.data.source.downloadToFileWithProgress
import me.ash.reader.domain.model.general.toVersion
import me.ash.reader.infrastructure.di.IODispatcher
import me.ash.reader.infrastructure.di.MainDispatcher
import me.ash.reader.infrastructure.preference.*
import me.ash.reader.infrastructure.preference.NewVersionSizePreference.formatSize
import me.ash.reader.infrastructure.source.Download
import me.ash.reader.infrastructure.source.RYNetworkDataSource
import me.ash.reader.infrastructure.source.downloadToFileWithProgress
import me.ash.reader.ui.ext.getCurrentVersion
import me.ash.reader.ui.ext.getLatestApk
import me.ash.reader.ui.ext.showToast

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.text.Html
@ -9,11 +9,11 @@ import com.rometools.rome.io.XmlReader
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.withContext
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.model.article.Article
import me.ash.reader.data.model.feed.Feed
import me.ash.reader.data.model.feed.FeedWithArticle
import me.ash.reader.data.module.IODispatcher
import me.ash.reader.domain.model.article.Article
import me.ash.reader.domain.model.feed.Feed
import me.ash.reader.domain.model.feed.FeedWithArticle
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.infrastructure.di.IODispatcher
import me.ash.reader.ui.ext.currentAccountId
import me.ash.reader.ui.ext.spacerDollar
import net.dankito.readability4j.extended.Readability4JExtended

View File

@ -1,8 +1,8 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import me.ash.reader.data.model.account.AccountType
import me.ash.reader.domain.model.account.AccountType
import me.ash.reader.ui.ext.currentAccountType
import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.repository
package me.ash.reader.domain.service
import android.content.Context
import android.util.Log
@ -8,9 +8,9 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import me.ash.reader.data.model.preference.SyncIntervalPreference
import me.ash.reader.data.model.preference.SyncOnlyOnWiFiPreference
import me.ash.reader.data.model.preference.SyncOnlyWhenChargingPreference
import me.ash.reader.infrastructure.preference.SyncIntervalPreference
import me.ash.reader.infrastructure.preference.SyncOnlyOnWiFiPreference
import me.ash.reader.infrastructure.preference.SyncOnlyWhenChargingPreference
import java.util.*
import java.util.concurrent.TimeUnit

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import kotlinx.coroutines.CoroutineScope
import javax.inject.Qualifier

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import dagger.Module
import dagger.Provides

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import javax.inject.Qualifier

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import dagger.Module
import dagger.Provides

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import android.content.Context
import dagger.Module
@ -6,11 +6,11 @@ import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.dao.ArticleDao
import me.ash.reader.data.dao.FeedDao
import me.ash.reader.data.dao.GroupDao
import me.ash.reader.data.source.RYDatabase
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.domain.repository.ArticleDao
import me.ash.reader.domain.repository.FeedDao
import me.ash.reader.domain.repository.GroupDao
import me.ash.reader.infrastructure.source.RYDatabase
import javax.inject.Singleton
/**

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import android.content.Context
import android.os.Build

View File

@ -18,7 +18,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import android.content.Context
import dagger.Module

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import me.ash.reader.data.source.RYNetworkDataSource
import me.ash.reader.infrastructure.source.RYNetworkDataSource
import javax.inject.Singleton
/**

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.module
package me.ash.reader.infrastructure.di
import android.content.Context
import androidx.work.WorkManager

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.platform.LocalContext
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.domain.repository.AccountDao
import me.ash.reader.ui.ext.collectAsStateValue
import me.ash.reader.ui.ext.currentAccountId
@ -30,7 +30,8 @@ fun AccountSettingsProvider(
LocalSyncInterval provides (accountSettings?.syncInterval ?: SyncIntervalPreference.default),
LocalSyncOnStart provides (accountSettings?.syncOnStart ?: SyncOnStartPreference.default),
LocalSyncOnlyOnWiFi provides (accountSettings?.syncOnlyOnWiFi ?: SyncOnlyOnWiFiPreference.default),
LocalSyncOnlyWhenCharging provides (accountSettings?.syncOnlyWhenCharging ?: SyncOnlyWhenChargingPreference.default),
LocalSyncOnlyWhenCharging provides (accountSettings?.syncOnlyWhenCharging
?: SyncOnlyWhenChargingPreference.default),
LocalKeepArchived provides (accountSettings?.keepArchived ?: KeepArchivedPreference.default),
LocalSyncBlockList provides (accountSettings?.syncBlockList ?: SyncBlockListPreference.default),
) {

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.compose.material3.Typography

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.compose.foundation.isSystemInDarkTheme

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,10 +1,10 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import me.ash.reader.data.constant.ElevationTokens
import me.ash.reader.domain.model.constant.ElevationTokens
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import me.ash.reader.R

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import android.os.LocaleList
@ -96,7 +96,8 @@ sealed class LanguagesPreference(val value: Int) : Preference() {
companion object {
val default = UseDeviceLanguages
val values = listOf(UseDeviceLanguages,
val values = listOf(
UseDeviceLanguages,
English,
ChineseSimplified,
German,
@ -125,7 +126,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() {
8 -> Spanish
9 -> Polish
10 -> Russian
11 -> Basque
11 -> Basque
12 -> Indonesian
13 -> ChineseTraditional
else -> default
@ -144,7 +145,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() {
8 -> Spanish
9 -> Polish
10 -> Russian
11 -> Basque
11 -> Basque
12 -> Indonesian
13 -> ChineseTraditional
else -> default

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,12 +1,12 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import me.ash.reader.data.model.general.Version
import me.ash.reader.data.model.general.toVersion
import me.ash.reader.domain.model.general.Version
import me.ash.reader.domain.model.general.toVersion
import me.ash.reader.ui.ext.DataStoreKeys
import me.ash.reader.ui.ext.dataStore
import me.ash.reader.ui.ext.put

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,7 +1,6 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.compose.ui.text.style.Hyphens.Companion.Auto
import androidx.datastore.preferences.core.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import android.content.pm.PackageManager

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.compose.runtime.Composable

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.compose.ui.text.font.FontFamily

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

View File

@ -1,4 +1,4 @@
package me.ash.reader.data.model.preference
package me.ash.reader.infrastructure.preference
import android.content.Context
import androidx.datastore.preferences.core.Preferences

Some files were not shown because too many files have changed in this diff Show More