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

Skip to content

Commit 395b1f2

Browse files
committed
Merge branch '106_Sample_RequestPermission' of https://github.com/skarempudi/AndroidPdfViewer into skarempudi-106_Sample_RequestPermission
2 parents 8a50dae + 2c93fcd commit 395b1f2

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
@@ -17,9 +17,12 @@
1717

1818
import android.content.ActivityNotFoundException;
1919
import android.content.Intent;
20+
import android.content.pm.PackageManager;
2021
import android.database.Cursor;
2122
import android.net.Uri;
2223
import android.provider.OpenableColumns;
24+
import android.support.v4.app.ActivityCompat;
25+
import android.support.v4.content.ContextCompat;
2326
import android.support.v7.app.AppCompatActivity;
2427
import android.util.Log;
2528
import android.widget.Toast;
@@ -47,8 +50,10 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
4750
private static final String TAG = PDFViewActivity.class.getSimpleName();
4851

4952
private final static int REQUEST_CODE = 42;
53+
public static final int PERMISSION_CODE = 42042;
5054

5155
public static final String SAMPLE_FILE = "sample.pdf";
56+
public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";
5257

5358
@ViewById
5459
PDFView pdfView;
@@ -63,6 +68,23 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
6368

6469
@OptionsItem(R.id.pickFile)
6570
void pickFile() {
71+
int permissionCheck = ContextCompat.checkSelfPermission(this,
72+
READ_EXTERNAL_STORAGE);
73+
74+
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
75+
ActivityCompat.requestPermissions(
76+
this,
77+
new String[]{READ_EXTERNAL_STORAGE},
78+
PERMISSION_CODE
79+
);
80+
81+
return;
82+
}
83+
84+
launchPicker();
85+
}
86+
87+
void launchPicker() {
6688
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
6789
intent.setType("application/pdf");
6890
try {
@@ -168,4 +190,22 @@ public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) {
168190
}
169191
}
170192
}
193+
194+
/**
195+
* Listener for response to user permission request
196+
* @param requestCode Check that permission request code matches
197+
* @param permissions Permissions that requested
198+
* @param grantResults Whether permissions granted
199+
*/
200+
@Override
201+
public void onRequestPermissionsResult(int requestCode, String permissions[],
202+
int[] grantResults) {
203+
if (requestCode == PERMISSION_CODE) {
204+
if (grantResults.length > 0
205+
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
206+
launchPicker();
207+
}
208+
}
209+
}
210+
171211
}

0 commit comments

Comments
 (0)