mirror of
https://github.com/love2d/love-android.git
synced 2026-08-17 19:24:07 +02:00
Fixed mic permission requested 3 times and dialog not showing.
This commit is contained in:
@@ -13,7 +13,7 @@ import android.util.Log;
|
|||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
|
|
||||||
public class DownloadActivity extends Activity {
|
public class DownloadActivity extends Activity {
|
||||||
public static final int EXTERNAL_STORAGE_REQUEST_CODE = 2;
|
public static final int EXTERNAL_STORAGE_REQUEST_CODE = 3;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
|||||||
@@ -400,12 +400,32 @@ public class GameActivity extends SDLActivity {
|
|||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
public void showRecordingAudioPermissionMissingDialog() {
|
public void showRecordingAudioPermissionMissingDialog() {
|
||||||
AlertDialog dialog = new AlertDialog.Builder(mSingleton)
|
Log.d("GameActivity", "showRecordingAudioPermissionMissingDialog()");
|
||||||
.setTitle("Audio Recording Permission Missing")
|
runOnUiThread(new Runnable() {
|
||||||
.setMessage("It appears that this game request for mic permission. The game may not work correctly without mic permission!")
|
@Override
|
||||||
.setNeutralButton("Continue", null)
|
public void run() {
|
||||||
.create();
|
AlertDialog dialog = new AlertDialog.Builder(mSingleton)
|
||||||
dialog.show();
|
.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() {
|
public void showExternalStoragePermissionMissingDialog() {
|
||||||
@@ -485,24 +505,6 @@ public class GameActivity extends SDLActivity {
|
|||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
public boolean hasRecordAudioPermission() {
|
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;
|
return ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user