Fix missing background issue.
This commit is contained in:
parent
70d7b5a61f
commit
7133b821db
3 changed files with 85 additions and 77 deletions
|
|
@ -16,15 +16,15 @@
|
||||||
|
|
||||||
package io.element.android.features.joinroom.impl
|
package io.element.android.features.joinroom.impl
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
|
@ -64,9 +64,11 @@ fun JoinRoomView(
|
||||||
onKnockSuccess: () -> Unit,
|
onKnockSuccess: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val gradientBackground = remember { LightGradientBackground() }
|
Box(
|
||||||
|
modifier = modifier.fillMaxSize(),
|
||||||
|
) {
|
||||||
|
LightGradientBackground()
|
||||||
HeaderFooterPage(
|
HeaderFooterPage(
|
||||||
modifier = modifier.background(gradientBackground),
|
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
paddingValues = PaddingValues(16.dp),
|
paddingValues = PaddingValues(16.dp),
|
||||||
topBar = {
|
topBar = {
|
||||||
|
|
@ -96,6 +98,7 @@ fun JoinRoomView(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
AsyncActionView(
|
AsyncActionView(
|
||||||
async = state.knockAction,
|
async = state.knockAction,
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,17 @@
|
||||||
|
|
||||||
package io.element.android.features.roomaliasresolver.impl
|
package io.element.android.features.roomaliasresolver.impl
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.runtime.rememberUpdatedState
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
|
@ -65,9 +65,11 @@ fun RoomAliasResolverView(
|
||||||
latestOnAliasResolved(state.resolveState.data)
|
latestOnAliasResolved(state.resolveState.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val gradientBackground = remember { LightGradientBackground() }
|
Box(
|
||||||
|
modifier = modifier.fillMaxSize(),
|
||||||
|
) {
|
||||||
|
LightGradientBackground()
|
||||||
HeaderFooterPage(
|
HeaderFooterPage(
|
||||||
modifier = modifier.background(gradientBackground),
|
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
paddingValues = PaddingValues(16.dp),
|
paddingValues = PaddingValues(16.dp),
|
||||||
topBar = {
|
topBar = {
|
||||||
|
|
@ -82,6 +84,7 @@ fun RoomAliasResolverView(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -16,46 +16,48 @@
|
||||||
|
|
||||||
package io.element.android.libraries.designsystem.background
|
package io.element.android.libraries.designsystem.background
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.Canvas
|
||||||
import androidx.compose.foundation.layout.Box
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.geometry.Size
|
|
||||||
import androidx.compose.ui.geometry.center
|
import androidx.compose.ui.geometry.center
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.RadialGradientShader
|
import androidx.compose.ui.graphics.RadialGradientShader
|
||||||
import androidx.compose.ui.graphics.Shader
|
|
||||||
import androidx.compose.ui.graphics.ShaderBrush
|
import androidx.compose.ui.graphics.ShaderBrush
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
|
||||||
class LightGradientBackground(
|
/**
|
||||||
private val firstColor: Color = Color(0x1E0DBD8B),
|
* Light gradient background for Join room screens.
|
||||||
private val secondColor: Color = Color(0x001273EB),
|
*/
|
||||||
private val ratio: Float = 642 / 775f,
|
@Composable
|
||||||
) : ShaderBrush() {
|
fun LightGradientBackground(
|
||||||
override fun createShader(size: Size): Shader {
|
modifier: Modifier = Modifier,
|
||||||
|
backgroundColor: Color = MaterialTheme.colorScheme.background,
|
||||||
|
firstColor: Color = Color(0x1E0DBD8B),
|
||||||
|
secondColor: Color = Color(0x001273EB),
|
||||||
|
ratio: Float = 642 / 775f,
|
||||||
|
) {
|
||||||
|
Canvas(
|
||||||
|
modifier = modifier.fillMaxSize()
|
||||||
|
) {
|
||||||
val biggerDimension = size.width * 1.98f
|
val biggerDimension = size.width * 1.98f
|
||||||
return RadialGradientShader(
|
val gradientShaderBrush = ShaderBrush(
|
||||||
|
RadialGradientShader(
|
||||||
colors = listOf(firstColor, secondColor),
|
colors = listOf(firstColor, secondColor),
|
||||||
center = size.center.copy(x = size.width * ratio, y = size.height * ratio),
|
center = size.center.copy(x = size.width * ratio, y = size.height * ratio),
|
||||||
radius = biggerDimension / 2f,
|
radius = biggerDimension / 2f,
|
||||||
colorStops = listOf(0f, 0.95f)
|
colorStops = listOf(0f, 0.95f)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
drawRect(backgroundColor, size = size)
|
||||||
|
drawRect(brush = gradientShaderBrush, size = size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun LightGradientBackgroundPreview() = ElementPreview {
|
internal fun LightGradientBackgroundPreview() = ElementPreview {
|
||||||
val gradientBackground = remember {
|
|
||||||
LightGradientBackground()
|
LightGradientBackground()
|
||||||
}
|
|
||||||
Box(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxSize()
|
|
||||||
.background(gradientBackground)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue