From 71ecd492e9cd5a54a9082b17d8d4c46633a08f02 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Sat, 30 May 2020 16:25:13 +0200 Subject: [PATCH] show error dialog when Google Play Services are not available --- .../java/net/vonforst/evmap/MapsActivity.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt index b1d871c9..c638718d 100644 --- a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt +++ b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt @@ -3,6 +3,7 @@ package net.vonforst.evmap import android.content.Intent import android.net.Uri import android.os.Bundle +import android.util.Log import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.browser.customtabs.CustomTabsIntent @@ -12,11 +13,14 @@ import androidx.navigation.NavController import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.setupWithNavController +import com.google.android.gms.common.ConnectionResult +import com.google.android.gms.common.GoogleApiAvailability import com.google.android.material.navigation.NavigationView import com.google.android.material.snackbar.Snackbar import net.vonforst.evmap.api.goingelectric.ChargeLocation import net.vonforst.evmap.storage.PreferenceDataSource + const val REQUEST_LOCATION_PERMISSION = 1 class MapsActivity : AppCompatActivity() { @@ -47,6 +51,8 @@ class MapsActivity : AppCompatActivity() { findViewById(R.id.nav_view).setupWithNavController(navController) prefs = PreferenceDataSource(this) + + checkPlayServices() } fun navigateTo(charger: ChargeLocation) { @@ -92,4 +98,19 @@ class MapsActivity : AppCompatActivity() { } startActivity(intent) } + + private fun checkPlayServices(): Boolean { + val request = 9000 + val apiAvailability = GoogleApiAvailability.getInstance() + val resultCode = apiAvailability.isGooglePlayServicesAvailable(this) + if (resultCode != ConnectionResult.SUCCESS) { + if (apiAvailability.isUserResolvableError(resultCode)) { + apiAvailability.getErrorDialog(this, resultCode, request).show() + } else { + Log.d("EVMap", "This device is not supported.") + } + return false + } + return true + } }