From 213ea56e808e48d269b910cead35ef791bb961d1 Mon Sep 17 00:00:00 2001 From: Mykola Kurutin Date: Sat, 2 Jan 2016 20:42:38 -0500 Subject: [PATCH] Fix file list initialization when permissions are granted in API23 --- .../filepickerlibrary/FilePickerActivity.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/FPlib/src/main/java/com/devpaul/filepickerlibrary/FilePickerActivity.java b/FPlib/src/main/java/com/devpaul/filepickerlibrary/FilePickerActivity.java index 6d3b4cb..89ad2ad 100755 --- a/FPlib/src/main/java/com/devpaul/filepickerlibrary/FilePickerActivity.java +++ b/FPlib/src/main/java/com/devpaul/filepickerlibrary/FilePickerActivity.java @@ -41,7 +41,6 @@ import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; - import com.afollestad.materialdialogs.MaterialDialog; import com.devpaul.filepickerlibrary.adapter.FileListAdapter; import com.devpaul.filepickerlibrary.enums.FileScopeType; @@ -343,11 +342,11 @@ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCoun setHeaderBackground(colorId, drawableId); //check for proper permissions. - if(Build.VERSION.SDK_INT == Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) { int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); - if(permissionCheck != PackageManager.PERMISSION_GRANTED) { - if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { + if (permissionCheck != PackageManager.PERMISSION_GRANTED) { + if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { //Show permission rationale. new MaterialDialog.Builder(FilePickerActivity.this) .title(R.string.file_picker_permission_rationale_dialog_title) @@ -370,13 +369,14 @@ public void onNegative(MaterialDialog dialog) { } }) .show(); - } - else { + } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_FOR_READ_EXTERNAL_STORAGE); } + } else { + init(); } } else { init(); @@ -405,12 +405,11 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in switch (requestCode) { case REQUEST_FOR_READ_EXTERNAL_STORAGE: - if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { //permission granted. init(); - } - else { + } else { setResult(RESULT_CANCELED); finish(); } @@ -422,7 +421,7 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in @Override public void onBackPressed() { if (lastDirectory != null && !curDirectory.getPath() - .equals(Environment.getExternalStorageDirectory().getPath())) { + .equals(Environment.getExternalStorageDirectory().getPath())) { new UpdateFilesTask(FilePickerActivity.this).execute(lastDirectory); } else { setResult(RESULT_CANCELED); @@ -721,7 +720,7 @@ protected void onPostExecute(File[] localFiles) { } lastDirectory = directory.getParentFile(); curDirectory = directory; - if(directory.listFiles() != null) { + if (directory.listFiles() != null) { if (directory.listFiles().length > 0 && directoryExists(files) && listView.getHeaderViewsCount() == 0) { listView.addHeaderView(listHeaderView); @@ -731,7 +730,7 @@ protected void onPostExecute(File[] localFiles) { } } } - if(files != null) { + if (files != null) { adapter = new FileListAdapter(FilePickerActivity.this, files, scopeType); FilePickerActivity.this.setListAdapter(adapter); }