Browse Source

Release 0.4.2g

Aidan Follestad 10 years ago
parent
commit
bd665c25a2

+ 8 - 1
library/src/main/java/com/afollestad/materialdialogs/DialogUtils.java

@@ -32,9 +32,16 @@ public class DialogUtils {
     }
 
     public static Drawable resolveDrawable(Context context, int attr) {
+        return resolveDrawable(context, attr, null);
+    }
+
+    public static Drawable resolveDrawable(Context context, int attr, Drawable fallback) {
         TypedArray a = context.getTheme().obtainStyledAttributes(new int[]{attr});
         try {
-            return a.getDrawable(0);
+            Drawable d = a.getDrawable(0);
+            if (d == null && fallback != null)
+                d = fallback;
+            return d;
         } finally {
             a.recycle();
         }

+ 13 - 11
library/src/main/java/com/afollestad/materialdialogs/MaterialDialog.java

@@ -54,6 +54,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
     private TextView title;
     private View titleFrame;
 
+    private int contentColor;
     private Context mContext;
     private CharSequence positiveText;
     private TextView positiveButton;
@@ -154,6 +155,15 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
             content.setGravity(Gravity.RIGHT);
         }
 
+        if (builder.contentColor != -1) {
+            this.contentColor = builder.contentColor;
+            content.setTextColor(this.contentColor);
+        } else {
+            final int fallback = DialogUtils.resolveColor(getContext(), android.R.attr.textColorSecondary);
+            this.contentColor = DialogUtils.resolveColor(getContext(), R.attr.md_content_color, fallback);
+            content.setTextColor(contentColor);
+        }
+
         if (customView != null) {
             title = (TextView) view.findViewById(R.id.titleCustomView);
             icon = (ImageView) view.findViewById(R.id.iconCustomView);
@@ -175,7 +185,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
         if (items != null && items.length > 0 || adapterProvided) {
             title = (TextView) view.findViewById(R.id.titleCustomView);
             listView = (ListView) view.findViewById(R.id.contentListView);
-            listView.setSelector(DialogUtils.resolveDrawable(mContext, R.attr.md_selector));
+            listView.setSelector(DialogUtils.resolveDrawable(getContext(), R.attr.md_selector));
             ((MeasureCallbackListView) listView).setCallback(this);
 
             if (!adapterProvided) {
@@ -226,13 +236,6 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
             }
         }
 
-        if (builder.contentColor != -1) {
-            content.setTextColor(builder.contentColor);
-        } else {
-            final int fallback = DialogUtils.resolveColor(getContext(), android.R.attr.textColorSecondary);
-            content.setTextColor(DialogUtils.resolveColor(getContext(), R.attr.md_content_color, fallback));
-        }
-
         invalidateActions();
         setOnShowListenerInternal();
         setViewInternal(view);
@@ -1079,7 +1082,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
 
     @Override
     public void setIconAttribute(int attrId) {
-        Drawable d = DialogUtils.resolveDrawable(getContext(), attrId);
+        Drawable d = DialogUtils.resolveDrawable(mContext, attrId);
         icon.setImageDrawable(d);
         icon.setVisibility(d != null ? View.VISIBLE : View.GONE);
     }
@@ -1117,8 +1120,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
 
         public MaterialDialogAdapter(Context context, int resource, int textViewResourceId, CharSequence[] objects) {
             super(context, resource, textViewResourceId, objects);
-            final int fallback = DialogUtils.resolveColor(context, android.R.attr.textColorSecondary);
-            itemColor = DialogUtils.resolveColor(getContext(), R.attr.md_item_color, fallback);
+            itemColor = DialogUtils.resolveColor(getContext(), R.attr.md_item_color, contentColor);
         }
 
         @Override

+ 4 - 2
library/src/main/res/values-v11/styles.xml

@@ -3,15 +3,17 @@
 
     <style name="MD_Light" parent="android:Theme.Holo.Light.Dialog">
         <item name="md_divider">@color/md_divider_black</item>
-        <item name="md_btn_selector">@drawable/md_btn_selector</item>
         <item name="md_selector">@drawable/md_selector</item>
+        <item name="md_btn_selector">@drawable/md_btn_selector</item>
+
         <item name="android:windowBackground">@android:color/transparent</item>
     </style>
 
     <style name="MD_Dark" parent="android:Theme.Holo.Dialog">
         <item name="md_divider">@color/md_divider_white</item>
-        <item name="md_btn_selector">@drawable/md_btn_selector_dark</item>
         <item name="md_selector">@drawable/md_selector_dark</item>
+        <item name="md_btn_selector">@drawable/md_btn_selector_dark</item>
+
         <item name="android:windowBackground">@android:color/transparent</item>
     </style>
 

+ 3 - 2
library/src/main/res/values/styles.xml

@@ -3,14 +3,15 @@
 
     <style name="MD_Light" parent="Theme_Light_Dialog">
         <item name="md_divider">@color/md_divider_black</item>
-        <item name="md_btn_selector">@drawable/md_btn_selector</item>
         <item name="md_selector">@drawable/md_selector</item>
+        <item name="md_btn_selector">@drawable/md_btn_selector</item>
     </style>
 
     <style name="MD_Dark" parent="android:Theme.Dialog">
         <item name="md_divider">@color/md_divider_white</item>
-        <item name="md_btn_selector">@drawable/md_btn_selector_dark</item>
         <item name="md_selector">@drawable/md_selector_dark</item>
+        <item name="md_btn_selector">@drawable/md_btn_selector_dark</item>
+
         <item name="android:windowFrame">@null</item>
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowContentOverlay">@null</item>

BIN
sample/sample.apk