Skip to content

Commit e8baa0e

Browse files
authored
Add support for dark themes (#367)
* add support for a dark theme * fix for text color propagation * set the edit text color
1 parent 98fc39b commit e8baa0e

File tree

12 files changed

+106
-95
lines changed

12 files changed

+106
-95
lines changed

app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ public class AuthUiActivity extends AppCompatActivity {
6969
@BindView(R.id.purple_theme)
7070
RadioButton mUsePurpleTheme;
7171

72+
@BindView(R.id.dark_theme)
73+
RadioButton mUseDarkTheme;
74+
7275
@BindView(R.id.email_provider)
7376
CheckBox mUseEmailProvider;
7477

@@ -249,6 +252,10 @@ private int getSelectedTheme() {
249252
return R.style.PurpleTheme;
250253
}
251254

255+
if (mUseDarkTheme.isChecked()) {
256+
return R.style.DarkTheme;
257+
}
258+
252259
return R.style.GreenTheme;
253260
}
254261

app/src/main/res/layout/auth_ui_layout.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@
6262
android:layout_width="wrap_content"
6363
android:layout_height="wrap_content"
6464
android:text="@string/green_theme" />
65+
66+
<RadioButton
67+
android:id="@+id/dark_theme"
68+
android:layout_width="wrap_content"
69+
android:layout_height="wrap_content"
70+
android:text="@string/dark_theme" />
6571
</RadioGroup>
6672

6773
<TextView

app/src/main/res/values-v21/styles.xml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<resources>
22

33
<style name="PurpleTheme" parent="FirebaseUI">
4+
<item name="android:textColor">#000000</item>
5+
<item name="android:textColorPrimary">@color/material_deep_purple_50</item>
6+
47
<item name="colorPrimary">@color/material_deep_purple_500</item>
58
<item name="android:colorPrimary">@color/material_deep_purple_500</item>
69

@@ -10,10 +13,12 @@
1013
<item name="colorAccent">@color/material_lime_a700</item>
1114
<item name="android:colorAccent">@color/material_lime_a700</item>
1215

13-
1416
<item name="colorControlNormal">@color/material_deep_purple_500</item>
1517
<item name="android:colorControlNormal">@color/material_deep_purple_500</item>
1618

19+
<item name="colorButtonNormal">@color/material_deep_purple_500</item>
20+
<item name="android:colorButtonNormal">@color/material_deep_purple_500</item>
21+
1722
<item name="colorControlActivated">@color/material_deep_purple_a200</item>
1823
<item name="android:colorControlActivated">@color/material_deep_purple_a200</item>
1924

@@ -24,6 +29,9 @@
2429
</style>
2530

2631
<style name="GreenTheme" parent="FirebaseUI">
32+
<item name="android:textColor">@color/material_green_500</item>
33+
<item name="android:textColorPrimary">@color/material_green_50</item>
34+
2735
<item name="colorPrimary">@color/material_green_500</item>
2836
<item name="android:colorPrimary">@color/material_green_500</item>
2937

@@ -33,6 +41,9 @@
3341
<item name="colorAccent">@color/material_purple_a700</item>
3442
<item name="android:colorAccent">@color/material_purple_a700</item>
3543

44+
<item name="colorButtonNormal">@color/material_purple_a700</item>
45+
<item name="android:colorButtonNormal">@color/material_purple_a700</item>
46+
3647
<item name="colorControlNormal">@color/material_green_500</item>
3748
<item name="android:colorControlNormal">@color/material_green_500</item>
3849

@@ -45,6 +56,22 @@
4556
<item name="android:windowBackground">@color/material_green_50</item>
4657
</style>
4758

59+
<style name="DarkTheme" parent="FirebaseUI">
60+
<item name="colorPrimary">@color/primary_material_dark</item>
61+
<item name="colorPrimaryDark">@color/primary_dark_material_dark</item>
62+
<item name="colorAccent">@color/accent_material_dark</item>
63+
<item name="android:colorBackground">@color/background_material_dark</item>
64+
<item name="android:colorForeground">@color/foreground_material_dark</item>
65+
<item name="android:navigationBarColor">@android:color/black</item>
66+
<item name="android:statusBarColor">@android:color/black</item>
67+
<item name="android:textColor">@color/abc_primary_text_material_dark</item>
68+
<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
69+
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>
70+
<item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
71+
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light</item>
72+
<item name="android:windowBackground">@color/background_material_dark</item>
73+
</style>
74+
4875
<style name="WarnButton" parent="Widget.AppCompat.Button.Colored">
4976
<item name="android:colorButtonNormal">@color/material_red_a200</item>
5077
<item name="android:textColor">@android:color/white</item>

app/src/main/res/values/colors.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,9 @@
2323
<color name="material_purple_a700">#AA00FF</color>
2424

2525
<color name="material_red_a200">#FF5252</color>
26+
27+
<color name="material_grey_200">#EEEEEE</color>
28+
<color name="material_grey_400">#BDBDBD</color>
29+
<color name="material_grey_500">#9E9E9E</color>
30+
<color name="material_grey_700">#616161</color>
2631
</resources>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<string name="sign_in">Start</string>
1616
<string name="green_theme">Green Theme</string>
1717
<string name="purple_theme">Purple Theme</string>
18+
<string name="dark_theme">Dark Theme</string>
1819
<string name="use_theme_header">Use theme:</string>
1920
<string name="logo_header">Logo:</string>
2021
<string name="firebase_logo_label">Firebase Auth</string>

app/src/main/res/values/styles.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
<item name="colorControlActivated">@color/material_deep_purple_a200</item>
1515
<item name="colorControlHighlight">@color/material_lime_a700</item>
1616
<item name="android:windowBackground">@color/material_deep_purple_50</item>
17+
<item name="android:textColor">@color/material_grey_900</item>
18+
<item name="android:textColorPrimary">@color/material_deep_purple_50</item>
19+
<item name="colorButtonNormal">@color/material_deep_purple_500</item>
1720
</style>
1821

1922
<style name="GreenTheme" parent="FirebaseUI">
@@ -24,6 +27,23 @@
2427
<item name="colorControlActivated">@color/material_lime_a700</item>
2528
<item name="colorControlHighlight">@color/material_green_a200</item>
2629
<item name="android:windowBackground">@color/material_green_50</item>
30+
<item name="android:textColor">@color/material_grey_900</item>
31+
<item name="android:textColorPrimary">@color/material_deep_purple_50</item>
32+
<item name="colorButtonNormal">@color/material_green_500</item>
33+
</style>
34+
35+
<style name="DarkTheme" parent="FirebaseUI">
36+
<item name="colorPrimary">@color/primary_material_dark</item>
37+
<item name="colorPrimaryDark">@color/primary_dark_material_dark</item>
38+
<item name="colorAccent">@color/accent_material_dark</item>
39+
<item name="android:colorBackground">@color/background_material_dark</item>
40+
<item name="android:colorForeground">@color/foreground_material_dark</item>
41+
<item name="android:textColor">@color/abc_primary_text_material_dark</item>
42+
<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
43+
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>
44+
<item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
45+
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light</item>
46+
<item name="android:windowBackground">@color/background_material_dark</item>
2747
</style>
2848

2949
<style name="WarnButton" parent="Widget.AppCompat.Button.Colored">

auth/src/main/res/drawable-v21/rounded_button.xml

Lines changed: 0 additions & 21 deletions
This file was deleted.

auth/src/main/res/drawable/rounded_button.xml

Lines changed: 0 additions & 22 deletions
This file was deleted.

auth/src/main/res/layout/confirm_recovery_layout.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
android:orientation="vertical"
44
style="@style/FirebaseUI.WrapperStyle">
55
<TextView
6-
style="@style/FirebaseUI.Text.BodyText"
6+
style="@style/FirebaseUI.Text.BodyTextNoColor"
77
android:id="@+id/body_text"/>
88
<Button
99
style="@style/FirebaseUI.Button.AlertButton"

auth/src/main/res/values-v21/styles.xml

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,31 @@
55
<item name="colorPrimaryDark">@color/authui_colorPrimaryDark</item>
66
<item name="colorAccent">@color/authui_colorAccent</item>
77
<item name="colorButtonNormal">@color/authui_colorPrimary</item>
8-
9-
<item name="android:colorPrimary">@color/authui_colorPrimary</item>
10-
<item name="android:colorPrimaryDark">@color/authui_colorPrimaryDark</item>
11-
<item name="android:colorAccent">@color/authui_colorAccent</item>
12-
<item name="android:colorButtonNormal">@color/authui_colorPrimary</item>
13-
8+
<item name="android:textColorHint">@color/authui_colorPrimary</item>
149
<item name="android:buttonStyle">@style/FirebaseUI.Button</item>
1510
<item name="android:editTextStyle">@style/FirebaseUI.EditText</item>
11+
<item name="android:textViewStyle">@style/FirebaseUI.Text.BodyText</item>
12+
<item name="android:textColorPrimary">#FFF</item>
13+
<item name="android:textColor">#000</item>
1614
</style>
1715

1816
<style name="FirebaseUI.Dialog" parent="Base.Theme.AppCompat.Light.Dialog.MinWidth">
19-
<item name="colorPrimary">@color/authui_colorPrimary</item>
20-
<item name="colorPrimaryDark">@color/authui_colorPrimaryDark</item>
21-
<item name="colorAccent">@color/authui_colorAccent</item>
22-
<item name="colorButtonNormal">@color/authui_colorPrimary</item>
23-
24-
<item name="android:colorPrimary">@color/authui_colorPrimary</item>
25-
<item name="android:colorPrimaryDark">@color/authui_colorPrimaryDark</item>
26-
<item name="android:colorAccent">@color/authui_colorAccent</item>
27-
<item name="android:colorButtonNormal">@color/authui_colorPrimary</item>
28-
2917
<item name="android:buttonStyle">@style/FirebaseUI.Button</item>
3018
<item name="android:editTextStyle">@style/FirebaseUI.EditText</item>
31-
3219
<item name="android:layout_width">match_parent</item>
3320
<item name="android:windowMinWidthMajor">360dp</item>
3421
<item name="android:layout_height">match_parent</item>
3522
</style>
36-
</resources>
23+
24+
<style name="FirebaseUI.EditText">
25+
<item name="android:textSize">16sp</item>
26+
<item name="android:lineSpacingExtra">8sp</item>
27+
<item name="android:textColorHint">?android:textColor</item>
28+
<item name="android:textColor">?android:textColor</item>
29+
<item name="android:editTextColor">?android:textColor</item>
30+
<item name="android:layout_width">match_parent</item>
31+
<item name="android:layout_height">wrap_content</item>
32+
<item name="android:fontFamily">sans-serif</item>
33+
<item name="android:textCursorDrawable">@null</item>
34+
</style>
35+
</resources>

0 commit comments

Comments
 (0)