Skip to content

Commit 137690c

Browse files
committed
Fix delay for fullscreen in manga reader with cached mangas
1 parent 9fd85d9 commit 137690c

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

src/main/kotlin/me/proxer/app/manga/MangaActivity.kt

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ class MangaActivity : BaseActivity() {
8989
val language: Language
9090
get() = when {
9191
intent.action == Intent.ACTION_VIEW -> ProxerUtils.toApiEnum<Language>(
92-
intent.data?.pathSegments
93-
?.getOrElse(3) { "" } ?: "") ?: Language.ENGLISH
92+
intent.data?.pathSegments?.getOrElse(3) { "" } ?: ""
93+
) ?: Language.ENGLISH
9494
else -> intent.getSerializableExtra(LANGUAGE_EXTRA) as Language
9595
}
9696

@@ -124,8 +124,7 @@ class MangaActivity : BaseActivity() {
124124

125125
private val toolbar: Toolbar by bindView(R.id.toolbar)
126126

127-
private val hideHandler = FullscreenHandler(WeakReference(this))
128-
private var isFullscreen = false
127+
private val fullscreenHandler = FullscreenHandler(WeakReference(this))
129128

130129
override fun onCreate(savedInstanceState: Bundle?) {
131130
super.onCreate(savedInstanceState)
@@ -143,10 +142,7 @@ class MangaActivity : BaseActivity() {
143142
if (visibility and SYSTEM_UI_FLAG_FULLSCREEN == 0) {
144143
window.decorView.systemUiVisibility = defaultUiFlags()
145144

146-
if (isFullscreen) {
147-
hideHandler.removeMessages(0)
148-
hideHandler.sendEmptyMessageDelayed(0, 2_000)
149-
}
145+
toggleFullscreen(true, 2_000)
150146
}
151147
}
152148
}
@@ -188,15 +184,15 @@ class MangaActivity : BaseActivity() {
188184
return super.onOptionsItemSelected(item)
189185
}
190186

191-
fun toggleFullscreen(fullscreen: Boolean) {
192-
isFullscreen = fullscreen
187+
fun toggleFullscreen(fullscreen: Boolean, delay: Long = 0) {
188+
val fullscreenMessage = Message().apply {
189+
what = 0
190+
obj = fullscreen
191+
}
193192

194-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
195-
if (fullscreen) {
196-
window.decorView.systemUiVisibility = fullscreenUiFlags()
197-
} else {
198-
window.decorView.systemUiVisibility = defaultUiFlags()
199-
}
193+
if (!fullscreenHandler.hasMessages(0, fullscreen)) {
194+
fullscreenHandler.removeMessages(0)
195+
fullscreenHandler.sendMessageDelayed(fullscreenMessage, delay)
200196
}
201197
}
202198

@@ -241,8 +237,18 @@ class MangaActivity : BaseActivity() {
241237
}
242238

243239
private class FullscreenHandler(private val activity: WeakReference<MangaActivity>) : Handler() {
244-
override fun handleMessage(msg: Message?) {
245-
activity.get()?.toggleFullscreen(true)
240+
override fun handleMessage(message: Message) {
241+
val fullscreen = message.data.getBoolean("fullscreen", true)
242+
243+
this.activity.get()?.apply {
244+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
245+
if (fullscreen) {
246+
window.decorView.systemUiVisibility = fullscreenUiFlags()
247+
} else {
248+
window.decorView.systemUiVisibility = defaultUiFlags()
249+
}
250+
}
251+
}
246252
}
247253
}
248254
}

0 commit comments

Comments
 (0)