From: Damyan Ivanov Date: Sun, 28 Jun 2020 16:33:08 +0000 (+0300) Subject: further theme fixes X-Git-Tag: v0.14.1~5 X-Git-Url: https://git.ktnx.net/?p=mobile-ledger-staging.git;a=commitdiff_plain;h=4f910919819fbe8db070847cfbfba493a62c7c58 further theme fixes drop fixed "Light" theme reference where it is not needed to allow the dark theme to kick in move global colour values in the base app theme, the default theme is much like the 5⁰ themes generate night variants of the themes employing system-wide dark theme --- diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/Colors.java b/app/src/main/java/net/ktnx/mobileledger/utils/Colors.java index 829d1622..e648ca7d 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Colors.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Colors.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -214,7 +214,7 @@ public class Colors { } if (themeId < 0) { - themeId = R.style.AppTheme; + themeId = R.style.AppTheme_default; debug("profiles", String.format(Locale.ENGLISH, "Theme hue %d not supported, using the default", themeHue)); diff --git a/app/src/main/res/layout/main_navigation.xml b/app/src/main/res/layout/main_navigation.xml index f634eebc..c15c7464 100644 --- a/app/src/main/res/layout/main_navigation.xml +++ b/app/src/main/res/layout/main_navigation.xml @@ -1,5 +1,5 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 48dp + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index be6a9026..61e36f72 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -24,18 +24,12 @@ + @@ -545,15 +548,15 @@ @@ -671,8 +674,8 @@ @@ -680,8 +683,8 @@ @@ -711,8 +714,7 @@ @dimen/activity_horizontal_margin - + + + 48dp diff --git a/tools/gen-styles b/tools/gen-styles index 5b958f53..7a22c7e7 100644 --- a/tools/gen-styles +++ b/tools/gen-styles @@ -5,6 +5,15 @@ use autodie; use Math::Trig; use File::Basename qw(basename dirname); use File::Temp qw(tempfile); +use Getopt::Long; + +my $opt_night; + +GetOptions( + 'night!' => \$opt_night, +) or exit 1; + +my $DEFAULT_HUE = 261.2245; sub hexTuple { my ($r, $g, $b) = @_; @@ -84,7 +93,7 @@ sub hexToHSL { my $hexTriplet = shift; my ($r,$g,$b) = hexToRGB($hexTriplet); - warn "$hexTriplet -> $r:$g:$b"; + #warn "$hexTriplet -> $r:$g:$b"; for ($r, $g, $b ) { $_ = $_ / 255.0 } @@ -116,11 +125,11 @@ sub hexToHSL { return( $H, $S, $L ); } -my $baseColorHSV = [ hexToHSL('#935ff2') ]; +my $baseColor = '#935ff2'; +my $baseColorHSV = [ hexToHSL($baseColor) ]; my $baseColorHue = $baseColorHSV->[0]; -warn sprintf( 'H:%1.4f S:%1.4f V:%1.4f', @$baseColorHSV ); -warn sprintf( 'H:%1.4f S:%1.4f L:%1.4f', hexToHSL('#3e148c') ); -my @target = hexToRGB('#935ff2'); +warn sprintf( '%s → H:%1.4f S:%1.4f V:%1.4f', $baseColor, @$baseColorHSV ); +my @target = hexToRGB($baseColor); my ($best, $min_dist); for (my $s = 0.50; $s < 0.90; $s += 0.001) { for ( my $l = 0.50; $l <= 0.80; $l += 0.001 ) { @@ -135,7 +144,7 @@ for (my $s = 0.50; $s < 0.90; $s += 0.001) { } } } -warn sprintf( 's%1.3f, l%1.3f -> %s', +warn sprintf( 's%1.3f, l%1.3f → %s', @$best ); my $baseTheme = "AppTheme"; @@ -165,6 +174,8 @@ use constant STEP_DEGREES => 5; sub outputThemes { my $out = shift; my $baseIndent = shift; + $out->print("\n"); + $out->print(hslStyleForHue($DEFAULT_HUE, $baseTheme, $baseIndent, 'default')); for( my $hue = 0; $hue < 360; $hue += STEP_DEGREES ) { $out->print("\n"); $out->print(hslStyleForHue($hue, $baseTheme, $baseIndent)); @@ -175,14 +186,15 @@ sub hslStyleForHue { my $hue = shift; my $base = shift; my $baseIndent = shift // ''; + my $subTheme = shift // sprintf('%03d', $hue); my %lQ = ( 0 => 0.450, # red 60 => 0.400, # yellow 120 => 0.400, # green - 180 => 0.400, # cyan - 240 => 0.750, # blue - 300 => 0.500, # magenta + 180 => 0.390, # cyan + 240 => 0.745, # blue + 300 => 0.505, # magenta ); $lQ{360} = $lQ{0}; @@ -195,16 +207,16 @@ sub hslStyleForHue { # linear interpolation my $l1 = $y0 + 1.0 * ( $hue - $x0 ) * ( $y1 - $y0 ) / ( $x1 - $x0 ); - my $l2 = $l1 * 0.80; - my $l3 = 0.950; - my $l4 = 0.980; + my $l2 = $l1 * ( $opt_night ? 1.10 : 0.80 ); + my $l3 = $opt_night ? 0.200 : 0.950; + my $l4 = $opt_night ? 0.100 : 0.980; my $result = ""; my $indent = "$baseIndent "; if ($base) { - $result .= sprintf "$baseIndent\n"; return $result;