feat: add Google sign-in icon, update login screen and auth visuals

This commit is contained in:
null 2026-06-17 23:07:19 -05:00
parent 8217a3385d
commit f7b95fc9ba
3 changed files with 40 additions and 10 deletions

View File

@ -1,11 +1,15 @@
package app.closer.ui.auth package app.closer.ui.auth
import app.closer.R
import app.closer.ui.theme.closerCardColor import app.closer.ui.theme.closerCardColor
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedButton
@ -17,8 +21,10 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import app.closer.ui.theme.CloserPalette import app.closer.ui.theme.CloserPalette
import app.closer.ui.theme.BackgroundColor import app.closer.ui.theme.BackgroundColor
import app.closer.ui.theme.OnBackgroundColor import app.closer.ui.theme.OnBackgroundColor
@ -26,9 +32,6 @@ import app.closer.ui.theme.OnPrimaryColor
import app.closer.ui.theme.OnSurfaceVariantColor import app.closer.ui.theme.OnSurfaceVariantColor
import app.closer.ui.theme.PrimaryColor import app.closer.ui.theme.PrimaryColor
internal const val GOOGLE_WEB_CLIENT_ID =
"556235913214-l3risvbo7ouv80e22cojblufhjchgn1a.apps.googleusercontent.com"
internal val AuthBackgroundBrush: Brush internal val AuthBackgroundBrush: Brush
get() = Brush.linearGradient( get() = Brush.linearGradient(
colors = listOf(BackgroundColor, CloserPalette.BackgroundWash, CloserPalette.PinkMist), colors = listOf(BackgroundColor, CloserPalette.BackgroundWash, CloserPalette.PinkMist),
@ -56,20 +59,26 @@ internal fun GoogleSignInButton(
containerColor = Color.White, containerColor = Color.White,
contentColor = Color(0xFF1F1F1F) contentColor = Color(0xFF1F1F1F)
), ),
border = BorderStroke(1.dp, Color(0xFFDADCE0)) border = BorderStroke(1.dp, Color(0xFF747775)),
contentPadding = PaddingValues(start = 12.dp, end = 12.dp)
) { ) {
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp) horizontalArrangement = Arrangement.spacedBy(10.dp)
) { ) {
Image(
painter = painterResource(id = R.drawable.ic_google_g),
contentDescription = null,
modifier = Modifier.size(18.dp)
)
Text( Text(
text = "G", text = "Continue with Google",
style = MaterialTheme.typography.labelLarge.copy( style = MaterialTheme.typography.labelLarge.copy(
fontWeight = FontWeight.ExtraBold, fontWeight = FontWeight.Medium,
color = Color(0xFF4285F4) fontSize = 14.sp,
lineHeight = 20.sp
) )
) )
Text("Continue with Google", style = MaterialTheme.typography.labelLarge)
} }
} }
} }

View File

@ -1,5 +1,6 @@
package app.closer.ui.auth package app.closer.ui.auth
import app.closer.R
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
@ -184,7 +185,9 @@ fun LoginScreen(
scope.launch { scope.launch {
try { try {
val credMgr = CredentialManager.create(context) val credMgr = CredentialManager.create(context)
val option = GetSignInWithGoogleOption.Builder(GOOGLE_WEB_CLIENT_ID).build() val option = GetSignInWithGoogleOption
.Builder(context.getString(R.string.default_web_client_id))
.build()
val request = GetCredentialRequest.Builder().addCredentialOption(option).build() val request = GetCredentialRequest.Builder().addCredentialOption(option).build()
val result = credMgr.getCredential(context, request) val result = credMgr.getCredential(context, request)
val idToken = GoogleIdTokenCredential.createFrom(result.credential.data).idToken val idToken = GoogleIdTokenCredential.createFrom(result.credential.data).idToken

View File

@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="18dp"
android:viewportWidth="18"
android:viewportHeight="18">
<path
android:fillColor="#4285F4"
android:pathData="M17.64,9.2c0,-0.64 -0.06,-1.25 -0.16,-1.84H9v3.48h4.84c-0.21,1.13 -0.84,2.08 -1.8,2.72v2.26h2.91c1.7,-1.57 2.69,-3.88 2.69,-6.62z" />
<path
android:fillColor="#34A853"
android:pathData="M9,18c2.43,0 4.47,-0.8 5.96,-2.18l-2.91,-2.26c-0.81,0.54 -1.84,0.86 -3.05,0.86c-2.34,0 -4.33,-1.58 -5.04,-3.71H0.96v2.33C2.44,15.98 5.48,18 9,18z" />
<path
android:fillColor="#FBBC05"
android:pathData="M3.96,10.71c-0.18,-0.54 -0.28,-1.12 -0.28,-1.71s0.1,-1.17 0.28,-1.71V4.96H0.96C0.35,6.17 0,7.55 0,9s0.35,2.83 0.96,4.04l3,-2.33z" />
<path
android:fillColor="#EA4335"
android:pathData="M9,3.58c1.32,0 2.51,0.45 3.44,1.35l2.58,-2.58C13.46,0.9 11.43,0 9,0C5.48,0 2.44,2.02 0.96,4.96l3,2.33C4.67,5.16 6.66,3.58 9,3.58z" />
</vector>