@@ -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 */
2727interface 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
89192internal 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