Skip to content

Commit a665af5

Browse files
committed
Merge branch 'version-10.0.0-dev' of https://github.com/firebase/FirebaseUI-Android into feat/P2
# Conflicts: # auth/src/main/java/com/firebase/ui/auth/compose/configuration/AuthUIConfiguration.kt # auth/src/main/java/com/firebase/ui/auth/compose/ui/components/AuthProviderButton.kt # auth/src/main/java/com/firebase/ui/auth/compose/ui/method_picker/AuthMethodPicker.kt # auth/src/test/java/com/firebase/ui/auth/compose/configuration/AuthUIConfigurationTest.kt # auth/src/test/java/com/firebase/ui/auth/compose/ui/components/AuthProviderButtonTest.kt # auth/src/test/java/com/firebase/ui/auth/compose/ui/method_picker/AuthMethodPickerTest.kt
2 parents 751fcc9 + 68df21d commit a665af5

File tree

4 files changed

+81
-66
lines changed

4 files changed

+81
-66
lines changed

auth/src/main/java/com/firebase/ui/auth/compose/configuration/AuthUIConfiguration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import android.content.Context
1818
import java.util.Locale
1919
import com.google.firebase.auth.ActionCodeSettings
2020
import androidx.compose.ui.graphics.vector.ImageVector
21+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
22+
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
2123
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvider
2224
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvidersBuilder
2325
import com.firebase.ui.auth.compose.configuration.auth_provider.Provider
24-
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
25-
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
2626
import com.firebase.ui.auth.compose.configuration.theme.AuthUITheme
2727

2828
fun authUIConfiguration(block: AuthUIConfigurationBuilder.() -> Unit) =

auth/src/main/java/com/firebase/ui/auth/compose/ui/components/AuthProviderButton.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ fun AuthProviderButton(
7272
modifier = modifier
7373
.width(208.dp),
7474
contentPadding = PaddingValues(horizontal = 12.dp),
75+
contentPadding = PaddingValues(horizontal = 12.dp),
7576
colors = ButtonDefaults.buttonColors(
7677
containerColor = providerStyle.backgroundColor,
7778
contentColor = providerStyle.contentColor,
@@ -84,8 +85,7 @@ fun AuthProviderButton(
8485
enabled = enabled,
8586
) {
8687
Row(
87-
modifier = Modifier
88-
.fillMaxWidth(),
88+
modifier = modifier,
8989
verticalAlignment = Alignment.CenterVertically,
9090
horizontalArrangement = Arrangement.Start
9191
) {

auth/src/main/java/com/firebase/ui/auth/compose/ui/method_picker/AuthMethodPicker.kt

Lines changed: 76 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ package com.firebase.ui.auth.compose.ui.method_picker
22

33
import androidx.compose.foundation.Image
44
import androidx.compose.foundation.layout.Box
5+
import androidx.compose.foundation.layout.BoxWithConstraints
56
import androidx.compose.foundation.layout.Column
67
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
79
import androidx.compose.foundation.layout.padding
810
import androidx.compose.foundation.layout.safeDrawingPadding
911
import androidx.compose.foundation.lazy.LazyColumn
12+
import androidx.compose.foundation.lazy.itemsIndexed
1013
import androidx.compose.runtime.Composable
1114
import androidx.compose.ui.Alignment
1215
import androidx.compose.ui.Modifier
@@ -29,8 +32,8 @@ import com.firebase.ui.auth.compose.ui.components.AuthProviderButton
2932
* ```kotlin
3033
* AuthMethodPicker(
3134
* providers = listOf(
32-
* AuthProvider.Google(),
33-
* AuthProvider.Email(),
35+
* AuthProvider.Google(),
36+
* AuthProvider.Email(),
3437
* ),
3538
* onProviderSelected = { provider -> /* ... */ }
3639
* )
@@ -68,7 +71,8 @@ fun AuthMethodPicker(
6871
logo?.let {
6972
Image(
7073
modifier = Modifier
71-
.weight(0.4f),
74+
.weight(0.4f)
75+
.align(Alignment.CenterHorizontally),
7276
painter = it.painter,
7377
contentDescription = if (inPreview) ""
7478
else stringResource(R.string.fui_auth_method_picker_logo)
@@ -77,26 +81,32 @@ fun AuthMethodPicker(
7781
if (customLayout != null) {
7882
customLayout(providers, onProviderSelected)
7983
} else {
80-
LazyColumn(
84+
BoxWithConstraints(
8185
modifier = Modifier
82-
.fillMaxSize()
83-
.weight(1f)
84-
.testTag("AuthMethodPicker LazyColumn"),
85-
horizontalAlignment = Alignment.CenterHorizontally,
86+
.weight(1f),
8687
) {
87-
items(providers.size) { index ->
88-
val provider = providers[index]
89-
Box(
90-
modifier = Modifier
91-
.padding(bottom = 16.dp)
92-
) {
93-
AuthProviderButton(
94-
onClick = {
95-
onProviderSelected(provider)
96-
},
97-
provider = provider,
98-
stringProvider = DefaultAuthUIStringProvider(context)
99-
)
88+
val paddingWidth = maxWidth.value * 0.23
89+
LazyColumn(
90+
modifier = Modifier
91+
.padding(horizontal = paddingWidth.dp)
92+
.testTag("AuthMethodPicker LazyColumn"),
93+
horizontalAlignment = Alignment.CenterHorizontally,
94+
) {
95+
itemsIndexed(providers) { index, provider ->
96+
Box(
97+
modifier = Modifier
98+
.padding(bottom = if (index < providers.lastIndex) 16.dp else 0.dp)
99+
) {
100+
AuthProviderButton(
101+
modifier = Modifier
102+
.fillMaxWidth(),
103+
onClick = {
104+
onProviderSelected(provider)
105+
},
106+
provider = provider,
107+
stringProvider = DefaultAuthUIStringProvider(context)
108+
)
109+
}
100110
}
101111
}
102112
}
@@ -118,46 +128,51 @@ fun AuthMethodPicker(
118128
@Preview(showBackground = true)
119129
@Composable
120130
fun PreviewAuthMethodPicker() {
121-
AuthMethodPicker(
122-
providers = listOf(
123-
AuthProvider.Email(
124-
actionCodeSettings = null,
125-
passwordValidationRules = emptyList()
126-
),
127-
AuthProvider.Phone(
128-
defaultNumber = null,
129-
defaultCountryCode = null,
130-
allowedCountries = null,
131-
),
132-
AuthProvider.Google(
133-
scopes = emptyList(),
134-
serverClientId = null
135-
),
136-
AuthProvider.Facebook(),
137-
AuthProvider.Twitter(
138-
customParameters = emptyMap()
139-
),
140-
AuthProvider.Github(
141-
customParameters = emptyMap()
142-
),
143-
AuthProvider.Microsoft(
144-
tenant = null,
145-
customParameters = emptyMap()
146-
),
147-
AuthProvider.Yahoo(
148-
customParameters = emptyMap()
149-
),
150-
AuthProvider.Apple(
151-
locale = null,
152-
customParameters = emptyMap()
131+
Column(
132+
modifier = Modifier
133+
.fillMaxSize()
134+
) {
135+
AuthMethodPicker(
136+
providers = listOf(
137+
AuthProvider.Email(
138+
actionCodeSettings = null,
139+
passwordValidationRules = emptyList()
140+
),
141+
AuthProvider.Phone(
142+
defaultNumber = null,
143+
defaultCountryCode = null,
144+
allowedCountries = null,
145+
),
146+
AuthProvider.Google(
147+
scopes = emptyList(),
148+
serverClientId = null
149+
),
150+
AuthProvider.Facebook(),
151+
AuthProvider.Twitter(
152+
customParameters = emptyMap()
153+
),
154+
AuthProvider.Github(
155+
customParameters = emptyMap()
156+
),
157+
AuthProvider.Microsoft(
158+
tenant = null,
159+
customParameters = emptyMap()
160+
),
161+
AuthProvider.Yahoo(
162+
customParameters = emptyMap()
163+
),
164+
AuthProvider.Apple(
165+
locale = null,
166+
customParameters = emptyMap()
167+
),
168+
AuthProvider.Anonymous,
153169
),
154-
AuthProvider.Anonymous,
155-
),
156-
logo = AuthUIAsset.Resource(R.drawable.fui_ic_check_circle_black_128dp),
157-
onProviderSelected = { provider ->
170+
logo = AuthUIAsset.Resource(R.drawable.fui_ic_check_circle_black_128dp),
171+
onProviderSelected = { provider ->
158172

159-
},
160-
termsOfServiceUrl = "https://example.com/terms",
161-
privacyPolicyUrl = "https://example.com/privacy"
162-
)
173+
},
174+
termsOfServiceUrl = "https://example.com/terms",
175+
privacyPolicyUrl = "https://example.com/privacy"
176+
)
177+
}
163178
}

auth/src/test/java/com/firebase/ui/auth/compose/configuration/AuthUIConfigurationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ import androidx.compose.material.icons.Icons
2020
import androidx.compose.material.icons.filled.AccountCircle
2121
import androidx.test.core.app.ApplicationProvider
2222
import com.firebase.ui.auth.R
23-
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvider
2423
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
2524
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
25+
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvider
2626
import com.firebase.ui.auth.compose.configuration.theme.AuthUITheme
2727
import com.google.common.truth.Truth.assertThat
2828
import com.google.firebase.auth.actionCodeSettings

0 commit comments

Comments
 (0)