浏览代码

accent color: if dark theme then light color, else darker color than primary

tobiaskaminsky 7 年之前
父节点
当前提交
b41bd77daa
共有 1 个文件被更改,包括 22 次插入6 次删除
  1. 22 6
      src/main/java/com/owncloud/android/utils/DisplayUtils.java

+ 22 - 6
src/main/java/com/owncloud/android/utils/DisplayUtils.java

@@ -790,15 +790,25 @@ public class DisplayUtils {
     public static int fontColor() {
         int primaryColor = primaryColor();
 
+        if (darkTheme()) {
+            return Color.WHITE;
+        } else {
+            return Color.BLACK;
+        }
+    }
+
+    /**
+     * Tests if dark color is set
+     * @return true if dark theme -> e.g.use light font color, darker accent color
+     */
+    public static boolean darkTheme() {
+        int primaryColor = primaryColor();
+
         int red = Color.red(primaryColor);
         int green = Color.green(primaryColor);
         int blue = Color.blue(primaryColor);
 
-        if (((0.299 * red + 0.587 * green + 0.114 * blue) / 255) > 0.5) {
-            return Color.BLACK;
-        } else {
-            return Color.WHITE;
-        }
+        return ((0.299 * red + 0.587 * green + 0.114 * blue) / 255) <= 0.5;
     }
 
     public static String colorToHexString(int color) {
@@ -809,7 +819,13 @@ public class DisplayUtils {
         OCCapability capability = getCapability();
 
         try {
-            return adjustLightness(+0.1f, Color.parseColor(capability.getServerColor()));
+            float adjust;
+            if (darkTheme()){
+                adjust = +0.1f;
+            } else {
+                adjust = -0.1f;
+            }
+            return adjustLightness(adjust, Color.parseColor(capability.getServerColor()));
         } catch (Exception e) {
             return MainApp.getAppContext().getResources().getColor(R.color.color_accent);
         }