diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3ba29b4c6..7034e6907 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -26,7 +26,7 @@ android { defaultConfig { applicationId = "eu.kanade.tachiyomi.sy" - versionCode = 53 + versionCode = 54 versionName = "1.9.3" buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") diff --git a/data/src/main/java/tachiyomi/data/manga/FavoritesEntryRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/manga/FavoritesEntryRepositoryImpl.kt index b50da06ae..8743bd04f 100644 --- a/data/src/main/java/tachiyomi/data/manga/FavoritesEntryRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/manga/FavoritesEntryRepositoryImpl.kt @@ -1,5 +1,7 @@ package tachiyomi.data.manga +import logcat.LogPriority +import tachiyomi.core.util.system.logcat import tachiyomi.data.DatabaseHandler import tachiyomi.domain.manga.model.FavoriteEntry import tachiyomi.domain.manga.model.FavoriteEntryAlternative @@ -30,13 +32,18 @@ class FavoritesEntryRepositoryImpl( } override suspend fun addAlternative(favoriteEntryAlternative: FavoriteEntryAlternative) { - handler.await { - eh_favoritesQueries.addAlternative( - otherGid = favoriteEntryAlternative.otherGid, - otherToken = favoriteEntryAlternative.otherToken, - gid = favoriteEntryAlternative.gid, - token = favoriteEntryAlternative.token, - ) + try { + handler.await { + eh_favoritesQueries.addAlternative( + otherGid = favoriteEntryAlternative.otherGid, + otherToken = favoriteEntryAlternative.otherToken, + gid = favoriteEntryAlternative.gid, + token = favoriteEntryAlternative.token, + ) + } + } catch (e: Exception) { + logcat(LogPriority.INFO, e) } + } } diff --git a/data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq b/data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq index f1d2716ed..90ab39ddc 100644 --- a/data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq +++ b/data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq @@ -12,7 +12,7 @@ CREATE TABLE eh_favorites_alternatives ( token TEXT NOT NULL, otherGid TEXT NOT NULL, otherToken TEXT NOT NULL, - FOREIGN KEY (gid, token) REFERENCES eh_favorites(gid, token) + UNIQUE (gid, token, otherGid, otherToken) ); CREATE INDEX eh_favorites_alternatives_gid_token_index ON eh_favorites_alternatives(gid, token); diff --git a/data/src/main/sqldelight/tachiyomi/migrations/27.sqm b/data/src/main/sqldelight/tachiyomi/migrations/27.sqm new file mode 100644 index 000000000..83d4c878a --- /dev/null +++ b/data/src/main/sqldelight/tachiyomi/migrations/27.sqm @@ -0,0 +1,16 @@ +DROP INDEX IF EXISTS eh_favorites_alternatives_gid_token_index; +DROP INDEX IF EXISTS eh_favorites_alternatives_other_gid_token_index; + +DROP TABLE IF EXISTS eh_favorites_alternatives; + +CREATE TABLE eh_favorites_alternatives ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + gid TEXT NOT NULL, + token TEXT NOT NULL, + otherGid TEXT NOT NULL, + otherToken TEXT NOT NULL, + UNIQUE (gid, token, otherGid, otherToken) +); + +CREATE INDEX eh_favorites_alternatives_gid_token_index ON eh_favorites_alternatives(gid, token); +CREATE INDEX eh_favorites_alternatives_other_gid_token_index ON eh_favorites_alternatives(otherGid, otherToken); \ No newline at end of file