3737/**
3838 SDL Activity
3939*/
40- public class SDLActivity extends Activity {
40+ public class SDLActivity extends Activity implements ActivityCompat . OnRequestPermissionsResultCallback {
4141 private static final String TAG = "SDL" ;
4242
4343 // Keep track of the paused state
@@ -64,6 +64,8 @@ public class SDLActivity extends Activity {
6464 // Audio
6565 protected static AudioTrack mAudioTrack ;
6666
67+ private Object requestPermissionsMonitor = new Object ();
68+
6769 /**
6870 * This method is called by SDL before loading the native shared libraries.
6971 * It can be overridden to provide names of shared libraries to be loaded.
@@ -168,9 +170,9 @@ public void onClick(DialogInterface dialog,int id) {
168170 if (!haveStoragePermissions ()) {
169171 String [] requiredPermissions = {Manifest .permission .WRITE_EXTERNAL_STORAGE , Manifest .permission .READ_EXTERNAL_STORAGE };
170172 ActivityCompat .requestPermissions (this , requiredPermissions , 1 );
171- synchronized (this ) {
173+ synchronized (requestPermissionsMonitor ) {
172174 try {
173- wait ();
175+ requestPermissionsMonitor . wait ();
174176 } catch (InterruptedException ex ) {
175177 ex .printStackTrace ();
176178 }
@@ -223,8 +225,10 @@ public void onClick(DialogInterface dialog,int id) {
223225 }
224226
225227 @ Override
226- public synchronized void onRequestPermissionsResult (int requestCode , String permissions [], int [] grantResults ) {
227- notify ();
228+ public void onRequestPermissionsResult (int requestCode , String permissions [], int [] grantResults ) {
229+ synchronized (requestPermissionsMonitor ) {
230+ requestPermissionsMonitor .notify ();
231+ }
228232 }
229233
230234 private boolean haveStoragePermissions () {
0 commit comments