Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b3c6846 authored by Danny Lin's avatar Danny Lin Committed by Nishith Khanna
Browse files

SystemUI: Follow light/dark theme in quick settings

Android 12's dual-tone style where the quick settings panel is always
dark makes the light theme look like a second-class citizen. Pure black
also looks out-of-place next to QS tiles and the notification panel
because dynamic themes don't affect it at all.

Revert to the ~Beta 1 style where quick settings used the same theme as
the notification shade.

- colorAccentPrimary has been replaced with colorAccent for contrast in
  light mode, because colorAccentPrimary is system_accent1_100 (dark
  accent color)
- Footer chips have been converted to surfaces (similar to QS tiles and
  notifications), which makes more sense with the new style
- The QS background is now the same as the notification shade background
  in both light and dark modes

Demo screenshots (with dual-tone commit):
https://twitter.com/kdrag0n/status/1445922541218922496



[kdrag0n: ported to 12L]
[neobuddy89: adapted for 14QPR1]

Saalim:
- Use colorAccents in shade values to match systme theme design change

Change-Id: I3d45b72f0f119e100505409d178ab8f698993881
Signed-off-by: default avatarPranav Vashi <neobuddy89@gmail.com>
Signed-off-by: default avatarSaalim Quadri <danascape@gmail.com>
parent fa741746
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -14,7 +14,8 @@
     limitations under the License.
-->

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<resources xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">

    <style name="Theme.SystemUI.DayNightDialog" parent="@android:style/Theme.DeviceDefault.Dialog"/>

@@ -24,6 +25,34 @@
        <item name="android:windowIsFloating">true</item>
    </style>

    <style name="Theme.SystemUI.QuickSettings" parent="@*android:style/Theme.DeviceDefault.SystemUI">
        <item name="isQsTheme">true</item>
        <item name="lightIconTheme">@style/QSIconTheme</item>
        <item name="darkIconTheme">@style/QSIconTheme</item>
        <item name="android:colorError">@*android:color/error_color_material_dark</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:homeAsUpIndicator">@drawable/ic_arrow_back</item>

        <item name="surfaceBright">@androidprv:color/materialColorSurfaceBright</item>
        <item name="android:colorBackground">?attr/surfaceBright</item>
        <item name="scHigh">@androidprv:color/materialColorSurfaceContainerHigh</item>
        <item name="primary">@androidprv:color/materialColorPrimary</item>
        <item name="tertiary">@androidprv:color/materialColorTertiary</item>
        <item name="onSurface">@androidprv:color/materialColorOnSurface</item>
        <item name="onSurfaceVariant">@androidprv:color/materialColorOnSurfaceVariant</item>
        <item name="outline">@androidprv:color/materialColorOutline</item>

        <item name="shadeActive">?android:attr/colorAccent</item>
        <item name="onShadeActive">?android:attr/textColorPrimaryInverse</item>
        <item name="onShadeActiveVariant">?android:attr/textColorSecondaryInverse</item>
        <item name="shadeInactive">@android:color/system_neutral1_800</item>
        <item name="onShadeInactive">?android:attr/textColorPrimary</item>
        <item name="onShadeInactiveVariant">?android:attr/textColorSecondary</item>
        <item name="shadeDisabled">@color/shade_disabled</item>
        <item name="underSurface">@android:color/system_neutral1_900</item>
        <item name="android:itemTextAppearance">@style/Control.MenuItem</item>
    </style>

    <!-- Screenshots -->
    <style name="LongScreenshotActivity" parent="@android:style/Theme.DeviceDefault.DayNight">
        <item name="android:windowNoTitle">true</item>
+10 −10
Original line number Diff line number Diff line
@@ -511,7 +511,7 @@
        <item name="isQsTheme">true</item>
        <item name="lightIconTheme">@style/QSIconTheme</item>
        <item name="darkIconTheme">@style/QSIconTheme</item>
        <item name="android:colorError">@*android:color/error_color_material_dark</item>
        <item name="android:colorError">@*android:color/error_color_material_light</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:homeAsUpIndicator">@drawable/ic_arrow_back</item>

@@ -524,14 +524,14 @@
        <item name="onSurfaceVariant">@androidprv:color/materialColorOnSurfaceVariant</item>
        <item name="outline">@androidprv:color/materialColorOutline</item>

        <item name="shadeActive">@androidprv:color/customColorShadeActive</item>
        <item name="onShadeActive">@androidprv:color/customColorOnShadeActive</item>
        <item name="onShadeActiveVariant">@androidprv:color/customColorOnShadeActiveVariant</item>
        <item name="shadeInactive">@androidprv:color/customColorShadeInactive</item>
        <item name="onShadeInactive">@androidprv:color/customColorOnShadeInactive</item>
        <item name="onShadeInactiveVariant">@androidprv:color/customColorOnShadeInactiveVariant</item>
        <item name="shadeDisabled">@androidprv:color/customColorShadeDisabled</item>
        <item name="underSurface">@androidprv:color/customColorUnderSurface</item>
        <item name="shadeActive">?android:attr/colorAccent</item>
        <item name="onShadeActive">?android:attr/textColorPrimaryInverse</item>
        <item name="onShadeActiveVariant">?android:attr/textColorSecondaryInverse</item>
        <item name="shadeInactive">@*android:color/surface_light</item>
        <item name="onShadeInactive">?android:attr/textColorPrimary</item>
        <item name="onShadeInactiveVariant">?android:attr/textColorSecondary</item>
        <item name="shadeDisabled">@*android:color/surface_light</item>
        <item name="underSurface">@android:color/system_neutral1_100</item>
        <item name="android:itemTextAppearance">@style/Control.MenuItem</item>
    </style>

@@ -868,7 +868,7 @@

    <style name="QSCustomizeToolbar" parent="@*android:style/Widget.DeviceDefault.Toolbar">
        <item name="android:textColor">?attr/onSurface</item>
        <item name="android:elevation">10dp</item>
        <item name="android:elevation">0dp</item>
    </style>

    <!-- Media controls always have dark background -->
+1 −1
Original line number Diff line number Diff line
@@ -1082,7 +1082,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
                mNotificationsAlpha = behindAlpha;
                mNotificationsTint = behindTint;
                mBehindAlpha = 1;
                mBehindTint = Color.BLACK;
                mBehindTint = Color.TRANSPARENT;
            } else {
                mBehindAlpha = behindAlpha;
                if (mState == ScrimState.KEYGUARD && mTransitionToFullShadeProgress > 0.0f) {
+8 −8
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ public enum ScrimState {
                mBehindAlpha = mClipQsScrim ? 1 : mScrimBehindAlphaKeyguard;
                mNotifAlpha = mClipQsScrim ? mScrimBehindAlphaKeyguard : 0;
                if (mClipQsScrim) {
                    updateScrimColor(mScrimBehind, 1f /* alpha */, mBackgroundColor);
                    updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT);
                }
            }

@@ -124,7 +124,7 @@ public enum ScrimState {
                return;
            }
            mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha;
            mBehindTint = mClipQsScrim ? mBackgroundColor : mSurfaceColor;
            mBehindTint = mSurfaceColor;
            mNotifAlpha = mClipQsScrim ? mDefaultScrimAlpha : 0;
            mNotifTint = Color.TRANSPARENT;
            mFrontAlpha = 0f;
@@ -209,10 +209,10 @@ public enum ScrimState {
                mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha;
                mNotifAlpha = 1f;
                mFrontAlpha = 0f;
                mBehindTint = mClipQsScrim ? Color.TRANSPARENT : mBackgroundColor;
                mBehindTint = Color.TRANSPARENT;

                if (mClipQsScrim) {
                    updateScrimColor(mScrimBehind, 1f /* alpha */, mBackgroundColor);
                    updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT);
                }
            }
        }
@@ -308,17 +308,17 @@ public enum ScrimState {
                    && !fromAod;

            mFrontTint = Color.TRANSPARENT;
            mBehindTint = mBackgroundColor;
            mBehindTint = Color.TRANSPARENT;
            mBlankScreen = false;

            if (mDisplayRequiresBlanking && previousState == ScrimState.AOD) {
                // Set all scrims black, before they fade transparent.
                updateScrimColor(mScrimInFront, 1f /* alpha */, mBackgroundColor /* tint */);
                updateScrimColor(mScrimBehind, 1f /* alpha */, mBackgroundColor /* tint */);
                updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT /* tint */);

                // Scrims should still be black at the end of the transition.
                mFrontTint = mBackgroundColor;
                mBehindTint = mBackgroundColor;
                mBehindTint = Color.TRANSPARENT;
                mBlankScreen = true;
            } else if (Flags.notificationShadeBlur()) {
                mBehindTint = ShadeColors.shadePanel(mScrimBehind.getResources(),
@@ -332,7 +332,7 @@ public enum ScrimState {
            }

            if (mClipQsScrim) {
                updateScrimColor(mScrimBehind, 1f /* alpha */, mBackgroundColor);
                updateScrimColor(mScrimBehind, 1f /* alpha */, Color.TRANSPARENT);
            }
        }
    },