feat: progress for starting manga (#245)
The caveat is that the user must have disabled updating each title individually, along with the other standard checks. This will only apply when a chapter has not been completed.
This commit is contained in:
parent
8177dfdcef
commit
c054e2f2ac
10 changed files with 133 additions and 7 deletions
|
@ -19,7 +19,7 @@ fun updateProgress(media: Media, number: String) {
|
|||
if (Anilist.userid != null) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val a = number.toFloatOrNull()?.toInt()
|
||||
if ((a ?: 0) > (media.userProgress ?: 0)) {
|
||||
if ((a ?: 0) > (media.userProgress ?: -1)) {
|
||||
Anilist.mutation.editList(
|
||||
media.id,
|
||||
a,
|
||||
|
|
|
@ -1854,17 +1854,23 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
|
|||
|
||||
private fun updateAniProgress() {
|
||||
val incognito: Boolean = PrefManager.getVal(PrefName.Incognito)
|
||||
if (!incognito && exoPlayer.currentPosition / episodeLength > PrefManager.getVal<Float>(
|
||||
PrefName.WatchPercentage
|
||||
) && Anilist.userid != null
|
||||
val episodeEnd = exoPlayer.currentPosition / episodeLength > PrefManager.getVal<Float>(
|
||||
PrefName.WatchPercentage
|
||||
)
|
||||
val episode0 = currentEpisodeIndex == 0 && PrefManager.getVal(PrefName.ChapterZeroPlayer)
|
||||
if (!incognito && (episodeEnd || episode0) && Anilist.userid != null
|
||||
)
|
||||
if (PrefManager.getCustomVal(
|
||||
"${media.id}_save_progress",
|
||||
true
|
||||
) && (if (media.isAdult) PrefManager.getVal(PrefName.UpdateForHPlayer) else true)
|
||||
) {
|
||||
media.anime!!.selectedEpisode?.apply {
|
||||
updateProgress(media, this)
|
||||
if (episode0) {
|
||||
updateProgress(media, "0")
|
||||
} else {
|
||||
media.anime!!.selectedEpisode?.apply {
|
||||
updateProgress(media, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,7 +151,21 @@ class MangaReaderActivity : AppCompatActivity() {
|
|||
defaultSettings = loadReaderSettings("reader_settings") ?: defaultSettings
|
||||
|
||||
onBackPressedDispatcher.addCallback(this) {
|
||||
progress { finish() }
|
||||
val chapter = (MangaNameAdapter.findChapterNumber(media.manga!!.selectedChapter!!)
|
||||
?.minus(1L) ?: 0).toString()
|
||||
if (chapter == "0.0" && PrefManager.getVal(PrefName.ChapterZeroReader)
|
||||
// Not asking individually or incognito
|
||||
&& !showProgressDialog && !PrefManager.getVal<Boolean>(PrefName.Incognito)
|
||||
// Not ...opted out ...already? Somehow?
|
||||
&& PrefManager.getCustomVal("${media.id}_save_progress", true)
|
||||
// Allowing Doujin updates or not one
|
||||
&& if (media.isAdult) PrefManager.getVal(PrefName.UpdateForHReader) else true
|
||||
) {
|
||||
updateProgress(media, chapter)
|
||||
finish()
|
||||
} else {
|
||||
progress { finish() }
|
||||
}
|
||||
}
|
||||
|
||||
controllerDuration = (PrefManager.getVal<Float>(PrefName.AnimationSpeed) * 200).toLong()
|
||||
|
|
|
@ -167,6 +167,14 @@ class PlayerSettingsActivity : AppCompatActivity() {
|
|||
PrefManager.getVal(PrefName.AskIndividualPlayer)
|
||||
binding.playerSettingsAskUpdateProgress.setOnCheckedChangeListener { _, isChecked ->
|
||||
PrefManager.setVal(PrefName.AskIndividualPlayer, isChecked)
|
||||
binding.playerSettingsAskChapterZero.isEnabled = !isChecked
|
||||
}
|
||||
binding.playerSettingsAskChapterZero.isChecked =
|
||||
PrefManager.getVal(PrefName.ChapterZeroPlayer)
|
||||
binding.playerSettingsAskChapterZero.isEnabled =
|
||||
!PrefManager.getVal<Boolean>(PrefName.AskIndividualPlayer)
|
||||
binding.playerSettingsAskChapterZero.setOnCheckedChangeListener { _, isChecked ->
|
||||
PrefManager.setVal(PrefName.ChapterZeroPlayer, isChecked)
|
||||
}
|
||||
binding.playerSettingsAskUpdateHentai.isChecked =
|
||||
PrefManager.getVal(PrefName.UpdateForHPlayer)
|
||||
|
|
|
@ -355,6 +355,14 @@ class ReaderSettingsActivity : AppCompatActivity() {
|
|||
PrefManager.getVal(PrefName.AskIndividualReader)
|
||||
binding.readerSettingsAskUpdateProgress.setOnCheckedChangeListener { _, isChecked ->
|
||||
PrefManager.setVal(PrefName.AskIndividualReader, isChecked)
|
||||
binding.readerSettingsAskChapterZero.isEnabled = !isChecked
|
||||
}
|
||||
binding.readerSettingsAskChapterZero.isChecked =
|
||||
PrefManager.getVal(PrefName.ChapterZeroReader)
|
||||
binding.readerSettingsAskChapterZero.isEnabled =
|
||||
!PrefManager.getVal<Boolean>(PrefName.AskIndividualReader)
|
||||
binding.readerSettingsAskChapterZero.setOnCheckedChangeListener { _, isChecked ->
|
||||
PrefManager.setVal(PrefName.ChapterZeroReader, isChecked)
|
||||
}
|
||||
binding.readerSettingsAskUpdateDoujins.isChecked =
|
||||
PrefManager.getVal(PrefName.UpdateForHReader)
|
||||
|
|
|
@ -95,6 +95,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
|
|||
AutoPlay(Pref(Location.Player, Boolean::class, true)),
|
||||
AutoSkipFiller(Pref(Location.Player, Boolean::class, false)),
|
||||
AskIndividualPlayer(Pref(Location.Player, Boolean::class, true)),
|
||||
ChapterZeroPlayer(Pref(Location.Player, Boolean::class, true)),
|
||||
UpdateForHPlayer(Pref(Location.Player, Boolean::class, false)),
|
||||
WatchPercentage(Pref(Location.Player, Float::class, 0.8f)),
|
||||
AlwaysContinue(Pref(Location.Player, Boolean::class, true)),
|
||||
|
@ -114,6 +115,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
|
|||
ShowSystemBars(Pref(Location.Reader, Boolean::class, false)),
|
||||
AutoDetectWebtoon(Pref(Location.Reader, Boolean::class, true)),
|
||||
AskIndividualReader(Pref(Location.Reader, Boolean::class, true)),
|
||||
ChapterZeroReader(Pref(Location.Reader, Boolean::class, true)),
|
||||
UpdateForHReader(Pref(Location.Reader, Boolean::class, false)),
|
||||
Direction(Pref(Location.Reader, Int::class, 0)),
|
||||
LayoutReader(Pref(Location.Reader, Int::class, 2)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue