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
 ### 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
 ###### Version 0.4.3
 
 
 > 1. Added `md_icon` attribute to global theming.
 > 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
 ```Groovy
 dependencies {
 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)
 new MaterialDialog.Builder(this)
         .title("Use Google's Location Services?")
         .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.")
         .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")
         .positiveText("Agree")
         .negativeText("Disagree")
         .negativeText("Disagree")
         .show();
         .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
 ### Misc
 
 
 If you need to access a View in the custom view set to a MaterialDialog, you can use `getCustomView()` of
 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 {
     repositories {
         jcenter()
         jcenter()
     }
     }
-}
+}

+ 2 - 2
library/build.gradle

@@ -9,7 +9,7 @@ android {
         minSdkVersion 8
         minSdkVersion 8
         targetSdkVersion 21
         targetSdkVersion 21
         versionCode 1
         versionCode 1
-        versionName "0.4.3"
+        versionName "0.4.4"
     }
     }
     lintOptions {
     lintOptions {
         abortOnError false
         abortOnError false
@@ -26,7 +26,7 @@ publish {
     userOrg = 'drummer-aidan'
     userOrg = 'drummer-aidan'
     groupId = 'com.afollestad'
     groupId = 'com.afollestad'
     artifactId = 'material-dialogs'
     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.'
     description = 'A library for implementing Material design styled dialogs across all versions of Android.'
     website = 'https://github.com/afollestad/material-dialogs'
     website = 'https://github.com/afollestad/material-dialogs'
     issueTracker = "${website}/issues"
     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);
         final int mainFramePadding = (int) mContext.getResources().getDimension(R.dimen.md_main_frame_margin);
         if (titleFrame.getVisibility() == View.VISIBLE || icon.getVisibility() == View.VISIBLE) {
         if (titleFrame.getVisibility() == View.VISIBLE || icon.getVisibility() == View.VISIBLE) {
             int bottomPadding = mainFramePadding;
             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);
             setMargin(titleFrame, dialogFramePadding, bottomPadding, dialogFramePadding, dialogFramePadding);
             ((ViewGroup) titleFrame.getParent()).removeView(titleFrame);
             ((ViewGroup) titleFrame.getParent()).removeView(titleFrame);
             listViewContainer.addView(titleFrame, 0);
             listViewContainer.addView(titleFrame, 0);
@@ -664,6 +664,9 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
         protected Typeface mediumFont;
         protected Typeface mediumFont;
         protected Drawable icon;
         protected Drawable icon;
         protected ListAdapter adapter;
         protected ListAdapter adapter;
+        private OnDismissListener dismissListener;
+        private OnCancelListener cancelListener;
+        private OnShowListener showListener;
 
 
         public Builder(@NonNull Context context) {
         public Builder(@NonNull Context context) {
             this.context = context;
             this.context = context;
@@ -943,12 +946,37 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
             return this;
             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() {
         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() {
         public MaterialDialog show() {
-            MaterialDialog dialog = new MaterialDialog(this);
+            MaterialDialog dialog = build();
             dialog.show();
             dialog.show();
             return dialog;
             return dialog;
         }
         }

+ 2 - 2
sample/build.gradle

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

BIN
sample/sample.apk


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

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

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

@@ -114,6 +114,13 @@
             android:text="@string/themed"
             android:text="@string/themed"
             android:layout_marginTop="@dimen/sample_button_spacing" />
             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
         <Button
             android:id="@+id/folder_chooser"
             android:id="@+id/folder_chooser"
             android:layout_width="match_parent"
             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_icon">Basic (Icon)</string>
     <string name="basic_list_notitle">Basic List (No Title)</string>
     <string name="basic_list_notitle">Basic List (No Title)</string>
     <string name="folder_chooser">Folder Chooser</string>
     <string name="folder_chooser">Folder Chooser</string>
+    <string name="showCancelDismissCallbacks">Show/Cancel/Dismiss Callbacks</string>
 
 
     <string-array name="socialNetworks">
     <string-array name="socialNetworks">
         <item>Twitter</item>
         <item>Twitter</item>