Browse Source

Fixed #413, title and content global theme color attributes won't be overridden

Aidan Follestad 10 years ago
parent
commit
086ee52e76
1 changed files with 14 additions and 8 deletions
  1. 14 8
      library/src/main/java/com/afollestad/materialdialogs/DialogInit.java

+ 14 - 8
library/src/main/java/com/afollestad/materialdialogs/DialogInit.java

@@ -87,20 +87,26 @@ class DialogInit {
         if (!builder.titleColorSet) {
             final int titleColorFallback = DialogUtils.resolveColor(builder.context, android.R.attr.textColorPrimary);
             builder.titleColor = DialogUtils.resolveColor(builder.context, R.attr.md_title_color, titleColorFallback);
-            if (DialogUtils.isColorDark(builder.titleColor)) {
-                if (builder.theme == Theme.DARK)
+            if (builder.titleColor == titleColorFallback) {
+                // Only check for light/dark if color wasn't set to md_title_color
+                if (DialogUtils.isColorDark(builder.titleColor)) {
+                    if (builder.theme == Theme.DARK)
+                        builder.titleColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorPrimaryInverse);
+                } else if (builder.theme == Theme.LIGHT)
                     builder.titleColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorPrimaryInverse);
-            } else if (builder.theme == Theme.LIGHT)
-                builder.titleColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorPrimaryInverse);
+            }
         }
         if (!builder.contentColorSet) {
             final int contentColorFallback = DialogUtils.resolveColor(builder.context, android.R.attr.textColorSecondary);
             builder.contentColor = DialogUtils.resolveColor(builder.context, R.attr.md_content_color, contentColorFallback);
-            if (DialogUtils.isColorDark(builder.contentColor)) {
-                if (builder.theme == Theme.DARK)
+            if (builder.contentColor == contentColorFallback) {
+                // Only check for light/dark if color wasn't set to md_content_color
+                if (DialogUtils.isColorDark(builder.contentColor)) {
+                    if (builder.theme == Theme.DARK)
+                        builder.contentColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorSecondaryInverse);
+                } else if (builder.theme == Theme.LIGHT)
                     builder.contentColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorSecondaryInverse);
-            } else if (builder.theme == Theme.LIGHT)
-                builder.contentColor = DialogUtils.resolveColor(builder.context, android.R.attr.textColorSecondaryInverse);
+            }
         }
         if (!builder.itemColorSet)
             builder.itemColor = DialogUtils.resolveColor(builder.context, R.attr.md_item_color, builder.contentColor);