Skip to content

Commit 4777347

Browse files
authored
Merge pull request #14 from ened/activity-vs-context
Do not rely on the Activity object when this plugin is instantiated.
2 parents 96ffe46 + beaa36a commit 4777347

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

android/src/main/java/com/baseflow/googleapiavailability/GoogleApiAvailabilityPlugin.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.baseflow.googleapiavailability;
22

33
import android.app.Activity;
4+
import android.content.Context;
45

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

4849
public static void registerWith(Registrar registrar) {
4950
final MethodChannel channel = new MethodChannel(registrar.messenger(), "flutter.baseflow.com/google_api_availability/methods");
50-
channel.setMethodCallHandler(new GoogleApiAvailabilityPlugin(registrar.activity()));
51+
channel.setMethodCallHandler(new GoogleApiAvailabilityPlugin(registrar.context()));
5152
}
5253

53-
private final Activity activity;
54+
private final Context context;
5455

55-
private GoogleApiAvailabilityPlugin(Activity activity) {
56-
this.activity = activity;
56+
private GoogleApiAvailabilityPlugin(Context context) {
57+
this.context = context;
5758
}
5859

5960
@Override
6061
public void onMethodCall(MethodCall call, Result result) {
6162
if (call.method.equals("checkPlayServicesAvailability")) {
6263
final Boolean showDialog = call.argument("showDialog");
6364
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
64-
final int connectionResult = googleApiAvailability.isGooglePlayServicesAvailable(activity);
65+
final int connectionResult = googleApiAvailability.isGooglePlayServicesAvailable(context);
6566

66-
if (showDialog != null && showDialog) {
67-
googleApiAvailability.showErrorDialogFragment(activity, connectionResult, REQUEST_GOOGLE_PLAY_SERVICES);
67+
68+
if (context instanceof Activity) {
69+
Activity activity = (Activity) context;
70+
if (showDialog != null && showDialog) {
71+
googleApiAvailability.showErrorDialogFragment(activity, connectionResult, REQUEST_GOOGLE_PLAY_SERVICES);
72+
}
6873
}
6974

7075
final int availability = toPlayServiceAvailability(connectionResult);

0 commit comments

Comments
 (0)