From 7ffba397ce42ecfe214872be58d3321fda8eb92b Mon Sep 17 00:00:00 2001 From: Yegor Vialov Date: Thu, 28 May 2020 19:17:32 +0000 Subject: [PATCH] Fix crash whne no google play services available --- .../keyboardcrumbs/hassclient/MainActivity.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java index 0bc01b6..16dd6ed 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java @@ -16,6 +16,8 @@ import io.flutter.plugin.common.MethodChannel; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.android.gms.common.ConnectionResult; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; import com.google.firebase.messaging.FirebaseMessaging; @@ -31,13 +33,14 @@ public class MainActivity extends FlutterActivity { new MethodChannel.MethodCallHandler() { @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) { + Context context = getActivity(); if (call.method.equals("getFCMToken")) { - FirebaseInstanceId.getInstance().getInstanceId() + if (checkPlayServices()) { + FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { - Context context = getActivity(); String token = task.getResult().getToken(); UpdateTokenTask updateTokenTask = new UpdateTokenTask(context); updateTokenTask.execute(token); @@ -47,12 +50,19 @@ public class MainActivity extends FlutterActivity { } } }); + } else { + result.error("google_play_service_error", "Google Play Services unavailable", null); + } } } } ); } + private boolean checkPlayServices() { + return (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);