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,38 +64,41 @@ fun JoinRoomView(
|
||||||
onKnockSuccess: () -> Unit,
|
onKnockSuccess: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val gradientBackground = remember { LightGradientBackground() }
|
Box(
|
||||||
HeaderFooterPage(
|
modifier = modifier.fillMaxSize(),
|
||||||
modifier = modifier.background(gradientBackground),
|
) {
|
||||||
containerColor = Color.Transparent,
|
LightGradientBackground()
|
||||||
paddingValues = PaddingValues(16.dp),
|
HeaderFooterPage(
|
||||||
topBar = {
|
containerColor = Color.Transparent,
|
||||||
JoinRoomTopBar(onBackClicked = onBackPressed)
|
paddingValues = PaddingValues(16.dp),
|
||||||
},
|
topBar = {
|
||||||
content = {
|
JoinRoomTopBar(onBackClicked = onBackPressed)
|
||||||
JoinRoomContent(contentState = state.contentState)
|
},
|
||||||
},
|
content = {
|
||||||
footer = {
|
JoinRoomContent(contentState = state.contentState)
|
||||||
JoinRoomFooter(
|
},
|
||||||
state = state,
|
footer = {
|
||||||
onAcceptInvite = {
|
JoinRoomFooter(
|
||||||
state.eventSink(JoinRoomEvents.AcceptInvite)
|
state = state,
|
||||||
},
|
onAcceptInvite = {
|
||||||
onDeclineInvite = {
|
state.eventSink(JoinRoomEvents.AcceptInvite)
|
||||||
state.eventSink(JoinRoomEvents.DeclineInvite)
|
},
|
||||||
},
|
onDeclineInvite = {
|
||||||
onJoinRoom = {
|
state.eventSink(JoinRoomEvents.DeclineInvite)
|
||||||
state.eventSink(JoinRoomEvents.JoinRoom)
|
},
|
||||||
},
|
onJoinRoom = {
|
||||||
onKnockRoom = {
|
state.eventSink(JoinRoomEvents.JoinRoom)
|
||||||
state.eventSink(JoinRoomEvents.KnockRoom)
|
},
|
||||||
},
|
onKnockRoom = {
|
||||||
onRetry = {
|
state.eventSink(JoinRoomEvents.KnockRoom)
|
||||||
state.eventSink(JoinRoomEvents.RetryFetchingContent)
|
},
|
||||||
}
|
onRetry = {
|
||||||
)
|
state.eventSink(JoinRoomEvents.RetryFetchingContent)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
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,23 +65,26 @@ fun RoomAliasResolverView(
|
||||||
latestOnAliasResolved(state.resolveState.data)
|
latestOnAliasResolved(state.resolveState.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val gradientBackground = remember { LightGradientBackground() }
|
Box(
|
||||||
HeaderFooterPage(
|
modifier = modifier.fillMaxSize(),
|
||||||
modifier = modifier.background(gradientBackground),
|
) {
|
||||||
containerColor = Color.Transparent,
|
LightGradientBackground()
|
||||||
paddingValues = PaddingValues(16.dp),
|
HeaderFooterPage(
|
||||||
topBar = {
|
containerColor = Color.Transparent,
|
||||||
RoomAliasResolverTopBar(onBackClicked = onBackPressed)
|
paddingValues = PaddingValues(16.dp),
|
||||||
},
|
topBar = {
|
||||||
content = {
|
RoomAliasResolverTopBar(onBackClicked = onBackPressed)
|
||||||
RoomAliasResolverContent(state = state)
|
},
|
||||||
},
|
content = {
|
||||||
footer = {
|
RoomAliasResolverContent(state = state)
|
||||||
RoomAliasResolverFooter(
|
},
|
||||||
state = state,
|
footer = {
|
||||||
)
|
RoomAliasResolverFooter(
|
||||||
}
|
state = state,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@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(
|
||||||
colors = listOf(firstColor, secondColor),
|
RadialGradientShader(
|
||||||
center = size.center.copy(x = size.width * ratio, y = size.height * ratio),
|
colors = listOf(firstColor, secondColor),
|
||||||
radius = biggerDimension / 2f,
|
center = size.center.copy(x = size.width * ratio, y = size.height * ratio),
|
||||||
colorStops = listOf(0f, 0.95f)
|
radius = biggerDimension / 2f,
|
||||||
|
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