1
0
Aidan Follestad 9 жил өмнө
parent
commit
48f3d828a7

+ 35 - 5
README.md

@@ -55,9 +55,10 @@
 1. [Color Chooser Dialogs](https://github.com/afollestad/material-dialogs#color-chooser-dialogs)
     1. [Finding Visible Dialogs](https://github.com/afollestad/material-dialogs#finding-visible-dialogs)
     2. [User Color Input](https://github.com/afollestad/material-dialogs#user-color-input)
-2. [Folder Selector Dialogs](https://github.com/afollestad/material-dialogs#folder-selector-dialogs)
-3. [Preference Dialogs](https://github.com/afollestad/material-dialogs#preference-dialogs)
-4. [Simple List Dialogs](https://github.com/afollestad/material-dialogs#simple-list-dialogs) 
+2. [File Selector Dialogs](https://github.com/afollestad/material-dialogs#file-selector-dialogs)
+3. [Folder Selector Dialogs](https://github.com/afollestad/material-dialogs#folder-selector-dialogs)
+4. [Preference Dialogs](https://github.com/afollestad/material-dialogs#preference-dialogs)
+5. [Simple List Dialogs](https://github.com/afollestad/material-dialogs#simple-list-dialogs) 
 
 ------
 
@@ -102,7 +103,7 @@ You can create basic, list, single/multi choice, progress, input, etc. dialogs w
 ```gradle
 dependencies {
 	...
-    compile('com.github.afollestad.material-dialogs:core:0.8.5.2@aar') {
+    compile('com.github.afollestad.material-dialogs:core:0.8.6.0@aar') {
         transitive = true
     }
 }
@@ -1201,6 +1202,35 @@ dialogs. See the sample project for details.
 
 ---
 
+# File Selector Dialogs
+
+The Builder is used like this:
+
+```java
+// Pass AppCompatActivity which implements FileCallback
+new FileChooserDialog.Builder(this)
+    .chooseButton(R.string.md_choose_label)  // changes label of the choose button
+    .initialPath("/sdcard/Download")  // changes initial path, defaults to external storage directory
+    .mimeType("image/*") // Optional MIME type filter
+    .show();
+```
+
+The Activity you show the dialog in must implement `FileCallback`:
+
+```java
+public class MyActivity implements FolderChooserDialog.FileCallback {
+
+    // ...
+
+    @Override
+    public void onFileSelection(@NonNull File file) {
+        // TODO
+    }
+}
+```
+
+---
+
 # Folder Selector Dialogs
 
 The Builder is used like this:
@@ -1221,7 +1251,7 @@ public class MyActivity implements FolderChooserDialog.FolderCallback {
     // ...
 
     @Override
-    public void onFolderSelection(File folder) {
+    public void onFolderSelection(@NonNull File folder) {
         // TODO
     }
 }

+ 3 - 3
commons/src/main/java/com/afollestad/materialdialogs/folderselector/FileChooserDialog.java

@@ -38,7 +38,7 @@ public class FileChooserDialog extends DialogFragment implements MaterialDialog.
     private FileCallback mCallback;
 
     public interface FileCallback {
-        void onFileSelection(File file);
+        void onFileSelection(@NonNull File file);
     }
 
     public FileChooserDialog() {
@@ -79,7 +79,7 @@ public class FileChooserDialog extends DialogFragment implements MaterialDialog.
         } else {
             // get the file mime type
             String filename = file.toURI().toString();
-            int dotPos =  filename.lastIndexOf('.');
+            int dotPos = filename.lastIndexOf('.');
             if (dotPos == -1) {
                 return false;
             }
@@ -103,7 +103,7 @@ public class FileChooserDialog extends DialogFragment implements MaterialDialog.
                 return false;
             }
             int fileTypeDelimiter = fileType.lastIndexOf('/');
-            if (fileTypeDelimiter == -1 ) {
+            if (fileTypeDelimiter == -1) {
                 return false;
             }
             String fileTypeMainType = fileType.substring(0, fileTypeDelimiter);

+ 10 - 10
commons/src/main/java/com/afollestad/materialdialogs/folderselector/FolderChooserDialog.java

@@ -40,7 +40,7 @@ public class FolderChooserDialog extends DialogFragment implements MaterialDialo
     private FolderCallback mCallback;
 
     public interface FolderCallback {
-        void onFolderSelection(File folder);
+        void onFolderSelection(@NonNull File folder);
     }
 
     public FolderChooserDialog() {
@@ -72,15 +72,15 @@ public class FolderChooserDialog extends DialogFragment implements MaterialDialo
     @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
-        ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) !=
-        PackageManager.PERMISSION_GRANTED) {
-    return new MaterialDialog.Builder(getActivity())
-            .title(R.string.md_error_label)
-            .content(R.string.md_storage_perm_error)
-            .positiveText(android.R.string.ok)
-            .build();
-}
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
+                ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) !=
+                        PackageManager.PERMISSION_GRANTED) {
+            return new MaterialDialog.Builder(getActivity())
+                    .title(R.string.md_error_label)
+                    .content(R.string.md_storage_perm_error)
+                    .positiveText(android.R.string.ok)
+                    .build();
+        }
 
         if (getArguments() == null || !getArguments().containsKey("builder"))
             throw new IllegalStateException("You must create a FolderChooserDialog using the Builder.");

+ 9 - 0
commons/src/main/res/layout/md_preference_custom.xml

@@ -11,6 +11,15 @@
     android:paddingRight="?android:attr/scrollbarSize"
     tools:ignore="RtlSymmetry,UnusedAttribute">
 
+    <ImageView
+        android:id="@+android:id/icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginLeft="@dimen/md_preference_content_inset"
+        android:layout_marginStart="@dimen/md_preference_content_inset"
+        tools:ignore="ContentDescription" />
+
     <RelativeLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"

+ 1 - 1
core/build.gradle

@@ -11,7 +11,7 @@ android {
         minSdkVersion 8
         targetSdkVersion 23
         versionCode 1
-        versionName "0.8.5.2"
+        versionName "0.8.6.0"
         consumerProguardFiles 'progress-proguard.txt'
     }
     lintOptions {

+ 2 - 2
sample/build.gradle

@@ -17,8 +17,8 @@ android {
         applicationId "com.afollestad.materialdialogssample"
         minSdkVersion 9
         targetSdkVersion 23
-        versionCode 153
-        versionName "0.8.5.2"
+        versionCode 154
+        versionName "0.8.6.0"
     }
     lintOptions {
         abortOnError false