build(app): bump compileSdk/targetSdk to 35

- compileSdk 35, targetSdk 35로 상향
- edge-to-edge를 적용하고 전체 화면에 insets를 추가 적용하여 이전과 동일하게 statusbar, navigationbar를 침범하지 않도록 처리
This commit is contained in:
2025-10-23 23:32:58 +09:00
parent d33ab59378
commit f1d718a45f
4 changed files with 34 additions and 6 deletions

View File

@@ -4,10 +4,10 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2024-10-14T08:13:14.161127Z">
<DropdownSelection timestamp="2025-10-23T14:28:01.940002Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=2cec640c34017ece" />
<DeviceId pluginId="LocalEmulator" identifier="path=/Users/klaus/.android/avd/Pixel_9_Pro.avd" />
</handle>
</Target>
</DropdownSelection>

View File

@@ -13,7 +13,7 @@ plugins {
android {
namespace 'kr.co.vividnext.sodalive'
compileSdk = 34
compileSdk = 35
viewBinding {
enabled true
@@ -33,7 +33,7 @@ android {
defaultConfig {
applicationId "kr.co.vividnext.sodalive"
minSdk 23
targetSdk 34
targetSdk 35
versionCode 196
versionName "1.43.0"
}

View File

@@ -10,6 +10,10 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.viewbinding.ViewBinding
import io.reactivex.rxjava3.disposables.CompositeDisposable
@@ -44,9 +48,31 @@ abstract class BaseActivity<T : ViewBinding>(
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
binding = inflate(layoutInflater)
// 1) 시스템 바 아래로 그리기
WindowCompat.setDecorFitsSystemWindows(window, false)
setContentView(binding.root)
// 2) 시스템 바 아이콘(라이트/다크) 지정
val controller = WindowCompat.getInsetsController(window, binding.root)
controller.systemBarsBehavior =
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
val isDarkTheme = (resources.configuration.uiMode and 0x30) == 0x20 // NIGHT_YES 여부 단순 판단
controller.isAppearanceLightStatusBars = !isDarkTheme
controller.isAppearanceLightNavigationBars = !isDarkTheme
setupView()
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
// 루트는 좌/우/하만 처리(상단은 Toolbar에 위임)
v.setPadding(bars.left, bars.top, bars.right, bars.bottom)
insets
}
}
override fun onStart() {

View File

@@ -14,8 +14,10 @@
<!-- Customize your theme here. -->
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">false</item>
<item name="android:statusBarColor">@color/black</item>
<item name="android:navigationBarColor">@color/black</item>
<!-- 시스템 바 위로 그리기 + 투명 바 -->
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>
<style name="EditTextStyle" parent="Theme.AppCompat.Light">