Skip to content

Commit

Permalink
Merge pull request #14 from ened/activity-vs-context
Browse files Browse the repository at this point in the history
Do not rely on the Activity object when this plugin is instantiated.
  • Loading branch information
mvanbeusekom committed May 17, 2019
2 parents 96ffe46 + beaa36a commit 4777347
Showing 1 changed file with 12 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.baseflow.googleapiavailability;

import android.app.Activity;
import android.content.Context;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
Expand Down Expand Up @@ -47,24 +48,28 @@ public class GoogleApiAvailabilityPlugin implements MethodCallHandler {

public static void registerWith(Registrar registrar) {
final MethodChannel channel = new MethodChannel(registrar.messenger(), "flutter.baseflow.com/google_api_availability/methods");
channel.setMethodCallHandler(new GoogleApiAvailabilityPlugin(registrar.activity()));
channel.setMethodCallHandler(new GoogleApiAvailabilityPlugin(registrar.context()));
}

private final Activity activity;
private final Context context;

private GoogleApiAvailabilityPlugin(Activity activity) {
this.activity = activity;
private GoogleApiAvailabilityPlugin(Context context) {
this.context = context;
}

@Override
public void onMethodCall(MethodCall call, Result result) {
if (call.method.equals("checkPlayServicesAvailability")) {
final Boolean showDialog = call.argument("showDialog");
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
final int connectionResult = googleApiAvailability.isGooglePlayServicesAvailable(activity);
final int connectionResult = googleApiAvailability.isGooglePlayServicesAvailable(context);

if (showDialog != null && showDialog) {
googleApiAvailability.showErrorDialogFragment(activity, connectionResult, REQUEST_GOOGLE_PLAY_SERVICES);

if (context instanceof Activity) {
Activity activity = (Activity) context;
if (showDialog != null && showDialog) {
googleApiAvailability.showErrorDialogFragment(activity, connectionResult, REQUEST_GOOGLE_PLAY_SERVICES);
}
}

final int availability = toPlayServiceAvailability(connectionResult);
Expand Down

0 comments on commit 4777347

Please sign in to comment.