@@ -75,27 +75,28 @@ fun AuthProviderButton(
75
75
Row (
76
76
verticalAlignment = Alignment .CenterVertically
77
77
) {
78
- Image (
79
- painter = providerStyle.icon.painter,
80
- contentDescription = providerText
81
- )
82
- Spacer (modifier = Modifier .width(8 .dp))
78
+ if (providerStyle.icon != null ) {
79
+ Image (
80
+ painter = providerStyle.icon.painter,
81
+ contentDescription = providerText
82
+ )
83
+ Spacer (modifier = Modifier .width(8 .dp))
84
+ }
83
85
Text (
84
86
text = providerText
85
87
)
86
88
}
87
89
}
88
90
}
89
91
90
- private fun resolveProviderStyle (
92
+ internal fun resolveProviderStyle (
91
93
provider : AuthProvider ,
92
94
style : AuthUITheme .ProviderStyle ? ,
93
95
): AuthUITheme .ProviderStyle {
94
96
if (style != null ) return style
95
97
96
- val defaultStyle = requireNotNull(
97
- AuthUITheme .Default .providerStyles[provider.providerId]
98
- ) { " No default style found for provider: ${provider.providerId} " }
98
+ val defaultStyle =
99
+ AuthUITheme .Default .providerStyles[provider.providerId] ? : AuthUITheme .ProviderStyle .Empty
99
100
100
101
return if (provider is AuthProvider .GenericOAuth ) {
101
102
AuthUITheme .ProviderStyle (
@@ -108,7 +109,7 @@ private fun resolveProviderStyle(
108
109
}
109
110
}
110
111
111
- private fun resolveProviderLabel (
112
+ internal fun resolveProviderLabel (
112
113
provider : AuthProvider ,
113
114
stringProvider : AuthUIStringProvider
114
115
): String = when (provider) {
@@ -124,7 +125,7 @@ private fun resolveProviderLabel(
124
125
Provider .MICROSOFT -> stringProvider.signInWithMicrosoft
125
126
Provider .YAHOO -> stringProvider.signInWithYahoo
126
127
Provider .APPLE -> stringProvider.signInWithApple
127
- null -> error( " Unknown provider: ${provider.providerId} " )
128
+ null -> " Unknown Provider "
128
129
}
129
130
}
130
131
@@ -232,5 +233,18 @@ private fun PreviewAuthProviderButton() {
232
233
style = AuthUITheme .Default .providerStyles[Provider .MICROSOFT .id],
233
234
stringProvider = DefaultAuthUIStringProvider (context)
234
235
)
236
+ AuthProviderButton (
237
+ provider = AuthProvider .GenericOAuth (
238
+ providerId = " unknown_provider" ,
239
+ scopes = emptyList(),
240
+ customParameters = emptyMap(),
241
+ buttonLabel = " Sign in with Lego" ,
242
+ buttonIcon = null ,
243
+ buttonColor = null ,
244
+ contentColor = null ,
245
+ ),
246
+ onClick = {},
247
+ stringProvider = DefaultAuthUIStringProvider (context)
248
+ )
235
249
}
236
250
}
0 commit comments