Merge pull request #47104 from m4gr3d/fix_permissions_result_callback

Fix onMainRequestPermissionsResult callback for Android plugins.
This commit is contained in:
Rémi Verschelde 2021-03-17 17:52:55 +01:00 committed by GitHub
commit 3150ef3427
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 0 deletions

View file

@ -34,6 +34,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
@ -69,6 +70,26 @@ public abstract class FullScreenGodotApp extends FragmentActivity implements God
}
}
@CallSuper
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (godotFragment != null) {
godotFragment.onActivityResult(requestCode, resultCode, data);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@CallSuper
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (godotFragment != null) {
godotFragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
@Override
public void onBackPressed() {
if (godotFragment != null) {

View file

@ -195,8 +195,10 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
godotHost = null;
}
@CallSuper
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (result_callback != null) {
result_callback.callback(requestCode, resultCode, data);
result_callback = null;
@ -207,8 +209,10 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
}
}
@CallSuper
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) {
plugin.onMainRequestPermissionsResult(requestCode, permissions, grantResults);
}