Skip to content

Commit 68df21d

Browse files
authored
feat: AuthMethodPicker (#2230)
* feat: AuthMethodPicker, logo and provider theme style * chore: organize folder structure * feat: TOS and PP footer, ui tests for AuthMethodPicker * chore: tests folder structure * fix: use screen width for adaptive padding values * chore: remove unused modifier
1 parent 5960b4b commit 68df21d

File tree

20 files changed

+636
-81
lines changed

20 files changed

+636
-81
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,8 +18,8 @@ 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.stringprovider.AuthUIStringProvider
22-
import com.firebase.ui.auth.compose.configuration.stringprovider.DefaultAuthUIStringProvider
21+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
22+
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
2323
import com.firebase.ui.auth.compose.configuration.theme.AuthUITheme
2424

2525
fun actionCodeSettings(block: ActionCodeSettings.Builder.() -> Unit) =

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
package com.firebase.ui.auth.compose.configuration
1616

17-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
17+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
1818

1919
/**
2020
* An abstract class representing a set of validation rules that can be applied to a password field,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* limitations under the License.
1313
*/
1414

15-
package com.firebase.ui.auth.compose.configuration.stringprovider
15+
package com.firebase.ui.auth.compose.configuration.string_provider
1616

1717
/**
1818
* An interface for providing localized string resources. This interface defines methods for all
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* limitations under the License.
1313
*/
1414

15-
package com.firebase.ui.auth.compose.configuration.stringprovider
15+
package com.firebase.ui.auth.compose.configuration.string_provider
1616

1717
import android.content.Context
1818
import com.firebase.ui.auth.compose.configuration.AuthProvider
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* limitations under the License.
1313
*/
1414

15-
package com.firebase.ui.auth.compose.configuration.stringprovider
15+
package com.firebase.ui.auth.compose.configuration.string_provider
1616

1717
import android.content.Context
1818
import android.content.res.Configuration

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
package com.firebase.ui.auth.compose.configuration.validators
1616

17-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
17+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
1818

1919
internal class EmailValidator(override val stringProvider: AuthUIStringProvider) : FieldValidator {
2020
private var _validationStatus = FieldValidationStatus(hasError = false, errorMessage = null)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
package com.firebase.ui.auth.compose.configuration.validators
1616

17-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
17+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
1818

1919
/**
2020
* An interface for validating input fields.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
package com.firebase.ui.auth.compose.configuration.validators
1616

17-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
17+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
1818
import com.firebase.ui.auth.compose.configuration.PasswordRule
1919

2020
internal class PasswordValidator(

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

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package com.firebase.ui.auth.compose
1+
package com.firebase.ui.auth.compose.ui.components
22

33
import androidx.compose.foundation.Image
44
import androidx.compose.material3.Icon
55
import androidx.compose.foundation.layout.Arrangement
66
import androidx.compose.foundation.layout.Column
7+
import androidx.compose.foundation.layout.PaddingValues
78
import androidx.compose.foundation.layout.Row
89
import androidx.compose.foundation.layout.Spacer
910
import androidx.compose.foundation.layout.fillMaxSize
11+
import androidx.compose.foundation.layout.fillMaxWidth
1012
import androidx.compose.foundation.layout.width
1113
import androidx.compose.foundation.shape.RoundedCornerShape
1214
import androidx.compose.material.icons.Icons
@@ -19,12 +21,14 @@ import androidx.compose.ui.Alignment
1921
import androidx.compose.ui.Modifier
2022
import androidx.compose.ui.graphics.Color
2123
import androidx.compose.ui.platform.LocalContext
24+
import androidx.compose.ui.text.style.TextAlign
25+
import androidx.compose.ui.text.style.TextOverflow
2226
import androidx.compose.ui.tooling.preview.Preview
2327
import androidx.compose.ui.unit.dp
2428
import com.firebase.ui.auth.compose.configuration.AuthProvider
2529
import com.firebase.ui.auth.compose.configuration.Provider
26-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
27-
import com.firebase.ui.auth.compose.configuration.stringprovider.DefaultAuthUIStringProvider
30+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
31+
import com.firebase.ui.auth.compose.configuration.string_provider.DefaultAuthUIStringProvider
2832
import com.firebase.ui.auth.compose.configuration.theme.AuthUIAsset
2933
import com.firebase.ui.auth.compose.configuration.theme.AuthUITheme
3034

@@ -63,10 +67,11 @@ fun AuthProviderButton(
6367
stringProvider: AuthUIStringProvider,
6468
) {
6569
val providerStyle = resolveProviderStyle(provider, style)
66-
val providerText = resolveProviderLabel(provider, stringProvider)
70+
val providerLabel = resolveProviderLabel(provider, stringProvider)
6771

6872
Button(
6973
modifier = modifier,
74+
contentPadding = PaddingValues(horizontal = 12.dp),
7075
colors = ButtonDefaults.buttonColors(
7176
containerColor = providerStyle.backgroundColor,
7277
contentColor = providerStyle.contentColor,
@@ -79,27 +84,31 @@ fun AuthProviderButton(
7984
enabled = enabled,
8085
) {
8186
Row(
82-
verticalAlignment = Alignment.CenterVertically
87+
modifier = modifier,
88+
verticalAlignment = Alignment.CenterVertically,
89+
horizontalArrangement = Arrangement.Start
8390
) {
8491
val providerIcon = providerStyle.icon
8592
if (providerIcon != null) {
8693
val iconTint = providerStyle.iconTint
8794
if (iconTint != null) {
8895
Icon(
8996
painter = providerIcon.painter,
90-
contentDescription = providerText,
97+
contentDescription = providerLabel,
9198
tint = iconTint
9299
)
93100
} else {
94101
Image(
95102
painter = providerIcon.painter,
96-
contentDescription = providerText
103+
contentDescription = providerLabel
97104
)
98105
}
99-
Spacer(modifier = Modifier.width(8.dp))
106+
Spacer(modifier = Modifier.width(12.dp))
100107
}
101108
Text(
102-
text = providerText
109+
text = providerLabel,
110+
overflow = TextOverflow.Ellipsis,
111+
maxLines = 1,
103112
)
104113
}
105114
}

auth/src/main/java/com/firebase/ui/auth/compose/ErrorRecoveryDialog.kt renamed to auth/src/main/java/com/firebase/ui/auth/compose/ui/components/ErrorRecoveryDialog.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* limitations under the License.
1313
*/
1414

15-
package com.firebase.ui.auth.compose
15+
package com.firebase.ui.auth.compose.ui.components
1616

1717
import androidx.compose.material3.AlertDialog
1818
import androidx.compose.material3.MaterialTheme
@@ -22,7 +22,8 @@ import androidx.compose.runtime.Composable
2222
import androidx.compose.ui.Modifier
2323
import androidx.compose.ui.text.style.TextAlign
2424
import androidx.compose.ui.window.DialogProperties
25-
import com.firebase.ui.auth.compose.configuration.stringprovider.AuthUIStringProvider
25+
import com.firebase.ui.auth.compose.AuthException
26+
import com.firebase.ui.auth.compose.configuration.string_provider.AuthUIStringProvider
2627

2728
/**
2829
* A composable dialog for displaying authentication errors with recovery options.

0 commit comments

Comments
 (0)