mirror of https://github.com/TeamNewPipe/NewPipe
69 lines
2.6 KiB
Java
69 lines
2.6 KiB
Java
package org.schabi.newpipe.util;
|
|
|
|
import android.Manifest;
|
|
import android.app.Activity;
|
|
import android.content.pm.PackageManager;
|
|
import android.os.Build;
|
|
import android.support.annotation.RequiresApi;
|
|
import android.support.v4.app.ActivityCompat;
|
|
import android.support.v4.content.ContextCompat;
|
|
|
|
public class PermissionHelper {
|
|
public static final int PERMISSION_WRITE_STORAGE = 778;
|
|
public static final int PERMISSION_READ_STORAGE = 777;
|
|
|
|
|
|
|
|
public static boolean checkStoragePermissions(Activity activity) {
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
|
if(!checkReadStoragePermissions(activity)) return false;
|
|
}
|
|
return checkWriteStoragePermissions(activity);
|
|
}
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
|
|
public static boolean checkReadStoragePermissions(Activity activity) {
|
|
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE)
|
|
!= PackageManager.PERMISSION_GRANTED) {
|
|
ActivityCompat.requestPermissions(activity,
|
|
new String[]{
|
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
|
PERMISSION_READ_STORAGE);
|
|
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
public static boolean checkWriteStoragePermissions(Activity activity) {
|
|
// Here, thisActivity is the current activity
|
|
if (ContextCompat.checkSelfPermission(activity,
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
|
!= PackageManager.PERMISSION_GRANTED) {
|
|
|
|
// Should we show an explanation?
|
|
/*if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
|
|
|
// Show an explanation to the user *asynchronously* -- don't block
|
|
// this thread waiting for the user's response! After the user
|
|
// sees the explanation, try again to request the permission.
|
|
} else {*/
|
|
|
|
// No explanation needed, we can request the permission.
|
|
ActivityCompat.requestPermissions(activity,
|
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
|
PERMISSION_WRITE_STORAGE);
|
|
|
|
// PERMISSION_WRITE_STORAGE is an
|
|
// app-defined int constant. The callback method gets the
|
|
// result of the request.
|
|
/*}*/
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|