mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Separate some changes unrelated to backup from PR
This commit is contained in:
		| @@ -10,6 +10,7 @@ import com.pushtorefresh.storio.sqlite.queries.DeleteQuery | ||||
| import com.pushtorefresh.storio.sqlite.queries.InsertQuery | ||||
| import com.pushtorefresh.storio.sqlite.queries.UpdateQuery | ||||
| import eu.kanade.tachiyomi.data.database.models.History | ||||
| import eu.kanade.tachiyomi.data.database.models.HistoryImpl | ||||
| import eu.kanade.tachiyomi.data.database.tables.HistoryTable.COL_CHAPTER_ID | ||||
| import eu.kanade.tachiyomi.data.database.tables.HistoryTable.COL_ID | ||||
| import eu.kanade.tachiyomi.data.database.tables.HistoryTable.COL_LAST_READ | ||||
| @@ -44,7 +45,7 @@ open class HistoryPutResolver : DefaultPutResolver<History>() { | ||||
|  | ||||
| class HistoryGetResolver : DefaultGetResolver<History>() { | ||||
|  | ||||
|     override fun mapFromCursor(cursor: Cursor): History = History().apply { | ||||
|     override fun mapFromCursor(cursor: Cursor): History = HistoryImpl().apply { | ||||
|         id = cursor.getLong(cursor.getColumnIndex(COL_ID)) | ||||
|         chapter_id = cursor.getLong(cursor.getColumnIndex(COL_CHAPTER_ID)) | ||||
|         last_read = cursor.getLong(cursor.getColumnIndex(COL_LAST_READ)) | ||||
|   | ||||
| @@ -5,27 +5,27 @@ import java.io.Serializable | ||||
| /** | ||||
|  * Object containing the history statistics of a chapter | ||||
|  */ | ||||
| class History : Serializable { | ||||
| interface History : Serializable { | ||||
|  | ||||
|     /** | ||||
|      * Id of history object. | ||||
|      */ | ||||
|     var id: Long? = null | ||||
|     var id: Long? | ||||
|  | ||||
|     /** | ||||
|      * Chapter id of history object. | ||||
|      */ | ||||
|     var chapter_id: Long = 0 | ||||
|     var chapter_id: Long | ||||
|  | ||||
|     /** | ||||
|      * Last time chapter was read in time long format | ||||
|      */ | ||||
|     var last_read: Long = 0 | ||||
|     var last_read: Long | ||||
|  | ||||
|     /** | ||||
|      * Total time chapter was read - todo not yet implemented | ||||
|      */ | ||||
|     var time_read: Long = 0 | ||||
|     var time_read: Long | ||||
|  | ||||
|     companion object { | ||||
|  | ||||
| @@ -35,10 +35,8 @@ class History : Serializable { | ||||
|          * @param chapter chapter object | ||||
|          * @return history object | ||||
|          */ | ||||
|         fun create(chapter: Chapter): History { | ||||
|             val history = History() | ||||
|             history.chapter_id = chapter.id!! | ||||
|             return history | ||||
|         fun create(chapter: Chapter): History =  HistoryImpl().apply { | ||||
|             this.chapter_id = chapter.id!! | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,27 @@ | ||||
| package eu.kanade.tachiyomi.data.database.models | ||||
|  | ||||
| /** | ||||
|  * Object containing the history statistics of a chapter | ||||
|  */ | ||||
| class HistoryImpl : History { | ||||
|  | ||||
|     /** | ||||
|      * Id of history object. | ||||
|      */ | ||||
|     override var id: Long? = null | ||||
|  | ||||
|     /** | ||||
|      * Chapter id of history object. | ||||
|      */ | ||||
|     override var chapter_id: Long = 0 | ||||
|  | ||||
|     /** | ||||
|      * Last time chapter was read in time long format | ||||
|      */ | ||||
|     override var last_read: Long = 0 | ||||
|  | ||||
|     /** | ||||
|      * Total time chapter was read - todo not yet implemented | ||||
|      */ | ||||
|     override var time_read: Long = 0 | ||||
| } | ||||
| @@ -42,6 +42,16 @@ interface ChapterQueries : DbProvider { | ||||
|                     .build()) | ||||
|             .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 insertChapter(chapter: Chapter) = db.put().`object`(chapter).prepare() | ||||
|  | ||||
|     fun insertChapters(chapters: List<Chapter>) = db.put().objects(chapters).prepare() | ||||
|   | ||||
| @@ -40,6 +40,15 @@ interface HistoryQueries : DbProvider { | ||||
|                     .build()) | ||||
|             .prepare() | ||||
|  | ||||
|     fun getHistoryByChapterUrl(chapterUrl: String) = db.get() | ||||
|             .`object`(History::class.java) | ||||
|             .withQuery(RawQuery.builder() | ||||
|                     .query(getHistoryByChapterUrl()) | ||||
|                     .args(chapterUrl) | ||||
|                     .observesTables(HistoryTable.TABLE) | ||||
|                     .build()) | ||||
|             .prepare() | ||||
|  | ||||
|     /** | ||||
|      * Updates the history last read. | ||||
|      * Inserts history object if not yet in database | ||||
|   | ||||
| @@ -84,6 +84,12 @@ interface MangaQueries : DbProvider { | ||||
|                     .build()) | ||||
|             .prepare() | ||||
|  | ||||
|     fun deleteMangas() = db.delete() | ||||
|             .byQuery(DeleteQuery.builder() | ||||
|                     .table(MangaTable.TABLE) | ||||
|                     .build()) | ||||
|             .prepare() | ||||
|  | ||||
|     fun getLastReadManga() = db.get() | ||||
|             .listOfObjects(Manga::class.java) | ||||
|             .withQuery(RawQuery.builder() | ||||
|   | ||||
| @@ -73,6 +73,14 @@ fun getHistoryByMangaId() = """ | ||||
|     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 | ||||
|     FROM ${Manga.TABLE} | ||||
|   | ||||
| @@ -3,8 +3,6 @@ package eu.kanade.tachiyomi.data.notification | ||||
| import android.app.PendingIntent | ||||
| import android.content.Context | ||||
| import android.content.Intent | ||||
| import android.support.v4.content.FileProvider | ||||
| import eu.kanade.tachiyomi.BuildConfig | ||||
| import eu.kanade.tachiyomi.ui.download.DownloadActivity | ||||
| import eu.kanade.tachiyomi.util.getUriCompat | ||||
| import java.io.File | ||||
| @@ -33,7 +31,7 @@ object NotificationHandler { | ||||
|      */ | ||||
|     internal fun openImagePendingActivity(context: Context, file: File): PendingIntent { | ||||
|         val intent = Intent(Intent.ACTION_VIEW).apply { | ||||
|             val uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", file) | ||||
|             val uri = file.getUriCompat(context) | ||||
|             setDataAndType(uri, "image/*") | ||||
|             flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION | ||||
|         } | ||||
|   | ||||
| @@ -14,7 +14,10 @@ import eu.kanade.tachiyomi.data.download.DownloadManager | ||||
| import eu.kanade.tachiyomi.data.download.DownloadService | ||||
| import eu.kanade.tachiyomi.data.library.LibraryUpdateService | ||||
| import eu.kanade.tachiyomi.ui.reader.ReaderActivity | ||||
| import eu.kanade.tachiyomi.util.* | ||||
| import eu.kanade.tachiyomi.util.DiskUtil | ||||
| import eu.kanade.tachiyomi.util.getUriCompat | ||||
| import eu.kanade.tachiyomi.util.notificationManager | ||||
| import eu.kanade.tachiyomi.util.toast | ||||
| import uy.kohesive.injekt.injectLazy | ||||
| import java.io.File | ||||
| import eu.kanade.tachiyomi.BuildConfig.APPLICATION_ID as ID | ||||
| @@ -118,7 +121,7 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|  | ||||
|         // Delete file | ||||
|         val file = File(path) | ||||
|         file.deleteIfExists() | ||||
|         file.delete() | ||||
|  | ||||
|         DiskUtil.scanMedia(context, file) | ||||
|     } | ||||
| @@ -274,4 +277,4 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|             return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -122,7 +122,7 @@ fun Context.sendLocalBroadcastSync(intent: Intent) { | ||||
|  * | ||||
|  * @param receiver receiver that gets registered. | ||||
|  */ | ||||
| fun Context.registerLocalReceiver(receiver: BroadcastReceiver, filter: IntentFilter ){ | ||||
| fun Context.registerLocalReceiver(receiver: BroadcastReceiver, filter: IntentFilter) { | ||||
|     LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter) | ||||
| } | ||||
|  | ||||
| @@ -131,7 +131,7 @@ fun Context.registerLocalReceiver(receiver: BroadcastReceiver, filter: IntentFil | ||||
|  * | ||||
|  * @param receiver receiver that gets unregistered. | ||||
|  */ | ||||
| fun Context.unregisterLocalReceiver(receiver: BroadcastReceiver){ | ||||
| fun Context.unregisterLocalReceiver(receiver: BroadcastReceiver) { | ||||
|     LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver) | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user