mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Delete unused database queries/resolvers
This commit is contained in:
		@@ -42,7 +42,7 @@ class AppModule(val app: Application) : InjektModule {
 | 
			
		||||
        addSingletonFactory<SupportSQLiteOpenHelper> {
 | 
			
		||||
            val configuration = SupportSQLiteOpenHelper.Configuration.builder(app)
 | 
			
		||||
                .callback(DbOpenCallback())
 | 
			
		||||
                .name(DbOpenCallback.DATABASE_NAME)
 | 
			
		||||
                .name(DbOpenCallback.DATABASE_FILENAME)
 | 
			
		||||
                .noBackupDirectory(false)
 | 
			
		||||
                .build()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,10 +9,7 @@ import logcat.logcat
 | 
			
		||||
class DbOpenCallback : SupportSQLiteOpenHelper.Callback(Database.Schema.version) {
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        /**
 | 
			
		||||
         * Name of the database file.
 | 
			
		||||
         */
 | 
			
		||||
        const val DATABASE_NAME = "tachiyomi.db"
 | 
			
		||||
        const val DATABASE_FILENAME = "tachiyomi.db"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onCreate(db: SupportSQLiteDatabase) {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,5 @@ package eu.kanade.tachiyomi.data.database
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.impl.DefaultStorIOSQLite
 | 
			
		||||
 | 
			
		||||
interface DbProvider {
 | 
			
		||||
 | 
			
		||||
    val db: DefaultStorIOSQLite
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@ import eu.kanade.tachiyomi.data.database.DbProvider
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Chapter
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.MangaChapter
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.resolvers.ChapterBackupPutResolver
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.resolvers.ChapterKnownBackupPutResolver
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.resolvers.ChapterProgressPutResolver
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.resolvers.MangaChapterGetResolver
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.tables.ChapterTable
 | 
			
		||||
@@ -49,17 +47,6 @@ interface ChapterQueries : DbProvider {
 | 
			
		||||
        )
 | 
			
		||||
        .prepare()
 | 
			
		||||
 | 
			
		||||
    fun getChapter(url: String) = db.get()
 | 
			
		||||
        .`object`(Chapter::class.java)
 | 
			
		||||
        .withQuery(
 | 
			
		||||
            Query.builder()
 | 
			
		||||
                .table(ChapterTable.TABLE)
 | 
			
		||||
                .where("${ChapterTable.COL_URL} = ?")
 | 
			
		||||
                .whereArgs(url)
 | 
			
		||||
                .build(),
 | 
			
		||||
        )
 | 
			
		||||
        .prepare()
 | 
			
		||||
 | 
			
		||||
    fun getChapter(url: String, mangaId: Long) = db.get()
 | 
			
		||||
        .`object`(Chapter::class.java)
 | 
			
		||||
        .withQuery(
 | 
			
		||||
@@ -75,16 +62,6 @@ interface ChapterQueries : DbProvider {
 | 
			
		||||
 | 
			
		||||
    fun deleteChapters(chapters: List<Chapter>) = db.delete().objects(chapters).prepare()
 | 
			
		||||
 | 
			
		||||
    fun updateChaptersBackup(chapters: List<Chapter>) = db.put()
 | 
			
		||||
        .objects(chapters)
 | 
			
		||||
        .withPutResolver(ChapterBackupPutResolver())
 | 
			
		||||
        .prepare()
 | 
			
		||||
 | 
			
		||||
    fun updateKnownChaptersBackup(chapters: List<Chapter>) = db.put()
 | 
			
		||||
        .objects(chapters)
 | 
			
		||||
        .withPutResolver(ChapterKnownBackupPutResolver())
 | 
			
		||||
        .prepare()
 | 
			
		||||
 | 
			
		||||
    fun updateChapterProgress(chapter: Chapter) = db.put()
 | 
			
		||||
        .`object`(chapter)
 | 
			
		||||
        .withPutResolver(ChapterProgressPutResolver())
 | 
			
		||||
 
 | 
			
		||||
@@ -51,24 +51,6 @@ fun getRecentsQuery() =
 | 
			
		||||
    ORDER BY ${Chapter.COL_DATE_UPLOAD} DESC
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
fun getHistoryByMangaId() =
 | 
			
		||||
    """
 | 
			
		||||
    SELECT ${History.TABLE}.*
 | 
			
		||||
    FROM ${History.TABLE}
 | 
			
		||||
    JOIN ${Chapter.TABLE}
 | 
			
		||||
    ON ${History.TABLE}.${History.COL_CHAPTER_ID} = ${Chapter.TABLE}.${Chapter.COL_ID}
 | 
			
		||||
    WHERE ${Chapter.TABLE}.${Chapter.COL_MANGA_ID} = ? AND ${History.TABLE}.${History.COL_CHAPTER_ID} = ${Chapter.TABLE}.${Chapter.COL_ID}
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
fun getHistoryByChapterUrl() =
 | 
			
		||||
    """
 | 
			
		||||
    SELECT ${History.TABLE}.*
 | 
			
		||||
    FROM ${History.TABLE}
 | 
			
		||||
    JOIN ${Chapter.TABLE}
 | 
			
		||||
    ON ${History.TABLE}.${History.COL_CHAPTER_ID} = ${Chapter.TABLE}.${Chapter.COL_ID}
 | 
			
		||||
    WHERE ${Chapter.TABLE}.${Chapter.COL_URL} = ? AND ${History.TABLE}.${History.COL_CHAPTER_ID} = ${Chapter.TABLE}.${Chapter.COL_ID}
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
fun getLastReadMangaQuery() =
 | 
			
		||||
    """
 | 
			
		||||
    SELECT ${Manga.TABLE}.*, MAX(${History.TABLE}.${History.COL_LAST_READ}) AS max
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
package eu.kanade.tachiyomi.data.database.resolvers
 | 
			
		||||
 | 
			
		||||
import androidx.core.content.contentValuesOf
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResolver
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResult
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.queries.UpdateQuery
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.inTransactionReturn
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Chapter
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.tables.ChapterTable
 | 
			
		||||
 | 
			
		||||
class ChapterBackupPutResolver : PutResolver<Chapter>() {
 | 
			
		||||
 | 
			
		||||
    override fun performPut(db: StorIOSQLite, chapter: Chapter) = db.inTransactionReturn {
 | 
			
		||||
        val updateQuery = mapToUpdateQuery(chapter)
 | 
			
		||||
        val contentValues = mapToContentValues(chapter)
 | 
			
		||||
 | 
			
		||||
        val numberOfRowsUpdated = db.lowLevel().update(updateQuery, contentValues)
 | 
			
		||||
        PutResult.newUpdateResult(numberOfRowsUpdated, updateQuery.table())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun mapToUpdateQuery(chapter: Chapter) = UpdateQuery.builder()
 | 
			
		||||
        .table(ChapterTable.TABLE)
 | 
			
		||||
        .where("${ChapterTable.COL_URL} = ?")
 | 
			
		||||
        .whereArgs(chapter.url)
 | 
			
		||||
        .build()
 | 
			
		||||
 | 
			
		||||
    fun mapToContentValues(chapter: Chapter) =
 | 
			
		||||
        contentValuesOf(
 | 
			
		||||
            ChapterTable.COL_READ to chapter.read,
 | 
			
		||||
            ChapterTable.COL_BOOKMARK to chapter.bookmark,
 | 
			
		||||
            ChapterTable.COL_LAST_PAGE_READ to chapter.last_page_read,
 | 
			
		||||
        )
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
package eu.kanade.tachiyomi.data.database.resolvers
 | 
			
		||||
 | 
			
		||||
import androidx.core.content.contentValuesOf
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResolver
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResult
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.queries.UpdateQuery
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.inTransactionReturn
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Chapter
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.tables.ChapterTable
 | 
			
		||||
 | 
			
		||||
class ChapterKnownBackupPutResolver : PutResolver<Chapter>() {
 | 
			
		||||
 | 
			
		||||
    override fun performPut(db: StorIOSQLite, chapter: Chapter) = db.inTransactionReturn {
 | 
			
		||||
        val updateQuery = mapToUpdateQuery(chapter)
 | 
			
		||||
        val contentValues = mapToContentValues(chapter)
 | 
			
		||||
 | 
			
		||||
        val numberOfRowsUpdated = db.lowLevel().update(updateQuery, contentValues)
 | 
			
		||||
        PutResult.newUpdateResult(numberOfRowsUpdated, updateQuery.table())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun mapToUpdateQuery(chapter: Chapter) = UpdateQuery.builder()
 | 
			
		||||
        .table(ChapterTable.TABLE)
 | 
			
		||||
        .where("${ChapterTable.COL_ID} = ?")
 | 
			
		||||
        .whereArgs(chapter.id)
 | 
			
		||||
        .build()
 | 
			
		||||
 | 
			
		||||
    fun mapToContentValues(chapter: Chapter) =
 | 
			
		||||
        contentValuesOf(
 | 
			
		||||
            ChapterTable.COL_READ to chapter.read,
 | 
			
		||||
            ChapterTable.COL_BOOKMARK to chapter.bookmark,
 | 
			
		||||
            ChapterTable.COL_LAST_PAGE_READ to chapter.last_page_read,
 | 
			
		||||
        )
 | 
			
		||||
}
 | 
			
		||||
@@ -1,52 +0,0 @@
 | 
			
		||||
package eu.kanade.tachiyomi.data.database.resolvers
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.NonNull
 | 
			
		||||
import androidx.core.content.contentValuesOf
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResult
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.queries.Query
 | 
			
		||||
import com.pushtorefresh.storio.sqlite.queries.UpdateQuery
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.inTransactionReturn
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.mappers.HistoryPutResolver
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.History
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.tables.HistoryTable
 | 
			
		||||
 | 
			
		||||
class HistoryUpsertResolver : HistoryPutResolver() {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Updates last_read time of chapter
 | 
			
		||||
     */
 | 
			
		||||
    override fun performPut(@NonNull db: StorIOSQLite, @NonNull history: History): PutResult = db.inTransactionReturn {
 | 
			
		||||
        val updateQuery = mapToUpdateQuery(history)
 | 
			
		||||
 | 
			
		||||
        val cursor = db.lowLevel().query(
 | 
			
		||||
            Query.builder()
 | 
			
		||||
                .table(updateQuery.table())
 | 
			
		||||
                .where(updateQuery.where())
 | 
			
		||||
                .whereArgs(updateQuery.whereArgs())
 | 
			
		||||
                .build(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        cursor.use { putCursor ->
 | 
			
		||||
            if (putCursor.count == 0) {
 | 
			
		||||
                val insertQuery = mapToInsertQuery(history)
 | 
			
		||||
                val insertedId = db.lowLevel().insert(insertQuery, mapToContentValues(history))
 | 
			
		||||
                PutResult.newInsertResult(insertedId, insertQuery.table())
 | 
			
		||||
            } else {
 | 
			
		||||
                val numberOfRowsUpdated = db.lowLevel().update(updateQuery, mapToUpdateContentValues(history))
 | 
			
		||||
                PutResult.newUpdateResult(numberOfRowsUpdated, updateQuery.table())
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun mapToUpdateQuery(obj: History) = UpdateQuery.builder()
 | 
			
		||||
        .table(HistoryTable.TABLE)
 | 
			
		||||
        .where("${HistoryTable.COL_CHAPTER_ID} = ?")
 | 
			
		||||
        .whereArgs(obj.chapter_id)
 | 
			
		||||
        .build()
 | 
			
		||||
 | 
			
		||||
    private fun mapToUpdateContentValues(history: History) =
 | 
			
		||||
        contentValuesOf(
 | 
			
		||||
            HistoryTable.COL_LAST_READ to history.last_read,
 | 
			
		||||
        )
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user