plectrum

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit c85168f9aec45771995a08b87d3042ff9e49b478
parent a1a1ba3d8f135589478616a8c95b31300a1e9d80
Author: gstraube <gstraube@mailbox.org>
Date:   Tue,  5 Feb 2019 18:32:48 +0100

Ignore invalid permission result

"Note: It is possible that the permissions request interaction with the
user is interrupted. In this case you will receive empty permissions and
results arrays which should be treated as a cancellation."

Source: https://developer.android.com/reference/android/app/Activity#onRequestPermissionsResult(int,%20java.lang.String[],%20int[])

Signed-off-by: gstraube <gstraube@mailbox.org>

Diffstat:
Mapp/src/main/java/com/github/cythara/MainActivity.java | 43++++++++++++++++++++++++-------------------
1 file changed, 24 insertions(+), 19 deletions(-)

diff --git a/app/src/main/java/com/github/cythara/MainActivity.java b/app/src/main/java/com/github/cythara/MainActivity.java @@ -66,8 +66,7 @@ public class MainActivity extends AppCompatActivity implements TaskCallbacks, Manifest.permission.RECORD_AUDIO); if (permissionCheck != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, - new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_AUDIO_PERMISSION); + requestRecordAudioPermission(); } else { startRecording(); } @@ -181,23 +180,24 @@ public class MainActivity extends AppCompatActivity implements TaskCallbacks, @NonNull int[] grantResults) { switch (requestCode) { case RECORD_AUDIO_PERMISSION: { - if (grantResults.length > 0 - && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - startRecording(); - } else { - AlertDialog alertDialog = new Builder(MainActivity.this).create(); - alertDialog.setTitle(R.string.permission_required); - alertDialog.setMessage(getString(R.string.microphone_permission_required)); - alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, getString(R.string.ok), - (dialog, which) -> { - dialog.dismiss(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - finishAffinity(); - } else { - finish(); - } - }); - alertDialog.show(); + if (grantResults.length > 0) { + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + startRecording(); + } else { + AlertDialog alertDialog = new Builder(MainActivity.this).create(); + alertDialog.setTitle(R.string.permission_required); + alertDialog.setMessage(getString(R.string.microphone_permission_required)); + alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, getString(R.string.ok), + (dialog, which) -> { + dialog.dismiss(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + finishAffinity(); + } else { + finish(); + } + }); + alertDialog.show(); + } } } } @@ -287,4 +287,9 @@ public class MainActivity extends AppCompatActivity implements TaskCallbacks, pitchAdjuster = new PitchAdjuster(referencePitch); } + + private void requestRecordAudioPermission() { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, + RECORD_AUDIO_PERMISSION); + } }