mirror of
https://github.com/DrBeef/JKXR.git
synced 2024-12-04 01:51:17 +00:00
Fix permission loop problem (problem seems to be that application crashes (and is restarted) when requesting two permissions at once)
This commit is contained in:
parent
0aaf76fa3b
commit
283c994bdd
1 changed files with 10 additions and 25 deletions
|
@ -89,7 +89,7 @@ import java.util.Vector;
|
||||||
private static final String APPLICATION = "JKXR";
|
private static final String APPLICATION = "JKXR";
|
||||||
|
|
||||||
|
|
||||||
private int permissionCount = 0;
|
private boolean permissionsGranted = false;
|
||||||
private static final int READ_EXTERNAL_STORAGE_PERMISSION_ID = 1;
|
private static final int READ_EXTERNAL_STORAGE_PERMISSION_ID = 1;
|
||||||
private static final int WRITE_EXTERNAL_STORAGE_PERMISSION_ID = 2;
|
private static final int WRITE_EXTERNAL_STORAGE_PERMISSION_ID = 2;
|
||||||
|
|
||||||
|
@ -160,26 +160,19 @@ import java.util.Vector;
|
||||||
GLES3JNIActivity.this,
|
GLES3JNIActivity.this,
|
||||||
new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||||
WRITE_EXTERNAL_STORAGE_PERMISSION_ID);
|
WRITE_EXTERNAL_STORAGE_PERMISSION_ID);
|
||||||
}
|
} else if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
|
||||||
else
|
!= PackageManager.PERMISSION_GRANTED){
|
||||||
{
|
ActivityCompat.requestPermissions(
|
||||||
permissionCount++;
|
GLES3JNIActivity.this,
|
||||||
}
|
|
||||||
|
|
||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
|
|
||||||
!= PackageManager.PERMISSION_GRANTED)
|
|
||||||
{
|
|
||||||
ActivityCompat.requestPermissions(
|
|
||||||
GLES3JNIActivity.this,
|
|
||||||
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
|
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
|
||||||
READ_EXTERNAL_STORAGE_PERMISSION_ID);
|
READ_EXTERNAL_STORAGE_PERMISSION_ID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
permissionCount++;
|
permissionsGranted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (permissionCount == 2) {
|
if (permissionsGranted) {
|
||||||
// Permissions have already been granted.
|
// Permissions have already been granted.
|
||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
@ -189,21 +182,13 @@ import java.util.Vector;
|
||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] results) {
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] results) {
|
||||||
if (requestCode == READ_EXTERNAL_STORAGE_PERMISSION_ID) {
|
if (requestCode == READ_EXTERNAL_STORAGE_PERMISSION_ID) {
|
||||||
if (results.length > 0 && results[0] == PackageManager.PERMISSION_GRANTED) {
|
if (results.length > 0 && results[0] != PackageManager.PERMISSION_GRANTED) {
|
||||||
permissionCount++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_ID) {
|
if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_ID) {
|
||||||
if (results.length > 0 && results[0] == PackageManager.PERMISSION_GRANTED) {
|
if (results.length > 0 && results[0] != PackageManager.PERMISSION_GRANTED) {
|
||||||
permissionCount++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue