Skip to content

Commit 5bd8c7c

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 5bd8c7c

File tree

4 files changed

+83
-74
lines changed

4 files changed

+83
-74
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: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.PaddingValues
88
import androidx.compose.foundation.layout.Row
99
import androidx.compose.foundation.layout.Spacer
1010
import androidx.compose.foundation.layout.fillMaxSize
11-
import androidx.compose.foundation.layout.fillMaxWidth
1211
import androidx.compose.foundation.layout.width
1312
import androidx.compose.foundation.shape.RoundedCornerShape
1413
import androidx.compose.material.icons.Icons
@@ -21,6 +20,7 @@ import androidx.compose.ui.Alignment
2120
import androidx.compose.ui.Modifier
2221
import androidx.compose.ui.graphics.Color
2322
import androidx.compose.ui.platform.LocalContext
23+
import androidx.compose.ui.text.style.TextAlign
2424
import androidx.compose.ui.text.style.TextOverflow
2525
import androidx.compose.ui.tooling.preview.Preview
2626
import androidx.compose.ui.unit.dp
@@ -69,8 +69,7 @@ fun AuthProviderButton(
6969
val providerLabel = resolveProviderLabel(provider, stringProvider)
7070

7171
Button(
72-
modifier = modifier
73-
.width(208.dp),
72+
modifier = modifier,
7473
contentPadding = PaddingValues(horizontal = 12.dp),
7574
colors = ButtonDefaults.buttonColors(
7675
containerColor = providerStyle.backgroundColor,
@@ -84,8 +83,7 @@ fun AuthProviderButton(
8483
enabled = enabled,
8584
) {
8685
Row(
87-
modifier = Modifier
88-
.fillMaxWidth(),
86+
modifier = modifier,
8987
verticalAlignment = Alignment.CenterVertically,
9088
horizontalArrangement = Arrangement.Start
9189
) {

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

Lines changed: 76 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ 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
8-
import androidx.compose.foundation.layout.safeDrawingPadding
910
import androidx.compose.foundation.lazy.LazyColumn
11+
import androidx.compose.foundation.lazy.itemsIndexed
1012
import androidx.compose.runtime.Composable
1113
import androidx.compose.ui.Alignment
1214
import androidx.compose.ui.Modifier
@@ -29,8 +31,8 @@ import com.firebase.ui.auth.compose.ui.components.AuthProviderButton
2931
* ```kotlin
3032
* AuthMethodPicker(
3133
* providers = listOf(
32-
* AuthProvider.Google(),
33-
* AuthProvider.Email(),
34+
* AuthProvider.Google(),
35+
* AuthProvider.Email(),
3436
* ),
3537
* onProviderSelected = { provider -> /* ... */ }
3638
* )
@@ -61,14 +63,12 @@ fun AuthMethodPicker(
6163

6264
Column(
6365
modifier = modifier
64-
.fillMaxSize()
65-
.safeDrawingPadding(),
66-
horizontalAlignment = Alignment.CenterHorizontally
6766
) {
6867
logo?.let {
6968
Image(
7069
modifier = Modifier
71-
.weight(0.4f),
70+
.weight(0.4f)
71+
.align(Alignment.CenterHorizontally),
7272
painter = it.painter,
7373
contentDescription = if (inPreview) ""
7474
else stringResource(R.string.fui_auth_method_picker_logo)
@@ -77,26 +77,32 @@ fun AuthMethodPicker(
7777
if (customLayout != null) {
7878
customLayout(providers, onProviderSelected)
7979
} else {
80-
LazyColumn(
80+
BoxWithConstraints(
8181
modifier = Modifier
82-
.fillMaxSize()
83-
.weight(1f)
84-
.testTag("AuthMethodPicker LazyColumn"),
85-
horizontalAlignment = Alignment.CenterHorizontally,
82+
.weight(1f),
8683
) {
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-
)
84+
val paddingWidth = maxWidth.value * 0.23
85+
LazyColumn(
86+
modifier = Modifier
87+
.padding(horizontal = paddingWidth.dp)
88+
.testTag("AuthMethodPicker LazyColumn"),
89+
horizontalAlignment = Alignment.CenterHorizontally,
90+
) {
91+
itemsIndexed(providers) { index, provider ->
92+
Box(
93+
modifier = Modifier
94+
.padding(bottom = if (index < providers.lastIndex) 16.dp else 0.dp)
95+
) {
96+
AuthProviderButton(
97+
modifier = Modifier
98+
.fillMaxWidth(),
99+
onClick = {
100+
onProviderSelected(provider)
101+
},
102+
provider = provider,
103+
stringProvider = DefaultAuthUIStringProvider(context)
104+
)
105+
}
100106
}
101107
}
102108
}
@@ -118,46 +124,51 @@ fun AuthMethodPicker(
118124
@Preview(showBackground = true)
119125
@Composable
120126
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()
127+
Column(
128+
modifier = Modifier
129+
.fillMaxSize()
130+
) {
131+
AuthMethodPicker(
132+
providers = listOf(
133+
AuthProvider.Email(
134+
actionCodeSettings = null,
135+
passwordValidationRules = emptyList()
136+
),
137+
AuthProvider.Phone(
138+
defaultNumber = null,
139+
defaultCountryCode = null,
140+
allowedCountries = null,
141+
),
142+
AuthProvider.Google(
143+
scopes = emptyList(),
144+
serverClientId = null
145+
),
146+
AuthProvider.Facebook(),
147+
AuthProvider.Twitter(
148+
customParameters = emptyMap()
149+
),
150+
AuthProvider.Github(
151+
customParameters = emptyMap()
152+
),
153+
AuthProvider.Microsoft(
154+
tenant = null,
155+
customParameters = emptyMap()
156+
),
157+
AuthProvider.Yahoo(
158+
customParameters = emptyMap()
159+
),
160+
AuthProvider.Apple(
161+
locale = null,
162+
customParameters = emptyMap()
163+
),
164+
AuthProvider.Anonymous,
153165
),
154-
AuthProvider.Anonymous,
155-
),
156-
logo = AuthUIAsset.Resource(R.drawable.fui_ic_check_circle_black_128dp),
157-
onProviderSelected = { provider ->
166+
logo = AuthUIAsset.Resource(R.drawable.fui_ic_check_circle_black_128dp),
167+
onProviderSelected = { provider ->
158168

159-
},
160-
termsOfServiceUrl = "https://example.com/terms",
161-
privacyPolicyUrl = "https://example.com/privacy"
162-
)
169+
},
170+
termsOfServiceUrl = "https://example.com/terms",
171+
privacyPolicyUrl = "https://example.com/privacy"
172+
)
173+
}
163174
}

auth/src/test/java/com/firebase/ui/auth/compose/ui/components/AuthProviderButtonTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import androidx.compose.ui.test.onNodeWithContentDescription
2727
import androidx.compose.ui.test.onNodeWithText
2828
import androidx.compose.ui.test.performClick
2929
import androidx.test.core.app.ApplicationProvider
30-
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvider
31-
import com.firebase.ui.auth.compose.configuration.auth_provider.Provider
3230
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
3331
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
3432
import com.firebase.ui.auth.compose.configuration.theme.AuthUIAsset
@@ -41,6 +39,8 @@ import org.junit.runner.RunWith
4139
import org.robolectric.RobolectricTestRunner
4240
import org.robolectric.annotation.Config
4341
import com.firebase.ui.auth.R
42+
import com.firebase.ui.auth.compose.configuration.auth_provider.AuthProvider
43+
import com.firebase.ui.auth.compose.configuration.auth_provider.Provider
4444

4545
/**
4646
* Unit tests for [AuthProviderButton] covering UI interactions, styling,

0 commit comments

Comments
 (0)