Merge pull request #39580 from m4gr3d/provide_activity_to_godot_plugin_constructor_3_2

Clean up the GodotPlugin public API.
This commit is contained in:
Rémi Verschelde 2020-06-16 20:45:49 +02:00 committed by GitHub
commit 7f6767470d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 7 deletions

View file

@ -371,7 +371,7 @@ public abstract class Godot extends FragmentActivity implements SensorEventListe
// Include the returned non-null views in the Godot view hierarchy. // Include the returned non-null views in the Godot view hierarchy.
for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) { for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) {
View pluginView = plugin.onMainCreateView(this); View pluginView = plugin.onMainCreate(this);
if (pluginView != null) { if (pluginView != null) {
layout.addView(pluginView); layout.addView(pluginView);
} }

View file

@ -35,6 +35,7 @@ import org.godotengine.godot.Godot;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@ -92,6 +93,14 @@ public abstract class GodotPlugin {
return godot; return godot;
} }
/**
* Provides access to the underlying {@link Activity}.
*/
@Nullable
protected Activity getActivity() {
return godot;
}
/** /**
* Register the plugin with Godot native code. * Register the plugin with Godot native code.
* *
@ -145,13 +154,14 @@ public abstract class GodotPlugin {
* Invoked once during the Godot Android initialization process after creation of the * Invoked once during the Godot Android initialization process after creation of the
* {@link org.godotengine.godot.GodotView} view. * {@link org.godotengine.godot.GodotView} view.
* <p> * <p>
* This method should be overridden by descendants of this class that would like to add * The plugin can return a non-null {@link View} layout in order to add it to the Godot view
* their view/layout to the Godot view hierarchy. * hierarchy.
* *
* @return the view to be included; null if no views should be included. * @see Activity#onCreate(Bundle)
* @return the plugin's view to be included; null if no views should be included.
*/ */
@Nullable @Nullable
public View onMainCreateView(Activity activity) { public View onMainCreate(Activity activity) {
return null; return null;
} }

View file

@ -68,7 +68,7 @@ public class GodotPayment extends GodotPlugin implements PurchasesUpdatedListene
super(godot); super(godot);
billingClient = BillingClient billingClient = BillingClient
.newBuilder(getGodot()) .newBuilder(getActivity())
.enablePendingPurchases() .enablePendingPurchases()
.setListener(this) .setListener(this)
.build(); .build();
@ -183,7 +183,7 @@ public class GodotPayment extends GodotPlugin implements PurchasesUpdatedListene
.setSkuDetails(skuDetails) .setSkuDetails(skuDetails)
.build(); .build();
BillingResult result = billingClient.launchBillingFlow(getGodot(), purchaseParams); BillingResult result = billingClient.launchBillingFlow(getActivity(), purchaseParams);
Dictionary returnValue = new Dictionary(); Dictionary returnValue = new Dictionary();
if (result.getResponseCode() == BillingClient.BillingResponseCode.OK) { if (result.getResponseCode() == BillingClient.BillingResponseCode.OK) {