Browse Source

Release 0.4.4. See README for changelog.

Aidan Follestad 10 years ago
parent
commit
74d09ad5eb

+ 17 - 2
README.md

@@ -6,6 +6,11 @@ The code you see below is also found in the sample project. You can download a A
 
 ### What's New
 
+###### Version 0.4.4
+
+> 1. Memory management improvements for Typefaces (thanks [Kevin Barry](https://github.com/teslacoil) of Nova Launcher!)
+> 2. Added `dismiss`, `cancel`, and `show` listener methods to the `Builder`.
+
 ###### Version 0.4.3
 
 > 1. Added `md_icon` attribute to global theming.
@@ -55,7 +60,7 @@ Easily reference the library in your Android projects using this dependency in y
 
 ```Groovy
 dependencies {
-    compile 'com.afollestad:material-dialogs:0.4.3'
+    compile 'com.afollestad:material-dialogs:0.4.4'
 }
 ```
 
@@ -76,7 +81,6 @@ for color resources (e.g. `titleColor` and `titleColorRes`).
 new MaterialDialog.Builder(this)
         .title("Use Google's Location Services?")
         .content("Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.")
-        .theme(Theme.LIGHT)  // the default is light, so you don't need this line
         .positiveText("Agree")
         .negativeText("Disagree")
         .show();
@@ -426,6 +430,17 @@ the color will override that behavior.
 
 ---
 
+### Show, Cancel, and Dismiss Callbacks
+
+You can directly setup show/cancel/dismiss listeners from the `Builder` rather than on the resulting
+`MaterialDialog` instance:
+
+```java
+
+```
+
+---
+
 ### Misc
 
 If you need to access a View in the custom view set to a MaterialDialog, you can use `getCustomView()` of

+ 1 - 1
build.gradle

@@ -12,4 +12,4 @@ allprojects {
     repositories {
         jcenter()
     }
-}
+}

+ 2 - 2
library/build.gradle

@@ -9,7 +9,7 @@ android {
         minSdkVersion 8
         targetSdkVersion 21
         versionCode 1
-        versionName "0.4.3"
+        versionName "0.4.4"
     }
     lintOptions {
         abortOnError false
@@ -26,7 +26,7 @@ publish {
     userOrg = 'drummer-aidan'
     groupId = 'com.afollestad'
     artifactId = 'material-dialogs'
-    version = '0.4.3'
+    version = '0.4.4'
     description = 'A library for implementing Material design styled dialogs across all versions of Android.'
     website = 'https://github.com/afollestad/material-dialogs'
     issueTracker = "${website}/issues"

+ 32 - 4
library/src/main/java/com/afollestad/materialdialogs/MaterialDialog.java

@@ -388,8 +388,8 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
         final int mainFramePadding = (int) mContext.getResources().getDimension(R.dimen.md_main_frame_margin);
         if (titleFrame.getVisibility() == View.VISIBLE || icon.getVisibility() == View.VISIBLE) {
             int bottomPadding = mainFramePadding;
-            if(icon.getVisibility() == View.VISIBLE)
-                bottomPadding = (int)getContext().getResources().getDimension(R.dimen.md_title_margin_plainlist);
+            if (icon.getVisibility() == View.VISIBLE)
+                bottomPadding = (int) getContext().getResources().getDimension(R.dimen.md_title_margin_plainlist);
             setMargin(titleFrame, dialogFramePadding, bottomPadding, dialogFramePadding, dialogFramePadding);
             ((ViewGroup) titleFrame.getParent()).removeView(titleFrame);
             listViewContainer.addView(titleFrame, 0);
@@ -664,6 +664,9 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
         protected Typeface mediumFont;
         protected Drawable icon;
         protected ListAdapter adapter;
+        private OnDismissListener dismissListener;
+        private OnCancelListener cancelListener;
+        private OnShowListener showListener;
 
         public Builder(@NonNull Context context) {
             this.context = context;
@@ -943,12 +946,37 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
             return this;
         }
 
+        public Builder showListener(OnShowListener listener) {
+            this.showListener = listener;
+            return this;
+        }
+
+        public Builder dismissListener(OnDismissListener listener) {
+            this.dismissListener = listener;
+            return this;
+        }
+
+        public Builder cancelListener(OnCancelListener listener) {
+            this.cancelListener = listener;
+            return this;
+        }
+
         public MaterialDialog build() {
-            return new MaterialDialog(this);
+            MaterialDialog dialog = new MaterialDialog(this);
+            if (this.showListener != null) {
+                dialog.setOnShowListener(this.showListener);
+            }
+            if (this.cancelListener != null) {
+                dialog.setOnCancelListener(this.cancelListener);
+            }
+            if (this.dismissListener != null) {
+                dialog.setOnDismissListener(this.dismissListener);
+            }
+            return dialog;
         }
 
         public MaterialDialog show() {
-            MaterialDialog dialog = new MaterialDialog(this);
+            MaterialDialog dialog = build();
             dialog.show();
             return dialog;
         }

+ 2 - 2
sample/build.gradle

@@ -8,8 +8,8 @@ android {
         applicationId "com.afollestad.materialdialogssample"
         minSdkVersion 11
         targetSdkVersion 21
-        versionCode 48
-        versionName "0.4.3"
+        versionCode 49
+        versionName "0.4.4"
     }
     buildTypes {
 //        release {

BIN
sample/sample.apk


+ 37 - 18
sample/src/main/java/com/afollestad/materialdialogssample/MainActivity.java

@@ -1,5 +1,6 @@
 package com.afollestad.materialdialogssample;
 
+import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v7.app.ActionBarActivity;
 import android.text.Editable;
@@ -139,6 +140,13 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
             }
         });
 
+        findViewById(R.id.showCancelDismiss).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showShowCancelDismissCallbacks();
+            }
+        });
+
         findViewById(R.id.folder_chooser).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -152,7 +160,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .content(R.string.shareLocationPrompt)
                 .positiveText(R.string.agree)
                 .negativeText(R.string.disagree)
-                .build()
                 .show();
     }
 
@@ -162,7 +169,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .content(R.string.useGoogleLocationServicesPrompt)
                 .positiveText(R.string.agree)
                 .negativeText(R.string.disagree)
-                .build()
                 .show();
     }
 
@@ -172,7 +178,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .content(R.string.loremIpsum)
                 .positiveText(R.string.agree)
                 .negativeText(R.string.disagree)
-                .build()
                 .show();
     }
 
@@ -183,7 +188,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .content(R.string.useGoogleLocationServicesPrompt)
                 .positiveText(R.string.agree)
                 .negativeText(R.string.disagree)
-                .build()
                 .show();
     }
 
@@ -193,7 +197,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .content(R.string.useGoogleLocationServicesPrompt)
                 .positiveText(R.string.speedBoost)
                 .negativeText(R.string.noThanks)
-                .build()
                 .show();
     }
 
@@ -204,7 +207,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .positiveText(R.string.agree)
                 .negativeText(R.string.disagree)
                 .neutralText(R.string.more_info)
-                .build()
                 .show();
     }
 
@@ -231,7 +233,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                         Toast.makeText(getApplicationContext(), "Negative…", Toast.LENGTH_SHORT).show();
                     }
                 })
-                .build()
                 .show();
     }
 
@@ -245,7 +246,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                         Toast.makeText(getApplicationContext(), which + ": " + text, Toast.LENGTH_SHORT).show();
                     }
                 })
-                .build()
                 .show();
     }
 
@@ -258,7 +258,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                         Toast.makeText(getApplicationContext(), which + ": " + text, Toast.LENGTH_SHORT).show();
                     }
                 })
-                .build()
                 .show();
     }
 
@@ -273,7 +272,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                     }
                 })
                 .positiveText(android.R.string.ok)
-                .build()
                 .show();
     }
 
@@ -288,7 +286,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                     }
                 })
                 .positiveText(R.string.choose)
-                .build()
                 .show();
     }
 
@@ -310,7 +307,7 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                     }
                 })
                 .positiveText(R.string.choose)
-                .build()
+
                 .show();
     }
 
@@ -396,7 +393,34 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                 .titleColorRes(R.color.material_red_400)
                 .contentColorRes(android.R.color.white)
                 .theme(Theme.DARK)
-                .build()
+                .show();
+    }
+
+    private void showShowCancelDismissCallbacks() {
+        new MaterialDialog.Builder(this)
+                .title(R.string.useGoogleLocationServices)
+                .content(R.string.useGoogleLocationServicesPrompt)
+                .positiveText(R.string.agree)
+                .negativeText(R.string.disagree)
+                .neutralText(R.string.more_info)
+                .showListener(new DialogInterface.OnShowListener() {
+                    @Override
+                    public void onShow(DialogInterface dialog) {
+                        Toast.makeText(getApplicationContext(), "onShow", Toast.LENGTH_SHORT).show();
+                    }
+                })
+                .cancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialog) {
+                        Toast.makeText(getApplicationContext(), "onCancel", Toast.LENGTH_SHORT).show();
+                    }
+                })
+                .dismissListener(new DialogInterface.OnDismissListener() {
+                    @Override
+                    public void onDismiss(DialogInterface dialog) {
+                        Toast.makeText(getApplicationContext(), "onDismiss", Toast.LENGTH_SHORT).show();
+                    }
+                })
                 .show();
     }
 
@@ -414,11 +438,6 @@ public class MainActivity extends ActionBarActivity implements FolderSelectorDia
                     .positiveText(R.string.dismiss)
                     .content(Html.fromHtml(getString(R.string.about_body)))
                     .contentLineSpacing(1.6f)
-                    .callback(new MaterialDialog.SimpleCallback() {
-                        @Override
-                        public void onPositive(MaterialDialog dialog) {
-                        }
-                    })
                     .build()
                     .show();
             return true;

+ 7 - 0
sample/src/main/res/layout/activity_main.xml

@@ -114,6 +114,13 @@
             android:text="@string/themed"
             android:layout_marginTop="@dimen/sample_button_spacing" />
 
+        <Button
+            android:id="@+id/showCancelDismiss"
+            android:layout_width="match_parent"
+            android:layout_height="56dp"
+            android:text="@string/showCancelDismissCallbacks"
+            android:layout_marginTop="@dimen/sample_button_spacing" />
+
         <Button
             android:id="@+id/folder_chooser"
             android:layout_width="match_parent"

+ 1 - 0
sample/src/main/res/values/strings.xml

@@ -51,6 +51,7 @@
     <string name="basic_icon">Basic (Icon)</string>
     <string name="basic_list_notitle">Basic List (No Title)</string>
     <string name="folder_chooser">Folder Chooser</string>
+    <string name="showCancelDismissCallbacks">Show/Cancel/Dismiss Callbacks</string>
 
     <string-array name="socialNetworks">
         <item>Twitter</item>