Skip to content

Commit 7f29a25

Browse files
committed
add/expose existing localized strings to allow overrides
1 parent ea1c2fb commit 7f29a25

File tree

1 file changed

+198
-3
lines changed

1 file changed

+198
-3
lines changed

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

Lines changed: 198 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,31 @@ import java.util.Locale
2121

2222
/**
2323
* An interface for providing localized string resources. This interface defines methods for all
24-
* user-facing strings, such as initializing(), signInWithGoogle(), invalidEmail(),
24+
* user-facing strings, such as initializing(), signInWithGoogle(), invalidEmailAddress(),
2525
* passwordsDoNotMatch(), etc., allowing for complete localization of the UI.
2626
*/
2727
interface AuthUIStringProvider {
2828
/** Loading text displayed during initialization or processing states */
2929
val initializing: String
3030

31+
/** Text for Google Provider */
32+
val googleProvider: String
33+
34+
/** Text for Facebook Provider */
35+
val facebookProvider: String
36+
37+
/** Text for Twitter Provider */
38+
val twitterProvider: String
39+
40+
/** Text for Github Provider */
41+
val githubProvider: String
42+
43+
/** Text for Phone Provider */
44+
val phoneProvider: String
45+
46+
/** Text for Email Provider */
47+
val emailProvider: String
48+
3149
/** Button text for Google sign-in option */
3250
val signInWithGoogle: String
3351

@@ -84,13 +102,100 @@ interface AuthUIStringProvider {
84102

85103
/** Error message when password is missing at least one special character */
86104
val passwordMissingSpecialCharacter: String
105+
106+
// Email Authentication Strings
107+
/** Title for email signup form */
108+
val titleRegisterEmail: String
109+
110+
/** Hint for email input field */
111+
val emailHint: String
112+
113+
/** Hint for password input field */
114+
val passwordHint: String
115+
116+
/** Hint for new password input field */
117+
val newPasswordHint: String
118+
119+
/** Hint for name input field */
120+
val nameHint: String
121+
122+
/** Button text to save form */
123+
val buttonTextSave: String
124+
125+
/** Welcome back header for email users */
126+
val welcomeBackEmailHeader: String
127+
128+
/** Trouble signing in link text */
129+
val troubleSigningIn: String
130+
131+
// Phone Authentication Strings
132+
/** Phone number entry form title */
133+
val verifyPhoneNumberTitle: String
134+
135+
/** Hint for phone input field */
136+
val phoneHint: String
137+
138+
/** Hint for country input field */
139+
val countryHint: String
140+
141+
/** Invalid phone number error */
142+
val invalidPhoneNumber: String
143+
144+
/** Phone verification code entry form title */
145+
val enterConfirmationCode: String
146+
147+
/** Button text to verify phone number */
148+
val verifyPhoneNumber: String
149+
150+
/** Resend code countdown timer */
151+
val resendCodeIn: String
152+
153+
/** Resend code link text */
154+
val resendCode: String
155+
156+
/** Verifying progress text */
157+
val verifying: String
158+
159+
/** Wrong verification code error */
160+
val incorrectCodeDialogBody: String
161+
162+
/** SMS terms of service warning */
163+
val smsTermsOfService: String
164+
165+
// Provider Picker Strings
166+
/** Common button text for sign in */
167+
val signInDefault: String
168+
169+
/** Common button text for continue */
170+
val continueText: String
171+
172+
/** Common button text for next */
173+
val nextDefault: String
174+
175+
// General Error Messages
176+
/** General unknown error message */
177+
val errorUnknown: String
178+
179+
/** Required field error */
180+
val requiredField: String
181+
182+
/** Loading progress text */
183+
val progressDialogLoading: String
184+
185+
/** Network error message */
186+
val noInternet: String
187+
188+
/** TOTP Code prompt */
189+
val enterTOTPCode: String
87190
}
88191

89192
internal class DefaultAuthUIStringProvider(
90193
private val context: Context,
91194
private val locale: Locale? = null,
92195
) : AuthUIStringProvider {
93-
196+
/**
197+
* Allows overriding locale.
198+
*/
94199
private val localizedContext = locale?.let { locale ->
95200
context.createConfigurationContext(
96201
Configuration(context.resources.configuration).apply {
@@ -100,11 +205,27 @@ internal class DefaultAuthUIStringProvider(
100205
} ?: context
101206

102207
/**
103-
* General Strings
208+
* Common Strings
104209
*/
105210
override val initializing: String
106211
get() = ""
107212

213+
/**
214+
* Auth Provider strings
215+
*/
216+
override val googleProvider: String
217+
get() = localizedContext.getString(R.string.fui_idp_name_google)
218+
override val facebookProvider: String
219+
get() = localizedContext.getString(R.string.fui_idp_name_facebook)
220+
override val twitterProvider: String
221+
get() = localizedContext.getString(R.string.fui_idp_name_twitter)
222+
override val githubProvider: String
223+
get() = localizedContext.getString(R.string.fui_idp_name_github)
224+
override val phoneProvider: String
225+
get() = localizedContext.getString(R.string.fui_idp_name_phone)
226+
override val emailProvider: String
227+
get() = localizedContext.getString(R.string.fui_idp_name_email)
228+
108229
/**
109230
* Auth Provider Button Strings
110231
*/
@@ -154,4 +275,78 @@ internal class DefaultAuthUIStringProvider(
154275
get() = localizedContext.getString(R.string.fui_error_password_missing_digit)
155276
override val passwordMissingSpecialCharacter: String
156277
get() = localizedContext.getString(R.string.fui_error_password_missing_special_character)
278+
279+
/**
280+
* Email Authentication Strings
281+
*/
282+
override val titleRegisterEmail: String
283+
get() = localizedContext.getString(R.string.fui_title_register_email)
284+
override val emailHint: String
285+
get() = localizedContext.getString(R.string.fui_email_hint)
286+
override val passwordHint: String
287+
get() = localizedContext.getString(R.string.fui_password_hint)
288+
override val newPasswordHint: String
289+
get() = localizedContext.getString(R.string.fui_new_password_hint)
290+
override val nameHint: String
291+
get() = localizedContext.getString(R.string.fui_name_hint)
292+
override val buttonTextSave: String
293+
get() = localizedContext.getString(R.string.fui_button_text_save)
294+
override val welcomeBackEmailHeader: String
295+
get() = localizedContext.getString(R.string.fui_welcome_back_email_header)
296+
override val troubleSigningIn: String
297+
get() = localizedContext.getString(R.string.fui_trouble_signing_in)
298+
299+
/**
300+
* Phone Authentication Strings
301+
*/
302+
override val verifyPhoneNumberTitle: String
303+
get() = localizedContext.getString(R.string.fui_verify_phone_number_title)
304+
override val phoneHint: String
305+
get() = localizedContext.getString(R.string.fui_phone_hint)
306+
override val countryHint: String
307+
get() = localizedContext.getString(R.string.fui_country_hint)
308+
override val invalidPhoneNumber: String
309+
get() = localizedContext.getString(R.string.fui_invalid_phone_number)
310+
override val enterConfirmationCode: String
311+
get() = localizedContext.getString(R.string.fui_enter_confirmation_code)
312+
override val verifyPhoneNumber: String
313+
get() = localizedContext.getString(R.string.fui_verify_phone_number)
314+
override val resendCodeIn: String
315+
get() = localizedContext.getString(R.string.fui_resend_code_in)
316+
override val resendCode: String
317+
get() = localizedContext.getString(R.string.fui_resend_code)
318+
override val verifying: String
319+
get() = localizedContext.getString(R.string.fui_verifying)
320+
override val incorrectCodeDialogBody: String
321+
get() = localizedContext.getString(R.string.fui_incorrect_code_dialog_body)
322+
override val smsTermsOfService: String
323+
get() = localizedContext.getString(R.string.fui_sms_terms_of_service)
324+
325+
/**
326+
* Multi-Factor Authentication Strings
327+
*/
328+
override val enterTOTPCode: String
329+
get() = ""
330+
331+
/**
332+
* Provider Picker Strings
333+
*/
334+
override val signInDefault: String
335+
get() = localizedContext.getString(R.string.fui_sign_in_default)
336+
override val continueText: String
337+
get() = localizedContext.getString(R.string.fui_continue)
338+
override val nextDefault: String
339+
get() = localizedContext.getString(R.string.fui_next_default)
340+
341+
/**
342+
* General Error Messages
343+
*/
344+
override val errorUnknown: String
345+
get() = localizedContext.getString(R.string.fui_error_unknown)
346+
override val requiredField: String
347+
get() = localizedContext.getString(R.string.fui_required_field)
348+
override val progressDialogLoading: String
349+
get() = localizedContext.getString(R.string.fui_progress_dialog_loading)
350+
override val noInternet: String
351+
get() = localizedContext.getString(R.string.fui_no_internet)
157352
}

0 commit comments

Comments
 (0)