Fixed mic permission requested 3 times and dialog not showing.

This commit is contained in:
Miku AuahDark
2019-09-29 15:24:35 +08:00
parent 05e193ddbd
commit 59a5fcb875
2 changed files with 27 additions and 25 deletions
@@ -13,7 +13,7 @@ import android.util.Log;
import androidx.core.app.ActivityCompat;
public class DownloadActivity extends Activity {
public static final int EXTERNAL_STORAGE_REQUEST_CODE = 2;
public static final int EXTERNAL_STORAGE_REQUEST_CODE = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -400,12 +400,32 @@ public class GameActivity extends SDLActivity {
@Keep
public void showRecordingAudioPermissionMissingDialog() {
AlertDialog dialog = new AlertDialog.Builder(mSingleton)
.setTitle("Audio Recording Permission Missing")
.setMessage("It appears that this game request for mic permission. The game may not work correctly without mic permission!")
.setNeutralButton("Continue", null)
.create();
dialog.show();
Log.d("GameActivity", "showRecordingAudioPermissionMissingDialog()");
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog dialog = new AlertDialog.Builder(mSingleton)
.setTitle("Audio Recording Permission Missing")
.setMessage("It appears that this game uses mic capabilities. The game may not work correctly without mic permission!")
.setNeutralButton("Continue", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface di, int id) {
synchronized (recordAudioRequestDummy) {
recordAudioRequestDummy.notify();
}
}
})
.create();
dialog.show();
}
});
synchronized (recordAudioRequestDummy) {
try {
recordAudioRequestDummy.wait();
} catch (InterruptedException e) {
Log.d("GameActivity", "mic permission dialog", e);
}
}
}
public void showExternalStoragePermissionMissingDialog() {
@@ -485,24 +505,6 @@ public class GameActivity extends SDLActivity {
@Keep
public boolean hasRecordAudioPermission() {
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.RECORD_AUDIO)
== PackageManager.PERMISSION_GRANTED) {
return true;
}
Log.d("GameActivity", "Requesting mic permission and locking LÖVE thread until we have an answer.");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_AUDIO_REQUEST_CODE);
synchronized (recordAudioRequestDummy) {
try {
recordAudioRequestDummy.wait();
} catch (InterruptedException e) {
Log.d("GameActivity", "requesting mic permission", e);
return false;
}
}
return ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
}