diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 35ffc652f..a0de2a152 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -14,7 +14,6 @@
-
diff --git a/app/build.gradle b/app/build.gradle
index d02ff880a..9210057d4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -13,8 +13,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdkVersion 21
targetSdkVersion 31
- versionCode 370
- versionName '2.0-b2'
+ versionCode 371
+ versionName '2.0-b3'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 57fe6234e..74c093891 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -5,9 +5,7 @@
public static void checkReturnedValueIsNotNull(...);
public static void checkFieldIsNotNull(...);
public static void checkParameterIsNotNull(...);
+ public static void checkNotNullParameter(...);
}
-keep class org.koitharu.kotatsu.core.db.entity.* { *; }
--keepclassmembers public class * extends org.koitharu.kotatsu.core.parser.MangaRepository {
- public (...);
-}
-dontwarn okhttp3.internal.platform.ConscryptPlatform
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaIntent.kt b/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaIntent.kt
index 98b6522b5..f4dc339c9 100644
--- a/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaIntent.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/base/domain/MangaIntent.kt
@@ -5,7 +5,7 @@ import android.net.Uri
import android.os.Bundle
import org.koitharu.kotatsu.core.model.Manga
-data class MangaIntent(
+class MangaIntent(
val manga: Manga?,
val mangaId: Long,
val uri: Uri?
diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt
index eb867ec0f..d9ee9f535 100644
--- a/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/ChipsView.kt
@@ -96,11 +96,32 @@ class ChipsView @JvmOverloads constructor(
}
}
- data class ChipModel(
+ class ChipModel(
@DrawableRes val icon: Int,
val title: CharSequence,
val data: Any? = null
- )
+ ) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+
+ other as ChipModel
+
+ if (icon != other.icon) return false
+ if (title != other.title) return false
+ if (data != other.data) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int {
+ var result = icon
+ result = 31 * result + title.hashCode()
+ result = 31 * result + data.hashCode()
+ return result
+ }
+ }
fun interface OnChipClickListener {
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/backup/BackupEntry.kt b/app/src/main/java/org/koitharu/kotatsu/core/backup/BackupEntry.kt
index 5de7d7e01..407365d3c 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/backup/BackupEntry.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/backup/BackupEntry.kt
@@ -2,7 +2,7 @@ package org.koitharu.kotatsu.core.backup
import org.json.JSONArray
-data class BackupEntry(
+class BackupEntry(
val name: String,
val data: JSONArray
) {
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaEntity.kt
index d20b3b979..25ec915a3 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaEntity.kt
@@ -9,7 +9,7 @@ import org.koitharu.kotatsu.core.model.MangaState
import org.koitharu.kotatsu.core.model.MangaTag
@Entity(tableName = "manga")
-data class MangaEntity(
+class MangaEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "manga_id") val id: Long,
@ColumnInfo(name = "title") val title: String,
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaPrefsEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaPrefsEntity.kt
index 7eb68a0ef..99e94b25a 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaPrefsEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaPrefsEntity.kt
@@ -14,7 +14,7 @@ import androidx.room.PrimaryKey
onDelete = ForeignKey.CASCADE
)]
)
-data class MangaPrefsEntity(
+class MangaPrefsEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "manga_id") val mangaId: Long,
@ColumnInfo(name = "mode") val mode: Int
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaTagsEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaTagsEntity.kt
index b96ff5d83..ea7f0b3d2 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaTagsEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaTagsEntity.kt
@@ -20,7 +20,7 @@ import androidx.room.ForeignKey
)
]
)
-data class MangaTagsEntity(
+class MangaTagsEntity(
@ColumnInfo(name = "manga_id", index = true) val mangaId: Long,
@ColumnInfo(name = "tag_id", index = true) val tagId: Long
)
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaWithTags.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaWithTags.kt
index 950fbdf33..ad80b0beb 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaWithTags.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/MangaWithTags.kt
@@ -5,7 +5,7 @@ import androidx.room.Junction
import androidx.room.Relation
import org.koitharu.kotatsu.utils.ext.mapToSet
-data class MangaWithTags(
+class MangaWithTags(
@Embedded val manga: MangaEntity,
@Relation(
parentColumn = "manga_id",
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/SuggestionEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/SuggestionEntity.kt
index 896732e15..4459d56b8 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/SuggestionEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/SuggestionEntity.kt
@@ -16,7 +16,7 @@ import androidx.room.PrimaryKey
)
]
)
-data class SuggestionEntity(
+class SuggestionEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "manga_id", index = true) val mangaId: Long,
@ColumnInfo(name = "relevance") val relevance: Float,
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TagEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TagEntity.kt
index 1af937d06..3e25b0bed 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TagEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TagEntity.kt
@@ -8,7 +8,7 @@ import org.koitharu.kotatsu.core.model.MangaTag
import org.koitharu.kotatsu.utils.ext.longHashCode
@Entity(tableName = "tags")
-data class TagEntity(
+class TagEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "tag_id") val id: Long,
@ColumnInfo(name = "title") val title: String,
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackEntity.kt
index 57a01888f..1b5c41492 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackEntity.kt
@@ -15,7 +15,7 @@ import androidx.room.PrimaryKey
)
]
)
-data class TrackEntity(
+class TrackEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "manga_id") val mangaId: Long,
@ColumnInfo(name = "chapters_total") val totalChapters: Int,
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogEntity.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogEntity.kt
index e73d34d74..a4f608c4d 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogEntity.kt
@@ -15,7 +15,7 @@ import androidx.room.PrimaryKey
)
]
)
-data class TrackLogEntity(
+class TrackLogEntity(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id") val id: Long = 0L,
@ColumnInfo(name = "manga_id", index = true) val mangaId: Long,
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogWithManga.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogWithManga.kt
index e32bcde6a..263e91938 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogWithManga.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/TrackLogWithManga.kt
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.core.model.TrackingLogItem
import org.koitharu.kotatsu.utils.ext.mapToSet
import java.util.*
-data class TrackLogWithManga(
+class TrackLogWithManga(
@Embedded val trackLog: TrackLogEntity,
@Relation(
parentColumn = "manga_id",
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/github/VersionId.kt b/app/src/main/java/org/koitharu/kotatsu/core/github/VersionId.kt
index 48fdd1e88..09557cb47 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/github/VersionId.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/github/VersionId.kt
@@ -2,12 +2,12 @@ package org.koitharu.kotatsu.core.github
import java.util.*
-data class VersionId(
+class VersionId(
val major: Int,
val minor: Int,
val build: Int,
val variantType: String,
- val variantNumber: Int
+ val variantNumber: Int,
) : Comparable {
override fun compareTo(other: VersionId): Int {
@@ -30,6 +30,30 @@ data class VersionId(
return variantNumber.compareTo(other.variantNumber)
}
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+
+ other as VersionId
+
+ if (major != other.major) return false
+ if (minor != other.minor) return false
+ if (build != other.build) return false
+ if (variantType != other.variantType) return false
+ if (variantNumber != other.variantNumber) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int {
+ var result = major
+ result = 31 * result + minor
+ result = 31 * result + build
+ result = 31 * result + variantType.hashCode()
+ result = 31 * result + variantNumber
+ return result
+ }
+
companion object {
private fun variantWeight(variantType: String) =
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaChapter.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaChapter.kt
index f0a56361c..9b0533722 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaChapter.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaChapter.kt
@@ -9,8 +9,13 @@ data class MangaChapter(
val name: String,
val number: Int,
val url: String,
- val scanlator: String? = null,
+ val scanlator: String?,
val uploadDate: Long,
- val branch: String? = null,
- val source: MangaSource
-) : Parcelable
\ No newline at end of file
+ val branch: String?,
+ val source: MangaSource,
+) : Parcelable, Comparable {
+
+ override fun compareTo(other: MangaChapter): Int {
+ return number.compareTo(other.number)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaHistory.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaHistory.kt
index eaf04e6c7..95f736f2b 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaHistory.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaHistory.kt
@@ -10,5 +10,5 @@ data class MangaHistory(
val updatedAt: Date,
val chapterId: Long,
val page: Int,
- val scroll: Int
+ val scroll: Int,
) : Parcelable
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaPage.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaPage.kt
index a85dc14bc..7576e2da4 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaPage.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaPage.kt
@@ -8,6 +8,6 @@ data class MangaPage(
val id: Long,
val url: String,
val referer: String,
- val preview: String? = null,
- val source: MangaSource
+ val preview: String?,
+ val source: MangaSource,
) : Parcelable
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt
index d4a6247dc..2d9018f5e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt
@@ -14,7 +14,7 @@ import org.koitharu.kotatsu.local.domain.LocalMangaRepository
enum class MangaSource(
val title: String,
val locale: String?,
- val cls: Class
+ val cls: Class,
) : Parcelable {
LOCAL("Local", null, LocalMangaRepository::class.java),
READMANGA_RU("ReadManga", "ru", ReadmangaRepository::class.java),
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaTag.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaTag.kt
index be5aa63d2..fe10cb690 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaTag.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaTag.kt
@@ -7,5 +7,5 @@ import kotlinx.parcelize.Parcelize
data class MangaTag(
val title: String,
val key: String,
- val source: MangaSource
+ val source: MangaSource,
) : Parcelable
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt
index 507dab2da..f7e7a1f5b 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt
@@ -87,8 +87,10 @@ class AnibelRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor
name = "Глава " + a.selectFirst("a")?.text().orEmpty(),
number = i + 1,
url = href,
+ scanlator = null,
+ branch = null,
uploadDate = 0L,
- source = source
+ source = source,
)
}
)
@@ -115,8 +117,9 @@ class AnibelRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor
MangaPage(
id = generateUid(url),
url = url,
+ preview = null,
referer = fullUrl,
- source = source
+ source = source,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt
index 7dde9de2e..82a0a3268 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt
@@ -88,8 +88,10 @@ abstract class ChanRepository(loaderContext: MangaLoaderContext) : RemoteMangaRe
name = tr.selectFirst("a")?.text().orEmpty(),
number = i + 1,
url = href,
+ scanlator = null,
+ branch = null,
uploadDate = dateFormat.tryParse(tr.selectFirst("div.date")?.text()),
- source = source
+ source = source,
)
}
)
@@ -117,8 +119,9 @@ abstract class ChanRepository(loaderContext: MangaLoaderContext) : RemoteMangaRe
MangaPage(
id = generateUid(url),
url = url,
+ preview = null,
referer = fullUrl,
- source = source
+ source = source,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt
index b765d09aa..afae79bab 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt
@@ -101,7 +101,9 @@ class DesuMeRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor
url = "$baseChapterUrl$chid",
uploadDate = it.getLong("date") * 1000,
name = if (title.isEmpty()) volChap else "$volChap: $title",
- number = totalChapters - i
+ number = totalChapters - i,
+ scanlator = null,
+ branch = null,
)
}.reversed()
)
@@ -116,8 +118,9 @@ class DesuMeRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor
MangaPage(
id = generateUid(jo.getLong("id")),
referer = fullUrl,
+ preview = null,
source = chapter.source,
- url = jo.getString("img")
+ url = jo.getString("img"),
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt
index 084ce47a2..41b86750e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt
@@ -143,6 +143,8 @@ class ExHentaiRepository(
url = url,
uploadDate = 0L,
source = source,
+ scanlator = null,
+ branch = null,
)
}
chapters
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt
index 2f422cdad..bd29ce392 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt
@@ -142,7 +142,8 @@ abstract class GroupleRepository(loaderContext: MangaLoaderContext) :
url = href,
uploadDate = dateFormat.tryParse(tr.selectFirst("td.d-none")?.text()),
scanlator = translators,
- source = source
+ source = source,
+ branch = null,
)
}
)
@@ -167,8 +168,9 @@ abstract class GroupleRepository(loaderContext: MangaLoaderContext) :
MangaPage(
id = generateUid(url),
url = url,
+ preview = null,
referer = chapter.url,
- source = source
+ source = source,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt
index a802986a3..626373d5a 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt
@@ -50,7 +50,9 @@ class HenChanRepository(loaderContext: MangaLoaderContext) : ChanRepository(load
source = source,
number = 1,
uploadDate = 0L,
- name = manga.title
+ name = manga.title,
+ scanlator = null,
+ branch = null,
)
)
)
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt
index efa574f8c..ed58f073c 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt
@@ -118,7 +118,8 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) :
item.getString("chapter_created_at").substringBefore(" ")
),
scanlator = scanlator,
- name = if (nameChapter.isNullOrBlank()) fullNameChapter else "$fullNameChapter - $nameChapter"
+ branch = null,
+ name = if (nameChapter.isNullOrBlank()) fullNameChapter else "$fullNameChapter - $nameChapter",
)
)
}
@@ -178,8 +179,9 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) :
MangaPage(
id = generateUid(pageUrl),
url = pageUrl,
+ preview = null,
referer = fullUrl,
- source = source
+ source = source,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt
index ade883600..28e93c6d2 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt
@@ -101,8 +101,10 @@ class MangaOwlRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit
name = a.select("label").text(),
number = i + 1,
url = href,
+ scanlator = null,
+ branch = null,
uploadDate = dateFormat.tryParse(li.selectFirst("small:last-of-type")?.text()),
- source = MangaSource.MANGAOWL
+ source = MangaSource.MANGAOWL,
)
}
)
@@ -117,8 +119,9 @@ class MangaOwlRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit
MangaPage(
id = generateUid(url),
url = url,
+ preview = null,
referer = fullUrl,
- source = MangaSource.MANGAOWL
+ source = MangaSource.MANGAOWL,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt
index b23bce7a5..7f1285369 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt
@@ -124,7 +124,9 @@ class MangaTownRepository(loaderContext: MangaLoaderContext) :
dateFormat,
li.selectFirst("span.time")?.text()
),
- name = name.ifEmpty { "${manga.title} - ${i + 1}" }
+ name = name.ifEmpty { "${manga.title} - ${i + 1}" },
+ scanlator = null,
+ branch = null,
)
}
)
@@ -143,8 +145,9 @@ class MangaTownRepository(loaderContext: MangaLoaderContext) :
MangaPage(
id = generateUid(href),
url = href,
+ preview = null,
referer = fullUrl,
- source = MangaSource.MANGATOWN
+ source = MangaSource.MANGATOWN,
)
} ?: parseFailed("Pages list not found")
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt
index 5cb3a1ef2..17aced99d 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt
@@ -146,7 +146,9 @@ class MangareadRepository(
dateFormat,
doc2.selectFirst("span.chapter-release-date i")?.text()
),
- source = MangaSource.MANGAREAD
+ source = MangaSource.MANGAREAD,
+ scanlator = null,
+ branch = null,
)
}
)
@@ -164,8 +166,9 @@ class MangareadRepository(
MangaPage(
id = generateUid(url),
url = url,
+ preview = null,
referer = fullUrl,
- source = MangaSource.MANGAREAD
+ source = MangaSource.MANGAREAD,
)
}
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt
index 0c00df31a..9daee36dd 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt
@@ -114,6 +114,8 @@ abstract class NineMangaRepository(
url = href,
uploadDate = parseChapterDateByLang(li.selectFirst("span")?.text().orEmpty()),
source = source,
+ scanlator = null,
+ branch = null,
)
}
)
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt
index bc37ead73..4b6843d19 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt
@@ -130,7 +130,8 @@ class RemangaRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposito
},
uploadDate = dateFormat.tryParse(jo.getString("upload_date")),
scanlator = publishers.optJSONObject(0)?.getStringOrNull("name"),
- source = MangaSource.REMANGA
+ source = MangaSource.REMANGA,
+ branch = null,
)
}.asReversed()
)
@@ -175,8 +176,9 @@ class RemangaRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposito
private fun parsePage(jo: JSONObject, referer: String) = MangaPage(
id = generateUid(jo.getLong("id")),
url = jo.getString("link"),
+ preview = null,
referer = referer,
- source = source
+ source = source,
)
private companion object {
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/YaoiChanRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/YaoiChanRepository.kt
index 97a762c21..77edbb5b1 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/YaoiChanRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/YaoiChanRepository.kt
@@ -30,7 +30,9 @@ class YaoiChanRepository(loaderContext: MangaLoaderContext) : ChanRepository(loa
number = i + 1,
url = href,
uploadDate = 0L,
- source = source
+ source = source,
+ scanlator = null,
+ branch = null,
)
}
)
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/ui/DateTimeAgo.kt b/app/src/main/java/org/koitharu/kotatsu/core/ui/DateTimeAgo.kt
index 8deefacfe..0d38d95ce 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/ui/DateTimeAgo.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/ui/DateTimeAgo.kt
@@ -14,16 +14,35 @@ sealed class DateTimeAgo : ListModel {
}
}
- data class MinutesAgo(val minutes: Int) : DateTimeAgo() {
+ class MinutesAgo(val minutes: Int) : DateTimeAgo() {
+
override fun format(resources: Resources): String {
return resources.getQuantityString(R.plurals.minutes_ago, minutes, minutes)
}
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as MinutesAgo
+ return minutes == other.minutes
+ }
+
+ override fun hashCode(): Int = minutes
}
- data class HoursAgo(val hours: Int) : DateTimeAgo() {
+ class HoursAgo(val hours: Int) : DateTimeAgo() {
override fun format(resources: Resources): String {
return resources.getQuantityString(R.plurals.hours_ago, hours, hours)
}
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as HoursAgo
+ return hours == other.hours
+ }
+
+ override fun hashCode(): Int = hours
}
object Today : DateTimeAgo() {
@@ -38,10 +57,19 @@ sealed class DateTimeAgo : ListModel {
}
}
- data class DaysAgo(val days: Int) : DateTimeAgo() {
+ class DaysAgo(val days: Int) : DateTimeAgo() {
override fun format(resources: Resources): String {
return resources.getQuantityString(R.plurals.days_ago, days, days)
}
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as DaysAgo
+ return days == other.days
+ }
+
+ override fun hashCode(): Int = days
}
object LongAgo : DateTimeAgo() {
diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteCategoryEntity.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteCategoryEntity.kt
index f66c87fae..aa054c441 100644
--- a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteCategoryEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteCategoryEntity.kt
@@ -8,7 +8,7 @@ import org.koitharu.kotatsu.core.model.SortOrder
import java.util.*
@Entity(tableName = "favourite_categories")
-data class FavouriteCategoryEntity(
+class FavouriteCategoryEntity(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "category_id") val categoryId: Int,
@ColumnInfo(name = "created_at") val createdAt: Long,
diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteEntity.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteEntity.kt
index 95ae66e87..d79660a12 100644
--- a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteEntity.kt
@@ -21,7 +21,7 @@ import org.koitharu.kotatsu.core.db.entity.MangaEntity
)
]
)
-data class FavouriteEntity(
+class FavouriteEntity(
@ColumnInfo(name = "manga_id", index = true) val mangaId: Long,
@ColumnInfo(name = "category_id", index = true) val categoryId: Long,
@ColumnInfo(name = "created_at") val createdAt: Long
diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteManga.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteManga.kt
index 5b74bc08f..e98c84904 100644
--- a/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteManga.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/favourites/data/FavouriteManga.kt
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.core.db.entity.MangaEntity
import org.koitharu.kotatsu.core.db.entity.MangaTagsEntity
import org.koitharu.kotatsu.core.db.entity.TagEntity
-data class FavouriteManga(
+class FavouriteManga(
@Embedded val favourite: FavouriteEntity,
@Relation(
parentColumn = "manga_id",
diff --git a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryEntity.kt b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryEntity.kt
index 34a75b6a5..770181595 100644
--- a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryEntity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryEntity.kt
@@ -18,14 +18,14 @@ import java.util.*
)
]
)
-data class HistoryEntity(
+class HistoryEntity(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "manga_id") val mangaId: Long,
@ColumnInfo(name = "created_at") val createdAt: Long = System.currentTimeMillis(),
@ColumnInfo(name = "updated_at") val updatedAt: Long,
@ColumnInfo(name = "chapter_id") val chapterId: Long,
@ColumnInfo(name = "page") val page: Int,
- @ColumnInfo(name = "scroll") val scroll: Float
+ @ColumnInfo(name = "scroll") val scroll: Float,
) {
fun toMangaHistory() = MangaHistory(
diff --git a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryWithManga.kt b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryWithManga.kt
index d1c8ee2b0..55f41adc6 100644
--- a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryWithManga.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryWithManga.kt
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.core.db.entity.MangaEntity
import org.koitharu.kotatsu.core.db.entity.MangaTagsEntity
import org.koitharu.kotatsu.core.db.entity.TagEntity
-data class HistoryWithManga(
+class HistoryWithManga(
@Embedded val history: HistoryEntity,
@Relation(
parentColumn = "manga_id",
diff --git a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt
index 4361d00a6..3742f007e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt
@@ -69,8 +69,9 @@ class LocalMangaRepository(private val context: Context) : MangaRepository {
MangaPage(
id = entryUri.longHashCode(),
url = entryUri,
+ preview = null,
referer = chapter.url,
- source = MangaSource.LOCAL
+ source = MangaSource.LOCAL,
)
}
}