Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2c93fcd

Browse files
committed
Resolving issue 106: Sample fails to load files due to lack of permission request during app. This is necessary for API level 23 or above. Fixed by requesting permission during app run.
1 parent 187fbf5 commit 2c93fcd

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

sample/src/main/java/com/github/barteksc/sample/PDFViewActivity.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@
1616
package com.github.barteksc.sample;
1717

1818
import android.content.Intent;
19+
import android.content.pm.PackageManager;
1920
import android.database.Cursor;
2021
import android.net.Uri;
2122
import android.provider.OpenableColumns;
23+
import android.support.v4.app.ActivityCompat;
24+
import android.support.v4.content.ContextCompat;
2225
import android.support.v7.app.AppCompatActivity;
2326
import android.util.Log;
2427

@@ -45,8 +48,10 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
4548
private static final String TAG = PDFViewActivity.class.getSimpleName();
4649

4750
private final static int REQUEST_CODE = 42;
51+
public static final int PERMISSION_CODE = 42042;
4852

4953
public static final String SAMPLE_FILE = "sample.pdf";
54+
public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";
5055

5156
@ViewById
5257
PDFView pdfView;
@@ -61,6 +66,23 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
6166

6267
@OptionsItem(R.id.pickFile)
6368
void pickFile() {
69+
int permissionCheck = ContextCompat.checkSelfPermission(this,
70+
READ_EXTERNAL_STORAGE);
71+
72+
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
73+
ActivityCompat.requestPermissions(
74+
this,
75+
new String[]{READ_EXTERNAL_STORAGE},
76+
PERMISSION_CODE
77+
);
78+
79+
return;
80+
}
81+
82+
launchPicker();
83+
}
84+
85+
void launchPicker() {
6486
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
6587
intent.setType("application/pdf");
6688
startActivityForResult(intent, REQUEST_CODE);
@@ -160,4 +182,22 @@ public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) {
160182
}
161183
}
162184
}
185+
186+
/**
187+
* Listener for response to user permission request
188+
* @param requestCode Check that permission request code matches
189+
* @param permissions Permissions that requested
190+
* @param grantResults Whether permissions granted
191+
*/
192+
@Override
193+
public void onRequestPermissionsResult(int requestCode, String permissions[],
194+
int[] grantResults) {
195+
if (requestCode == PERMISSION_CODE) {
196+
if (grantResults.length > 0
197+
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
198+
launchPicker();
199+
}
200+
}
201+
}
202+
163203
}

0 commit comments

Comments
 (0)