From 9e867c3e16acd657caa118495329ddaaf6ac303b Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 4 Feb 2026 16:47:19 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=ED=95=84=EB=93=9C=EC=9D=98=20=ED=82=A4?= =?UTF-8?q?=EB=B3=B4=EB=93=9C=EA=B0=80=20=EC=98=AC=EB=9D=BC=EA=B0=80?= =?UTF-8?q?=EB=A9=B4=20=EC=95=84=EC=9D=B4=ED=8F=B0=EA=B3=BC=20=EB=8F=99?= =?UTF-8?q?=EC=9D=BC=ED=95=98=EA=B2=8C=20=ED=99=94=EB=A9=B4=EC=9D=B4=20?= =?UTF-8?q?=EC=9C=84=EB=A1=9C=20=EB=B0=80=EB=A0=A4=20=EC=98=AC=EB=9D=BC?= =?UTF-8?q?=EA=B0=80=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/room/LiveRoomActivity.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt index d7c90c2f..486567c9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt @@ -47,6 +47,8 @@ import androidx.core.content.ContextCompat import androidx.core.graphics.toColorInt import androidx.core.graphics.withTranslation import androidx.core.net.toUri +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.transform.CircleCropTransformation @@ -219,6 +221,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB initAgora() super.onCreate(savedInstanceState) + applyKeyboardPanInsets() onBackPressedDispatcher.addCallback(this, onBackPressedCallback) this.roomId = intent.getLongExtra(Constants.EXTRA_ROOM_ID, 0) @@ -533,6 +536,24 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB } // endregion + private fun applyKeyboardPanInsets() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { + return + } + + ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val ime = insets.getInsets(WindowInsetsCompat.Type.ime()) + val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime()) + + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + v.translationY = if (imeVisible) -ime.bottom.toFloat() else 0f + + insets + } + ViewCompat.requestApplyInsets(binding.root) + } + private fun secondToMillis(second: Float): Long { return (second * 1000).toLong() }