Skip to content

Commit

Permalink
Properly calculate primary element based on background luminance
Browse files Browse the repository at this point in the history
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
  • Loading branch information
skjnldsv committed May 20, 2022
1 parent 937f039 commit 894c16e
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 6 deletions.
13 changes: 12 additions & 1 deletion apps/accessibility/lib/Controller/AccessibilityController.php
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ private function getInjectedVariables(): string {
return $this->injectedVariables;
}
$variables = '';
foreach ($this->defaults->getScssVariables() as $key => $value) {
foreach ($this->defaults->getScssVariables(!$this->isDarkThemeEnabled()) as $key => $value) {
$variables .= '$' . $key . ': ' . $value . ';';
}

Expand All @@ -238,4 +238,15 @@ private function getInjectedVariables(): string {
}
return $variables;
}

/**
* Return true if the dark theme is enabled for the current user
*/
private function isDarkThemeEnabled(): bool {
if (!$this->userSession->isLoggedIn()) {
return false;
}
$user = $this->userSession->getUser();
return $this->config->getUserValue($user->getUID(), $this->appName, 'theme', false) === 'dark';
}
}
4 changes: 2 additions & 2 deletions apps/theming/lib/ThemingDefaults.php
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ public function getFDroidClientUrl() {
/**
* @return array scss variables to overwrite
*/
public function getScssVariables() {
public function getScssVariables($brightBackground = true) {
$cacheBuster = $this->config->getAppValue('theming', 'cachebuster', '0');
$cache = $this->cacheFactory->createDistributed('theming-' . $cacheBuster . '-' . $this->urlGenerator->getBaseUrl());
if ($value = $cache->get('getScssVariables')) {
Expand All @@ -339,7 +339,7 @@ public function getScssVariables() {
if ($this->config->getAppValue('theming', 'color', '') !== '') {
$variables['color-primary'] = $this->getColorPrimary();
$variables['color-primary-text'] = $this->getTextColorPrimary();
$variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary());
$variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary(), $brightBackground);
}

if ($this->config->getAppValue('theming', 'backgroundMime', '') === 'backgroundColor') {
Expand Down
4 changes: 2 additions & 2 deletions lib/private/legacy/OC_Defaults.php
Original file line number Diff line number Diff line change
Expand Up @@ -311,9 +311,9 @@ public function getColorPrimary() {
/**
* @return array scss variables to overwrite
*/
public function getScssVariables() {
public function getScssVariables($brightBackground = true) {
if ($this->themeExist('getScssVariables')) {
return $this->theme->getScssVariables();
return $this->theme->getScssVariables($brightBackground);
}
return [];
}
Expand Down
2 changes: 1 addition & 1 deletion themes/example/defaults.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public function getColorPrimary() {
* Returns variables to overload defaults from core/css/variables.scss
* @return array
*/
public function getScssVariables() {
public function getScssVariables($brightBackground) {
return [
'color-primary' => '#745bca'
];
Expand Down

0 comments on commit 894c16e

Please sign in to comment.