You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Color protocol labels green in Dracula theme
Add a protocolColor theme attr for the profile-row protocol/type label.
The base themes default it to ?attr/accentOrTextSecondary (preserving the
current accent-colored behavior for all themes), and the Dracula day/night
styles override it with Dracula green (#50fa7b). getProtocolColor() now reads
R.attr.protocolColor instead of accentOrTextSecondary directly.
Verified on device: Dracula, Black (deepest attr chain) and Pink_SSR all
start with no crash and no attribute-resolution failures.
* Apply protocolColor green in night Dracula styles
Dracula forces night mode on, so the active styles at runtime are the
values-night Theme.SagerNet.Dracula / Dialog.Dracula variants. They redeclare
the Dracula colors but were missing the protocolColor override, so the label
fell back to the base ?accentOrTextSecondary (pink) and the green never
applied. Add protocolColor=color_dracula_green to both night styles.
Verified in the compiled APK via aapt2: night Dracula styles now resolve
protocolColor to @color/color_dracula_green (#ff50fa7b). Fixes the issue
Greptile flagged on PR #39.
* Add Dracula semantic colors: yellow names, red fails, state-colored connect
Extend the Dracula theme's semantic palette via theme attrs (default to the
prior colors for all other themes, so they are unchanged):
- profileNameColor: profile name label -> Dracula yellow (#f1fa8c)
- testFailColor: connection-test failures -> Dracula red (#ff5555)
- statusConnectedColor / statusStoppedColor: the bottom StatsBar status text
and the connect-button (airplane) icon are tinted green when Connected and
red when Stopped; transient Connecting/Stopping states stay neutral.
All overrides are duplicated into values-night (Dracula's active path) as well
as day. Verified in the compiled APK via aapt2 that the night Dracula style
resolves profileNameColor=yellow, statusConnected=green, statusStopped/testFail=red.
* Fix FAB tint regression and complete Dracula dialog overrides
Addresses reviewer feedback on PR:
- P1: applyStateTint set imageTintList to ?textColorPrimary on every theme,
which on non-Dracula light themes painted the connect-FAB icon a dark/wrong
color, and cleared the tint to null on transient states. Default
statusConnectedColor/statusStoppedColor to ?attr/colorOnPrimary (the FAB's
normal on-primary icon color) and use colorOnPrimary for transient states, so
non-Dracula themes keep their original appearance. StatsBar status text uses
the same fallback (it sits on the colorPrimary bar).
- Major/P2: add the four missing semantic overrides (profileName/status/
testFail) to Theme.SagerNet.Dialog.Dracula in both day and night so the
Dracula dialog palette stays consistent.
Verified in compiled APK: base theme status attrs resolve to ?colorOnPrimary;
Dracula resolves to yellow/green/red.
* Extend Dracula colors: yellow speeds/stopped-FAB, two-tone status, cyan proxy, pink nav
Per design review of the live theme:
- speedTextColor: bottom-bar up/down speed text (incl. 0 B/s) -> Dracula yellow.
- fabStoppedColor: connect-FAB icon when Stopped -> Dracula yellow (the red
strikethrough plane was nearly invisible on the pink/purple FAB). Status
TEXT for stopped/shutting-down stays red via statusStoppedColor.
- Two-tone status text: 'Connected,' / 'Success:' lead segment in green, the
remainder (hint / handshake detail) in yellow (statusDetailColor). 'Testing…'
yellow, 'Shutting down…' red. Falls back to single lead color if a locale
string lacks the separator (safe, no crash).
- routeProxyColor: Proxy route rule -> Dracula cyan #8be9fd (Dracula's blue).
- navSelectedColor: selected nav-drawer item (fill + icon/text) -> Dracula
accent (pink) to match the toggle-on color. Black keeps its accent; other
themes default to colorPrimary (unchanged).
All gated via theme attrs that default to prior colors, so the other ~22
themes are visually unchanged. Verified attr resolution in the compiled APK.
* Recolor speeds, stopped-FAB, and status detail to Dracula cyan
Per design review: switch speedTextColor (up/down + 0 B/s), fabStoppedColor
(stopped airplane icon), and statusDetailColor ('tap to check connection' /
'…handshake took Nms') from yellow to Dracula cyan (#8be9fd). Profile names
stay yellow; protocol=green, connected=green, stopped/fail status text=red,
proxy route=cyan, nav selected=accent. Other themes unchanged.
* Keep Testing... yellow while detail text stays cyan
Add a dedicated statusTestingColor attr so the connection-test 'Testing…'
in-progress text is Dracula yellow, separate from statusDetailColor (cyan)
used for the 'tap to check connection' hint and the 'handshake took Nms'
detail. Defaults to colorOnPrimary for other themes (unchanged).
0 commit comments