SystemUI: Add dual-tone light and dark themes for QS
Author: Danny Lin <danny@kdrag0n.dev>
Date: Wed Oct 6 18:40:30 2021 -0700
SystemUI: Make QS panel change on UI mode changes
This is a prerequisite for making the QS panel follow the light system
theme setting.
Change-Id: Iac4c96ccb3845812ca3df820bf27dc533816f72e
Signed-off-by: althafvly <althafvly@gmail.com>
Author: Danny Lin <danny@kdrag0n.dev>
Date: Wed Oct 6 18:41:11 2021 -0700
Revert "Do not re-inflate QS and SB when CONFIG_UI_MODE"
This is a prerequisite for making the QS panel follow the light system
mode setting.
Change-Id: Ibad399ece587505559cc73febdda2f2d8558e94d
Author: Danny Lin <danny@kdrag0n.dev>
Date: Mon Oct 11 19:24:58 2021 -0700
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]
Change-Id: I3d45b72f0f119e100505409d178ab8f698993881
Author: Danny Lin <danny@kdrag0n.dev>
Date: Mon Oct 11 19:25:02 2021 -0700
SystemUI: Initialize QS tiles in inactive state
Now that the QS fragment is recreated when changing the UI mode (so that
it follows light/dark themes), all tiles flash with active color briefly
because the new views become visible before states are refreshed.
Initializing tiles in the inactive state is much less disruptive, and
the effect is very hard to see as compared to the active color because
the background color is much less prominent.
Change-Id: I048171d503f5533e91bab486b8805ac15c329f31
Author: Danny Lin <danny@kdrag0n.dev>
Date: Mon Oct 11 19:25:08 2021 -0700
SystemUI: Add dual-tone light and dark themes for QS
Google's dual-tone QS design where the notification panel has a
semantically higher elevation adds depth to the notification+QS shade,
and we don't necessarily have to give it up just because our QS has
light and dark themes.
To preserve the dual-tone effect, use a darker background color for the
QS section:
Light:
Notifications: neutral1 20 (surface_light)
Notification panel: neutral1 50 (light BG)
QS background: neutral1 100 (darker light BG / surface_header_light)
Inactive QS tiles: neutral1 20 (surface_light)
Dark:
Notifications: neutral1 800 (surface_dark)
Notification panel: neutral1 900 (dark BG)
QS background: neutral1 950 (surface_header_dark_sysui modulated to L* 5)
Inactive QS tiles: neutral1 800 (surface_dark)
The dark QS background could be neutral1 0 (black) like it was before,
but I don't think it looks as good because it can't be tinted based on
the active wallpaper and thus stands out from other colors.
Unfortunately, Google's current CAM16-based modulation causes hue shifts
in extreme light and dark shades (e.g. L* = 98 / 5), but we'll fix this
by generating and overlaying modulated surface colors in our
ThemeOverlayController implementation.
Demo screenshots: https://twitter.com/kdrag0n/status/1445922541218922496
Change-Id: Icdc4957ecb4e0201377351f1a3e1c6928d6b3955
Author: Adithya R <gh0strider.2k18.reborn@gmail.com>
Date: Mon May 30 00:13:02 2022 +0530
SystemUI: Calculate paged QS tiles height properly
When QS is re-inflated during UI mode change and we're on the
3rd or higher QS page, the first QS page is misaligned and
hence height returns 0, resulting in footer and media panel
position overlapping the QS panel. Return the maximum height
among all present QS pages to fix this issue.
Change-Id: I539babdb75c114cc44b4213ff114d4272be22ef6
Author: Xayah <zds1249475336@gmail.com>
Date: Fri Aug 19 13:46:08 2022 -0400
SystemUI: Reset to textColorPrimaryInverse for light theme
* Most of them have been replaced with textColorOnAccent in b1444e4, which is not in harmony with light theme.
Change-Id: I72a3a33e4e4a4fc9f23458d2c0000ca4c3fbae7d
Author: althafvly <althafvly@gmail.com>
Date: Wed Sep 28 21:06:43 2022 +0530
SystemUI: QSCustomizer: Fix QS tile reset text color
- https://gitlab.com/LineageOS/issues/android/-/issues/4873
Change-Id: I49a599f10f68c0c576ec863b919936a3b171f2c6
Author: althafvly <althafvly@gmail.com>
Date: Wed Oct 5 11:30:49 2022 +0530
SystemUI: BatteryMeterView: Set white tint in darkmode
Change-Id: I399e47088d52b43029f1e2a26bc05323ac2785f2
Author: althafvly <althafvly@gmail.com>
Date: Tue Oct 4 18:34:08 2022 +0530
SystemUI: Re-inflate QS and SB when CONFIG_SCREEN_LAYOUT
- It was removed in a13, needed for light theme change in landscape.
Change-Id: I1872f5d90e6f6b8debecbc69eb80c3a11d8984e2
Author: ReallySnow <reallysnow233@gmail.com>
Date: Thu Sep 15 13:38:48 2022 +0800
SystemUI: Follow light/dark theme in SplitShade Header
* Google's default implementation is dark, which means
it doesn't need to follow the light/dark color change,
but we broke it, so add it to complete the SplitShade
Header color change
Co-authored-by: Col_or <col_or@qq.com>
Change-Id: I5464039885197eeb43bd31b822bfcba7a1b08776
Author: Tim Zimmermann <tim@linux4.de>
Date: Thu Mar 16 07:26:59 2023 +0100
SystemUI: Follow light/dark theme in new QS footer actions
* Needed after 2feceb2
* Only settings and power button needed to be changed
Change-Id: I14b04ba206d31784d9e5a1351d1fcbb1d258e52b
Author: Pranav Vashi <neobuddy89@gmail.com>
Date: Wed Dec 13 23:24:29 2023 +0530
SystemUI: Use themewrapper for QSCustomizer and tune colorUnavailable
* Restores behvavior from A13 for colorUnavailable, shadeDisabled is now unused.
Change-Id: Id9673ccd0a3d096b7376cfb8ed0daabb7e127e11
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Author: Adithya R <gh0strider.2k18.reborn@gmail.com>
Date: Thu Jan 19 14:37:43 2023 +0530
SystemUI: Remove visibility check in setting QSCarrier color
This fixes a corner case where the signal icon color is incorrect:
Have dual sim -> switch to dark theme -> turn off one sim -> switch
to light theme -> turn the other sim back on. QS carrier signal
is colored white instead of black.
Ensure that the signal icon color is always up to date, by removing
visibility check, to avoid this issue.
Fixes: 816b8ddf ("Follow light/dark theme in SplitShade Header")
Change-Id: I092c06053fc4bc8d9ca51d1d31128da27ef6a823
Author: elluzion <dyrex2004@gmail.com>
Date: Mon Dec 7 20:39:40 2020 +0100
SystemUI: Use proper Resolver background color
Change-Id: I3c0c89349a38d4606311c4849cf3dedad772c382
Author: minaripenguin <minaripenguin@users.noreply.github.com>
Date: Sat Apr 8 19:12:10 2023 +0800
SystemUI: Define colorPrimary/colorSecondary colors for dual tone QS
* this is needed by context/context wrappers/utils to determine which color/s to be applied for functions like setTint/Utils getters etc.
fixes: white qs header icons tint issue on light theme
Change-Id: Ief06b853f9b89a3111715a938c0fadc236b88b1b
Signed-off-by: minaripenguin <minaripenguin@users.noreply.github.com>
Change-Id: I8f078e7668fffc7ab97202fde922169bf6ed5350
16 files changed