Skip to content

Commit b26a367

Browse files
committed
chore(login): allow background image to be visible
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 8194fec commit b26a367

6 files changed

Lines changed: 69 additions & 57 deletions

File tree

app/src/main/java/com/getcode/CodeApp.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import androidx.compose.runtime.remember
1616
import androidx.compose.runtime.setValue
1717
import androidx.compose.ui.Modifier
1818
import androidx.compose.ui.platform.LocalContext
19-
import cafe.adriel.voyager.core.screen.Screen
2019
import cafe.adriel.voyager.navigator.CurrentScreen
2120
import cafe.adriel.voyager.navigator.Navigator
2221
import cafe.adriel.voyager.transitions.ScreenTransition
@@ -25,11 +24,8 @@ import cafe.adriel.voyager.transitions.SlideTransition
2524
import com.getcode.navigation.core.BottomSheetNavigator
2625
import com.getcode.navigation.core.CombinedNavigator
2726
import com.getcode.navigation.core.LocalCodeNavigator
28-
import com.getcode.navigation.screens.AccessKeyLoginScreen
29-
import com.getcode.navigation.screens.HomeScreen
3027
import com.getcode.navigation.screens.LoginScreen
3128
import com.getcode.navigation.screens.MainRoot
32-
import com.getcode.navigation.screens.PermissionRequestScreen
3329
import com.getcode.navigation.transitions.SheetSlideTransition
3430
import com.getcode.theme.Brand
3531
import com.getcode.theme.CodeTheme
@@ -50,7 +46,6 @@ fun CodeApp() {
5046
val appState = rememberCodeAppState()
5147
AppNavHost {
5248
CodeScaffold(
53-
backgroundColor = Brand,
5449
scaffoldState = appState.scaffoldState
5550
) { innerPaddingModifier ->
5651
val codeNavigator = LocalCodeNavigator.current

app/src/main/java/com/getcode/theme/Dimens.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import androidx.compose.ui.unit.dp
1010
import com.getcode.BuildConfig
1111

1212
val topBarHeight = 56.dp
13-
const val sheetHeight = 0.93f
13+
const val sheetHeight = 0.9f
1414

1515
internal val LocalDimens = staticCompositionLocalOf<Dimensions> {
1616
error("No Dimensions provided")
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.getcode.view.components
2+
3+
import androidx.annotation.DrawableRes
4+
import androidx.compose.foundation.Image
5+
import androidx.compose.foundation.background
6+
import androidx.compose.foundation.layout.Box
7+
import androidx.compose.runtime.Composable
8+
import androidx.compose.ui.Alignment
9+
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.draw.clip
11+
import androidx.compose.ui.draw.scale
12+
import androidx.compose.ui.graphics.Color
13+
import androidx.compose.ui.graphics.ColorFilter
14+
import androidx.compose.ui.graphics.DefaultAlpha
15+
import androidx.compose.ui.graphics.RectangleShape
16+
import androidx.compose.ui.graphics.Shape
17+
import androidx.compose.ui.graphics.painter.Painter
18+
import androidx.compose.ui.layout.ContentScale
19+
import androidx.compose.ui.res.painterResource
20+
21+
@Composable
22+
fun ImageWithBackground(
23+
modifier: Modifier = Modifier,
24+
painter: Painter,
25+
@DrawableRes backgroundDrawableResId: Int,
26+
contentDescription: String?,
27+
shape: Shape = RectangleShape,
28+
alignment: Alignment = Alignment.Center,
29+
contentScale: ContentScale = ContentScale.Fit,
30+
imageScale: Float = 1f,
31+
alpha: Float = DefaultAlpha,
32+
colorFilter: ColorFilter? = null
33+
) {
34+
Box(
35+
modifier = modifier.background(color = Color.Unspecified, shape = shape),
36+
) {
37+
Image(
38+
painter = painter,
39+
contentDescription = contentDescription,
40+
alignment = alignment,
41+
contentScale = contentScale,
42+
alpha = alpha,
43+
colorFilter = colorFilter,
44+
modifier = Modifier.scale(imageScale),
45+
)
46+
Image(
47+
modifier = Modifier
48+
.matchParentSize()
49+
.clip(shape),
50+
alignment = alignment,
51+
contentScale = contentScale,
52+
alpha = alpha,
53+
painter = painterResource(backgroundDrawableResId),
54+
contentDescription = null,
55+
)
56+
}
57+
}

app/src/main/java/com/getcode/view/login/LoginHome.kt

Lines changed: 10 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package com.getcode.view.login
22

3-
import androidx.compose.animation.AnimatedVisibility
4-
import androidx.compose.animation.core.tween
5-
import androidx.compose.animation.fadeIn
6-
import androidx.compose.animation.fadeOut
73
import androidx.compose.foundation.Image
8-
import androidx.compose.foundation.background
94
import androidx.compose.foundation.layout.Box
105
import androidx.compose.foundation.layout.WindowInsets
116
import androidx.compose.foundation.layout.fillMaxHeight
@@ -16,14 +11,11 @@ import androidx.compose.foundation.layout.padding
1611
import androidx.compose.foundation.layout.windowInsetsPadding
1712
import androidx.compose.foundation.text.ClickableText
1813
import androidx.compose.runtime.Composable
19-
import androidx.compose.runtime.DisposableEffect
2014
import androidx.compose.runtime.LaunchedEffect
21-
import androidx.compose.runtime.getValue
22-
import androidx.compose.runtime.mutableStateOf
23-
import androidx.compose.runtime.remember
24-
import androidx.compose.runtime.rememberCoroutineScope
25-
import androidx.compose.runtime.setValue
2615
import androidx.compose.ui.Modifier
16+
import androidx.compose.ui.graphics.Color
17+
import androidx.compose.ui.graphics.ColorFilter
18+
import androidx.compose.ui.graphics.painter.ColorPainter
2719
import androidx.compose.ui.layout.ContentScale
2820
import androidx.compose.ui.platform.LocalContext
2921
import androidx.compose.ui.platform.LocalFocusManager
@@ -36,20 +28,18 @@ import androidx.compose.ui.text.style.TextDecoration
3628
import androidx.compose.ui.text.withStyle
3729
import androidx.compose.ui.tooling.preview.Preview
3830
import androidx.constraintlayout.compose.ConstraintLayout
39-
import androidx.hilt.navigation.compose.hiltViewModel
4031
import com.getcode.LocalAnalytics
4132
import com.getcode.R
4233
import com.getcode.navigation.core.LocalCodeNavigator
4334
import com.getcode.navigation.screens.AccessKeyLoginScreen
4435
import com.getcode.navigation.screens.LoginPhoneVerificationScreen
36+
import com.getcode.theme.Brand
4537
import com.getcode.theme.BrandLight
4638
import com.getcode.theme.CodeTheme
47-
import com.getcode.util.AnimationUtils
4839
import com.getcode.util.ChromeTabsUtils
4940
import com.getcode.view.components.ButtonState
5041
import com.getcode.view.components.CodeButton
51-
import kotlinx.coroutines.delay
52-
import kotlinx.coroutines.launch
42+
import com.getcode.view.components.ImageWithBackground
5343

5444

5545
@Preview
@@ -58,45 +48,25 @@ fun LoginHome() {
5848
val context = LocalContext.current
5949
val navigator = LocalCodeNavigator.current
6050

61-
var show by remember {
62-
mutableStateOf(false)
63-
}
6451
Box {
65-
66-
AnimatedVisibility(
67-
modifier = Modifier.fillMaxSize(),
68-
visible = show,
69-
enter = fadeIn(
70-
animationSpec = tween(AnimationUtils.animationTime)
71-
),
72-
exit = fadeOut(tween(AnimationUtils.animationTime))
73-
) {
74-
Box(
75-
Modifier
76-
.fillMaxSize()
77-
.background(CodeTheme.colors.background)
78-
)
79-
}
80-
8152
ConstraintLayout(
8253
modifier = Modifier
8354
.fillMaxSize()
8455
.windowInsetsPadding(WindowInsets.navigationBars),
8556
) {
8657
val (bgImage, logo, buttonCreate, buttonLogin, toc) = createRefs()
8758

88-
Image(
89-
painterResource(R.drawable.ic_code_splash_bg),
90-
"",
59+
ImageWithBackground(
9160
modifier = Modifier
9261
.constrainAs(bgImage) {
9362
start.linkTo(parent.start)
9463
end.linkTo(parent.end)
9564
top.linkTo(parent.top)
96-
bottom.linkTo(parent.bottom)
9765
}
9866
.fillMaxSize(),
99-
contentScale = ContentScale.Crop,
67+
painter = ColorPainter(Brand),
68+
backgroundDrawableResId = R.drawable.ic_code_splash_bg,
69+
contentDescription = null
10070
)
10171

10272
Image(
@@ -191,17 +161,9 @@ fun LoginHome() {
191161

192162
val focusManager = LocalFocusManager.current
193163
val analytics = LocalAnalytics.current
194-
val scope = rememberCoroutineScope()
195-
DisposableEffect(Unit) {
164+
LaunchedEffect(Unit) {
196165
focusManager.clearFocus()
197166
analytics.onAppStarted()
198-
scope.launch {
199-
delay(750)
200-
show = false
201-
}
202167

203-
onDispose { show = true }
204168
}
205-
206-
207169
}

app/src/main/java/com/getcode/view/login/PhoneVerify.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,6 @@ private fun PhoneEntry(
250250
BasicTextField(
251251
modifier = Modifier
252252
.fillMaxHeight()
253-
.padding(top = CodeTheme.dimens.border)
254253
.weight(1f)
255254
.focusRequester(focusRequester),
256255
value = value,

app/src/main/res/drawable/ic_code_splash_bg.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
android:pathData="M0,0h375v812h-375z"/>
99
<path
1010
android:pathData="M-42,9.965l341.536,-319.965l429.174,458.107l-341.536,319.965z"
11-
android:fillColor="#33C4C4C4"
12-
android:fillAlpha="0.14"/>
11+
android:fillColor="#33C4C4C4" />
1312
</group>
1413
</vector>

0 commit comments

Comments
 (0)