Skip to content

Commit f35c659

Browse files
authored
Merge pull request #755 from Team-WSS/feat/754
fix: EdgeToEdge 대응
2 parents 27182bf + 75cf53c commit f35c659

13 files changed

Lines changed: 69 additions & 66 deletions

File tree

app/src/main/java/com/into/websoso/core/common/ui/base/BaseActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.activity.enableEdgeToEdge
55
import androidx.annotation.LayoutRes
66
import androidx.appcompat.app.AppCompatActivity
77
import androidx.core.view.ViewCompat
8+
import androidx.core.view.WindowCompat
89
import androidx.core.view.WindowInsetsCompat
910
import androidx.core.view.updatePadding
1011
import androidx.databinding.DataBindingUtil
@@ -30,7 +31,11 @@ abstract class BaseActivity<B : ViewDataBinding>(
3031
left = bars.left,
3132
right = bars.right,
3233
)
33-
insets
34+
WindowInsetsCompat.CONSUMED
35+
}
36+
WindowCompat.getInsetsController(this.window, this.window.decorView).apply {
37+
isAppearanceLightStatusBars = true
38+
isAppearanceLightNavigationBars = true
3439
}
3540
}
3641
}

app/src/main/java/com/into/websoso/core/common/util/ExtentionFuction.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
1515
import androidx.compose.runtime.Composable
1616
import androidx.compose.runtime.remember
1717
import androidx.compose.ui.Modifier
18-
import androidx.compose.ui.graphics.toArgb
1918
import androidx.core.view.WindowCompat
2019
import androidx.datastore.core.DataStore
2120
import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
@@ -31,7 +30,6 @@ import androidx.lifecycle.repeatOnLifecycle
3130
import com.into.websoso.BuildConfig
3231
import com.into.websoso.core.common.ui.custom.WebsosoCustomSnackBar
3332
import com.into.websoso.core.common.ui.custom.WebsosoCustomToast
34-
import com.into.websoso.core.designsystem.theme.White
3533
import kotlinx.coroutines.flow.Flow
3634
import kotlinx.coroutines.launch
3735
import java.io.Serializable
@@ -163,10 +161,9 @@ fun <T> Flow<T>.collectWithLifecycle(
163161
}
164162
}
165163

166-
fun Activity.setupWhiteStatusBar() {
167-
this.window.statusBarColor = White.toArgb()
168-
164+
fun Activity.setupSystemBarIconColor(isLightMode: Boolean) {
169165
WindowCompat.getInsetsController(this.window, this.window.decorView).apply {
170-
isAppearanceLightStatusBars = true
166+
isAppearanceLightStatusBars = isLightMode
167+
isAppearanceLightNavigationBars = isLightMode
171168
}
172169
}

app/src/main/java/com/into/websoso/ui/expandedFeedImage/ExpandedFeedImageActivity.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ import android.content.Intent
55
import android.os.Bundle
66
import androidx.activity.ComponentActivity
77
import androidx.activity.compose.setContent
8+
import androidx.activity.enableEdgeToEdge
89
import com.into.websoso.core.common.ui.model.ResultFrom
9-
import com.into.websoso.core.common.util.setupWhiteStatusBar
1010
import com.into.websoso.core.designsystem.theme.WebsosoTheme
1111

1212
class ExpandedFeedImageActivity : ComponentActivity() {
1313
override fun onCreate(savedInstanceState: Bundle?) {
1414
super.onCreate(savedInstanceState)
15-
this.setupWhiteStatusBar()
16-
15+
enableEdgeToEdge()
1716
setContent {
1817
WebsosoTheme {
1918
ExpandedFeedImageScreen(
2019
index = intent.getIntExtra(FEED_IMAGE_INDEX, 0),
21-
imageUrls = intent.getStringArrayListExtra(FEED_IMAGE_URLS) ?: return@WebsosoTheme,
20+
imageUrls = intent.getStringArrayListExtra(FEED_IMAGE_URLS)
21+
?: return@WebsosoTheme,
2222
onBackButtonClick = {
2323
setResult(ResultFrom.Notification.RESULT_OK)
2424
finish()

app/src/main/java/com/into/websoso/ui/expandedFeedImage/ExpandedFeedImageScreen.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ package com.into.websoso.ui.expandedFeedImage
33
import androidx.activity.compose.BackHandler
44
import androidx.compose.foundation.background
55
import androidx.compose.foundation.layout.Box
6+
import androidx.compose.foundation.layout.WindowInsets
67
import androidx.compose.foundation.layout.fillMaxSize
78
import androidx.compose.foundation.layout.fillMaxWidth
89
import androidx.compose.foundation.layout.padding
910
import androidx.compose.foundation.layout.size
11+
import androidx.compose.foundation.layout.systemBars
12+
import androidx.compose.foundation.layout.windowInsetsPadding
1013
import androidx.compose.foundation.pager.HorizontalPager
1114
import androidx.compose.foundation.pager.PagerState
1215
import androidx.compose.foundation.pager.rememberPagerState
@@ -40,7 +43,8 @@ fun ExpandedFeedImageScreen(
4043
Box(
4144
modifier = Modifier
4245
.fillMaxSize()
43-
.background(ExpandedFeedImageBackground),
46+
.background(color = ExpandedFeedImageBackground)
47+
.windowInsetsPadding(WindowInsets.systemBars),
4448
) {
4549
HorizontalPager(
4650
state = pagerState,

app/src/main/java/com/into/websoso/ui/login/LoginActivity.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ import android.content.Intent
55
import android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK
66
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
77
import android.os.Bundle
8+
import androidx.activity.ComponentActivity
89
import androidx.activity.compose.setContent
910
import androidx.activity.enableEdgeToEdge
10-
import androidx.appcompat.app.AppCompatActivity
1111
import com.google.firebase.Firebase
1212
import com.google.firebase.analytics.FirebaseAnalytics
1313
import com.google.firebase.analytics.analytics
14-
import com.into.websoso.R.layout.activity_login
1514
import com.into.websoso.core.auth.AuthClient
1615
import com.into.websoso.core.auth.AuthPlatform
1716
import com.into.websoso.core.common.navigator.NavigatorProvider
17+
import com.into.websoso.core.common.util.setupSystemBarIconColor
1818
import com.into.websoso.core.designsystem.theme.WebsosoTheme
1919
import com.into.websoso.feature.signin.SignInScreen
2020
import dagger.hilt.android.AndroidEntryPoint
2121
import javax.inject.Inject
2222

2323
@AndroidEntryPoint
24-
class LoginActivity : AppCompatActivity(activity_login) {
24+
class LoginActivity : ComponentActivity() {
2525
// TODO: CompositionLocal로 주입
2626
private val firebaseAnalytics: FirebaseAnalytics = Firebase.analytics
2727

@@ -33,8 +33,8 @@ class LoginActivity : AppCompatActivity(activity_login) {
3333

3434
override fun onCreate(savedInstanceState: Bundle?) {
3535
super.onCreate(savedInstanceState)
36-
3736
enableEdgeToEdge()
37+
setupSystemBarIconColor(true)
3838
setContent {
3939
WebsosoTheme {
4040
SignInScreen(

app/src/main/java/com/into/websoso/ui/main/MainActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import android.view.View
88
import androidx.activity.OnBackPressedCallback
99
import androidx.activity.viewModels
1010
import androidx.annotation.IntegerRes
11-
import androidx.core.view.WindowCompat
1211
import androidx.fragment.app.Fragment
1312
import androidx.fragment.app.commit
1413
import com.into.websoso.R.id.fcv_main
@@ -52,7 +51,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(activity_main) {
5251

5352
override fun onCreate(savedInstanceState: Bundle?) {
5453
super.onCreate(savedInstanceState)
55-
WindowCompat.setDecorFitsSystemWindows(window, false)
5654

5755
setupBackButtonListener()
5856
setupBottomNavigationView()

app/src/main/java/com/into/websoso/ui/notification/NotificationActivity.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import androidx.activity.compose.setContent
88
import androidx.activity.enableEdgeToEdge
99
import androidx.activity.viewModels
1010
import com.into.websoso.core.common.ui.model.ResultFrom
11-
import com.into.websoso.core.common.util.setupWhiteStatusBar
11+
import com.into.websoso.core.common.util.setupSystemBarIconColor
1212
import com.into.websoso.core.designsystem.theme.WebsosoTheme
1313
import com.into.websoso.ui.feedDetail.FeedDetailActivity
1414
import com.into.websoso.ui.notification.model.NotificationModel
@@ -22,8 +22,7 @@ class NotificationActivity : ComponentActivity() {
2222
override fun onCreate(savedInstanceState: Bundle?) {
2323
super.onCreate(savedInstanceState)
2424
enableEdgeToEdge()
25-
this.setupWhiteStatusBar()
26-
25+
setupSystemBarIconColor(true)
2726
setContent {
2827
WebsosoTheme {
2928
NotificationScreen(

app/src/main/java/com/into/websoso/ui/notificationDetail/NotificationDetailActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import androidx.activity.addCallback
88
import androidx.activity.compose.setContent
99
import androidx.activity.enableEdgeToEdge
1010
import androidx.activity.viewModels
11-
import com.into.websoso.core.common.util.setupWhiteStatusBar
11+
import com.into.websoso.core.common.util.setupSystemBarIconColor
1212
import com.into.websoso.core.designsystem.theme.WebsosoTheme
1313
import dagger.hilt.android.AndroidEntryPoint
1414

@@ -19,7 +19,7 @@ class NotificationDetailActivity : ComponentActivity() {
1919
override fun onCreate(savedInstanceState: Bundle?) {
2020
super.onCreate(savedInstanceState)
2121
enableEdgeToEdge()
22-
this.setupWhiteStatusBar()
22+
setupSystemBarIconColor(true)
2323

2424
handleBackPressed()
2525

app/src/main/java/com/into/websoso/ui/splash/SplashActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import android.os.Bundle
55
import android.provider.Settings.Secure.ANDROID_ID
66
import android.provider.Settings.Secure.getString
77
import androidx.activity.viewModels
8-
import androidx.appcompat.app.AppCompatActivity
98
import com.into.websoso.R
109
import com.into.websoso.core.common.navigator.NavigatorProvider
10+
import com.into.websoso.core.common.ui.base.BaseActivity
1111
import com.into.websoso.core.common.util.collectWithLifecycle
12+
import com.into.websoso.databinding.ActivitySplashBinding
1213
import com.into.websoso.ui.splash.UiEffect.NavigateToLogin
1314
import com.into.websoso.ui.splash.UiEffect.NavigateToMain
1415
import com.into.websoso.ui.splash.UiEffect.ShowDialog
@@ -17,7 +18,7 @@ import dagger.hilt.android.AndroidEntryPoint
1718
import javax.inject.Inject
1819

1920
@AndroidEntryPoint
20-
class SplashActivity : AppCompatActivity(R.layout.activity_splash) {
21+
class SplashActivity : BaseActivity<ActivitySplashBinding>(R.layout.activity_splash) {
2122
@Inject
2223
lateinit var websosoNavigator: NavigatorProvider
2324

app/src/main/java/com/into/websoso/ui/userStorage/UserStorageActivity.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.activity.ComponentActivity
77
import androidx.activity.compose.setContent
88
import androidx.activity.enableEdgeToEdge
99
import androidx.activity.viewModels
10+
import androidx.compose.foundation.background
1011
import androidx.compose.foundation.layout.Box
1112
import androidx.compose.foundation.layout.WindowInsets
1213
import androidx.compose.foundation.layout.fillMaxSize
@@ -16,7 +17,9 @@ import androidx.compose.foundation.layout.windowInsetsPadding
1617
import androidx.compose.material3.Scaffold
1718
import androidx.compose.ui.Modifier
1819
import com.into.websoso.core.common.navigator.NavigatorProvider
20+
import com.into.websoso.core.common.util.setupSystemBarIconColor
1921
import com.into.websoso.core.designsystem.theme.WebsosoTheme
22+
import com.into.websoso.core.designsystem.theme.White
2023
import com.into.websoso.feature.library.LibraryScreen
2124
import com.into.websoso.feature.library.LibraryViewModel
2225
import dagger.hilt.android.AndroidEntryPoint
@@ -31,11 +34,13 @@ class UserStorageActivity : ComponentActivity() {
3134
override fun onCreate(savedInstanceState: Bundle?) {
3235
super.onCreate(savedInstanceState)
3336
enableEdgeToEdge()
37+
setupSystemBarIconColor(true)
3438
setContent {
3539
WebsosoTheme {
3640
Scaffold(
3741
modifier = Modifier
3842
.fillMaxSize()
43+
.background(color = White)
3944
.windowInsetsPadding(WindowInsets.systemBars),
4045
) { inner ->
4146
Box(modifier = Modifier.padding(inner)) {

0 commit comments

Comments
 (0)