Add manga-wised rotation mode settings (#4841)
* Add manga-wised rotation mode settings Based on #3522 Co-authored-by: bboyz269 <4453811+bboyz269@users.noreply.github.com> * Fix small mistakes * Complete TODOs * Rename functions rotation -> orientation * Fix orientation icon not changing Bug from video * Fix bug with force portrait not being force if a default value Bug from video * Backup viewer_flag as a seperate field in so legacy/forks doesn't crash * Make viewer_flags nullable so old backups viewer gets restored * Add migration for old rotation and viewer to new defaults ones * Rename variable in enums * Fix migration after OrientationType was changed * Remove untrue comment Co-authored-by: bboyz269 <4453811+bboyz269@users.noreply.github.com>
This commit is contained in:
@@ -436,15 +436,15 @@ class MangaPresenter(
|
||||
|
||||
fun getChapterSort(): (Chapter, Chapter) -> Int {
|
||||
return when (manga.sorting) {
|
||||
Manga.SORTING_SOURCE -> when (sortDescending()) {
|
||||
Manga.CHAPTER_SORTING_SOURCE -> when (sortDescending()) {
|
||||
true -> { c1, c2 -> c1.source_order.compareTo(c2.source_order) }
|
||||
false -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) }
|
||||
}
|
||||
Manga.SORTING_NUMBER -> when (sortDescending()) {
|
||||
Manga.CHAPTER_SORTING_NUMBER -> when (sortDescending()) {
|
||||
true -> { c1, c2 -> c2.chapter_number.compareTo(c1.chapter_number) }
|
||||
false -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) }
|
||||
}
|
||||
Manga.SORTING_UPLOAD_DATE -> when (sortDescending()) {
|
||||
Manga.CHAPTER_SORTING_UPLOAD_DATE -> when (sortDescending()) {
|
||||
true -> { c1, c2 -> c2.date_upload.compareTo(c1.date_upload) }
|
||||
false -> { c1, c2 -> c1.date_upload.compareTo(c2.date_upload) }
|
||||
}
|
||||
@@ -564,8 +564,8 @@ class MangaPresenter(
|
||||
* Reverses the sorting and requests an UI update.
|
||||
*/
|
||||
fun reverseSortOrder() {
|
||||
manga.setChapterOrder(if (sortDescending()) Manga.SORT_ASC else Manga.SORT_DESC)
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
manga.setChapterOrder(if (sortDescending()) Manga.CHAPTER_SORT_ASC else Manga.CHAPTER_SORT_DESC)
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
refreshChapters()
|
||||
}
|
||||
|
||||
@@ -576,10 +576,10 @@ class MangaPresenter(
|
||||
fun setUnreadFilter(state: State) {
|
||||
manga.readFilter = when (state) {
|
||||
State.IGNORE -> Manga.SHOW_ALL
|
||||
State.INCLUDE -> Manga.SHOW_UNREAD
|
||||
State.EXCLUDE -> Manga.SHOW_READ
|
||||
State.INCLUDE -> Manga.CHAPTER_SHOW_UNREAD
|
||||
State.EXCLUDE -> Manga.CHAPTER_SHOW_READ
|
||||
}
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
refreshChapters()
|
||||
}
|
||||
|
||||
@@ -590,10 +590,10 @@ class MangaPresenter(
|
||||
fun setDownloadedFilter(state: State) {
|
||||
manga.downloadedFilter = when (state) {
|
||||
State.IGNORE -> Manga.SHOW_ALL
|
||||
State.INCLUDE -> Manga.SHOW_DOWNLOADED
|
||||
State.EXCLUDE -> Manga.SHOW_NOT_DOWNLOADED
|
||||
State.INCLUDE -> Manga.CHAPTER_SHOW_DOWNLOADED
|
||||
State.EXCLUDE -> Manga.CHAPTER_SHOW_NOT_DOWNLOADED
|
||||
}
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
refreshChapters()
|
||||
}
|
||||
|
||||
@@ -604,10 +604,10 @@ class MangaPresenter(
|
||||
fun setBookmarkedFilter(state: State) {
|
||||
manga.bookmarkedFilter = when (state) {
|
||||
State.IGNORE -> Manga.SHOW_ALL
|
||||
State.INCLUDE -> Manga.SHOW_BOOKMARKED
|
||||
State.EXCLUDE -> Manga.SHOW_NOT_BOOKMARKED
|
||||
State.INCLUDE -> Manga.CHAPTER_SHOW_BOOKMARKED
|
||||
State.EXCLUDE -> Manga.CHAPTER_SHOW_NOT_BOOKMARKED
|
||||
}
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
refreshChapters()
|
||||
}
|
||||
|
||||
@@ -617,7 +617,7 @@ class MangaPresenter(
|
||||
*/
|
||||
fun setDisplayMode(mode: Int) {
|
||||
manga.displayMode = mode
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -626,7 +626,7 @@ class MangaPresenter(
|
||||
*/
|
||||
fun setSorting(sort: Int) {
|
||||
manga.sorting = sort
|
||||
db.updateFlags(manga).executeAsBlocking()
|
||||
db.updateChapterFlags(manga).executeAsBlocking()
|
||||
refreshChapters()
|
||||
}
|
||||
|
||||
@@ -645,8 +645,8 @@ class MangaPresenter(
|
||||
return State.INCLUDE
|
||||
}
|
||||
return when (manga.downloadedFilter) {
|
||||
Manga.SHOW_DOWNLOADED -> State.INCLUDE
|
||||
Manga.SHOW_NOT_DOWNLOADED -> State.EXCLUDE
|
||||
Manga.CHAPTER_SHOW_DOWNLOADED -> State.INCLUDE
|
||||
Manga.CHAPTER_SHOW_NOT_DOWNLOADED -> State.EXCLUDE
|
||||
else -> State.IGNORE
|
||||
}
|
||||
}
|
||||
@@ -656,8 +656,8 @@ class MangaPresenter(
|
||||
*/
|
||||
fun onlyBookmarked(): State {
|
||||
return when (manga.bookmarkedFilter) {
|
||||
Manga.SHOW_BOOKMARKED -> State.INCLUDE
|
||||
Manga.SHOW_NOT_BOOKMARKED -> State.EXCLUDE
|
||||
Manga.CHAPTER_SHOW_BOOKMARKED -> State.INCLUDE
|
||||
Manga.CHAPTER_SHOW_NOT_BOOKMARKED -> State.EXCLUDE
|
||||
else -> State.IGNORE
|
||||
}
|
||||
}
|
||||
@@ -667,8 +667,8 @@ class MangaPresenter(
|
||||
*/
|
||||
fun onlyUnread(): State {
|
||||
return when (manga.readFilter) {
|
||||
Manga.SHOW_UNREAD -> State.INCLUDE
|
||||
Manga.SHOW_READ -> State.EXCLUDE
|
||||
Manga.CHAPTER_SHOW_UNREAD -> State.INCLUDE
|
||||
Manga.CHAPTER_SHOW_READ -> State.EXCLUDE
|
||||
else -> State.IGNORE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class ChapterHolder(
|
||||
val chapter = item.chapter
|
||||
|
||||
binding.chapterTitle.text = when (manga.displayMode) {
|
||||
Manga.DISPLAY_NUMBER -> {
|
||||
Manga.CHAPTER_DISPLAY_NUMBER -> {
|
||||
val number = adapter.decimalFormat.format(chapter.chapter_number.toDouble())
|
||||
itemView.context.getString(R.string.display_mode_chapter, number)
|
||||
}
|
||||
|
||||
@@ -152,11 +152,11 @@ class ChaptersSettingsSheet(
|
||||
}
|
||||
|
||||
source.state =
|
||||
if (sorting == Manga.SORTING_SOURCE) order else Item.MultiSort.SORT_NONE
|
||||
if (sorting == Manga.CHAPTER_SORTING_SOURCE) order else Item.MultiSort.SORT_NONE
|
||||
chapterNum.state =
|
||||
if (sorting == Manga.SORTING_NUMBER) order else Item.MultiSort.SORT_NONE
|
||||
if (sorting == Manga.CHAPTER_SORTING_NUMBER) order else Item.MultiSort.SORT_NONE
|
||||
uploadDate.state =
|
||||
if (sorting == Manga.SORTING_UPLOAD_DATE) order else Item.MultiSort.SORT_NONE
|
||||
if (sorting == Manga.CHAPTER_SORTING_UPLOAD_DATE) order else Item.MultiSort.SORT_NONE
|
||||
}
|
||||
|
||||
override fun onItemClicked(item: Item) {
|
||||
@@ -175,9 +175,9 @@ class ChaptersSettingsSheet(
|
||||
}
|
||||
|
||||
when (item) {
|
||||
source -> presenter.setSorting(Manga.SORTING_SOURCE)
|
||||
chapterNum -> presenter.setSorting(Manga.SORTING_NUMBER)
|
||||
uploadDate -> presenter.setSorting(Manga.SORTING_UPLOAD_DATE)
|
||||
source -> presenter.setSorting(Manga.CHAPTER_SORTING_SOURCE)
|
||||
chapterNum -> presenter.setSorting(Manga.CHAPTER_SORTING_NUMBER)
|
||||
uploadDate -> presenter.setSorting(Manga.CHAPTER_SORTING_UPLOAD_DATE)
|
||||
else -> throw Exception("Unknown sorting")
|
||||
}
|
||||
|
||||
@@ -209,8 +209,8 @@ class ChaptersSettingsSheet(
|
||||
|
||||
override fun initModels() {
|
||||
val mode = presenter.manga.displayMode
|
||||
displayTitle.checked = mode == Manga.DISPLAY_NAME
|
||||
displayChapterNum.checked = mode == Manga.DISPLAY_NUMBER
|
||||
displayTitle.checked = mode == Manga.CHAPTER_DISPLAY_NAME
|
||||
displayChapterNum.checked = mode == Manga.CHAPTER_DISPLAY_NUMBER
|
||||
}
|
||||
|
||||
override fun onItemClicked(item: Item) {
|
||||
@@ -221,8 +221,8 @@ class ChaptersSettingsSheet(
|
||||
item.checked = true
|
||||
|
||||
when (item) {
|
||||
displayTitle -> presenter.setDisplayMode(Manga.DISPLAY_NAME)
|
||||
displayChapterNum -> presenter.setDisplayMode(Manga.DISPLAY_NUMBER)
|
||||
displayTitle -> presenter.setDisplayMode(Manga.CHAPTER_DISPLAY_NAME)
|
||||
displayChapterNum -> presenter.setDisplayMode(Manga.CHAPTER_DISPLAY_NUMBER)
|
||||
else -> throw NotImplementedError("Unknown display mode")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user