From 4f910919819fbe8db070847cfbfba493a62c7c58 Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Sun, 28 Jun 2020 19:33:08 +0300 Subject: [PATCH] further theme fixes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- .../net/ktnx/mobileledger/utils/Colors.java | 4 +- app/src/main/res/layout/main_navigation.xml | 5 +- .../res/layout/transaction_list_fragment.xml | 3 +- .../main/res/layout/transaction_list_row.xml | 4 +- ...ransaction_list_row_accounts_table_row.xml | 9 +- app/src/main/res/values-night/styles.xml | 734 ++++++++++++++++++ app/src/main/res/values/styles.xml | 357 ++++----- tools/gen-styles | 64 +- 8 files changed, 962 insertions(+), 218 deletions(-) create mode 100644 app/src/main/res/values-night/styles.xml 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; -- 2.39.2