diff --git a/CHANGELOG.md b/CHANGELOG.md
index 618c2cb..845ba97 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
## [Unreleased]
+## 2.2.0
+### Added
+- fix #84: update icons
+- fix #85: use Nextcloud colors by default
+
+### Fixed
+- Fix categories order in large menu
+
## 2.1.0
### Added
- add compatibility with Nextcloud 23
diff --git a/appinfo/info.xml b/appinfo/info.xml
index f220757..126024d 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -26,7 +26,7 @@ If you like this application and if you want to support the development:
* [Donate with liberapay](https://liberapay.com/deblan)
* [Leave a comment](https://apps.nextcloud.com/apps/side_menu#comments)
]]>
- 2.1.0
+ 2.2.0
agpl
Simon Vieille
SideMenu
diff --git a/img/side-menu-opener-closer.svg b/img/side-menu-opener-closer.svg
index 3774c6d..0aa965f 100644
--- a/img/side-menu-opener-closer.svg
+++ b/img/side-menu-opener-closer.svg
@@ -1,6 +1 @@
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener-dark.svg b/img/side-menu-opener-dark.svg
index 7b56e7a..c6a026c 100644
--- a/img/side-menu-opener-dark.svg
+++ b/img/side-menu-opener-dark.svg
@@ -1,173 +1 @@
-
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener-hamburger-2-dark.svg b/img/side-menu-opener-hamburger-2-dark.svg
index 505ddee..504e037 100644
--- a/img/side-menu-opener-hamburger-2-dark.svg
+++ b/img/side-menu-opener-hamburger-2-dark.svg
@@ -1,102 +1 @@
-
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener-hamburger-2.svg b/img/side-menu-opener-hamburger-2.svg
index b5eb64c..e7034ae 100644
--- a/img/side-menu-opener-hamburger-2.svg
+++ b/img/side-menu-opener-hamburger-2.svg
@@ -1,101 +1 @@
-
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener-hamburger-dark.svg b/img/side-menu-opener-hamburger-dark.svg
index 5d60f54..3585049 100644
--- a/img/side-menu-opener-hamburger-dark.svg
+++ b/img/side-menu-opener-hamburger-dark.svg
@@ -1,92 +1 @@
-
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener-hamburger.svg b/img/side-menu-opener-hamburger.svg
index c1b1325..09ae9db 100644
--- a/img/side-menu-opener-hamburger.svg
+++ b/img/side-menu-opener-hamburger.svg
@@ -1,91 +1 @@
-
-
+
\ No newline at end of file
diff --git a/img/side-menu-opener.svg b/img/side-menu-opener.svg
index 32abf78..6294ecb 100644
--- a/img/side-menu-opener.svg
+++ b/img/side-menu-opener.svg
@@ -1,172 +1 @@
-
-
+
\ No newline at end of file
diff --git a/lib/Controller/CssController.php b/lib/Controller/CssController.php
index cdbf11a..b48c35c 100644
--- a/lib/Controller/CssController.php
+++ b/lib/Controller/CssController.php
@@ -27,6 +27,8 @@ use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IRequest;
use OCP\IUserSession;
+use OCA\Theming\ThemingDefaults;
+use OCA\SideMenu\Service\Color;
class CssController extends Controller
{
@@ -40,12 +42,30 @@ class CssController extends Controller
*/
protected $user;
- public function __construct(string $appName, IRequest $request, ConfigProxy $config)
+ /**
+ * @var ThemingDefaults
+ */
+ protected $theming;
+
+ /**
+ * @var Color
+ */
+ protected $color;
+
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ ConfigProxy $config,
+ ThemingDefaults $theming,
+ Color $color
+ )
{
parent::__construct($appName, $request);
$this->user = OC::$server[IUserSession::class]->getUser();
$this->config = $config;
+ $this->theming = $theming;
+ $this->color = $color;
}
/**
@@ -90,23 +110,29 @@ class CssController extends Controller
$isDarkMode = ($isAccessibilityAppEnabled && $isDarkThemeUserEnabled) || ($isBreezeDarkAppEnabled && $isBreezeDarkUserEnabled);
+ $primaryColor = $this->theming->getColorPrimary();
+ $lightenPrimaryColor = $this->color->adjustBrightness($primaryColor, 0.2);
+ $darkenPrimaryColor = $this->color->adjustBrightness($primaryColor, -0.2);
+ $darkenPrimaryColor2 = $this->color->adjustBrightness($primaryColor, -0.3);
+ $textColor = $this->theming->getTextColorPrimary();
+
if ($isDarkMode) {
- $backgroundColor = $this->config->getAppValue('dark-mode-background-color', '#333333');
- $backgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $backgroundColor);
- $currentAppBackgroundColor = $this->config->getAppValue('dark-mode-current-app-background-color', '#444444');
- $loaderColor = $this->config->getAppValue('dark-mode-loader-color', '#cccccc');
- $textColor = $this->config->getAppValue('dark-mode-text-color', '#FFFFFF');
+ $backgroundColor = $this->config->getAppValue('dark-mode-background-color', $darkenPrimaryColor);
+ $backgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $darkenPrimaryColor);
+ $currentAppBackgroundColor = $this->config->getAppValue('dark-mode-current-app-background-color', $darkenPrimaryColor2);
+ $loaderColor = $this->config->getAppValue('dark-mode-loader-color', $lightenPrimaryColor);
+ $textColor = $this->config->getAppValue('dark-mode-text-color', $textColor);
$iconInvertFilter = abs($this->config->getAppValueInt('dark-mode-icon-invert-filter', '0')).'%';
$iconOpacity = abs($this->config->getAppValueInt('dark-mode-icon-opacity', '100') / 100);
$opener = $this->config->getAppValue('dark-mode-opener', 'side-menu-opener');
$backgroundOpacity = dechex($this->config->getAppValueInt('dark-mode-background-color-opacity', '100') * 255 / 100);
} else {
- $backgroundColor = $this->config->getAppValue('background-color', '#333333');
- $backgroundColorTo = $this->config->getAppValue('background-color-to', $backgroundColor);
- $currentAppBackgroundColor = $this->config->getAppValue('current-app-background-color', '#444444');
- $loaderColor = $this->config->getAppValue('loader-color', '#0e75ac');
- $textColor = $this->config->getAppValue('text-color', '#FFFFFF');
+ $backgroundColor = $this->config->getAppValue('background-color', $darkenPrimaryColor);
+ $backgroundColorTo = $this->config->getAppValue('background-color-to', $darkenPrimaryColor);
+ $currentAppBackgroundColor = $this->config->getAppValue('current-app-background-color', $darkenPrimaryColor2);
+ $loaderColor = $this->config->getAppValue('loader-color', $lightenPrimaryColor);
+ $textColor = $this->config->getAppValue('text-color', $textColor);
$iconInvertFilter = abs($this->config->getAppValueInt('icon-invert-filter', '0')).'%';
$iconOpacity = abs($this->config->getAppValueInt('icon-opacity', '100') / 100);
$opener = $this->config->getAppValue('opener', 'side-menu-opener');
diff --git a/lib/Controller/NavController.php b/lib/Controller/NavController.php
index 4f6625e..41aff0c 100644
--- a/lib/Controller/NavController.php
+++ b/lib/Controller/NavController.php
@@ -187,9 +187,18 @@ class NavController extends Controller
usort($items, function ($a, $b) use ($categoriesLabels) {
foreach ($categoriesLabels as $key => $value) {
+ if ($a['categoryId'] === 'other') {
+ return -1;
+ }
+
+ if ($b['categoryId'] === 'other') {
+ return 1;
+ }
+
if ($a['categoryId'] === $key) {
return -1;
}
+
if ($b['categoryId'] === $key) {
return 1;
}
diff --git a/lib/Service/Color.php b/lib/Service/Color.php
new file mode 100644
index 0000000..cf90dd6
--- /dev/null
+++ b/lib/Service/Color.php
@@ -0,0 +1,34 @@
+
+ */
+class Color
+{
+ /**
+ * @thanks https://stackoverflow.com/posts/54393956/revision
+ */
+ public function adjustBrightness(string $hexCode, float $adjustPercent): string
+ {
+ $hexCode = ltrim($hexCode, '#');
+
+ if (3 == strlen($hexCode)) {
+ $hexCode = $hexCode[0].$hexCode[0].$hexCode[1].$hexCode[1].$hexCode[2].$hexCode[2];
+ }
+
+ $hexCode = array_map('hexdec', str_split($hexCode, 2));
+
+ foreach ($hexCode as &$color) {
+ $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
+ $adjustAmount = ceil($adjustableLimit * $adjustPercent);
+
+ $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
+ }
+
+ return '#'.implode($hexCode);
+ }
+}
diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php
index 8885c13..e7a2bab 100644
--- a/lib/Settings/Admin.php
+++ b/lib/Settings/Admin.php
@@ -26,6 +26,8 @@ use OCP\AppFramework\Http\TemplateResponse;
use OCP\IL10N;
use OCP\ILogger;
use OCP\Settings\ISettings;
+use OCA\Theming\ThemingDefaults;
+use OCA\SideMenu\Service\Color;
class Admin implements ISettings
{
@@ -54,18 +56,32 @@ class Admin implements ISettings
*/
private $categoryRepository;
+ /**
+ * @var ThemingDefaults
+ */
+ protected $theming;
+
+ /**
+ * @var Color
+ */
+ protected $color;
+
public function __construct(
IL10N $l,
ILogger $logger,
ConfigProxy $config,
AppRepository $appRepository,
- CategoryRepository $categoryRepository
+ CategoryRepository $categoryRepository,
+ ThemingDefaults $theming,
+ Color $color
) {
$this->l = $l;
$this->logger = $logger;
$this->config = $config;
$this->appRepository = $appRepository;
$this->categoryRepository = $categoryRepository;
+ $this->theming = $theming;
+ $this->color = $color;
}
/**
@@ -73,29 +89,35 @@ class Admin implements ISettings
*/
public function getForm()
{
- $backgroundColor = $this->config->getAppValue('background-color', '#333333');
- $backgroundColorTo = $this->config->getAppValue('background-color-to', $backgroundColor);
+ $primaryColor = $this->theming->getColorPrimary();
+ $lightenPrimaryColor = $this->color->adjustBrightness($primaryColor, 0.2);
+ $darkenPrimaryColor = $this->color->adjustBrightness($primaryColor, -0.2);
+ $darkenPrimaryColor2 = $this->color->adjustBrightness($primaryColor, -0.3);
+ $textColor = $this->theming->getTextColorPrimary();
- $darkModeBackgroundColor = $this->config->getAppValue('dark-mode-background-color', '#333333');
- $darkModeBackgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $darkModeBackgroundColor);
+ $backgroundColor = $this->config->getAppValue('background-color', $darkenPrimaryColor);
+ $backgroundColorTo = $this->config->getAppValue('background-color-to', $darkenPrimaryColor);
+
+ $darkModeBackgroundColor = $this->config->getAppValue('dark-mode-background-color', $darkenPrimaryColor);
+ $darkModeBackgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $darkenPrimaryColor);
$parameters = [
'background-color' => $backgroundColor,
'background-color-to' => $backgroundColorTo,
'background-color-opacity' => $this->config->getAppValueInt('background-color-opacity', '100'),
- 'current-app-background-color' => $this->config->getAppValue('current-app-background-color', '#444444'),
- 'loader-color' => $this->config->getAppValue('loader-color', '#0e75ac'),
+ 'current-app-background-color' => $this->config->getAppValue('current-app-background-color', $darkenPrimaryColor2),
+ 'loader-color' => $this->config->getAppValue('loader-color', $lightenPrimaryColor),
'icon-invert-filter' => $this->config->getAppValueInt('icon-invert-filter', '0'),
'icon-opacity' => $this->config->getAppValueInt('icon-opacity', '100'),
- 'text-color' => $this->config->getAppValue('text-color', '#FFFFFF'),
+ 'text-color' => $this->config->getAppValue('text-color', $textColor),
'dark-mode-background-color' => $darkModeBackgroundColor,
'dark-mode-background-color-to' => $darkModeBackgroundColorTo,
'dark-mode-background-color-opacity' => $this->config->getAppValueInt('dark-mode-background-color-opacity', '100'),
- 'dark-mode-current-app-background-color' => $this->config->getAppValue('dark-mode-current-app-background-color', '#444444'),
- 'dark-mode-loader-color' => $this->config->getAppValue('dark-mode-loader-color', '#cccccc'),
+ 'dark-mode-current-app-background-color' => $this->config->getAppValue('dark-mode-current-app-background-color', $darkenPrimaryColor2),
+ 'dark-mode-loader-color' => $this->config->getAppValue('dark-mode-loader-color', $textColor),
'dark-mode-icon-invert-filter' => $this->config->getAppValueInt('dark-mode-icon-invert-filter', '0'),
'dark-mode-icon-opacity' => $this->config->getAppValueInt('dark-mode-icon-opacity', '100'),
- 'dark-mode-text-color' => $this->config->getAppValue('dark-mode-text-color', '#FFFFFF'),
+ 'dark-mode-text-color' => $this->config->getAppValue('dark-mode-text-color', $textColor),
'dark-mode-opener' => $this->config->getAppValue('dark-mode-opener', 'side-menu-opener'),
'opener' => $this->config->getAppValue('opener', 'side-menu-opener'),
'loader-enabled' => $this->config->getAppValue('loader-enabled', '1'),
diff --git a/package.json b/package.json
index 38edace..e87767d 100644
--- a/package.json
+++ b/package.json
@@ -11,9 +11,9 @@
"stylelint:fix": "stylelint src --fix"
},
"dependencies": {
- "@nextcloud/axios": "^1.3.2",
+ "@nextcloud/axios": "^1.8.0",
"@nextcloud/vue": "^1.4.0",
- "axios": "^0.19.2",
+ "axios": "^0.24.0",
"trim": "0.0.1",
"vue": "^2.6.11"
},