-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Proposal
Allow developers to pass their own XML resource for the main login screen:
AuthUI.getInstance().createSignInIntentBuilder()
// ...
.setTheme(...)
.setMainLayout(R.xml.my_custom_layout) // If not provided, default used
.build()We would define an implicit public API specifying which resource IDs need to be present in that XML screen in order for us to add controls to it, such as:
- A
ViewGroupfor us to add the sign-in provider buttons - A
TextViewfor the Terms of Service and Privacy Policy disclosure - A
ProgressBarto show loading operations - An option to use your own sign-in buttons and just let us add click listeners.
Note that this proposal only affects the first screen. The rest would still be governed by the setTheme() attribute. There are too many other screens, and their functionality is too complex, to allow for full user customization of every one.
Rationale
We have gotten many requests to be able to customize the main UI more such as:
#1383, #753, #619, #266, #236, #229
When looking at popular Android apps, the sign-in method selection screen is often a showcase for the brand and the UI varies from app to app. There's no way to add more "options" to our system to encompass all use cases.
Here are some examples of screens from other apps that I like and would like to enable. While we can't enable every single feature shown in these screenshots, we can at least allow developers to get most of the way there and create an immersive look and feel without writing anything besides XML.



