Skip to content

Commit f0540f2

Browse files
committed
play-services-core: Use M3 theme on Android 12+ devices
* Also use primary and accent color from system Signed-off-by: Aayush Gupta <[email protected]> Change-Id: Id0d2f0b4d990c99b9a930198e747cb78caa1c86c
1 parent a078321 commit f0540f2

File tree

7 files changed

+63
-5
lines changed

7 files changed

+63
-5
lines changed

play-services-base/core/src/main/res/layout/preference_switch_bar.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
android:paddingStart="56dp"
2828
android:paddingLeft="56dp"
2929
android:textAppearance="?attr/textAppearanceListItem"
30-
android:textColor="?android:attr/textColorPrimaryInverse"
30+
android:textColor="@android:color/white"
3131
tools:text="Enabled" />
3232

3333
<androidx.appcompat.widget.SwitchCompat
@@ -36,7 +36,7 @@
3636
android:layout_height="wrap_content"
3737
android:layout_gravity="center_vertical"
3838
android:background="@null"
39-
app:thumbTint="?android:attr/textColorPrimaryInverse"
40-
app:trackTint="?android:attr/textColorSecondaryInverse"
39+
app:thumbTint="@android:color/white"
40+
app:trackTint="@android:color/darker_gray"
4141
tools:checked="true" />
42-
</LinearLayout>
42+
</LinearLayout>

play-services-core/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ dependencies {
7676
implementation "androidx.preference:preference-ktx:$preferenceVersion"
7777
implementation "androidx.webkit:webkit:$webkitVersion"
7878

79+
// Material Components
80+
implementation 'com.google.android.material:material:1.9.0'
81+
7982
// Navigation
8083
implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
8184
implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3+
<item android:color="@android:color/white" android:state_checked="true" />
4+
<item android:color="@android:color/darker_gray"/>
5+
</selector>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Derived from https://github.com/androidx/androidx/blob/8cb282cc/preference/preference/res/layout/preference_widget_switch_compat.xml -->
3+
<com.google.android.material.materialswitch.MaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
5+
android:id="@+id/switchWidget"
6+
android:layout_width="wrap_content"
7+
android:layout_height="wrap_content"
8+
android:background="@null"
9+
android:clickable="false"
10+
android:focusable="false"
11+
app:thumbTint="@color/preference_material_switch_color" />
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<style name="Theme.App" parent="Theme.Base.M3">
5+
<item name="colorPrimary">@android:color/system_accent1_200</item>
6+
<item name="colorAccent">@android:color/system_accent1_200</item>
7+
<item name="android:windowLightStatusBar">false</item>
8+
<item name="android:windowLightNavigationBar">false</item>
9+
<item name="android:statusBarColor">?android:colorBackground</item>
10+
<item name="android:navigationBarColor">?android:colorBackground</item>
11+
</style>
12+
13+
</resources>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<style name="Theme.App" parent="Theme.Base.M3">
5+
<item name="colorPrimary">@android:color/system_accent1_500</item>
6+
<item name="colorAccent">@android:color/system_accent1_500</item>
7+
<item name="android:windowLightStatusBar">true</item>
8+
<item name="android:windowLightNavigationBar">true</item>
9+
<item name="android:statusBarColor">?android:colorBackground</item>
10+
<item name="android:navigationBarColor">?android:colorBackground</item>
11+
</style>
12+
13+
</resources>

play-services-core/src/main/res/values/themes.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
<!-- Base application theme -->
2020
<style name="Theme.Base" parent="Theme.AppCompat.DayNight.NoActionBar" />
2121

22-
<!-- Application theme (overrideable per API levels as required) -->
22+
<style name="Theme.Base.M3" parent="Theme.Material3.DayNight.NoActionBar">
23+
<item name="preferenceTheme">@style/Theme.PreferenceThemeOverlay.M3</item>
24+
</style>
25+
26+
<!-- Application theme (< API23) -->
2327
<style name="Theme.App" parent="Theme.Base" />
2428

2529
<style name="Theme.LoginBlue" parent="Theme.LoginBlue.Base" />
@@ -29,4 +33,13 @@
2933
<item name="colorPrimaryDark">@color/login_blue_theme_primary_dark</item>
3034
<item name="colorAccent">@color/login_blue_theme_accent</item>
3135
</style>
36+
37+
<!-- Preference theme -->
38+
<style name="Theme.PreferenceThemeOverlay.M3" parent="@style/PreferenceThemeOverlay">
39+
<item name="switchPreferenceCompatStyle">@style/Theme.SwitchPreference.M3</item>
40+
</style>
41+
42+
<style name="Theme.SwitchPreference.M3" parent="@style/Preference.SwitchPreferenceCompat.Material">
43+
<item name="widgetLayout">@layout/preference_material_switch</item>
44+
</style>
3245
</resources>

0 commit comments

Comments
 (0)