From 7358829fc0272822839b8fecf945cce83c8b6da2 Mon Sep 17 00:00:00 2001 From: Anharo Date: Fri, 11 Sep 2026 19:03:28 +0530 Subject: [PATCH] Fix terminal view OOM on session attach --- .../ytdl/database/viewmodel/TerminalViewModel.kt | 5 +++-- .../ytdl/ui/more/terminal/TerminalFragment.kt | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/TerminalViewModel.kt b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/TerminalViewModel.kt index 26c58add..706ca689 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/TerminalViewModel.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/TerminalViewModel.kt @@ -58,8 +58,9 @@ class TerminalViewModel(private val application: Application) : AndroidViewModel session.updateTerminalSessionClient(client) terminal.setBackgroundColor(android.graphics.Color.TRANSPARENT) - val zoom = PreferenceManager.getDefaultSharedPreferences(context) - .getFloat("terminal_zoom", 14f).coerceIn(10f, 30f) + val storedZoom = PreferenceManager.getDefaultSharedPreferences(context) + .getFloat("terminal_zoom", 35f) + val zoom = if (storedZoom.isFinite()) storedZoom.coerceIn(10f, 37f) else 35f terminal.setTextSize(zoom.toInt()) terminal.setTypeface(TerminalUtils.typeface) diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt index 05119c3a..35dcd0fa 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt @@ -67,6 +67,11 @@ class TerminalFragment : Fragment() { private lateinit var session : TerminalSession private var sessionId: String? = null + private fun terminalZoom(): Int { + val zoom = sharedPreferences.getFloat("terminal_zoom", 35f) + return if (zoom.isFinite()) zoom.coerceIn(10f, 37f).toInt() else 35 + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -128,7 +133,7 @@ class TerminalFragment : Fragment() { slider?.apply { valueFrom = 10f valueTo = 37f - value = sharedPreferences.getFloat("terminal_zoom", 35f) + value = terminalZoom().toFloat() addOnChangeListener { _, value, _ -> terminalView.setTextSize(value.toInt()) @@ -292,8 +297,10 @@ class TerminalFragment : Fragment() { val termView = view as TerminalView + if (termView.width <= 0 || termView.height <= 0) return@doOnLayout + termView.setTextSize( - sharedPreferences.getFloat("terminal_zoom", 35f).toInt() + terminalZoom() ) termView.setTypeface(TerminalUtils.typeface)