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.
for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) {
View pluginView = plugin.onMainCreateView(this);
View pluginView = plugin.onMainCreate(this);
if (pluginView != null) {
layout.addView(pluginView);
}

View File

@ -35,6 +35,7 @@ import org.godotengine.godot.Godot;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
@ -92,6 +93,14 @@ public abstract class GodotPlugin {
return godot;
}
/**
* Provides access to the underlying {@link Activity}.
*/
@Nullable
protected Activity getActivity() {
return godot;
}
/**
* 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
* {@link org.godotengine.godot.GodotView} view.
* <p>
* This method should be overridden by descendants of this class that would like to add
* their view/layout to the Godot view hierarchy.
* The plugin can return a non-null {@link View} layout in order to add it to the Godot view
* 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
public View onMainCreateView(Activity activity) {
public View onMainCreate(Activity activity) {
return null;
}

View File

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