"Fix" Google signin style

This commit is contained in:
MM20 2022-09-03 12:47:34 +02:00
parent e55ab9116b
commit 1536cb7365
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 108 additions and 18 deletions

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="46dp"
android:height="46dp"
android:viewportWidth="46"
android:viewportHeight="46">
<path
android:pathData="m45.265,23.521c0,-1.624 -0.146,-3.186 -0.416,-4.685L23.278,18.836L23.278,27.695L35.604,27.695c-0.531,2.863 -2.145,5.288 -4.57,6.912v5.747h7.402c4.331,-3.987 6.829,-9.859 6.829,-16.834z"
android:strokeWidth="2.54476"
android:fillColor="#4285f4"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
<path
android:pathData="m23.278,45.903c6.184,0 11.368,-2.051 15.157,-5.549l-7.402,-5.747c-2.051,1.374 -4.674,2.186 -7.756,2.186 -5.965,0 -11.014,-4.029 -12.815,-9.442h-7.652v5.934C6.58,40.77 14.325,45.903 23.278,45.903Z"
android:strokeWidth="2.54476"
android:fillColor="#34a853"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
<path
android:pathData="M10.463,27.352C10.005,25.977 9.745,24.509 9.745,23c0,-1.51 0.26,-2.977 0.718,-4.352L10.463,12.715L2.811,12.715C1.26,15.806 0.375,19.304 0.375,23c0,3.696 0.885,7.194 2.436,10.285z"
android:strokeWidth="2.54476"
android:fillColor="#fbbc05"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
<path
android:pathData="m23.278,9.206c3.363,0 6.382,1.156 8.755,3.425l6.569,-6.569C34.636,2.367 29.451,0.097 23.278,0.097c-8.953,0 -16.698,5.132 -20.467,12.617l7.652,5.934c1.801,-5.413 6.85,-9.442 12.815,-9.442z"
android:strokeWidth="2.54476"
android:fillColor="#ea4335"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
</vector>

View File

@ -1,16 +1,28 @@
package de.mm20.launcher2.ui.settings.accounts
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
@ -104,7 +116,10 @@ fun AccountsSettingsScreen() {
if (account != null) {
viewModel.signOut(AccountType.Microsoft)
} else {
viewModel.signIn(context as AppCompatActivity, AccountType.Microsoft)
viewModel.signIn(
context as AppCompatActivity,
AccountType.Microsoft
)
}
}
)
@ -115,25 +130,70 @@ fun AccountsSettingsScreen() {
item {
PreferenceCategory(title = stringResource(R.string.preference_category_services_google)) {
val account by viewModel.googleUser.observeAsState()
Preference(
title = if (account != null) {
stringResource(R.string.preference_signin_logout)
} else {
stringResource(R.string.preference_google_signin)
},
summary = account?.let {
stringResource(R.string.preference_signin_user, it.userName)
} ?: stringResource(R.string.preference_google_signin_summary),
onClick = {
if (account != null) {
viewModel.signOut(AccountType.Google)
} else {
viewModel.signIn(context as AppCompatActivity, AccountType.Google)
}
if (account == null) {
Box(modifier = Modifier
.padding(start = 56.dp)
.padding(16.dp)) {
GoogleSigninButton(
onClick = {
viewModel.signIn(
context as AppCompatActivity,
AccountType.Google
)
}
)
}
)
} else {
Preference(
title = stringResource(R.string.preference_signin_logout),
summary = account?.userName?.let {
stringResource(R.string.preference_signin_user, it)
},
onClick = {
viewModel.signOut(AccountType.Google)
}
)
}
}
}
}
}
}
@Composable
fun GoogleSigninButton(
onClick: () -> Unit,
) {
Surface(
modifier = Modifier.height(40.dp),
shadowElevation = 1.dp,
color = Color.White,
shape = RoundedCornerShape(2.dp),
onClick = onClick
) {
Row(
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier
.size(40.dp)
.background(Color.White),
contentAlignment = Alignment.Center
) {
Image(
modifier = Modifier.size(18.dp),
painter = painterResource(id = R.drawable.ic_google_g),
contentDescription = null
)
}
Text(
modifier = Modifier.padding(start = 13.dp, end = 8.dp),
text = stringResource(id = R.string.preference_google_signin),
fontFamily = FontFamily.SansSerif,
color = Color(0f, 0f, 0f, 0.54f),
fontSize = 14.sp,
fontWeight = FontWeight.Medium
)
}
}
}