Skip to content

Commit a42aad1

Browse files
authored
Merge pull request #17292 from wordpress-mobile/issue/17284-system-bars-background-transparency
[Revamp Landing Screen] Fix system bars background transparency
2 parents 731ee6a + 7434f57 commit a42aad1

5 files changed

Lines changed: 33 additions & 9 deletions

File tree

WordPress/src/jetpack/java/org/wordpress/android/ui/accounts/login/LoginPrologueRevampedFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.content.res.Configuration.UI_MODE_NIGHT_YES
55
import android.os.Bundle
66
import android.view.LayoutInflater
77
import android.view.ViewGroup
8-
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
98
import androidx.compose.foundation.layout.Box
109
import androidx.compose.foundation.layout.padding
1110
import androidx.compose.foundation.layout.size
@@ -32,6 +31,7 @@ import org.wordpress.android.ui.accounts.login.components.PrimaryButton
3231
import org.wordpress.android.ui.accounts.login.components.SecondaryButton
3332
import org.wordpress.android.ui.accounts.login.components.TopLinearGradient
3433
import org.wordpress.android.ui.compose.theme.AppTheme
34+
import org.wordpress.android.util.extensions.setTransparentSystemBars
3535

3636
val LocalPosition = compositionLocalOf { 0f }
3737

@@ -64,12 +64,12 @@ class LoginPrologueRevampedFragment : Fragment() {
6464

6565
override fun onResume() {
6666
super.onResume()
67-
requireActivity().window.addFlags(FLAG_LAYOUT_NO_LIMITS)
67+
requireActivity().window.setTransparentSystemBars(true)
6868
}
6969

7070
override fun onPause() {
7171
super.onPause()
72-
requireActivity().window.clearFlags(FLAG_LAYOUT_NO_LIMITS)
72+
requireActivity().window.setTransparentSystemBars(false)
7373
}
7474

7575
companion object {

WordPress/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
android:label="@string/me_section_screen_title" />
101101
<activity
102102
android:name=".ui.accounts.LoginActivity"
103-
android:theme="@style/LoginTheme.TransparentStatusBar"
103+
android:theme="@style/LoginTheme.TransparentSystemBars"
104104
android:screenOrientation="portrait"
105105
android:windowSoftInputMode="adjustResize" />
106106

WordPress/src/main/java/org/wordpress/android/util/extensions/WindowExtensions.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE
77
import android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
88
import android.view.View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
99
import android.view.Window
10+
import android.view.WindowManager.LayoutParams
1011
import androidx.core.content.ContextCompat
1112
import org.wordpress.android.R
1213

@@ -43,6 +44,25 @@ fun Window.setLightNavigationBar(showInLightMode: Boolean, applyDefaultColors: B
4344
}
4445
}
4546

47+
fun Window.setTransparentSystemBars(isTransparent: Boolean) {
48+
when (isTransparent) {
49+
true -> {
50+
if (VERSION.SDK_INT >= VERSION_CODES.R) {
51+
setDecorFitsSystemWindows(false)
52+
} else {
53+
addFlags(LayoutParams.FLAG_LAYOUT_NO_LIMITS)
54+
}
55+
}
56+
false -> {
57+
if (VERSION.SDK_INT >= VERSION_CODES.R) {
58+
setDecorFitsSystemWindows(true)
59+
} else {
60+
clearFlags(LayoutParams.FLAG_LAYOUT_NO_LIMITS)
61+
}
62+
}
63+
}
64+
}
65+
4666
@Suppress("DEPRECATION")
4767
fun Window.showFullScreen() {
4868
decorView.systemUiVisibility = decorView.systemUiVisibility.let {

WordPress/src/main/res/values/styles_login.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
<item name="colorSecondaryVariant">@color/colorSecondaryVariant</item>
99
</style>
1010

11-
<style name="LoginTheme.TransparentStatusBar" parent="LoginTheme">
11+
<style name="LoginTheme.TransparentSystemBars" parent="LoginTheme">
1212
<item name="android:statusBarColor">@android:color/transparent</item>
13+
<item name="android:navigationBarColor">@android:color/transparent</item>
1314
</style>
1415

1516
<style name="Login.EmptyView.TextView.Username" parent="android:Widget.TextView">

WordPress/src/wordpress/java/org/wordpress/android/ui/accounts/login/LoginPrologueRevampedFragment.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.content.res.Configuration.UI_MODE_NIGHT_YES
55
import android.os.Bundle
66
import android.view.LayoutInflater
77
import android.view.ViewGroup
8-
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
98
import androidx.compose.foundation.background
109
import androidx.compose.foundation.layout.Box
1110
import androidx.compose.foundation.layout.Column
@@ -34,6 +33,7 @@ import org.wordpress.android.ui.accounts.login.compose.components.PrimaryButton
3433
import org.wordpress.android.ui.accounts.login.compose.components.SecondaryButton
3534
import org.wordpress.android.ui.accounts.login.compose.components.Tagline
3635
import org.wordpress.android.ui.compose.theme.AppTheme
36+
import org.wordpress.android.util.extensions.setTransparentSystemBars
3737

3838
class LoginPrologueRevampedFragment : Fragment() {
3939
private lateinit var loginPrologueListener: LoginPrologueListener
@@ -61,12 +61,12 @@ class LoginPrologueRevampedFragment : Fragment() {
6161

6262
override fun onResume() {
6363
super.onResume()
64-
requireActivity().window.addFlags(FLAG_LAYOUT_NO_LIMITS)
64+
requireActivity().window.setTransparentSystemBars(true)
6565
}
6666

6767
override fun onPause() {
6868
super.onPause()
69-
requireActivity().window.clearFlags(FLAG_LAYOUT_NO_LIMITS)
69+
requireActivity().window.setTransparentSystemBars(false)
7070
}
7171

7272
companion object {
@@ -90,7 +90,10 @@ fun LoginScreenRevamped(
9090
.background(color = colorResource(id = color.login_prologue_revamped_background))
9191
.drawBehind {
9292
scale(scaleX = scaleX, scaleY = 1f) {
93-
translate(left = size.width - brushStrokePainter.intrinsicSize.width - offsetX, top = -offsetY) {
93+
translate(
94+
left = size.width - brushStrokePainter.intrinsicSize.width - offsetX,
95+
top = -offsetY
96+
) {
9497
with(brushStrokePainter) {
9598
draw(intrinsicSize)
9699
}

0 commit comments

Comments
 (0)